Posted at: 2016-08-15 07:43:47  Category: networking

はじめに

LXC(Linux Containers)を使って仮想化とかコンテナに関する技術を学んでいるのですが、
ネットワークの構成らへんでよくわかんなくなってしまいました。
が、ゴニョゴニョしてたらなんかうまく出来たようなのでメモしておきます。

やりたいこと

簡略化しましたが以下の図が凡そ作りたいネットワークの論理的な?構成図です。

figure1

赤枠で囲まれているホスト2、ホスト3はどちらもホスト1上のコンテナです。
ホスト1はNICを2つ持ってて、それぞれのNICを消費してブリッジを2つ作っています。
なのでホスト1の中のネットワークは以下のような図になっているはず。

figure2

やったこと

上述の構成をやるために以下のような設定を行ってみました。
それぞれホスト1,ホスト2,ホスト3の/etc/network/interfacesに書いた内容を示します。

ホスト1

auto eth0

iface eth0 inet static

address 0.0.0.0



auto brbr0

iface brbr0 inet static

address 192.168.4.100

netmask 255.255.255.0

network 192.168.4.0

broadcast 192.168.4.255

gateway 192.168.4.1

bridge_ports eth0

bridge_stp off

bridge_maxwait 1

dns-nameservers 192.168.3.2



auto eth1

iface eth1 inet static

address 0.0.0.0



auto brbr1

iface brbr1 inet static

address 192.168.2.100

netmask 255.255.255.0

network 192.168.2.0

broadcast 192.168.2.255

gateway 192.168.2.1

bridge_ports eth1

bridge_stp off

bridge_maxwait 1

ホスト2

auto lo

iface lo inet loopback



auto eth0

iface eth0 inet static

address 192.168.4.101

netmask 255.255.255.0

gateway 192.168.4.1

broadcast 192.168.4.255

dns-nameservers 192.168.3.2

ホスト3

auto lo

iface lo inet loopback



auto eth0

iface eth0 inet static

address 192.168.2.101

network 192.168.2.0

netmask 255.255.255.0

gateway 192.168.2.1

#dns-nameservers <てきとうなキャッシュDNSサーバ>

次に作成したブリッジ(brbr0とかbrbr1)をコンテナが使ってくれるように、
コンテナの設定ファイル/var/lib/lxc/<コンテナの名前>/configのlxc.network.linkを
適当なブリッジの名前にします。
やったことはこんな感じです。

謎い点



  • ルーティングがどういうふうになってるのかよくわかっていません。


    • ホスト1->ホスト3はL3SWを通ってるのかな?
      routeやtracerouteの結果を見る限りではそうっぽいけれども


  • ブリッジインターフェース自体につけてる192.168.4.100とかのアドレスはどういう意味


    • ホスト1自身のアドレスとしてつかってるけど