Configuração de 4 interfaces Shorewall

Configuração de 4 interfaces Shorewall

Estou tentando usar o shorewall no Arch para gerenciar uma configuração com 2 redes locais e 2 conexões ISP. Em última análise, quero que o tráfego da rede local 1 (192.168.1.0/24 interface enp5s0) use o ISP 1 (76. ... interface enp6s0) e o tráfego do local 2 (192.168.0.0/24 interface enp7s0) use o ISP 2 (99 . ...interface enp3s0). Atualmente, posso fazer um ou outro funcionar, mas não ambos, dependendo de qual rota padrão vem primeiro:

output of `ip route ls` with sensitive information redacted:
default via 76.[rd].1 dev enp6s0  src 76.[rd].78  metric 203  mtu 576
default via 99.[rd].1 dev enp3s0  src 99.[rd].190  metric 205
76.[rd].0/24 dev enp6s0  proto kernel  scope link  src 76.[rd].78  metric 203  mtu 576
76.[rd].78 dev enp6s0  scope link  src 76.[rd].78
99.194.48.0/21 dev enp3s0  proto kernel  scope link  src 99.[rd].190  metric 205
99.[rd].190 dev enp3s0  scope link  src 99.[rd].190
192.168.0.0/24 dev enp7s0  proto kernel  scope link  src 192.168.0.1  metric 204
192.168.1.0/24 dev enp5s0  proto kernel  scope link  src 192.168.1.1  metric 202

Com a saída acima, o local 1 seria capaz de alcançar o exterior, mas o local 2 não. Vice-versa se a primeira linha tivesse desaparecido. Tenho certeza de que várias rotas padrão são proibidas, mesmo com vários ISPs, mas foi assim que o Shorewall fez isso.

Como não havia nenhum exemplo para isso em lugar nenhum, baseei-me no exemplo de três interfaces do shorewall. Para evitar tornar esta postagem absurdamente longa, aqui estão links para pastas de cada configuração relevante do shorewall:

As páginas de Shorewall sobre o assunto são inúteis porque o objetivo do exemplo deles é muito diferente do meu. Qualquer indicação na direção certa seria muito apreciada.

Responder1

Certifique-se de não definir o gateway padrão nos arquivos netctl ou em qualquer outro arquivo. Se estiver usando DHCP para obter endereços IP, certifique-se de desabilitar a obtenção do gateway padrão (dhcpcd -G). A execução de "ip route ls" devenão mostra nenhum gateway padrão. Somente "ip route show table all" listaria os gateways padrão para cada tabela do ISP. Algo assim:

default via 10.1.1.1 dev enp3s0  table ITC1  src 10.1.1.10
10.1.1.1 dev enp3s0  table ITC1  scope link  src 10.1.1.10
default via 10.1.2.1 dev enp4s0  table ITC2  src 10.1.2.10
10.1.2.1 dev enp4s0  table ITC2  scope link  src 10.1.2.10
default via X.X.X.X dev enp5s0  table MPLS  src X.X.X.X
X.X.X.X dev enp5s0  table MPLS  scope link  src X.X.X.X
default  table balance
    nexthop via X.X.X.X  dev enp5s0 weight 1
    nexthop via 10.1.1.1  dev enp3s0 weight 2
    nexthop via 10.1.2.1  dev enp4s0 weight 2

Além disso, você pode remover as entradas do arquivo mangle, pois as entradas do rtrules devem ser suficientes para o que você precisa

informação relacionada