방금 Fedora 호스트의 VirtualBox에 Debian 게스트를 설정했습니다. 나는 NAT(게스트의 인터넷, 잘 작동함)와 호스트 전용( ssh
호스트에서 게스트로 nfs
등)의 두 가지 어댑터를 사용합니다. 호스트에서 게스트로 이동할 수 있지만 ssh
그 반대는 불가능합니다. 실제로 ping
및 traceroute
둘 다를 제외한 다른 모든 네트워크 관련 도구는 "호스트에 대한 경로 없음"이라는 결과를 제공합니다.
몇가지 정보:
호스트 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 ACCEPT
REJECT
, 체인이 완전히 둘러싸이기 직전입니다 INPUT
. vboxnet0
VirtualBox에서 생성된 호스트 전용 네트워크 인터페이스입니다.