Linuxはebtablesを使用してSNATを接続します。

Linuxはebtablesを使用してSNATを接続します。

次のコードを読んでいます(dot1xブリッジバイパス)。 https://github.com/mubix/8021xbridge/blob/master/scripts/trans_bridge.prepop

簡単に説明すると、2つのインターフェイスがあり、最初のものはスイッチ($ SWINT)に接続され、もう1つはターゲットホストに接続されます。目標は、トラフィックがターゲットホストによって生成されたように見えるようにしながら、残りのネットワークと対話することです。

引用されたコードを使用して、次の2つのコマンドが必要な理由を特定します。

# use ebtables to source NAT the $COMPMAC for traffic leaving the device from the bridge mac address
(A)ebtables -t nat -A POSTROUTING -s $SWMAC -o $SWINT -j snat --to-src $COMPMAC
(B)ebtables -t nat -A POSTROUTING -s $SWMAC -o $BRINT -j snat --to-src $COMPMAC

$BRINTのPOSTROUTINGトラフィックをSNAT化する理由を理解できません。私たちの目標は、ターゲットホストとは異なるソースMACを使用してスイッチ側インターフェイスにフレームを送信することではないので、最初のeb​​tablesルールで十分ですか?

それとも、$SWINT(スイッチ側インターフェイス)がすべてのフレームがスイッチに到達する唯一の方法ではありませんか?以下の図によれば、ルール(B)はeth0(SWINT)に行くフレームにのみ興味があり、すでにeth0にSNATを適用しているため、重複しているようです。

橋で見つけたいくつかの良い資料は次のとおりです(しかしまだ私の質問に答えていません)。

Linuxネットワークの内部構造の理解

Linux ブリッジ分析

ebtablesおよびLinuxブリッジ

https://doc.lagout.org/operating%20system%20/linux/Understanding%20Linux%20Network%20Internals.pdf ページ: 359 https://doc.lagout.org/operating%20system%20/linux/Understanding%20Linux%20Network%20Internals.pdfページ 359

関連情報