Dois gateways padrão no Debian Jessie

0

Por favor note que é uma duplicata, mas a solução dada antes não funciona para mim! Tudo explicado abaixo.

Tenho duas redes com Internet ... gostaria que ambas funcionassem ... se a solicitação for para a rede nº 1, a rede nº 2 responderia a essa solicitação por meio de seu gateway ... mesmo com a rede nº 2 - deveria responder a solicitações através do seu gateway.

ifconfig

eth0      Link encap:Ethernet  HWaddr b8:27:eb:82:ca:0c
          inet addr:192.168.1.200  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::57ac:b6e:33c1:8bbb/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:797 errors:0 dropped:0 overruns:0 frame:0
          TX packets:797 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:219915 (214.7 KiB)  TX bytes:117516 (114.7 KiB)

wlan0     Link encap:Ethernet  HWaddr b8:27:eb:d7:9f:59
          inet addr:192.168.2.200  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::6463:5ba:3b28:6d39/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1532 errors:0 dropped:1215 overruns:0 frame:0
          TX packets:201 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:364160 (355.6 KiB)  TX bytes:29417 (28.7 KiB)

ip route show table main

default via 192.168.1.1 dev eth0  metric 202
default via 192.168.2.1 dev wlan0  metric 303
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.200  metric 202
192.168.2.0/24 dev wlan0  proto kernel  scope link  src 192.168.2.200  metric 303

Eu obtive uma solução parcialmente funcional:

ip route add default via 192.168.1.1 dev eth0 table 100
ip route add default via 192.168.2.1 dev wlan0 table 200

ip rule add from all lookup main suppress_prefixlength 0
ip rule add from 192.168.1.0/24 lookup 100
ip rule add from 192.168.2.0/24 lookup 200

Isso faz com que, por exemplo, o Apache (após o redirecionamento de porta nos roteadores) responda às solicitações de ambas as redes, mas ... apenas de fora. A conexão local via 192.168.1.200 ou 192.168.2.200 pára de funcionar ... Quero dizer ... não consigo mais conectar ao Apache da rede local.

Alguém poderia me ajudar com isso?

Eu também tentei ESTA solução, mas não funcionou ... não consigo me conectar através de LINKs2 IP público para servidor Apache ... talvez eu esteja fazendo algo errado? O encaminhamento de porta parece funcionar, pois posso ver minha solicitação por meio de iftop . Nunca recebendo uma resposta, tho '.

rt_tables

200 LINK1
201 LINK2

route.sh

ip route add 192.168.1.0/24 dev eth0 src 192.168.1.200 table LINK1
ip route add 192.168.2.0/24 dev wlan0 src 192.168.2.200 table LINK2
ip route add default via 192.168.1.1 table LINK1
ip route add default via 192.168.2.1 table LINK2
ip rule add from 192.168.1.1 table LINK1
ip rule add from 192.168.2.1 table LINK2

Depois disso:

sigma@sigma:~/temp $ ip route show table LINK1
default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0  scope link  src 192.168.1.200

sigma@sigma:~/temp $ ip route show table LINK2
default via 192.168.2.1 dev wlan0
192.168.2.0/24 dev wlan0  scope link  src 192.168.2.200

sigma@sigma:~/temp $ ip route show table main
default via 192.168.1.1 dev eth0  metric 202
default via 192.168.2.1 dev wlan0  metric 303
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.200  metric 202
192.168.2.0/24 dev wlan0  proto kernel  scope link  src 192.168.2.200  metric 303

sigma@sigma:~/temp $ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.1     0.0.0.0         UG    202    0        0 eth0
default         fiber.home     0.0.0.0         UG    303    0        0 wlan0
192.168.1.0     *               255.255.255.0   U     202    0        0 eth0
192.168.2.0     *               255.255.255.0   U     303    0        0 wlan0

sigma@sigma:~/temp $ ip route show table all
default via 192.168.1.1 dev eth0  table LINK1
192.168.1.0/24 dev eth0  table LINK1  scope link  src 192.168.1.200
default via 192.168.2.1 dev wlan0  table LINK2
192.168.2.0/24 dev wlan0  table LINK2  scope link  src 192.168.2.200
default via 192.168.1.1 dev eth0  metric 202
default via 192.168.2.1 dev wlan0  metric 303
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.200  metric 202
192.168.2.0/24 dev wlan0  proto kernel  scope link  src 192.168.2.200  metric 303
broadcast 127.0.0.0 dev lo  table local  proto kernel  scope link  src 127.0.0.1
local 127.0.0.0/8 dev lo  table local  proto kernel  scope host  src 127.0.0.1
local 127.0.0.1 dev lo  table local  proto kernel  scope host  src 127.0.0.1
broadcast 127.255.255.255 dev lo  table local  proto kernel  scope link  src 127.0.0.1
broadcast 192.168.1.0 dev eth0  table local  proto kernel  scope link  src 192.168.1.200
local 192.168.1.200 dev eth0  table local  proto kernel  scope host  src 192.168.1.200
broadcast 192.168.1.255 dev eth0  table local  proto kernel  scope link  src 192.168.1.200
broadcast 192.168.2.0 dev wlan0  table local  proto kernel  scope link  src 192.168.2.200
local 192.168.2.200 dev wlan0  table local  proto kernel  scope host  src 192.168.2.200
broadcast 192.168.2.255 dev wlan0  table local  proto kernel  scope link  src 192.168.2.200
local ::1 dev lo  proto kernel  metric 256
fe80::/64 dev eth0  proto kernel  metric 256
fe80::/64 dev wlan0  proto kernel  metric 256
unreachable default dev lo  table unspec  proto kernel  metric 4294967295  error -101
local ::1 dev lo  table local  proto none  metric 0
local fe80::57ac:b6e:33c1:8bbb dev lo  table local  proto none  metric 0
local fe80::e94f:8405:bbc7:20f5 dev lo  table local  proto none  metric 0
ff00::/8 dev eth0  table local  metric 256
ff00::/8 dev wlan0  table local  metric 256
unreachable default dev lo  table unspec  proto kernel  metric 4294967295  error -101
    
por Flash Thunder 11.12.2016 / 14:20

1 resposta

3

Assumindo que eu entendi o problema corretamente: Você tem duas conexões "internet" através de duas interfaces locais e gostaria que as respostas passassem pelo mesmo caminho do qual elas foram recebidas.

Posso pensar em duas soluções limpas:

1) Faça o roteamento de políticas com base no IP de origem. Se o IP de origem é o da eth0, então deve usar um gateway, caso contrário, o outro. Isso é semelhante ao que você fez. Do alto da minha cabeça:

ip route add default via GW1 table gw1
ip route add default via GW2 table gw2
ip rule from IP1 table gw1
ip rule from IP2 table gw2

2) Marque os pacotes de entrada com iptables, rastreamento de conexão e o destino CONNMARK. Restaure essa marca em todos os pacotes de saída e faça o roteamento de políticas com base na marca. Mais uma vez, do alto da minha cabeça:

iptables -A INPUT -i wlan0 -t mangle -j MARK --set-mark 1
iptables -A INPUT -i eth0 -t mangle -j MARK --set-mark 2
iptables -A INPUT -j CONNMARK --save-mark
iptables -A OUTPUT -j CONNMARK --restore-mark
ip route add default via GW1 table gw1
ip route add default via GW2 table gw2
ip rule fwmark 1 table gw1
ip rule fwmark 2 table gw2

O texto acima pode precisar de alguns ajustes, mas essa é a ideia geral.

    
por 11.12.2016 / 15:13