Por que ip route add não funciona, mas ip route adiciona com menos detalhes e depois muda de trabalho?

7

Eu tenho um problema com o ip route add. Surpreendentemente, posso adicionar a rota e alterá-la, mas não posso adicioná-la diretamente:

# ip route add 192.168.0.0/16 via 192.168.255.254 src 192.168.1.101
RTNETLINK answers: No such process

mas:

# ip route add 192.168.0.0/16 dev eth0
# ip route change 192.168.0.0/16 via 192.168.255.254 src 192.168.1.101

Meu arquivo de interfaces é:

iface lo inet loopback
auto eth0
iface eth0 inet static
    address 178.xxx.xxx.xxx
    netmask 255.255.255.192
    network 178.xxx.xxx.xxx
    broadcast 178.xxx.xxx.xxx
    gateway 178.xxx.xxx.xxx
auto eth0:1
iface eth0:1 inet static
    address 192.168.1.101
    netmask 255.255.0.0

Estou um pouco perdido, devo dizer. Eu estou bem com a adição, em seguida, mudando, mas não é gratificante não entender por que ele funciona em duas etapas e não diretamente. Eu tenho lido man pages após man pages sem entender.

Atualizado com a ajuda das respostas:

Agora tenho um gateway em eth0 e eth0:0 , mas como desejo que todo o meu tráfego, exceto o 192.168.0.0/16 , seja marcado como proveniente do meu endereço 178.xxx.xxx.xxx , adicionei uma regra de roteamento. Talvez ter eth0 com 192.168.1.101 ip e, em seguida, 178.xxx.xxx.xxx ip em eth0:0 funcionasse sem regra de roteamento, mas aqui está:

auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
    address 178.xxx.xxx.131
    netmask 255.255.255.192
    network 178.xxx.xxx.128
    broadcast 178.xxx.xxx.191
    gateway 178.xxx.xxx.190
    up /sbin/ip route add default via 178.xxx.xxx.190 dev eth0 table 125
    up /sbin/ip rule add from 178.xxx.xxx.128/26 table 125
    post-down /sbin/ip route del default via 178.xxx.xxx.190 dev eth0 table 125
    post-down /sbin/ip rule del from 178.xxx.xxx.128/26 table 125

auto eth0:0
iface eth0:0 inet static
    address 192.168.1.101
    netmask 255.255.0.0
    gateway 192.168.255.254

Também desativei rp_filter :

echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter

Obrigado pela sua ajuda!

    
por Loïc d'Anterroches 27.03.2011 / 20:31

4 respostas

2

De acordo com o seu arquivo de interfaces você já está na rede 192.168.0.0/16, então você não deve precisar de um gateway para esta rede.

    
por 28.03.2011 / 14:15
1

Se eu ajustar meus resultados para sua configuração de IP (estou em um 192.168.x.0 / 24):

$ sudo ip route add 192.168.0.0/16 via 192.168.255.254 src 192.168.1.101

Eu obtenho

RTNETLINK answers: No such process

Mas

$ sudo ip route add 192.168.0.0/16 via 192.168.1.254 src 192.168.1.101

funciona. Eu suspeito que é porque 192.168.255.254 não está em sua sub-rede local ou uma rota conhecida, então você precisa de uma rota para isso primeiro.

    
por 28.03.2011 / 05:38
0

Como outros afirmaram que seu IP em eth0: 1 de 192.168.1.101/16 significará que você já tem uma rota estática para essa sub-rede. Parece que você precisa adicionar um gateway para essa interface apontando para 192.168.255.254.

    
por 28.03.2011 / 14:39
0

Eu sei que é um pouco tarde, mas eu também gostaria de esclarecer o que é "rota" feita. Você disse:

I want all my traffic except the 192.168.0.0/16 to be marked as coming from my 178.xxx.xxx.xxx address

O comando

route permite determinar uma rota com base em um destino, não em uma fonte. Você precisa configurar seus serviços para usar um IP de acordo com o gateway que deseja usar. Como Mathias Weidner disse, você não precisa de um gateway, pois está diretamente conectado (mesma sub-rede = sem roteamento)

    
por 03.03.2017 / 09:41