A primeira coisa que você faz é definir a prioridade de sua rota gw padrão. Você pode fazer isso adicionando uma métrica para rotear. Você pode fazer manualmente
sudo route add -net default gw 132.45.65.57 netmask 0.0.0.0 dev eth0:1 metric 10
ou, você pode escrever código para fazer isso por você
sudo nano /etc/networking/interfaces
adicione no final da configuração da interface, mas na configuração de eth0:1
interface
up route add default gw 132.45.65.57 metric 10
down route del default gw 132.45.65.57
Alguma coisa assim
auto eth0:1
iface eth0:1 inet static
address 132.45.65.60
netmask 255.255.255.0
gateway 132.45.65.57
dns-nameservers 8.8.8.8 8.8.4.4
up route add default gw 132.45.65.57 metric 10
down route del default gw 132.45.65.57
Depois disso, você deve marcar o pacote e rotear o pacote marcado via eth0: 1
Dou-lhe exemplo para encaminhar o tráfego para a origem port 8080
e pode implementar a porta de que precisa para
Vamos começar pelo iptables
. Aqui tomaremos 8080
como o serviço para roteamento. Use mangle
table do iptables para modificar os pacotes 8080
.
sudo iptables -t mangle -A OUTPUT -p tcp –sport 8080 -j MARK –set-mark 0×1
Estamos marcando todos os pacotes com porta de origem 8080
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_tables
apenas fornecendo uma entrada
100 8080table
Regra de gravação para 8080
pacotes.
ip rule add fwmark 0×1 lookup 8080table
Adicionar rota na nova tabela 8080table
. Aqui vamos usar '132.45.65.57' como o gateway para 8080
. O endereço "132.45.65.57", neste exemplo, será o endereço do gateway para eth0:1
. Todo o tráfego restante passará pelo
gateway padrão também conhecido como eth0
, 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 8080table $ROUTE; done
Adicione uma entrada de gateway padrão para 8080
pacotes à tabela 8080table
sudo ip route add default via 132.45.65.57 table 8080table
Use ip route show table 8080table
para mostrar todas as rotas em 8080table
.
É isso.
Editar 1
Talvez seja melhor marcar e rotear o tráfego com base na rota de origem
auto eth0:1
iface eth0:1 inet static
address 132.45.65.60
netmask 255.255.255.0
gateway 132.45.65.57
dns-nameservers 8.8.8.8 8.8.4.4
up route add default gw 132.45.65.57 metric 10
down route del default gw 132.45.65.57
Depois disso, você deve marcar o pacote e rotear o pacote marcado via eth0: 1
Dou um exemplo para rotear o tráfego com base em ip, source ip 132.45.65.60
Mais uma vez, use mangle
table de iptables
para modificar os pacotes de 132.45.65.60
sudo iptables -t mangle -A OUTPUT -s 132.45.65.60 -j MARK -set-mark 0×1
Estamos marcando todos os pacotes com a fonte ip 132.45.65.60
as '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_tables
apenas fornecendo uma entrada
100 132table
Regra de gravação para pacotes do IP de origem 132.45.65.60
ip rule add fwmark 0×1 lookup 132table
Adicionar rota na nova tabela 132table
. Aqui vamos usar '132.45.65.57' como o gateway para 132.45.65.60
. O endereço "132.45.65.57", neste exemplo, será o endereço do gateway para eth0:1
. Todo o tráfego restante passará pelo
gateway padrão também conhecido como eth0
, 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 132table $ROUTE; done
Adicione uma entrada de gateway padrão para 132.45.65.60
pacotes à tabela 132table
sudo ip route add default via 132.45.65.57 table 132table
Use ip route show table 132table
para mostrar todas as rotas em 132table
.