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.
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!
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.
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.
Eu sei que é um pouco tarde, mas eu também gostaria de esclarecer o que é "rota" feita. Você disse:
O comandoI want all my traffic except the 192.168.0.0/16 to be marked as coming from my 178.xxx.xxx.xxx address
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)
Tags ip linux-networking route