找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 5990|回复: 33

关于旁路由(服务器)的masquerade规则问题的思考

[复制链接]
本帖最后由 gaze 于 2022-5-31 15:44 编辑

起源于这个帖子:
https://www.right.com.cn/forum/thread-5512947-1-1.html
2021-8-29 riverscn

谈论的问题就是 ,到底N1(这样的单网卡设备)做旁路由的时候,
加不加那个 masquerade的规则。

额,还是先问个问题吧,
假设你的旁路由是一个5端口的7620/7621的这样的多网卡路由器,
那么,你要把那根网线插在哪里呢? WAN 还是 LAN ?
嗯,一般人都认为是 LAN 吧,,,
嗯,在N1身上呢,
你认为它的那个网卡是LAN还是WAN呢?

(其实问题的结症就在这里,旁路由是以什么方式 发送/转发来自LAN用户的数据的...)

暂且搁置,,

下面说,旁路由干了什么?
它接受了pc发出的请求数据包,
如果是普通请求,就直接发送给主路由,,,
如果是出海的事情,就自己处理一下,再发给主路由。

(为书写方便,用N1来指代旁路由,pc机指代LAN里的用户)

问题来了,
它发给主路由的数据里,IP地址是什么?
如果做了masquerade,就是N1自己的ip地址(例如 192.168.1.2)?
如果没做masquerade,就是pc机的ip地址(例如 192.168.1.100)?

一、假设是pc的ip地址,那么
当主路由收到外网返回的数据时,根据ip地址知道,这个数据应回到pc,
从而形成一个 pc->N1->主路由->外网 ->主路由->pc的奇怪的不对称的路径。
这种不对称的路径,可能是会有问题的,甚至是不能通的路径。
实测,
ping(ICMP)、nslookup(UDP)可以通达,
但是 http、ftp、email等常见使用TCP的应用,却无法连通。

出现这种不可达的情况,很可能和主路由的arp策略有关。
(因为去程局域网IP包里是pc机的IP,但是包头是N1网卡的mac地址,
这有可能造成某些主路由设备的认知混乱)。

二、假设是N1自己的ip地址,也就是说,
N1对pc发来的数据包做了处理,替换掉其中的源地址为自己的ip地址,
而这个动作就是SNAT,也就是所谓的那个masquerade规则。
这个行为,在一般的家用路由器里,就是LAN-WAN做的转换行为,
所以这种情况下,N1的网卡变成了WAN的角色,将数据发给主路由。
当主路由收到外网返回的数据时,根据ip地址,将其发给N1,
N1再做DNAT,将数据转化为转发给LAN内pc的数据,并从网卡发出。
这个是一个完整且有序的过程,此时,数据路径是
pc->N1->主路由->外网 ->主路由->N1->pc
是畅通的。

也就是说,N1的网卡,即要是WAN的角色,又要是LAN的角色
但它只有一个LAN上的IP地址,
并不同于我们平常意义上的WAN-LAN路由器,
而这个切换LAN/WAN动作可以用masquerade的规则来模拟。

这样,
虽然去往主路由的数据还是LAN内pc的请求数据,
但是在主路由看来,它是来自于N1的数据,
mac地址和ip地址也是匹配的,没有混乱的。
它的ip地址就是N1,它的回程数据也将发给N1去处理,

这是一个合理的,闭环的数据流向。

因此,
所谓旁路由,
其实更应该称为代理服务器,
因为它进入和出去的数据,ip地址都是同一个LAN里的。
虽然它对来自pc的请求数据做了masquerade的转换,
看起来是一个路由器常做的动作...^_^

========================

以上仅为小弟一家之言,
不对的地方请各位指正,
兄弟们一同学习、进步。
我的恩山、我的无线 The best wifi forum is right here.
 楼主| | 显示全部楼层
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

bucyuobucuo
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

bucyuobucuo
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

大佬说的不错,arp验证,之前那位大佬之前也没想到这个导致部分人不能上网。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

