加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – SynProxy无法返回具有非对称双桥拓扑的syn ack数据包

发布时间:2020-12-13 18:24:57 所属栏目:Linux 来源:网络整理
导读:我有一个非对称双桥拓扑,如下所示 当我从172.16.11.5和172.16.10.6与ssh连接时 但由于SynProxy,我无法连接. ------- | | ---o--- 172.16.11.5 | | -----o----- 172.16.11.6 | | | | default gw 1.1.1.1 | | 1.1.1.2/30 --o----o--- 2.2.2.2/30 | | | | | | (
我有一个非对称双桥拓扑,如下所示
当我从172.16.11.5和172.16.10.6与ssh连接时
但由于SynProxy,我无法连接.
-------
                  |     |
                  ---o--- 172.16.11.5
                     |
                     |
                -----o----- 172.16.11.6
                |         |
                |         | default gw 1.1.1.1
                |         |
     1.1.1.2/30 --o----o--- 2.2.2.2/30
                  |    |
                  |    |
                  |    | (enp10s0f0)
              ----o----o-----
              |             |
              |     XXX     |
              |             |
              |  br1   br0  | synproxy
              |             |
              ----o----o-----
                  |    |
                  |    |
                  |    |
     1.1.1.1/30 --o----o--- 2.2.2.1/30
                |         |
                |         | default gw 2.2.2.2
                |         |
                -----o----- 172.16.10.1
                     |
                     |
                  ---o--- 172.16.10.6
                  |     |
                  -------

在172.16.11.5和172.16.10.6之间的所有机器上
“rp filtering”已关闭,“ip forwarding”已启用.
拓扑中间有一台机器
叫“XXX”机器. XXX有两个桥和一个SynProxy.

当在XXX上关闭SynProxy时,我可以ping通
172.16.11.5到172.16.10.6和icmp数据包如下
该路径:br1-> 172.16.10.1-> 172.16.10.6-> 172.16.10.1-> br0.
另外,我可以从172.16.11.5访问到
172.16.10.6 with ssh.因此TCP流量按预期工作.

但是,当在XXX上打开SynProxy时,我可以ping通
从172.16.11.5到172.16.10.6,然后是icmp数据包
同样的道路.但我无法从172.16.11.5访问
使用ssh到172.16.10.6这是因为synproxy可以
不通过br1 iface发送syn ack回复.如果我添加一个
在XXX上的synack数据包的路由,我可以连接
带有ssh的172.16.11.5到172.16.10.6.

route add 172.16.11.5 dev enp10s0f0

XXX的SynProxy规则:

iptables -t raw -A PREROUTING -i br0 -p tcp -m physdev --physdev-in 
enp10s0f0 -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j CT --notrack
iptables -t raw -A PREROUTING -i br1 -p tcp -m physdev --physdev-in 
enp11s0f0 -m tcp --tcp-flags FIN,ACK SYN -j CT --notrack

iptables -t filter -A FORWARD -i br0 -p tcp -m physdev --physdev-in 
enp10s0f0 -m tcp -m state --state INVALID,UNTRACKED -j SYNPROXY 
--sack-perm --timestamp --wscale 7 --mss 1460
iptables -t filter -A FORWARD -i br0 -m physdev --physdev-in enp10s0f0 
-m state --state INVALID -j DROP
iptables -t filter -A FORWARD -i br1 -p tcp -m physdev --physdev-in 
enp11s0f0 -m tcp -m state --state INVALID,UNTRACKED -j SYNPROXY 
--sack-perm --timestamp --wscale 7 --mss 1460
iptables -t filter -A FORWARD -i br1 -m physdev --physdev-in enp11s0f0 
-m state --state INVALID -j DROP

但这是不可接受的,因为172.16.11.0网络
是云.所以我无法添加路由所有云网络
路由表,无法将MAC地址添加到arp
表.

如何从172.16.11.5连接到172.16.10.6
在XXX上打开SynProxy时使用ssh的机器?
或者有可能吗?

提前致谢,

解决方法

我可以看到解决此问题的最简单方法是更改??网关计算机上的默认路由以使用相同的网桥,因此它不再是不对称的.

>在172.16.11.6上将默认值设置为2.2.2.1(通过br0)
>在172.16.10.1上将默认值设置为2.2.2.2(通过br0)

我很好奇为什么它是这样设计的……第二座桥的目的是什么?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读