今日からできるUbuntuでタグVLAN環境

物理NICはひとつしかない、でもサブネットを多重化したい。そんなときに便利なのがタグVLANですね。

家庭用(アンマネージドスイッチ)で用意するのは難しいかも知れませんが、タグVLANを使えるスイッチがあればホストをまたがって構成できます。

VirtualBoxの場合はブリッジで接続するなどすればVMでもタグVLANが到達します。
また、同じくVirtualBoxでは内部ネットワークを構成した場合にもタグを通すようですが、Hyper-Vはゲスト側で付けたタグを無視するようなので構成できません。

物理スイッチを使う場合を絵で描くとこんな感じ。VMの仮想NICで構成していますが、物理の場合も基本は同じです。

ホストをまたぐ場合、対象のホストを接続する物理スイッチにはネイティブVLANとタグVLANを構成しておきます。利用する予定のVLAN IDをtrunkに設定しておかないと、スイッチがパケットを通してくれません。タグなし(untag)パケットはネイティブVLANに疎通します。

Ubuntu17以降、netplanの場合は、特に追加のインストールをすることなくVLANを構成できます。

上記の例では、vlansのセクションにインタフェース名(特に厳しい制限はない)を書き、さらにVLAN IDや定義する(非VLAN)インタフェースなどの属性値を記載します。IPアドレスの設定方法はほかのインタフェースと同じですね。
この構成では、OSが二つのNIC(eth0, eth1)を認識し、さらにeth1側にVLAN ID=100のタグを吐く仮想的なNICを定義しています。環境に合わせて変更して下さい。

現状のインタフェースを確認するにはip aip lコマンドを使用します。

上記のようにYAMLを書いて保存したら、あとはnetplanを通じて設定を適用するだけです。

おわり。