Como definir rota padrão com netplan, servidor Ubuntu 18.04, 2 NIC

3

Eu tenho dois NIC, ambos são controlados pelo DHCP. Um tem IP público, segundo privado.

Ambas as interfaces têm IP estático reservado no DHCP e ambas as interfaces obtêm o IP correto, mas ocasionalmente quando o servidor de reinicialização não consigo acessar de público, porque a rota padrão é da NIC privada.

Como posso definir isso permanentemente com o netplan?

NIC pública ens18 (IP: 213.133.xxx.xxx) Private NIC ens19 (IP: 10.10.10.xxx)

Minha configuração do netplan é:

network:
  version: 2
  renderer: networkd
  ethernets:
    ens18:
      dhcp4: yes
      dhcp6: no
      nameservers:
        addresses: [8.8.8.8,8.8.4.4]
  ethernets:
    ens19:
      dhcp4: yes
      dhcp6: no
    
por Petar 01.06.2018 / 12:36

2 respostas

4

A questão é que o networkd trará as duas redes, e ambos terão um conjunto de gateway padrão, e ambos estarão na mesma métrica.

O Netplan atualmente não permite que você pule a rota em uma interface, mas você pode configurar o networkd separadamente para fazer isso, baseando a configuração no que o netplan já gerou.

Eu copiei os comandos abaixo. Aqui estou assumindo que ens19 é a interface "secundária" para a qual você não deseja um conjunto de gateway padrão - note que para fazer isso com sucesso, ele também precisa acontecer antes de reinicializar com a nova interface (ou você pode copiar parte do config, omitir o MACAddress = linha, etc, para que seja genérico o suficiente para que uma nova interface seja correspondida).

sudo cp /run/systemd/network/10-netplan-ens19.network /etc/systemd/network
sudo vi /etc/systemd/network/10-netplan-ens19.network

Em seguida, adicione em [DHCP]:

UseRoutes=false            # if you don't want to apply any routes from DHCP

RouteMetric=200        # any number above 100 if you want the routes applied, but that they are less preferred.

Se você ainda não tiver o arquivo (ou seja, você ainda não conectou a interface), poderá copiar o conteúdo de outra interface definida para DHCP e remover MACAddress =.

Em geral, o arquivo deve se parecer com isso:

[Match]
Name=interfacename

[Network]
DHCP=ipv4

[DHCP]
UseMTU=true
RouteMetric=200    # or UseRoutes=false, as you prefer.
    
por Mathieu Trudel-Lapierre 04.06.2018 / 18:07
-7

Eu instalo o servidor Ubuntu Server 18.04.1 LTS

$ uname -a
Linux srv02 4.15.0-34-generic #37-Ubuntu SMP Mon Aug 27 15:21:48 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

.

# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    ethernets:
        eth0:
            addresses: []
            dhcp4: true
            dhcp6: false
            nameservers:
                addresses:
                - 10.99.0.1
                search: []
    version: 2

Precisa de alterar o IP

$ sudo nano /etc/netplan/50-cloud-init.yaml

network:
    ethernets:
        eth0:
            addresses: [10.99.0.6/23]
            gateway4: 10.99.0.5
            dhcp4: false
            dhcp6: false
            nameservers:
                addresses:
                - 10.99.0.5
                search: []
    version: 2

  $ sudo netplan apply
  Invalid YAML at //etc/netplan/50-cloud-init.yaml line 9 column 0: found character that cannot start any token 9 column - addresses: [10.99.0.6/23]
    
por Talgat Akhmetov 21.09.2018 / 00:25