데비안 호스트에 kvm win7 게스트 가상 머신을 설정했습니다. 한동안 운영되어 왔지만 별로 많은 일을 하지 않았습니다. 내가 한 일은 (물론) 다운로드였습니다 putty
.
오늘은 퍼티가 호스트에 액세스할 수 있도록 하려고 하므로 방화벽 규칙을 업데이트해야 합니다. 그 이후로 손님을 위한 인터넷 연결이 없었습니다. 변경 사항을 되돌려도 도움이 되지 않습니다. 그럼 왜 손님에게서 더 이상 인터넷에 접속할 수 없는지 궁금합니다. 솔직히 왜 그런지 이해가 안 돼요.
귀하가 가장 관심을 가질 만한 다음 정보를 첨부했습니다.
현재 iptable 규칙:http://pastebin.com/pTnfs5sr
kvm 게스트 xml:http://pastebin.com/U0GhW0px
게스트의 qemu cmd를 실행합니다:http://pastebin.com/htZ4R0FE
구성된 경우:http://pastebin.com/uGVN29VZ
Ifconfig에 2개의 가상 인터페이스가 표시됩니다. virbr0
이것이 제가 예상한 것이지만 vnet0
설정 방법과 이유를 모르겠습니다. virbr0
실행하고 다시 시작할 때마다 손상되어 다시 나타납니다 virst net-destroy default
.
도움을 주셔서 미리 감사드립니다.
편집: 커널 라우팅 테이블도 추가합니다.
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 <external IP of Host> 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
195.251.61.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
답변1
따라서 게스트와 인터넷 연결을 설정하려면 다음을 추가해야 합니다.
nat
테이블-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535 -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p udp -j MASQUERADE --to-ports 1024-65535 -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -j MASQUERADE -A POSTROUTING -s 192.168.122.0/24 -o eth0 -j SNAT --to-source <the host's ip>
그래서 호스트를 떠나는 모든 나가는 패킷을 게스트 서브넷의 IP로 위장했습니다.
filter
테이블-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT -A FORWARD -s 192.168.122.0/24 -i virbr0 -j ACCEPT
또한 virbr0
인터넷의 패킷도 허용합니다. 그런 다음 응답은 virbr0
(설정됨, 관련됨) 로 다시 전달될 수 있습니다 .
filter
다시 표:-A INPUT -s 192.168.122.0/24 -i virbr0 -j ACCEPT
마지막으로 게스트가 호스트에서 실행되는 서비스에 액세스할 수 있도록 허용합니다.
답변2
기본 경로 IP 주소를 확인할 수 있나요?
> route PRINT -4
IPv4 Route Table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 172.16.57.2 172.16.57.210 10
0.0.0.0 네트워크에 대한 유효한 게이트웨이 주소가 있어야 합니다(즉, 성공적인 ping 응답이 있어야 함).