方式一,其实我试过不加那个规则也是能正常科学的。不过就这个问题我今天查了很多帖子,最终还是把这个规则加上去了。我看了这个帖子于是决定加一下。https://www.right.com.cn/forum/f ... ead&tid=2983767
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

十分感谢 学习了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

都知道snat和dnat了都不了解网络协议等相关知识吗?

看到这一句

“问题来了,
它用什么ip地址发给主路由的?
N1的ip地址? 还是pc机的ip地址?”

我一脸问号,什么叫用什么ip发给主路由?莫名其妙的一句话。
n1给主路由的包中的源mac就是n1自己的mac,目标mac就是主路由的mac,在没有nat时包中的源ip地址和目标ip地址是不变的啊


假设一,arp表等相关知识你还是重学一下吧
arp表中不同的mac对应的同一个ip又不是不行,那叫ip冲突不是mac 冲突,只是在回包的时候ip没变mac时变时不变,导致数据包不能正确送到对应的设备,这两个mac对应的设备网络卡顿丢包不稳定。
一句 “通讯显然不能成功” 就完了,也不知道“显然”了在哪里。

我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
楼上说的对,
本来路由是三层的问题,
但是这种所谓的旁路由,
LAN和WAN在同一个局域网里,
且ip在同一个子网里,

把一个三层的路由搞乱了,
成为一个二层的以太网arp寻址错误的问题了。

加masquerade是为了把源ip换成N1自己的ip,
以防止真正的网关返回数据时,
数据直接流向pc机而不是N1
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

完全不需要加,加了反而影响性能
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

garryforreg 发表于 2023-10-11 10:12
完全不需要加,加了反而影响性能

如果上级路由器(比如一些原厂固件的路由器)默认开了硬件NAT,不加就不能经过旁路由上网
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

99010 发表于 2023-10-11 18:31
如果上级路由器(比如一些原厂固件的路由器)默认开了硬件NAT,不加就不能经过旁路由上网 ...

这个问题我研究过很久,不存在你说的这种情况,只要上网机的网关指向旁路由就能通过旁路由上网,加了旁路由后,数据流有俩种路径:

1. 正常流量
上网机->旁路由->主路由->网络目标->主路由->上网机
这整个过程,除了主路由到上网目标需要一次snat外,其它环节都不需要,也不存在访问问题

2. 上网海淘流量
上网机->旁路由->流量代理程序->主路由->网路目标->主路由->旁路由->上网机

这条路径由于旁路由上的流量代理程序代理了上网机的流量,天然相当于做了一次snat,所以回程的流量先到达旁路由再回到上网机。

这俩条路径都完全不需要在旁路由上再多此一举自己做一次snat,除了浪费性能没有啥好处。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

garryforreg 发表于 2023-10-13 10:10
这个问题我研究过很久,不存在你说的这种情况,只要上网机的网关指向旁路由就能通过旁路由上网,加了旁路由 ...

你的主路由没开硬件nat,当然可以不用
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

99010 发表于 2023-10-13 11:29
你的主路由没开硬件nat,当然可以不用

这个跟主路由硬nat毫无关系,要不你就讲讲细节,硬nat咋影响的?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

本帖最后由 99010 于 2023-10-13 18:16 编辑
garryforreg 发表于 2023-10-13 17:15
这个跟主路由硬nat毫无关系,要不你就讲讲细节,硬nat咋影响的?

硬件NAT涉及arp与ip地址转换,这个讲起来会很长,简单说就是按照默认机制对进出数据包进行解包、改包、压包,再根据流向分别发送。

旁路由不添加masquerade伪装,在开启硬件NAT的主路由上就需要处理同时包含2个arp(旁路由+上网机)和2个IP(旁路由+上网机)的数据包,而硬件NAT只认首位arp+IP、次arp+IP直接丢弃,这样的结果,导致进出的数据包到旁路由就终止。

以上在小米AX6000原厂固件做主路由的环境验证过。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-5-6 02:53

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表