2017-04-18 18 views
0

우분투 16.04에서 KVM을 사용하고 있습니다. VM 내부에서 인터넷으로 ping 할 수 없습니다 (VM 내부의 인터넷 연결 없음). 내 디버깅 단계까지 :가상 브리지가 패킷을 게이트웨이로 전달하지 않는 이유는 무엇입니까?

  1. 는 VM 내부 나는이 패킷을 의미 ifconfig

    virbr0 Link encap:Ethernet HWaddr fe:54:00:0f:d3:58 
          inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0 
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
          RX packets:46792 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:3325 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:2379378 (2.3 MB) TX bytes:166020 (166.0 KB) 
    

를 실행, 내 호스트 OS에서 traceroute 216.58.218.110

traceroute to 216.58.218.110 (216.58.218.110), 30 hops max, 46 byte packets 
1 192.168.122.1 (192.168.122.1) 0.141 ms 0.272 ms 0.180 ms 
2 192.168.122.1 (192.168.122.1) 0.387 ms 0.033 ms 0.200 ms 
  • 를 실행 컨테이너에서 virbr0으로 전달됩니다.

    1. 다음으로 virbr0이 연결된 인터페이스를 확인하기 위해 brctl show을 실행했습니다.

      bridge name bridge id  STP enabled interfaces 
      br0  8000.000000000000 no  
      br1  8000.000000000000 no  
      docker0  8000.024226c559f9 no  
      virbr0  8000.fe54000fd358 yes  vnet0 
      virbr1  8000.52540059b8dd yes  virbr1-nic 
                vnet1 
      
    2. 나는 패킷 십자가가 나의 이해는 게이트웨이의 IP에 도달해야한다는 것입니다 vnet0 경우가

      vnet0  Link encap:Ethernet HWaddr fe:54:00:0f:d3:58 
            inet6 addr: fe80::fc54:ff:fe0f:d358/64 Scope:Link 
            UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
            RX packets:205 errors:0 dropped:0 overruns:0 frame:0 
            TX packets:565 errors:0 dropped:0 overruns:0 carrier:0 
            collisions:0 txqueuelen:1000 
            RX bytes:14280 (14.2 KB) TX bytes:31810 (31.8 KB) 
      
    3. 를 존재하는지 ifconfig를 확인했습니다. 게이트웨이 IP가 무엇인지 확인하기 위해, 나는

      Kernel IP routing table 
      Destination  Gateway   Genmask   Flags Metric Ref Use Iface 
      0.0.0.0   10.40.1.254  0.0.0.0   UG 0  0  0 eno1 
      10.0.0.0  10.18.44.1  255.0.0.0  UG 0  0  0 br0 
      10.18.44.0  0.0.0.0   255.255.255.192 U  0  0  0 br0 
      10.40.0.0  0.0.0.0   255.255.254.0 U  0  0  0 eno1 
      161.26.0.0  10.18.44.1  255.255.0.0  UG 0  0  0 br0 
      169.254.169.254 10.40.1.254  255.255.255.255 UGH 0  0  0 eno1 
      172.17.0.0  0.0.0.0   255.255.0.0  U  0  0  0 docker0 
      192.168.42.0 0.0.0.0   255.255.255.0 U  0  0  0 virbr1 
      192.168.122.0 0.0.0.0   255.255.255.0 U  0  0  0 virbr0 
      208.43.222.48 0.0.0.0   255.255.255.248 U  0  0  0 br1 
      
    4. route -n 마지막으로 내가 호스트 OS에서 traceroute 216.58.218.110를 실행 달렸다.

      traceroute to 216.58.218.110 (216.58.218.110), 30 hops max, 60 byte packets 
      1 10.40.1.254 (10.40.1.254) 0.094 ms 0.064 ms 0.046 ms 
      2 srx3600-vl208-gw.net.tacc.utexas.edu (129.114.108.254) 0.529 ms 0.499 ms 0.495 ms 
      3 ex9214-vl654-gw.net.tacc.utexas.edu (129.114.0.185) 0.882 ms 0.847 ms 0.849 ms 
      4 mx480-vl667-gw.net.tacc.utexas.edu (129.114.0.165) 0.860 ms 0.860 ms 0.848 ms 
      5 hstn-txbb-core-et-1-1-0-703.tx-bb.net (192.124.228.97) 5.742 ms 5.716 ms 5.854 ms 
      6 74.200.189.29 (74.200.189.29) 10.619 ms 10.724 ms 10.918 ms 
      7 74.200.189.251 (74.200.189.251) 26.455 ms 10.817 ms 10.800 ms 
      8 72.14.215.83 (72.14.215.83) 10.828 ms 10.744 ms 10.808 ms 
      9 108.170.240.129 (108.170.240.129) 10.990 ms 
      

    이 인터넷에 액세스를 방지 방화벽/프록시가 없음을 의미합니다 : 그것은 다음과 같은 출력을 제공합니다. 아무도 여기 좀 도와 줄래? 왜 패킷이 virbr0에 도달 한 후 게이트웨이에 도달하지 못하는지 알 수 없습니다.

    감사합니다.

  • +0

    아무도 질문에 투표가 왜 실패했는지 설명해 주실 수 있습니까? 나는 그 문제에 대해 최대한 구체적으로하려고 노력했다. –

    답변

    0

    디버깅을 많이 후 나는이 문제를 확인하고 해결 할 수 있었다 :

    인터넷에 연결할 수 없습니다
    1. VM : 나는 사물의 무리를 시도했다 내가하는 일을 잘 모르겠어요 일했다. 나는 this link에 주어진 모든 단계를 따랐다.
    2. DNS가 VM에서 작동하지 않습니다. 위의 변경으로 인해 DNS가 작동하지 않았습니다. 도메인 이름 확인을 위해 VM이 /etc/resolv.conf에서 네임 서버를 사용하지 않았 음을 알았습니다. 대신 /etc/network/interfaces에서 br0에 대한 dns-nameservers 필드를 편집해야했습니다. 특히 dns-nameservers 이후의 IP를 /etc/network/interfaces으로 바꾸고 호스트 OS의 /etc/resolv.conf에있는 이름 서버로 바꿉니다.

    이러한 변경으로 문제가 해결되었습니다. 희망이 사람이 비슷한 문제에 직면하는 데 도움이되기를 바랍니다.