가상화 설정 · 2 min read · Feb 10, 2026
Debian Sarge를 위한 완벽한 Xen 3.0.3 설정 - 페이지 5
4.5 가상 머신에서 가상 로컬 네트워크 만들기 (선택 사항)
(이 장은 선택 사항입니다. 여기에서 설명하는 내용은 소스에서 Xen을 설치한 경우에만 작동합니다.)
이 장에서는 가상 머신으로 가상 네트워크를 만들고자 합니다. 즉, dom0의 네트워크와 다른 네트워크입니다.
제가 하고자 하는 작업의 그림은 여기에서 확인할 수 있습니다: http://wiki.xensource.com/xenwiki/XenNetworkingUsecase#head-7f23d0f2248cb0c70458f9339b4405e2b1bfc271
저는 Xen 2.0.7로 여기에서 같은 작업을 수행했습니다: https://www.howtoforge.com/perfect_xen_setup_debian_ubuntu_p6. 그러나 Xen 3로 이를 달성하는 방법은 완전히 변경되었습니다. Xen 3는 모든 방화벽 규칙, 게이트웨이 등을 자동으로 구성합니다. 또한, 가상 네트워크를 위해 더 이상 더미 네트워크 인터페이스가 필요하지 않습니다. Xen 3가 10.x.x.x 네트워크에서 게이트웨이를 가상 머신에 할당하므로, 가상 머신에도 10.x.x.x 네트워크에서 IP 주소를 할당하는 것이 좋습니다. 만약 192.168.3.x 네트워크에서 IP 주소를 할당하면 (https://www.howtoforge.com/perfect_xen_setup_debian_ubuntu_p6에서 Xen 2.0.7로 했던 것처럼), 가상 머신은 인터넷에 접근할 수 없습니다.
따라서 vm01에는 IP 주소 10.0.0.1을, vm02에는 IP 주소 10.0.0.2를 할당합니다.
먼저 /etc/xen/xend-config.sxp를 편집하여 브리징을 비활성화하고 NAT(네트워크 주소 변환)를 활성화합니다:
vi /etc/xen/xend-config.sxp| [...] #(network-script network-bridge) #(vif-script vif-bridge) (network-script network-nat) (vif-script vif-nat) [...] |
그런 다음 vm01 및 vm02의 구성 파일을 변경합니다:
/etc/xen/vm01-config.sxp:
vi /etc/xen/vm01-config.sxp| name="vm01" kernel="/boot/vmlinuz-2.6-xenU" root="/dev/hda1" memory=32 disk=['file:/vserver/images/vm01.img,hda1,w','file:/vserver/images/vm01-swap.img,hda2,w'] vif=[ 'ip=10.0.0.1' ] dhcp="off" hostname="vm01.example.com" ip="10.0.0.1" netmask="255.0.0.0" gateway="10.0.0.254" extra="3" |
/etc/xen/vm02-config.sxp:
vi /etc/xen/vm02-config.sxp| name="vm02" kernel="/boot/vmlinuz-2.6-xenU" root="/dev/hda1" memory=32 disk=['file:/vserver/images/vm02.img,hda1,w','file:/vserver/images/vm02-swap.img,hda2,w'] vif=[ 'ip=10.0.0.2' ] dhcp="off" ip="10.0.0.2" netmask="255.0.0.0" gateway="10.0.0.254" hostname="vm02.example.com" extra="3" |
그 후 vm01과 vm02를 종료합니다:
xm shutdown vm01
xm shutdown vm02몇 초 기다린 후 xm list로 vm01과 vm02가 종료되었는지 확인합니다. 그런 다음 시스템을 재부팅합니다:
shutdown -r nowvm01과 vm02가 부팅 시 자동으로 시작되지 않으면 지금 시작합니다:
xm create /etc/xen/vm01-config.sxp
xm create /etc/xen/vm02-config.sxp이제 vm01에서 vm02로 핑을 보낼 수 있고 그 반대도 가능하며, dom0와 인터넷의 호스트에도 핑을 보낼 수 있어야 합니다!
이제 vm01의 포트 80에 웹 서버가 있고 vm02의 포트 25에 메일 서버가 있다고 가정해 보겠습니다. 이들은 자체 네트워크(10.x.x.x)에 있기 때문에, 해당 포트를 적절한 vm으로 포워딩하지 않으면 외부에서 접근할 수 없습니다. iptables의 도움으로 dom0에서 필요한 포트 포워딩 규칙을 만들 수 있습니다:
iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 80 -j DNAT --to 10.0.0.1:80
iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 25 -j DNAT --to 10.0.0.2:25이제 dom0의 포트 80에 연결하면 vm01로 포워딩됩니다. 포트 25와 vm02도 마찬가지입니다.
물론, 포워딩 규칙은 dom0를 재부팅하면 사라집니다. 따라서 시스템이 부팅될 때 자동으로 실행되는 /etc/network/if-up.d/iptables에 규칙을 넣습니다:
vi /etc/network/if-up.d/iptables| #!/bin/sh ### 포트 포워딩 ### iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 80 -j DNAT --to 10.0.0.1:80 iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 25 -j DNAT --to 10.0.0.2:25 |
이제 이 스크립트를 실행 가능하게 만들어야 합니다:
chmod 755 /etc/network/if-up.d/iptables추가적인 포트 포워딩 규칙이 필요할 때마다 dom0의 셸에서 실행한 후 /etc/network/if-up.d/iptables에 추가하여 재부팅 후에도 사용할 수 있도록 합니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.