読者です 読者をやめる 読者になる 読者になる

KVMでvlanを使う

以下の通り構成でKVMでVLANを使ったときのメモ

構成

+------------------------+
| L2SW                   |
+---------[port1]--------+
            |
            | (vlan:10)
            |
+--------[eth1]----------+
| ホスト    |            |
|        (eth1.10)       |
|           |            |
|        (br_vlan10)     |
|           |            |
+--------[vnetX]---------+
            |
            |
            |
+---------[eth0]---------+
| ゲスト                 |
+------------------------+

KVMホストに入ってくるトラフィックは全てタグVLANで、ホストでタグを外してゲストに転送
※物理I/FはVLANの仮想I/Fを通して間接的にブリッジに含まれている

メモ

上の構成をそのまま設定しただけでは、L2SW〜KVMゲスト間で疎通が取れなかった
施行錯誤の結果、KVMホストのeth1がプロミスキャスモードになっていないことが原因だと判った
以下のようにeth1を含む適当なブリッジを作成するとeth1がプロミスキャスモードになり、正常に通信が行えるようになった

brctl addbr br1
brctl addif br1 eth1

以下のように明示的にプロミスキャスモードにしても大丈夫だと思うが、再起動時に自動的にプロミスキャスモードにする良い方法が判らなかった・・・

ip link set eth1 promisc on

未整理のメモ

ブリッジ作成後 ip link や ifconfig をしても eth1 がプロミスキャスモードになっているように見えない?
tcpdump -i eth1 を実行したときに、/var/log/messages に「device eth1 entered promiscuous mode」の様なログが現れるかどうかで確認(ログが記録されないということはtcpdumpを行う前からプロミスキャスモードになっている → I/Fがプロミスキャスモードになっている)。
もっと簡単にI/Fがプロミスキャスモードかどうかを判断する方法は無いのか?
もしかしてNIC側の問題なのだろうか?