web-dev-qa-db-ja.com

ネットワーク名前空間間のVLANの作成

ネットワーク名前空間(ns1からns4)を使用して、次の図に示すトポロジを実装したいと思います。

topology to implement

次のコマンドを使用して、ネットワークを2つの異なるVLANに分割せずに、上記のトポロジを実装できます(この記事のタイトル: Linuxネットワーク名前空間の紹介 ):

Sudo ip netns add ns1
Sudo ip netns add ns2
Sudo ip netns add ns3
Sudo ip netns add ns4

Sudo ip link add veth1 type veth peer name veth11
Sudo ip link add veth2 type veth peer name veth12
Sudo ip link add veth3 type veth peer name veth13
Sudo ip link add veth4 type veth peer name veth14

Sudo ip link set veth11 netns ns1
Sudo ip link set veth12 netns ns2
Sudo ip link set veth13 netns ns3
Sudo ip link set veth14 netns ns4

Sudo ip netns exec ns1  ifconfig lo up
Sudo ip netns exec ns2  ifconfig lo up
Sudo ip netns exec ns3  ifconfig lo up
Sudo ip netns exec ns4  ifconfig lo up

Sudo ifconfig veth1 10.1.11.1/24 up
Sudo ifconfig veth2 10.1.12.1/24 up
Sudo ifconfig veth3 10.1.13.1/24 up
Sudo ifconfig veth4 10.1.14.1/24 up

Sudo ip netns exec ns1 ifconfig veth11 10.1.11.2/24 up
Sudo ip netns exec ns2 ifconfig veth12 10.1.12.2/24 up
Sudo ip netns exec ns3 ifconfig veth13 10.1.13.2/24 up
Sudo ip netns exec ns4 ifconfig veth14 10.1.14.2/24 up

Sudo ip netns exec ns1 route add default gw 10.1.11.1 veth11
Sudo ip netns exec ns2 route add default gw 10.1.12.1 veth12
Sudo ip netns exec ns3 route add default gw 10.1.13.1 veth13
Sudo ip netns exec ns4 route add default gw 10.1.14.1 veth14

上記の設定に基づいて、誰もが他のすべての人にpingを実行できます。ここで、あるVLANでns1とns3を分離し、別のVLANでns2とns4を分離したいと思います。 VLANを実装するために、次のようなものを使用しようとしています。

Sudo vconfig add veth1 11
Sudo vconfig add veth3 11
Sudo vconfig add veth11 12
Sudo vconfig add veth13 12

ただし、それでも誰もが他のすべての人にpingを実行できます。つまり、ネットワークは2つの異なるLANに分割されていません。どうすれば私が試みていることを達成できますか?仮想インターフェイスのVLANタグ付け)に別の方法はありますか?

8
Vasilis

いくつかのことが混同されています:

  1. グラフィックでは、「デフォルトの名前空間」をスイッチのように見せていますが、ルーターに設定しています。
  2. 中央にルーターがある場合、vlan1と他のvlan1は異なります。それらは同じLANを共有しないため、同じVLAN内に存在することはできません。
  3. vconfig呼び出しは、デフォルトの名前空間にないため、veth11またはveth13を検出しません。 –エラーは発生しませんでした!?
  4. veth1とveth11は1つの「パイプ」です。なぜ異なるVLAN IDを割り当てるのですか?
  5. パイプの一方の端をns1に入れ(そうする)、もう一方の端をns3に入れます(デフォルトの名前空間の代わりに)。 –その後、ns2およびns4と混合することなく、それらの間をルーティングまたはブリッジできます。
  6. つまり、後で再び分割するためだけに、デフォルトの名前空間ですべてを混在させないでください...
  7. 図のように行うこともできますが、ルーティングやIPアドレス(そしてVLANSを上に!)を操作しないでください。デフォルトの名前空間に2つのブリッジを配置し、各「パイプ」の片側を接続します橋の1つで。 – 1つのブリッジ(今回はVLANで構成されている)もそれを行います。 LinuxブリッジコードがVLANに対応しているかどうかは確認していませんが、おそらくそうです。
  8. あなたのveth-namesは紛らわしいです。 「eth1a」を「eth1b」または対称的な方法で同様のものと一緒にしないのはなぜですか?
  9. ipifconfigvconfigを廃止しました
5
Robert Siemer