A métrica pode mudar em vários lugares.
O melhor trabalho para mim é a configuração em etc/network/interface
auto lo
iface lo inet loopback
auto new0
iface new0 inet static
address xxx.xxx.xxx.xxx
netmask xxx.xxx.xxx.xxx
up route add default gw aaa.aaa.aaa.aaa metric 10
down route del default gw aaa.aaa.aaa.aaa
auto new1
iface new1 inet static
address yyy.yyy.yyy.yyy
netmask yyy.yyy.yyy.yyy
up route add default gw bbb.bbb.bbb.bbb
down route del default gw bbb.bbb.bbb.bbb
Desta forma, quando a interface new0
subir, a rota para o gateway aaa.aaa.aaa.aaa
será exibida com a métrica 10. A interface new1
exibirá a rota para bbb.bbb.bbb.bbb
com menor métrica e o tráfego será roteado nessa interface.
Se você alterar sudo ifdown new1
ao desconectar o cabo da rota do cartão, a rota para aaa.aaa.aaa.aaa
será a nova melhor rota para o tráfego.
Quando novamente, o brin int new1
up route será adicionado novamente e bbb.bbb.bbb.bbb
será novamente o melhor caminho.
Editar 1
Prioridade de rota não é a mesma que a rota baseada na porta de destino.
Mas eu dou um exemplo para direcionar o tráfego para ssh, port 22
e você pode implementar para a porta que precisa para
Vamos começar pelo iptable. Aqui tomaremos ssh
como o serviço para roteamento. Use mangle
table do iptable para modificar os pacotes ssh
.
sudo iptables -t mangle -A OUTPUT -p tcp –dport 22 -j MARK –set-mark 0×1
Estamos marcando todos os pacotes com porta de destino 22
como '0 × 1 ′.
Agora salve e reinicie o iptables
.
service iptables save
service iptables restart
Para excluir esta entrada de iptables
, podemos usar -D
em vez de -A
.
Em seguida, crie uma nova tabela de rotas IP em /etc/iproute2/rt_table
apenas fornecendo uma entrada
100 sshtable
Regra de gravação para ssh
pacotes.
ip rule add fwmark 0×1 lookup sshtable
Adicionar rota na nova tabela sshtable
. Aqui vamos usar '192.168.1.1' como o gateway para ssh
. O endereço "192.168.1.1", neste exemplo, será o endereço do gateway para new2
. Todo o tráfego restante passará pelo
gateway padrão também conhecido como new1
, que pode ser visto pelo comando IP route show.
Copiamos todas as entradas, exceto a entrada do gateway padrão da tabela principal.
sudo ip route show table main | grep -Ev ^default | while read ROUTE ; do ip route add table sshtable $ROUTE; done
Adicione uma entrada de gateway padrão para ssh
pacotes à tabela sshtable
sudo ip route add default via 192.168.1.1 table sshtable
Use ip route show table sshtable
para mostrar todas as rotas em sshtable
.
É isso ... fizemos isso !!!
Repita tudo para imap
na porta 465
ou hhtp
na porta 80
ou https
na porta 443
...