SynProxyは、非対称デュアルブリッジトポロジでsyn ackパケットを返すことができません


12

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フィルタリング」はオフで、「ip転送」はオンです。トポロジの中央に「XXX」マシンと呼ばれるマシンがあります。XXXには2つのブリッジと1つのSynProxyがあります。

XXXでSynProxyをオフにすると、172.16.11.5から172.16.10.6にpingでき、icmpパケットは次のパスに従います:br1-> 172.16.10.1-> 172.16.10.6-> 172.16.10.1-> br0。さらに、sshを使用して172.16.11.5から172.16.10.6にアクセスできます。したがって、TCPトラフィックは期待どおりに機能します。

ただし、SynProxyがXXXでオンになっていると、172.16.11.5から172.16.10.6にpingでき、icmpパケットは同じパスをたどります。しかし、sshを使用して172.16.11.5から172.16.10.6にアクセスすることはできません。これは、synproxyがbr1 ifaceを介してsyn ack応答を送信できないためです。XXXにsynackパケットのルートを追加すると、sshで172.16.11.5から172.16.10.6に接続できます。

ルート追加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,SYN,RST,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テーブルに追加できませんでした。

SynProxyがXXXでオンになっているときに、sshを使用して172.16.11.5から172.16.10.6マシンに接続するにはどうすればよいですか?またはそれは可能ですか?

前もって感謝します、


medium_idsynproxyのブリッジインターフェースの値を教えてください。また、すべてのテーブルの実際のSYNPROXYルールは何ですか?
アレクサンダーヤンセン

SynProxyにiptablesルールを追加しました。しかし、medium_idについては何も知りません。インターネットで迅速に検索しましたが、@ AlexanderJanssen
nyzsirt

回答:


0

これを修正するための最も簡単な方法は、ゲートウェイマシンのデフォルトルートを変更して、同じブリッジを使用するようにし、非対称性を解消することです。

  • 172.16.11.6では、デフォルトを2.2.2.1に設定します(br0経由)
  • 172.16.10.1では、デフォルトを2.2.2.2に設定します(br0経由)

私はなぜこのように設計されているのか興味があります... 2番目の橋の目的は何ですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.