kali-linux 가상 머신의 인터넷이 제대로 작동하지 않습니다.

kali-linux 가상 머신의 인터넷이 제대로 작동하지 않습니다.

Kali-linux를 운영 체제로 사용하여 Oracle VM에 일부 가상 머신을 설정하고 있습니다. 처음으로 NAT 네트워크를 생성할 때 인터넷은 일반적으로 잘 작동하지만 MAC 주소 변경과 같은 작업을 수행하자마자 컴퓨터에서는 이라고 말하지만 인터넷 연결이 작동을 멈춥니 wired connectionconnected.

연결이 작동하려면 매번 새 NAT 네트워크를 만들어야 하지만 잠시 후 작동이 멈춘 후에는 Mac 주소를 변경하는 것과 관련이 있다고 생각합니다. 제가 한 일은 다음과 같습니다.

ifconfig eth0 down
ifconfig eth0 hw ether 'new mac address'
ifconfig eth0 up

이 과정에서 무엇이 잘못될 수 있는지 아는 사람이 있나요?

현재 결과는 다음과 같습니다 ifconfig.

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.2.4  netmask 255.255.255.0  broadcast 10.0.2.255
        inet6 fe80::a00:27ff:fe82:e693  prefixlen 64  scopeid 0x20<link>
        inet6 fd17:625c:f037:2:a00:27ff:fe82:e693  prefixlen 64  scopeid 0x0<global>
        inet6 fd17:625c:f037:2:8c24:fafd:c5e0:725c  prefixlen 64  scopeid 0x0<global>
        ether 08:00:27:82:e6:93  txqueuelen 1000  (Ethernet)
        RX packets 44  bytes 11250 (10.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 423  bytes 38119 (37.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 24  bytes 1356 (1.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 24  bytes 1356 (1.3 KiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

답변1

여기서 관찰하고 있는 것은 TCP/IP 스택 아래에서 깔개를 잡아당길 때 일어나는 일입니다. :D

실제로 여기에는 두 가지 현상이 있습니다.

1. 기본 게이트웨이 누락의 함정

이것은 매우 간단합니다.

달리기ifconfig eth0 down 기본 게이트웨이 삭제구성게이트웨이와 연결된 네트워크가 삭제되었기 때문에 가상 머신의 라우팅 테이블입니다.

달려 ifconfig eth0 up갈 것이다아니요기본 게이트웨이 복원;이전 IP 주소와 서브넷 마스크만 유지합니다. 을 실행하려고 하면 '플래그' 열 아래에 가 있는 행이 표시 route -n되지 않습니다 .G

이런 일이 발생하면 인터넷에 액세스하려고 시도하는 가상 머신의 모든 프로그램은 "호스트를 찾을 수 없습니다", 또는"네트워크에 연결할 수 없음" 실수.

route add default gw GATEWAYIP기본 게이트웨이를 복원하려면 수동으로 실행 해야 합니다 .

  • GATEWAYIP이를 실제 기본 게이트웨이 주소로 바꾸는 것을 잊지 마십시오 . 이 더러운 작업을 수행하기 전에 /etc/network/interfaces또는 실행 route -n명령을 확인하고(그리고 해당 행의 "게이트웨이" 열에 대한 "플래그" 열 아래를 살펴보십시오) 어쨌든 VirtualBox 아래에 G있을 것입니다 .10.0.2.2

그러나 기본 게이트웨이를 복원한 후에도 가상 머신이 여전히 인터넷에 연결할 수 없거나 더 정확하게는 인터넷이 이에 응답할 수 없다는 것을 알게 될 것입니다. 그 이유는...

2. 지연된 ARP 캐시의 영향

이더넷을 통한 TCP/IP 사용법을 알고 계십니까?ARPIP와 일치하는 MAC 주소를 찾는 것이 실제로 통신할 수 있는 유일한 방법이겠죠?

제가 알 수 있는 한, 이것은 VirtualBox 인스턴스 내부에서 일어나는 일에 대한 타임라인입니다.

  1. 가상 머신이 부팅되면 원래 MAC 주소를 사용하여 인터넷에서 항목을 요청합니다.
  2. VirtualBox의 NAT 엔진은 인터넷에서 가상 머신으로 데이터를 다시 전송 하기 위해 가상 머신의 MAC 주소1도 필요합니다 .
  3. VirtualBox의 NAT 엔진은 처음에는 가상 머신이 어떤 MAC 주소를 가지고 있는지 알지 못하므로 ARP 요청을 하고 머신은 이를 사용합니다.원래MAC 주소.
  4. VirtualBox의 NAT 엔진은 가상 머신의 MAC 주소(및 관련 IP 주소)를 ARP 캐시에 저장합니다.;이것은 정상적인 일입니다.
  5. 가상 머신의 MAC 주소를 변경했습니다.이제 막 화장을 하신 분들은IP 주소를 변경하지 않습니다..
  6. 가상 머신에서 다시 인터넷 요청을 하면 해당 요청에 새 MAC 주소가 사용됩니다. 1
  7. VirtualBox의 NAT 엔진이 귀하의 요청을 받았습니다(하지만 MAC이 아닌 IP만 고려하세요.) 정상적으로 인터넷에 전달됩니다.
  8. 인터넷이 응답하면 VirtualBox의 NAT 엔진은 이 응답을 가상 머신으로 다시 전달하기 위해 가상 머신의 MAC 주소가 필요합니다.
  9. VirtualBox의 NAT 엔진은 자체 ARP 캐시에서 가상 머신의 IP 주소를 조회합니다.그리고 발견MAC 주소가 만료된 기록이 없으므로 ARP 요청이 다시 발행되지 않습니다. (하지만,VirtualBox알 수 없음- 발견된 MAC 주소는 오래되고 사용되지 않는 주소입니다.).
  10. VirtualBox의 NAT 엔진은 가상 머신에 인터넷 응답을 보냅니다.오래된새 주소 대신 MAC 주소.
  11. 새 MAC 주소를 사용하는 가상 머신이 응답을 받지 못하여 시간 초과됩니다."kali-linux 가상 머신의 인터넷이 제대로 작동하지 않습니다.".

기본 게이트웨이 구성이 수정된 후에도 ARP 캐시 항목이 만료되거나 가상 머신의 IP 주소를 변경할 때까지 가상 머신의 인터넷 액세스가 계속 중단됩니다.

결론

VirtualBox의 NAT 엔진이 내부적으로 ARP 응답을 얼마나 오랫동안 캐시하는지 모르므로 제안합니다.해결책IP 주소 변경가상 머신의 MAC 주소를 변경한 후, 2차 효과를 방지하기 위해. 그리고 IP 주소를 변경하고 인터페이스를 불러온 후,당신을 확인또한 기본 게이트웨이를 다시 추가하십시오.첫 번째 함정을 방지하기 위해. ( route -n | grep UG확인용)


1VirtualBox 의 NAT 엔진은 각 요청 패킷 자체에서 가상 머신의 MAC 주소를 학습해야 한다고 생각할 수도 있습니다.이것은 일을 하는 방식이 아니다;무작위 IP/MAC 주소 스푸핑을 많이 허용하기 때문입니다. 따라서 명시적인 ARP 요청에 의해 요청된 MAC 주소만 라우팅에 사용/캐시되며 무작위 패킷에서 학습되지 않습니다.

관련 정보