VyOSでVLAN
VyOSでVLAN
VyOSでVLANを設定してみます。
ソフトウェア | バージョン |
---|---|
VyOS | 1.4-rolling-202203080319 |
VirtualBox | 6.1.32 r149290 (Qt5.6.3) |
Vagrant | 2.2.19 |
vagrant-vyos | 1.1.10 |
構築環境
Vagrantで準備するとeth0としてNATタイプのインタフェースとdefaultルートが設定されます。 図には載せないですが全てのホストでdefaultルートがeth0経由でホストマシンに向いています。
vlan | セグメント |
---|---|
11 | 100.0.1.0/24 |
12 | 100.0.2.2/24 |
環境準備
環境は下のように準備します。注意するところは nicpromisc を使いNICをプロミスキャストモードに指定することです。
VagrantからVirtualBoxプロバイダーを操作するのにはcutomizeメソッドを使います。
VirtualBoxの公式リファレンスの8.8.2 (modify networking)を使います。プロミスキャストは deny | allow-vms | allow-all
を指定できるようです。ここでは allow-vms
を指定してます。
|
|
設定
deb0, deb1 は特に設定変更する必要はなく vagrant up deb0 deb1
で最低限の実験できます。 tcpdump はパケットを見るのに入れました。
vysite1
下のようにイーサネットインタフェースを3つ作成してブリッジに接続しています。
対向ホストは vlan タグをつけません。そこでアクセスポートに対応するインタフェースに native-vlan
を設定しています。
トランクポートにあたる eth3 では allowed-vlan
を設定しました。
native-vlan
のデフォルトは1みたいです。
|
|
vysite2
こちらはイーサネットインタフェースは2つともトランクポートにしています。
|
|
debext
debext はトランクポートにつながっています。 分離するために vlan インタフェースを作成してアドレスを与えました。
|
|
検証
それぞれのホストから ping
を飛ばします。
tcpdump -e -n -i br0
でイーサネットフレームを観察するとVLANタグが付与されてることが観察できます。
|
|
|
|
bridgeメモ
vysite1 ではアクセスポートを提供していました。これを普通の ip, bridge コマンドでやる方法をメモしておきます。
|
|
Linuxにはvlan,macvlan,ipvlanと色々あるようです。 macvlan は vlan と異なり別のMACアドレスを持てます。そのため物理ポート・VLAN IDを共有しつつ別 vrf に繋げることができそうです。 ipvlan は仮想アドレスと似てますがインタフェースなので netfilter などを分離できそうです。