NAT 및 호스트 전용 어댑터가 있는 가상 머신 Debian 게스트: 게스트에서 호스트에 액세스하려고 하면 "호스트에 대한 경로 없음" 발생

NAT 및 호스트 전용 어댑터가 있는 가상 머신 Debian 게스트: 게스트에서 호스트에 액세스하려고 하면 "호스트에 대한 경로 없음" 발생

방금 Fedora 호스트의 VirtualBox에 Debian 게스트를 설정했습니다. 나는 NAT(게스트의 인터넷, 잘 작동함)와 호스트 전용( ssh호스트에서 게스트로 nfs등)의 두 가지 어댑터를 사용합니다. 호스트에서 게스트로 이동할 수 있지만 ssh그 반대는 불가능합니다. 실제로 pingtraceroute둘 다를 제외한 다른 모든 네트워크 관련 도구는 "호스트에 대한 경로 없음"이라는 결과를 제공합니다.

몇가지 정보:

호스트 IP는 192.168.29.1입니다.

axirma@dev:~$ ip addr  

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN  
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00  
inet 127.0.0.1/8 scope host lo  
inet6 ::1/128 scope host  
valid_lft forever preferred_lft forever  
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000  
link/ether 08:00:27:25:1f:71 brd ff:ff:ff:ff:ff:ff  
inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0  
inet6 fe80::a00:27ff:fe25:1f71/64 scope link  
valid_lft forever preferred_lft forever  
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000  
link/ether 08:00:27:6d:16:e6 brd ff:ff:ff:ff:ff:ff  
inet 192.168.29.2/24 brd 192.168.29.255 scope global eth1  
inet6 fe80::a00:27ff:fe6d:16e6/64 scope link  
valid_lft forever preferred_lft forever  
axirma@dev:~$ ip route  
default via 10.0.2.2 dev eth0  
10.0.2.0/24 dev eth0  proto kernel  scope link  src 10.0.2.15  
192.168.29.0/24 dev eth1  proto kernel  scope link  src 192.168.29.2  

axirma@dev:~$ ip route get 192.168.29.1  
192.168.29.1 dev eth1  src 192.168.29.2  
    cache  ipid 0x1910 rtt 7ms rttvar 7ms cwnd 10  

axirma@dev:~$ arp  
Address                  HWtype  HWaddress           Flags Mask            Iface  
10.0.2.2                 ether   52:54:00:12:35:02   C                     eth0  
host                     ether   0a:00:27:00:00:00   C                     eth1  

axirma@dev:~$ ping -c 4 192.168.29.1  
PING 192.168.29.1 (192.168.29.1) 56(84) bytes of data.  
64 bytes from 192.168.29.1: icmp_req=1 ttl=64 time=0.247 ms  
64 bytes from 192.168.29.1: icmp_req=2 ttl=64 time=0.403 ms  
64 bytes from 192.168.29.1: icmp_req=3 ttl=64 time=0.446 ms  
64 bytes from 192.168.29.1: icmp_req=4 ttl=64 time=0.636 ms  

--- 192.168.29.1 ping statistics ---  
4 packets transmitted, 4 received, 0% packet loss, time 3003ms  
rtt min/avg/max/mdev = 0.247/0.433/0.636/0.138 ms  

axirma@dev:~$ traceroute 192.169.29.1  
traceroute to 192.168.29.1 (192.168.29.1), 30 hops max, 60 byte packets  
 1  host (192.168.29.1)  0.152 ms !X  0.141 ms !X  0.143 ms !X  

axirma@dev:~$ nc -vz 192.168.29.1 22  
host [192.168.29.1] 22 (ssh) : No route to host  

axirma@dev:~$ ssh [email protected]  
ssh: connect to host 192.168.29.1 port 22: No route to host  

더 많은 정보를 제공할 수 있으면 알려주시기 바랍니다.

답변1

질문그 이유는 VirtualBox의 호스트 네트워크 인터페이스에서만 들어오는 패킷을 거부하는 규칙 세트를 사용하여 Fedora 호스트에 기본 방화벽이 구성되어 있기 때문입니다. 아래 규칙을 보면 icmp패킷이 허용되는 것을 알 수 있습니다. 그것이 작동하는 이유입니다 ping.

[alexandru@the-host ~]$ sudo iptables -vL -t filter
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 435K  493M ACCEPT     all  --  any    any     anywhere             anywhere             state RELATED,ESTABLISHED
   15  1559 ACCEPT     icmp --  any    any     anywhere             anywhere            
   20  1054 ACCEPT     all  --  lo     any     anywhere             anywhere            
   51 11040 ACCEPT     udp  --  any    any     anywhere             224.0.0.251          state NEW udp dpt:mdns
25148 1821K REJECT     all  --  any    any     anywhere             anywhere             reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 REJECT     all  --  any    any     anywhere             anywhere             reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 332K packets, 39M bytes)
 pkts bytes target     prot opt in     out     source               destination

!X출력에 방화벽이 나타나는 것을 보고 방화벽의 가능성에 대해 생각했는데 tracerout매뉴얼 페이지에 "관리적으로 통신이 허용되지 않음"이라고 나와 있었습니다. 위의 방화벽 규칙을 살펴보면 traceroute udp패킷이 체인 REJECT의 마지막 포괄적 규칙에 도달하는 것을 볼 수 있습니다 INPUT.

나중에 디버깅할 때 nmap:

axirma@the-guest:~$ nmap -Pn -T4 192.168.57.1

Starting Nmap 6.00 ( http://nmap.org ) at 2013-11-12 16:28 EET
Nmap scan report for 192.168.57.1
Host is up (0.95s latency).
All 1000 scanned ports on 192.168.57.1 are filtered

Nmap done: 1 IP address (1 host up) scanned in 35.69 seconds

스캔된 모든 포트가 필터링될 것이라고 맨페이지에 나와 있습니다. "...방화벽, 필터 또는 기타 네트워크 장애물이 포트를 차단하고 있음을 의미합니다."

출력을 이해한 후에는 iptables필요한 통신을 허용하기 위해 추가 방화벽 규칙을 추가해야 한다는 것이 분명해졌습니다.내 개인적인 솔루션다음 추가 사항은 다음과 같습니다 /etc/sysconfig/iptables.

-A INPUT -i vboxnet0 -j ACCEPTREJECT, 체인이 완전히 둘러싸이기 직전입니다 INPUT. vboxnet0VirtualBox에서 생성된 호스트 전용 네트워크 인터페이스입니다.

관련 정보