これは、CoreOSでVLANをセットアップする方法に関するこの質問への追加です[ CoreOSベアメタルVLANネットワーキング 。後の私の質問は、これを設定した後、どのように使用しますか?
そのコンテナのイーサネットインターフェイスをそれらの特定のVLANの1つに配置するコンテナをどのように開始しますか?
警告:先にハック!
ネットワーキング(今日)はDockerの内部では少し厄介なので、ユーザーに代わって行われた多くの仮定を補う必要があります。これを行うには、インターフェイスが実際に配置されるブリッジインターフェイスを作成し、 this answerと同様の方法で--lxc-conf
オプションを介して設定を渡す必要があります。
例として(警告、これは直接コピー/貼り付け可能ではない可能性があります。私はこれをメモリから逆流させています):
最初に、VLAN800にあるeth0
にサブインターフェイスを設定します。
/etc/sysconfig/network/05-eth0.netdev
:
[Match]
Name=eth0.800
[Network]
Address=192.168.20.25/24
Gateway=192.168.20.1
DNS=192.168.1.1
VLAN=800
次に、そのVLANにアクセスする必要があるotherデバイス用のブリッジを作成します。
/etc/sysconfig/network/20-br800.netdev
:
[NetDev]
Name=br800
Kind=bridge
次に、以前に作成したサブインターフェイスをブリッジに接続します。
/etc/sysconfig/network/50-eth0-800.netdev
:
[Match]
Name=eth0.800
[Network]
Bridge=br800
これで、ホスト上に構成したいネットワークができた状態になり、次のようなことができます。
docker run \
--net="none" \
--lxc-conf="lxc.network.type = veth" \
--lxc-conf="lxc.network.ipv4 = 192.168.20.30/24" \
--lxc-conf="lxc.network.ipv4.gateway = 192.168.20.1" \
--lxc-conf="lxc.network.link = br800" \
--lxc-conf="lxc.network.name = eth0" \
--lxc-conf="lxc.network.flags = up" \
-d [Docker Image ID]
理想的には、このような方法でネットワークを設定するためだけにハッキングを行う必要はありませんが、これにより、異なるVLANに接続された複数のブリッジを作成し、異なるコンテナからのトラフィックをセグメント化して、アップストリームルーターを通過させることができます。 。