次のようにmacvtapインタフェースを設定しました。
ip link add link eth0 vlan type macvlan mode bridge
ip address add 10.0.0.17 dev vlan
ip link set dev vlan up
ip route flush dev eth0
ip route flush dev vlan
ip route add 10.0.0.0/24 dev vlan metric 0
ip route add default via 10.0.0.1
ip link add link eth0 name vtap address xx:xx:xx:xx:xx:xx type macvtap mode bridge
ip link set vtap up
ip address flush eth0
ip address flush vtap
dhclient -v vtap
ip address flush vtap
そして数時間後はとてもうまくいきます。ただし、その後、DHCP(macvtap)IPへのすべての接続がホストに移動し始めます。たとえば、ポート80でIPに接続すると、仮想マシンの代わりにホストが提供するページが表示されます。
なぜ動作が停止したのか理解しようとしています。当初は、DHCPリースが期限切れになってdhclient
更新されない可能性があると考えました。ところが賃貸時間が24時間なのに、それより早く、時には10時間もならず問題が始まります。
もしそうなら、macvtap
インターフェイスが動作を停止する原因は何ですか?
答え1
起動すると、dhclient
このインターフェースを使用する唯一の製品ですmacvtap
。しかし、dhclient
数時間後にリースを更新するためにパケットが送信されると、その時間にゲストもインターフェイスを使用しているため、macvtapは中断されます。また、ホストとゲストは同時に同じインターフェイスを使用できません。
まったく異なるプログラムがそのインターフェースを介してホストからランダムなパケット(単純なパケットなど)を送信した場合でも、ping
同じことが起こります。したがって、この問題はDHCPとは関係ありません。