내 서버를 최신 버전의 Xen(Debian의 경우 4.11.1)으로 업데이트한 후 내 호스트 시스템에서 인터넷 연결을 사용할 수 없습니다(게스트 시스템에서 액세스할 수 있음). 문제가 Xen 업데이트와 관련된 것인지 아니면 동시에 수행한 다른 업데이트와 관련된 것인지 잘 모르겠습니다. :-(
인터넷 접속을 위해 저는 인터페이스 xenbr0
에 연결된 브리지( )를 사용하는데, 이는 꽤 많은 클라이언트 시스템에서도 사용됩니다. eth0
게스트 시스템은 이 브리지를 사용하여 인터넷에 액세스할 수 있습니다. xenbr1
내부 통신에만 사용되며 외부 인터페이스에는 연결되지 않는 두 번째 브리지( )가 있습니다 .
# brctl show
bridge name bridge id STP enabled interfaces
xenbr0 8000.d6fc6a691328 no eth0
vif3.0
vif4.0
vif5.0
xenbr1 8000.b226a874c5c4 no vif1.0
vif2.0
vif4.1
vif6.0
따라서 eth0
인터페이스에는 IP 구성이 없지만 xenbr0
인터페이스에는 IP 주소가 있습니다.
# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 44:8a:5b:29:e6:40 txqueuelen 1000 (Ethernet)
xenbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 148.251.66.43 netmask 255.255.255.224 broadcast 148.251.66.63
inet6 fe80::d4fc:6aff:fe69:1328 prefixlen 64 scopeid 0x20<link>
inet6 2a01:4f8:202:302a::2 prefixlen 64 scopeid 0x0<global>
ether d6:fc:6a:69:13:28 txqueuelen 1000 (Ethernet)
xenbr1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.16.0.1 netmask 255.255.255.0 broadcast 172.16.0.255
inet6 fe80::b026:a8ff:fe74:c5c4 prefixlen 64 scopeid 0x20<link>
inet6 fd1a:1e62:cd84:83f8:172:16:0:1 prefixlen 64 scopeid 0x0<global>
ether b2:26:a8:74:c5:c4 txqueuelen 1000 (Ethernet)
기본 경로는 xenbr0
인터페이스를 통해 구성됩니다.
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 148.251.66.33 0.0.0.0 UG 0 0 0 xenbr0
148.251.66.32 0.0.0.0 255.255.255.224 U 0 0 0 xenbr0
172.16.0.0 0.0.0.0 255.255.255.0 U 0 0 0 xenbr1
다른 컴퓨터가 공용 주소(NAT 없음)를 사용하고 있기 때문에 IP 전달이 구성되지 않았습니다.
# cat /proc/sys/net/ipv4/ip_forward
0
방화벽이 구성되지 않았습니다( nft list ruleset
출력 없음, iptables
설치되지 않음).
게이트웨이에 대한 핑( 148.251.66.33
)은 게스트 시스템에서는 작동하지만 호스트에서는 작동하지 않습니다. 외부 주소를 ping하는 것과 동일합니다.
다음 버전을 실행하세요.
# cat /proc/version
Linux version 5.2.0-2-amd64 ([email protected]) (gcc version 8.3.0 (Debian 8.3.0-21)) #1 SMP Debian 5.2.9-2 (2019-08-21)
# dpkg --list "xen-*"
ii xen-hypervisor-4.11-amd64 4.11.1+92-g6c33308a8d-2+b1 amd64 Xen Hypervisor on AMD64
ii xen-hypervisor-common 4.11.1+92-g6c33308a8d-2 all Xen Hypervisor - common files
ii xen-utils-4.11 4.11.1+92-g6c33308a8d-2+b1 amd64 XEN administrative tools
ii xen-utils-common 4.11.1+92-g6c33308a8d-2+b1 amd64 Xen administrative tools - common files
# brctl --version
bridge-utils, 1.6
# ip -V
ip utility, iproute2-ss190708
# nft -v
nftables v0.9.2 (Scram)
내가 무엇을 놓치고 있나요? 어떤 도움이라도 대단히 감사하겠습니다!
답변1
마침내 해결책을 찾았습니다. 업데이트나 커널 업데이트와 관련된 것 같습니다 bridge-utils
(불행히도 특정 버전/업데이트를 정확히 알 수는 없습니다).
행동앞으로브리지가 자동으로 인터페이스의 MAC 주소를 사용하는 경우 동작뒤쪽에업데이트 내용은 브리지가 무작위로 생성된 MAC 주소(네트워크 측에서 차단됨)를 할당한다는 것입니다.
ip link set xenbr0 address 44:8a:5b:29:e6:40
브리지의 MAC 주소( )를 설정 하면 네트워크 액세스가 다시 예상대로 작동합니다.