vethのネットワークアドレスが同じ場合、ネットワークインタフェースが機能しないのはなぜですか?

vethのネットワークアドレスが同じ場合、ネットワークインタフェースが機能しないのはなぜですか?

私はLinuxで一対のベスを作成しました。ネットワーク部分が eth0 と同じ IP アドレスを割り当てると、ネットワークが壊れるようです。たとえば、eth0 192.168.0.3、veth1 192.168.0.100 です。一方、すべてのマークはip a/lすべてが正常ですが、ping / ncなどがローカルホストとリモートホストで機能していないことを示しています。

これに制限がありますか?

ベストアンサー1

次の一般的なネットワーク原則があります。異なるサブネットには異なるサブネットIP範囲が必要です。そして特定のマシンにはサブネットインターフェイスが1つしかありません。

これらの原則に違反する可能性がありますが、タスクの実行はユーザーによって異なります。これには、アプリケーションを特定のインターフェイスにバインドするなどの努力が必要です。

veth ペアはサブネットを形成します。同じネットワーク名前空間に2つのvethインターフェイスを配置し、質問のようにIPアドレスを割り当てると、両方の原則に違反します。だからそれは動作しません。

通常、vethペアの1つを別のネットワーク名前空間に移動し(vethペアの目的はネットワーク名前空間接続であるため)、次に表示されるvethにvethを割り当てます。その他サブネット上の2つのvethインターフェイスアドレスにアドレスを割り当てます。


ただし、ホストネームスペースのホストvetに同じネットワークアドレスがある場合、プライマリインターフェイスはシャットダウンされます。

はい。だからこそその他veth ペアで構成され、通常のサブネットのようにルーティングされます。

これならXYの問題具体的な目標を達成したい場合は、質問を修正して目標を明記してください。コンテナ(たとえば)でネットワーキングを実行する他の方法がありますmacvlan

異なるネットワークセグメントが互いに転送できるようにブリッジを作成する必要はありません。

ただし、名前ネームスペースとは異なるネームスペースに同じサブネットが必要な場合は、これを行う必要があります。 (またはあなたが使用するものmacvlan)。

「同じ」ネットワークアドレスをどこかに配置するか、「同じ」サブネットを別のインターフェイスに配置しようとすると、ルーティングは機能しません。

おすすめ記事