LinuxでVLANの処理をする必要があり、ちょうど良いので方法や仕組みをまとめました。
VLANって?
VLANとは、L2でパケットにタグというものをつけて、複数のL2を分割して考えることができます。
本当に単純に、L2パケットにVLANタグを付けているのみです。ちなみにVLANは整数の番号を割り当てることができます。
これの何が嬉しいかと言うと、L3でセグメントをわけなくてもLAN内でL2を擬似的に分割することができちゃったりします。
他にもスイッチの特定のポートとVLANを結びつければVLANを使ってルーティングの設定ができます。
原理
基本的に、マシンの物理NICをトランク(すべてのVLANが通れる、というかVLANを気にしない)として、さらに物理NICを通ったあとにVLANがついてるパケットだけをそのVLAN用に作成した仮想NICへとばしてくれます。
環境
Ubuntu Server 16.04 LTS
インストール
$ sudo apt install vlan
作成
$ sudo vconfig add eno1 10 # eno1を通ったときに10番のVLANパケットがあったときに、eno1.10という仮想NICにそのパケットを飛ばすようにする
$ sudo vconfig rem eno1 10 # eno1.10を削除する
めちゃくちゃ簡単ですね。これで生成した仮想NIC(物理NIC名.VLAN番号)を仮想ブリッジに追加したりなんかすれば、ホストとL3スイッチを接続して仮想マシンにしかアクセスできないポートなんかをL2だけで実現することができます。
セキュリティ的にネットワークを分けたいけどルーターのポートは1つしか用意できない!なんてときに使うと幸せになれると思います。
それでは。