konfiguracja netplan na maszynie wirtualnej Ubuntu 17.04

13

Korzystam z VirtualBox z 2 kartami sieciowymi: standardowym NAT (enp0s3) i adapterem tylko hosta (enp0s8). Korzystam z NAT, aby uzyskać dostęp do Internetu i adaptera SSH tylko do hosta z mojego komputera lokalnego.

Urządzenie uruchamia się z włączonymi dwoma adapterami, oba mają adresy IP, wszystko wygląda dobrze.

ifconfig-output

Mogę SSH do tego pola przez adapter tylko do hosta, nie ma problemów. Ale nie mogę się z tym połączyć w Internecie. Jeśli jednak wyłączę adapter tylko do hosta, mogę uzyskać dostęp do Internetu (ale oczywiście nie mogę już SSH do niego przez tunel lokalny).

wyjście konsoli

I na koniec, oto moja konfiguracja netplan yaml:

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
ethernets:
  enp0s3:
    dhcp4: yes
    dhcp6: yes
  enp0s8:
      dhcp4: no
    dhcp6: no
    addresses: [192.168.52.101/24]
    gateway4: 192.168.52.101

Jakieś pomysły? Wygląda na to, że może cały mój ruch wychodzący jest w jakiś sposób kierowany przez adapter tylko do hosta.

Edycja: dołączanie danych wyjściowych ip route listna wypadek, gdyby pomogło.

default via 192.168.52.101 dev enp0s8 proto static
default via 10.0.2.2 dev enp0s3 proto dhcp src 10.0.2.15 metric 100
10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15
10.0.2.2 dev enp0s3 proto dhcp scope link src 10.0.2.15 metric 100
192.168.52.0/24 dev enp0s8 proto kernel scope link src 192.168.52.101
hellojason
źródło
Zapomnij, nie mogłem rozgryźć netplanu, więc sformatowałem i zainstalowałem Ubuntu 16.
hellojason

Odpowiedzi:

12

Znalazłem ten problem, robiąc dokładnie to samo tego popołudnia. Jakoś udało się to rozgryźć i netplan ostatecznie stworzył tylko 1 domyślną trasę przez interfejs NAT mojej maszyny wirtualnej. W moim przypadku oba adresy IP to 192.168.56.101 (tylko host) i 10.0.3.x / 24 (NAT dhcp4). Używam tego pliku Netplan:

    network:
      version: 2
      renderer: networkd
      ethernets:
        enp0s8:
          dhcp4: yes
          dhcp6: yes
          routes:
          - to: 0.0.0.0/0
            via: 10.0.3.2
            metric: 0
        enp0s3:
          dhcp4: no
          dhcp6: no
          addresses: [192.168.56.101/24]
          routes:
          - to: 192.168.56.1/24
            via: 192.168.56.1
            metric: 100

Dzięki temu mam tylko jedną domyślną trasę i używa NAT, dzięki czemu może uzyskać dostęp do Internetu przez mojego hosta.

Wyjście z ip r

default via 10.0.3.2 dev enp0s8 proto dhcp src 10.0.3.15 metric 100
10.0.3.0/24 dev enp0s8 proto kernel scope link src 10.0.3.15
10.0.3.2 dev enp0s8 proto dhcp scope link src 10.0.3.15 metric 100
192.168.56.0/24 dev enp0s3 proto kernel scope link src 192.168.56.10
alfonso.ss
źródło
2
Świetna odpowiedź! W takim przypadku naprawdę musisz skonfigurować własny routing. Jeśli oba urządzenia zawierają „bramę domyślną” (tzn. Określają „dhcp4” lub „dhcp6” lub ustawiają „gateway4”), wówczas system skonfiguruje oba urządzenia z bramą domyślną o tej samej wartości. Nie będziesz jednak potrzebował trasy w enp0s3, ponieważ „adresy” zawierają już tę samą podsieć / 24, co ta, która byłaby używana do uzyskania dostępu do 192.168.56.1. Możesz też ustawić własny routing wszędzie tam, gdzie to robisz.
Mathieu Trudel-Lapierre
12

Dla mnie usunięcie gateway4z konfiguracji załatwiło sprawę. Po skonfigurowaniu nie mogłem również pingować Internetu.

Oto moja konfiguracja netPlan, jeśli może pomóc innym.

Uwaga: enp0s3 jest dla ssh poprzez przekierowanie portów i enp0s8 dla statycznego adresu IP

network:
    ethernets:
        enp0s3:
            addresses: []
            dhcp4: true
            optional: true
        enp0s8:
            addresses: [192.168.10.20/24]
            dhcp4: no
            dhcp6: no
            nameservers:
              addresses: [8.8.8.8, 8.8.4.4]
    version: 2
Ahsan.Amin
źródło
3
Tak, usunięcie linii gateway4 było jedyną rzeczą, która działała dla mnie.
furman87
Usuń działającą dla mnie bramkę4
Albert Hidalgo
0

Dla przypomnienia, gdy walczyłem z tym i VMware Fusion ... Jeśli masz określoną wartość „gateway4”, zakłada się, że jest to domyślna wartość interfejsu i wydaje się, że nie przestrzega opcji „metryka” lub mając wiele plików .yaml z sekwencją numeracji (01-netplan.yaml, 02-netplan.yaml itp.) W moim przypadku 02 okazało się „pierwszym domyślnym”, ale to moja wewnętrzna sieć, więc publiczny internet był nieosiągalny.

Mike Roy
źródło
Cześć Mike - witamy na askubuntu. Byłoby to lepsze jako komentarz do pytania. Powinieneś przenieść tam tekst i po prostu go usunąć, ponieważ nie ma on na celu „odpowiedzi” na pytanie.
dpb