iproute2 e NetworkManager no Ubuntu15.04

3

Existe uma maneira de "configurar corretamente" uma rota padrão usando o pacote iproute2 de ferramentas em um sistema Ubuntu?

Meu desktop / servidor está conectado via ethernet a um switch ; quando o sistema inicializa e a rede é ativada, o sistema "fica confuso", pois há outros sistemas junto com o gateway que está conectado ao mesmo switch. O resultado é que o sistema Ubuntu 15.04 não consegue se conectar à rede externa.

# ip route show
192.168.1.0/24 dev eth1 proto kernel scope link metric 100
...

Uma vez que eu emito

# ip route add default via 192.168.1.1 dev eth1

Eu vejo algo sobre whoopsie nas mensagens do diário e tenho conectividade de rede!

# ip r
default via 192.168.1.1 dev eth1 proto static metric 100
192.168.1.0/24 dev eth1 proto kernel scope link metric 100
...

Agora, como faço isso persistente neste sistema sem, por falta de um termo melhor, codificá-lo nos subdiretórios /etc/network/ ? Usando o NetworkManager e sua ferramenta nmcli, não parece haver uma maneira de atribuir a conexão a um Gateway, a menos que eu desative totalmente o DHCP! Esta é uma falha no NetworkManager ou Ubuntu ou iproute2?

Eu vejo o diretório /etc/iproute2 ; no entanto, parece não haver nenhuma indicação nas man-pages sobre como tornar as alterações de configuração persistentes. Pesquisando na rede do StackExchange de sites Q & amp; A relevantes Eu encontrei diferentes sugestões que realmente não descrevem uma maneira canônica de conseguir isso. Talvez o DHCP precise ser desativado para isso no NetworkManager, não tenho certeza.

systemd

Por enquanto, estou adicionando a linha a /etc/rc.local . No entanto, isso falha durante a inicialização, uma vez que estou assumindo que ele seja executado antes que a rede esteja pronta.

# systemctl status -l rc-local.service
...
...rc.local[1396]: RTNETLINK answers: Network is unreachable
...

Reiniciar o serviço após o sistema está ativo resolve a falha. Seguindo em frente com systemd , AFAIK, a ideia é parar de usar / suportar esse script. Talvez os serviços em nível de usuário devam ser usados agora?

    
por ILMostro_7 29.10.2015 / 15:38

1 resposta

2

você pode fazer isso adicionando a linha abaixo em /etc/network/interfaces

post-up route add default gw 192.168.1.1 

ou

post-up route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 dev eth0

adicione isso no lado abaixo da definição da interface como

auto eth0
iface eth0 inet static
        address 192.168.1.50
        netmask 255.255.255.0
        post-up route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1

ou

usando iproute2 você pode seguir as etapas abaixo: abra o arquivo /etc/iproute2/rt_tables e adicione 1 rt2 no final será semelhante:

# reserved values
#
255 local
254 main
253 default
0   unspec
# local
#1  inr.ruhep
 1      rt2

e abra o arquivo /etc/network/interfaces e adicione

auto eth0
iface eth0 inet static
address 192.168.1.50
netmask 255.255.255.0
post-up ip route add 192.168.1.0/24 dev eth0 src 192.168.1.50 table rt2
post-up ip route add default via 192.168.1.1 dev eth0 table rt2
post-up ip rule add from 192.168.1.1 table rt2
post-up ip rule add to 192.168.1.1 table rt2

se você estiver usando várias interfaces, poderá definir o roteamento estático para toda a interface. espero que ajude.

    
por pl_rock 29.10.2015 / 15:53