저는 XEN(Ubuntu 14.04에서 실행)을 처음 접했지만 지금까지는 실제 문제가 없었습니다. 저는 브리징을 사용하여 네트워킹을 설정했으며 지금까지 다양한 시스템에서 잘 작동했습니다. 일반적으로 어딘가에서 답을 찾을 수 있지만 이번에는 부족하여 도움을 구했습니다.
나는 많은 수의 IP로 설정하려고 하는 클라이언트 VM(DomU)이 있는데 그것은 나에게 많은 슬픔을 안겨줍니다. 설정은 다음과 같습니다.
호스트 시스템에는 두 개의 NIC가 있습니다. 하나는 개인용(10.10.10.x) xenbr0에 사용되고 다른 하나는 공용 IPS(예: xyz*) xenbr1에 브리지됩니다.
/etc/networking/interfaces
다음은 호스트에서 보낸 내 파일입니다 .
iface eth0 inet manual
auto xenbr0
iface xenbr0 inet static
bridge_ports eth0
address 10.10.10.112
netmask 255.255.255.0
network 10.10.10.0
broadcast 10.10.10.255
gateway 10.10.10.1
auto eth1
iface eth1 inet manual
auto xenbr1
iface xenbr1 inet manual
bridge_ports eth1
bridge_maxwait 1
클라이언트 VM에서는 두 개의 브리지된 nic도 사용합니다 /etc/networking/interfaces
.
auto eth0
iface eth0 inet static
address x.y.z.170
netmask 255.255.255.240
broadcast x.y.z.175
gateway x.y.z.161
auto eth1
iface eth1 inet static
address 10.10.10.155
netmask 255.255.255.0
broadcast 10.10.10.255
auto eth0:1
iface eth0:1 inet static
address x.y.z.162
netmask 255.255.255.240
broadcast x.y.z.175
auto eth0:2
iface eth0:2 inet static
address x.y.z.163
netmask 255.255.255.240
broadcast x.y.z.175
auto eth0:3
iface eth0:3 inet static
address x.y.z.164
netmask 255.255.255.240
broadcast x.y.z.175
etc…. up to 8 alaises.
내 xen 구성 파일에는 다음이 있습니다.
vif = [ 'bridge=xenbr0', 'bridge=xenbr1' ]
모든 것이 설정되고 작동되면 VM에서 로컬 IP를 제거할 계획입니다.
이것을 베어메탈 머신에서 VM 머신으로 이동하려고 하기 때문에 별칭을 사용하고 있습니다. 결국 IPS의 남용은 해결될 것이지만 여러 가지 이유로 아직은 그렇게 할 수 없습니다. 어쨌든 VM을 부팅할 때 각 IP 주소에 대해 등을 수행하지 않는 한 일부 IP만 ping할 수 있습니다 arping -U -I eth1 x.y.z.162
. 그러면 상황이 최소한 응답하는 것처럼 보이지만 라우팅이 실제로 올바르게 작동하지 않습니다. ssh를 통해 http를 통해 IP를 찾아볼 수 있지만 가상 사이트가 올바르게 작동하지 않고(즉, 한 사이트에만 보내고 다른 사이트는 무시함) 바인드를 다시 시작하면 일부 다른 서비스가 올바르게 응답하지 않습니다. 이는 라우팅이 올바르게 설정되지 않은 것처럼 보이며 IP가 응답하는 동안 실제로 응답하는 것은 요청한 IP가 아니라 다른 IP입니다.
그러나 이것은 일부 추가 IPS에만 해당됩니다. 재부팅하면 arp 명령으로 수정한 라우팅이 손실됩니다. 그러면 VM의 바인딩 및 기타 몇 가지 서비스가 작동하지 않습니다. arp 명령을 실행하면 모든 것이 다시 작동합니다.
나는 아르핑이 단지 반창고일 뿐 실제 문제를 해결하는 것은 아니라고 생각합니다. 완전히 동일한 시스템이 베어메탈 머신에서 작동하기 때문에 문제는 XEN 네트워크 설정에 있고 마이그레이션하려는 스위치 설정이나 OS에 있는 것이 아니라고 거의 확신합니다.
/etc/networking/interfaces
문제를 더욱 격리하기 위해 아래 VM 파일 에 표시된 최신(가상화되지 않은 IP 별칭 지정) 설정을 사용하여 여러 IP가 있는 깨끗한 Ubuntu 14.04 게스트를 설정했습니다 .
auto eth0
allow-hotplug eth0
iface eth0 inet static
address x.y.z.110
netmask 255.255.255.240
broadcast x.y.z.175
gateway x.y.z.161
iface eth0 inet static
address x.y.z 162
netmask 255.255.255.240
broadcast x.y.z.175
iface eth0 inet static
address x.y.z 163
netmask 255.255.255.240
broadcast x.y.z.175
and on with the other IPS
모두 동일한 결과가 나타납니다. 내가 무엇을 놓치고 있나요? 어떤 도움이라도 주시면 감사하겠습니다.
답변1
내 문제가 무엇인지 알아냈고 비슷한 문제가 발생하는 사람이 있으면 여기에 게시하겠습니다.
내 Xen 구성에서는 MAC 주소를 입력하지 않았습니다. IE 나는 가지고 있었다:
vif = [ 'bridge=xenbr0', 'bridge=xenbr1' ]
내가 다음과 같은 것이 필요할 때 :
vif = [ 'bridge=xenbr0', 'mac=00:11:5e:5n:2c:1c,bridge=xenbr1' ]
MAC 주소에 대한 라우팅이 즉시 만료되지 않았으므로 각 IP에 대해 이 ARP 명령을 실행하면 라우팅이 수정되었습니다.
arping -U -I eth1 x.y.z.162
VM이 부팅될 때마다 새로운 MAC 주소가 있고 VM이 부팅될 때 라우팅 테이블 중 일부만 업데이트된 것으로 추측됩니다.
이제 MAC 주소가 변경되지 않으므로 모든 것이 좋습니다.
답변2
DomU에서 인터페이스 구성을 바꿔보세요. Dom0 구성에 따라 DomU의 개인 IP에는 eth0을, 공용 IP에는 eth1을 사용해야 합니다.