다음과 같이 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와 관련이 없습니다.