以下の通り構成で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側の問題なのだろうか?