Vários gateways com um adaptador ethernet

2

Eu quero me conectar a vários gateways com um adaptador ethernet, é assim que eu tentei fazer isso.

/ etc / network / interfaces

auto lo
iface lo inet loopback

# This is my home network.
auto eth0
iface eth0 inet static
    address 192.168.1.102
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8 8.8.4.4

# This is an external address, configuration works when placed at eth0.
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

Eu quero usar eth0 como conexão de internet padrão e eth0: 1 para serviços específicos, como o nginx.

server {
    listen 132.45.65.60:8080;
    server_name _;
    location / {
        return 403;
    }
}

Como posso conseguir isso e é possível?

    
por AeonLucid 13.04.2016 / 19:01

1 resposta

1

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 .

    
por 2707974 14.04.2016 / 16:29