Reproduzindo um conjunto de comandos ip no netplan

6

Eu recentemente atualizei para o Ubuntu 18.04 de 16.04 e estou tentando descobrir como obter meus comandos ip route e ip rule que eu usei para colocar /etc/network/interfaces trabalhando sob o netplan.

Estes são os comandos que estou tentando reproduzir, que eu corri anteriormente em /etc/network/interfaces :

sudo ip rule add table 129 from 192.168.1.160
sudo ip route add table 129 to 204.8.230.0/24 dev enp0s3
sudo ip route add table 129 to 192.168.1.0/24 dev enp0s3
sudo ip route add table 129 default via 192.168.1.1

Este é o meu primeiro passo na configuração do netplan em /etc/netplan/01-netcfg.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
      routes:
        - from: 192.168.1.160
          to: 204.8.230.0/24
          via: 192.168.1.1
        - from: 192.168.1.160
          to: 192.168.1.0/24
          via: 192.168.1.1

No entanto, após a reinicialização, essas rotas não são exibidas na saída ip route . Como obtenho essas rotas para ficar?

Note que também tentei colocar esses comandos em um script em /usr/lib/networkd-dispatcher/routable.d com base em alguma documentação que encontrei, mas parece que não funcionou também.

EDITAR : estou chegando perto. Esta é a nova configuração, mas agora o problema é que, embora a tabela apareça em ip rule , ip route show table 129 está vazio:

# 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
      routing-policy:
        - from: 192.168.1.160
          table: 129
      routes:
        - to: 204.8.230.0/24
          via: 192.168.1.1
          table: 129
        - to: 192.168.1.0/24
          via: 192.168.1.1
          table: 129
        - to: 0.0.0.0/0
          via: 192.168.1.1
          table: 129

Estou na versão 0.36.1 do netplan

    
por basepi 10.05.2018 / 16:25

1 resposta

7

Eu percebi isso. O problema era que o systemd-networkd estava tentando definir as rotas antes que a rede estivesse funcionando, o que estava falhando. A correção é on-link: True nas rotas:

# 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
      routing-policy:
        - from: 192.168.1.160
          table: 129
      routes:
        - to: 204.8.230.0/24
          via: 192.168.1.1
          table: 129
          on-link: True
        - to: 192.168.1.0/24
          via: 192.168.1.1
          table: 129
          on-link: True
        - to: 0.0.0.0/0
          via: 192.168.1.1
          table: 129
          on-link: True
    
por basepi 10.05.2018 / 18:22