Rota do OpenBSD através de diferentes gateways que possuem o mesmo IP, mas em interfaces diferentes

9

Eu tenho várias conexões VPN que usam o mesmo gateway IP (não tenho a capacidade de mudar isso, pois está fora do meu controle). Todas essas VPNs fornecem acesso a diferentes redes, e as redes têm pelo menos um ou dois saltos a montante, portanto, um IP de gateway é necessário em todos os casos. Com o Linux, para encaminhar para as redes, posso simplesmente fazer:

ip route add $destination_1 via $gateway_ip dev $interface_1
ip route add $destination_2 via $gateway_ip dev $interface_2
ip route add $destination_3 via $gateway_ip dev $interface_3

etc.

O Linux colocará o tráfego para cada rede de destino nas interfaces corretas, para o gateway correto, portanto, não importa que o IP do gateway seja o mesmo para cada interface.

Minha pergunta é: como posso conseguir isso no OpenBSD? Eu tentei e falhei. Minhas descobertas são que, para um destino específico, posso:

  • especifica uma interface (se o destino estiver diretamente acessível nesse link - o que não é no meu caso)
  • especifica um IP de gateway porque o destino não está diretamente no link

Mas não consigo descobrir como especificar os dois.

    
por bao7uo 02.08.2017 / 10:20

1 resposta

1

Use o modificador -ifp para route . Na página de manual :

In a change or add command where the destination and gateway are not
sufficient to specify the route, the -ifp or -ifa modifiers may be 
used to determine the interface name or interface address.

Então, algo assim funciona:

# for  arg in tun0 tun1 tun2; do ifconfig $arg  192.168.11.1/24; done
# route add 10/8 -iface 192.168.11.1 -ifp tun0
add net 10/8: gateway 192.168.11.1
# route add 172.16/12 -iface 192.168.11.1 -ifp tun1
add net 172.16/12: gateway 192.168.11.1
# route add 192.168.254/24 -iface 192.168.11.1 -ifp tun2
add net 192.168.254/24: gateway 192.168.11.1
# route show -inet
Routing tables

Internet:
Destination        Gateway            Flags   Refs      Use   Mtu  Prio 
Iface
10/8               192.168.11.1       GS         0        0     -     8 tun0
localhost          localhost          UHl        0       22 32768     1 lo0
172.16/12          192.168.11.1       S          0        0     -     8 tun1
192.168.11.1       192.168.11.1       UHhl       1        4     -     1 tun0
[...my real routes omitted...]
192.168.254/24     192.168.11.1       S          0        0     -     8 tun2

Se as rotas de destino estiverem sobrepostas, você poderá usar pf e rotular os rótulos para corresponder ou roteamento domínios .

    
por 06.08.2017 / 15:07