Configuração do netplan na máquina virtual Ubuntu 17.04

12

Estou executando o VirtualBox com 2 adaptadores de rede: NAT padrão (enp0s3) e um adaptador somente para host (enp0s8). Eu uso o NAT para acessar a Internet e o adaptador somente host para SSH da minha máquina local.

A caixa é inicializada com os dois adaptadores ativados, ambos têm endereços IP, tudo com bom aspecto.

ifconfig-output

Posso fazer o SSH nessa caixa pelo adaptador somente host, sem problemas. Mas não consigo acessar a internet. No entanto, se eu desativar o adaptador somente para host, poderei acessar a Internet (mas, obviamente, não posso mais fazer o SSH nele pelo túnel local).

saída do console

E finalmente, aqui está minha configuração 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

Alguma ideia? Parece que, talvez, todo o meu tráfego de saída esteja sendo roteado através do adaptador somente para host.

Editar: anexando a saída de ip route listcaso isso ajude.

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
fonte
Esqueça, eu não conseguia descobrir o netplan, então formatei e instalei o Ubuntu 16.
hellojason

Respostas:

12

Encontrei esse problema fazendo exatamente a mesma coisa esta tarde. De alguma forma, consegui descobrir e o netplan finalmente criou apenas uma rota padrão através da interface NAT da minha VM. No meu caso, os dois IPs eram 192.168.56.101 (somente host) e 10.0.3.x / 24 (NAT dhcp4). Estou usando este arquivo 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

Com isso, tenho apenas uma rota padrão e ela está usando o NAT para poder acessar a Internet através do meu host.

Saída de 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
fonte
2
Ótima resposta! Você realmente precisa configurar seu próprio roteamento neste caso. Se os dois dispositivos incluírem um "gateway padrão" (ou seja, eles especificarem "dhcp4" ou "dhcp6" ou definir "gateway4"), o sistema configurará os dois dispositivos com um gateway padrão com a mesma métrica. Você não precisará da rota no enp0s3, pois os "endereços" já contêm a mesma sub-rede / 24 que a que seria usada para acessar 192.168.56.1. Como alternativa, defina seu próprio roteamento em todos os lugares como você está fazendo.
Mathieu Trudel-Lapierre
11

Para mim, remover a gateway4configuração fez o truque. Com ele configurado, eu também não era capaz de executar ping na internet.

Aqui está minha configuração do netPlan, se ela puder ajudar outras pessoas.

Nota: enp0s3 é para ssh via encaminhamento de porta e enp0s8 para IP estático

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
fonte
2
Sim, remover a linha gateway4 é a única coisa que funcionou para mim.
precisa saber é o seguinte
0

Como uma observação, enquanto eu estava lutando com isso e o VMware Fusion ... Se você tiver algum valor 'gateway4' especificado, ele assumirá isso como padrão para a interface e parece não respeitar a opção 'métrica' ou ter vários arquivos .yaml com uma sequência numérica (01-netplan.yaml, 02-netplan.yaml, etc ...) no meu caso 02 acabou sendo o 'primeiro padrão', mas essa é a minha rede interna, portanto a internet pública era inacessível.

Mike Roy
fonte
Oi Mike - bem-vindo ao askubuntu. Isso seria melhor como um comentário sob a pergunta. Você deve mover o texto para lá e excluí-lo, pois não se destina a "responder" à pergunta.
dpb