Como alterar temporariamente o gateway de um IP secundário?

3

Eu tenho a seguinte situação:

route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.42.129  0.0.0.0         UG    0      0        0 usb0
192.168.0.0     0.0.0.0         255.255.255.0   U     9      0        0 wlan1
192.168.42.0    0.0.0.0         255.255.255.0   U     1      0        0 usb0

E eu gostaria de usar um one-liner para configurar o gateway de 192.168.0.0/24 para ser 192.168.0.1 (o ip secundário atual é 192.168.0.4 ).
Posso usar algo como

sudo ip route add from 192.168.0.4 via 192.168.0.1 dev wlan1
RTNETLINK answers: File exists

?
Novamente, eu preciso de algo temporário que force todos os pacotes enviados de 192.168.0.4 para passar do gateway 192.168.0.1 (não queira configurar um conjunto de scripts / whatnot para fazer isso). Existe um forro que eu possa usar?

Felicidades!

    
por Emanuele 28.12.2015 / 14:53

1 resposta

2

A maneira de forçar todo o tráfego através de wlan1 em vez de forçar usb0 é forçar um novo gateway: como sudo,

ip route del default
ip route add default via 192.168.0.1 dev wlan1

(suponho que seu gateway tenha o endereço IP 192.168.0.1 , se não for alterado de acordo). Você pode restaurar a situação anterior por meio de

ip route del default 
ip route add default via 192.168.42.129 dev usb0

Se você não souber / lembrar o endereço IP do gateway, use em seu lugar

ip route del default
dhclient -v usb0

( -v opção é para verbose, ela não existe em todas as distribuições, você pode ter que descartá-la).

Você também pode decidir que gostaria de ter dois gateways, um por interface; com o kernel do Linux (e somente com o kernel Linux) isso pode ser feito, você encontra na resposta de David'Schwartz uma excelente e breve explicação de como fazê-lo. Depois disso, você terá que decidir por qual interface a saída de cada aplicativo passa (você pode decidir em uma base por aplicativo). Isso significa que um determinado aplicativo, digamos ssh pode ligar a qualquer interface, ou, em outras palavras, que o endereço IP a partir do qual ssh é inicializado pode ser usb0 ou de wlan1 ; o rule discutido por David Schwartz cuida automaticamente do roteamento corretamente ssh .

Observe que, dessa forma, você pode ter uma ssh de conexão passando por wlan1 e outra passando por wlan1 .

    
por 16.01.2016 / 19:42