找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
发表于 2021-8-29 21:52 | 显示全部楼层 |阅读模式
本帖最后由 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.
 楼主| 发表于 2021-8-29 21:53 | 显示全部楼层
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-11-2 14:26 | 显示全部楼层
bucyuobucuo
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-11-2 14:26 | 显示全部楼层
bucyuobucuo
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2021-11-5 15:19 | 显示全部楼层
大佬说的不错,arp验证,之前那位大佬之前也没想到这个导致部分人不能上网。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

使用道具 举报

发表于 2022-2-3 21:47 | 显示全部楼层
十分感谢 学习了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-5-21 23:18 | 显示全部楼层
都知道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.
回复

使用道具 举报

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

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

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

使用道具 举报

发表于 2023-10-11 10:12 | 显示全部楼层
完全不需要加,加了反而影响性能

点评

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

使用道具 举报

发表于 2023-10-11 18:31 | 显示全部楼层
garryforreg 发表于 2023-10-11 10:12
完全不需要加,加了反而影响性能

如果上级路由器(比如一些原厂固件的路由器)默认开了硬件NAT,不加就不能经过旁路由上网

点评

这个问题我研究过很久,不存在你说的这种情况,只要上网机的网关指向旁路由就能通过旁路由上网,加了旁路由后,数据流有俩种路径: 1. 正常流量 上网机->旁路由->主路由->网络目标->主路由->上网机 这整个过程,除了主路  详情 回复 发表于 2023-10-13 10:10
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

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

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

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

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

这俩条路径都完全不需要在旁路由上再多此一举自己做一次snat,除了浪费性能没有啥好处。

点评

你的主路由没开硬件nat,当然可以不用  详情 回复 发表于 2023-10-13 11:29
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

你的主路由没开硬件nat,当然可以不用

点评

这个跟主路由硬nat毫无关系,要不你就讲讲细节,硬nat咋影响的?  详情 回复 发表于 2023-10-13 17:15
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2023-10-13 17:15 | 显示全部楼层
99010 发表于 2023-10-13 11:29
你的主路由没开硬件nat,当然可以不用

这个跟主路由硬nat毫无关系,要不你就讲讲细节,硬nat咋影响的?

点评

硬件NAT涉及arp与ip地址转换,这个讲起来会很长,简单说就是按照默认机制对进出数据包进行解包、改包、压包,再根据流向分别发送。 旁路由不添加masquerade伪装,在开启硬件NAT的主路由上就需要处理同时包含2个arp  详情 回复 发表于 2023-10-13 18:10
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2023-10-13 18:10 | 显示全部楼层
本帖最后由 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原厂固件做主路由的环境验证过。

点评

按你这说法,硬NAT一个物理端口只能处理一个mac地址和ip的对应关系? 这显然是主路由器的问题,跟旁路由和masquerade没关系,我见过有安全设置只允许一个物理端口一个mac地址的,但这跟是否硬nat无关,只跟路由器的安全设  详情 回复 发表于 2023-10-16 09:10
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 22:32

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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

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