
厳しい場合があります。
+---+ +----+
|D1 +->eth0---------<-eth0-+D2 |
| | | |
| +->eth1---------<-eth1-+ |
+---+ +----+
D2で同じサブネットのIPアドレスを使用する場合eth0
:、、。 D1のインターフェイスには割り当てられたアドレスがなく、スイッチのように動作します。eth1
eth0
10.1.1.1/24
eth1
10.1.1.2/24
10.1.1.2
D2がトラフィックを送信できるようにしたいので、eth0
パケットパスはD2(eth0) - D1(eth0) - D1(eth1) - D2(eth1)でなければなりません。
D2でpingすると、ローカルに10.1.1.2
パケットが送信されます。つまり、D1 はパケットを受信しません。目的の動作を達成するには、D2で何を変更する必要がありますか?
ありがとうございます。
答え1
欲しいものはLinuxでは不可能です。少なくともルーティング層にはありません。宛先アドレスがローカルインターフェイスに属している場合、パケットは常にループバックインターフェイスを通過するため、外部(RfC経由)にルーティングすることはできません。
宛先をサブネットで使用されていないアドレスに使用およびiptables
変更し、MACアドレスを他のNICの1つに静的に設定しますが、パケットをローカルアドレスと一致させないルールを使用することが可能であると考えました。DNAT
ip neigh
DNAT
10.1.1.1
カーネルが認識しないように、仮想マシンまたはネットワークネームスペースを使用できますeth0
。ただし、着信パケットを物理インターフェイスから仮想インターフェイスに移動するには、プロキシ ARP と DNAT が必要です。
それでは、努力する価値がありますか?
答え2
ネットワークネームスペースはオプションです。これらは基本的にネットワークスタックの独立したインスタンスであるため、少なくとも理論的には2つのインターフェイスを分離できる必要があります。
前回彼らと遊びに行こうとしたとき、私はそれらを働かせることができませんでした。