Vamos esclarecer suas preocupações em duas etapas:
PASSO 1
Therefore, I want only addresses 192.168.2.0/24 to be routed through NIC B (eth1). I want all other traffic routed through NIC A.
A tabela de roteamento padrão (a tabela antes de você ser configurada manualmente) fornece as regras de roteamento que você está procurando.
Aqui está a explicação detalhada:
192.168.2.0 0.0.0.0 255.255.255.0 U 101 0 0 eth1
diz que a sub-rede 192.168.2.0/24 é uma rede local e não há necessidade de um gateway. Qualquer pacote que tenha como alvo um endereço nessa rede será entregue diretamente ao destino sem um salto.
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
diz o mesmo para a sub-rede 192.168.1.0/24.
0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eth0
0.0.0.0 192.168.2.1 0.0.0.0 UG 101 0 0 eth1
diz que o tráfego restante será roteado por meio de eth0 e eth1, em que a decisão de roteamento depende dos valores da métrica. O valor da métrica inferior tem uma prioridade mais alta. MAS se a eth0 estiver inativa, todo o tráfego será roteado pela eth1 e vice-versa. A propósito, não tenho certeza, mas meu melhor palpite para a eth0 ter uma prioridade mais alta que a eth1 é a ordem alfabética dos nomes das interfaces.
Como conclusão, a tabela a seguir é o que você está procurando. Não estou familiarizado com o NetworkManager, mas acho que você pode ignorar as rotas obtidas automaticamente para ambas as interfaces e definir manualmente as suas próprias para obter essa tabela de roteamento.
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
192.168.2.0 0.0.0.0 255.255.255.0 U 101 0 0 eth1
PASSO 2
I do not want hosts in either LAN to be able to connect to each other (or ping each other, etc.). I want LAN A and LAN B to remain isolated.
Simplesmente conectar sua caixa linux a duas redes diferentes não tem efeito sobre seu isolamento, a menos que haja uma regra NAT definida no firewall da caixa ou que as interfaces da caixa sejam interligadas.
Você pode verificar as regras NAT por meio de iptables
ou nftables
, que são ferramentas para gerenciar o firewall no Arch Linux. Veja também wiki do Arch Linux - Firewalls .
Exemplo de comando para listar regras de NAT: iptables -t nat -L -v -n
Nenhuma ponte é vista em sua tabela de roteamento, mas você pode verificar as pontes detalhadamente usando uma das formas descritas em Arch Linux wiki - Ponte de rede .