No meu roteador (ubuntu/NFTables) configurei duas WANs, uma de cada ISP diferente.
Na configuração atual, posso garantir que qualquer máquina nas sub-redes possa navegar usando o primeiro ou o segundo link, de acordo com a regra do NFTables.
Observe que não é uma interface LAN específica (qualquer máquina em qualquer interface LAN pode navegar em qualquer um dos dois links com IPs públicos de acordo com a regra em NFTables)
Isso está funcionando, ok.
O problema que estou enfrentando agora é que as máquinas nas sub-redes deveriam se ver e elas nem sequer estão fazendo ping umas nas outras.
Alguém sabe como posso consertar isso para que, além de manter a navegação na internet assim, eu consiga fazer com que as máquinas conectadas na LAN1, LAN2, LAN3 e LAN4 consigam se comunicar entre si?
Abaixo está a configuração do netplan:
network:
ethernets:
wan1:
addresses:
- 111.31.111.2/28
- 111.31.111.3/28
- 111.31.111.4/28
- 111.31.111.5/28
- 111.31.111.6/28
- 111.31.111.7/28
- 111.31.111.8/28
- 111.31.111.9/28
- 111.31.111.10/28
- 111.31.111.11/28
- 111.31.111.12/28
- 111.31.111.13/28
- 111.31.111.14/28
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
search: []
routes:
- to: default
via: 111.31.111.1
metric: 100
- to: default
via: 111.31.111.1
metric: 100
table: 100
routing-policy:
- from: 192.168.10.0/24
table: 100
- from: 192.168.20.0/24
table: 100
- from: 192.168.30.0/24
table: 100
- from: 192.168.40.0/24
table: 100
wan2:
addresses:
- 222.63.222.10/29
- 222.63.222.11/29
- 222.63.222.12/29
- 222.63.222.13/29
- 222.63.222.14/29
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
search: []
routes:
- to: default
via: 222.63.222.9
metric: 200
- to: default
via: 222.63.222.9
metric: 200
table: 200
routing-policy:
- from: 192.168.10.0/24
table: 200
- from: 192.168.20.0/24
table: 200
- from: 192.168.30.0/24
table: 200
- from: 192.168.40.0/24
table: 200
lan1:
addresses:
- 192.168.10.1/24
lan2:
addresses:
- 192.168.20.1/24
lan3:
addresses:
- 192.168.30.1/24
lan4:
addresses:
- 192.168.40.1/24
version: 2
Tabelas e regras a seguir:
userrouter1@router1:~$ ip route
default via 111.31.111.1 dev wan1 proto static metric 100
default via 222.63.222.9 dev wan2 proto static metric 200
192.168.10.0/24 dev lan1 proto kernel scope link src 192.168.10.1
192.168.40.0/24 dev lan4 proto kernel scope link src 192.168.40.1
111.31.111.0/28 dev wan1 proto kernel scope link src 111.31.111.2
222.63.222.8/29 dev wan2 proto kernel scope link src 222.63.222.10
userrouter1@router1:~$ ip rule
0: from all lookup local
32756: from 192.168.30.0/24 lookup 200 proto static
32757: from 192.168.40.0/24 lookup 200 proto static
32758: from 192.168.20.0/24 lookup 200 proto static
32759: from 192.168.10.0/24 lookup 200 proto static
32760: from 192.168.30.0/24 lookup 100 proto static
32761: from 192.168.10.0/24 lookup 100 proto static
32762: from 192.168.40.0/24 lookup 100 proto static
32763: from 192.168.20.0/24 lookup 100 proto static
32766: from all lookup main
32767: from all lookup default
userrouter1@router1:~$ ip route show table 100
default via 111.31.111.1 dev wan1 proto static metric 100
userrouter1@router1:~$ ip route show table 200
default via 222.63.222.9 dev wan2 proto static metric 200
userrouter1@router1:~$ ip rule show table 100
32760: from 192.168.30.0/24 lookup 100 proto static
32761: from 192.168.10.0/24 lookup 100 proto static
32762: from 192.168.40.0/24 lookup 100 proto static
32763: from 192.168.20.0/24 lookup 100 proto static
userrouter1@router1:~$ ip rule show table 200
32756: from 192.168.30.0/24 lookup 200 proto static
32757: from 192.168.40.0/24 lookup 200 proto static
32758: from 192.168.20.0/24 lookup 200 proto static
32759: from 192.168.10.0/24 lookup 200 proto static
No momento, se eu estiver na máquina 192.168.10.10 não consigo fazer PING em 192.168.20.10, nem vice-versa... Eu precisava resolver esse problema, mantendo a navegação para IPs externos assim.
Alguém pode me ajudar?
Suas regras de política personalizadas levam a tabelas que não têm nenhuma das rotas de "sub-rede local" que a tabela principal tem. Há apenas a rota padrão que corresponde a tudo , e então tudo vai para seu ISP.
Você precisa adicionar
throw
rotas ("fall-through to next policy rule") em cada uma dessas tabelas,ou use uma regra de política adicional que faça uma segunda pesquisa em 'main' antes das tabelas personalizadas em vez de depois (com uma opção especial para ignorar a rota padrão).