Estamos tendo um problema com o Alma Linux 9.4 que não temos com nenhuma outra versão do Linux que usamos (a maioria delas), incluindo o RedHat e o CentOS. Quando colocamos várias placas NIC na caixa e configuramos uma rede em cada uma delas, temos a rota padrão definida para a NIC primária e sub-redes locais nas outras NICs (uma em cada). Configuramos com NMTUI e tudo parece bem. Configuramos da mesma forma que fizemos em dezenas de outros servidores (IPs diferentes aqui, é claro):
10.1.12.157/24 on NIC #1 (primary) with default gateway set to 10.1.12.1
192.168.10.99/32 on NIC #2
10.1.13.19/32 on NIC #3
Quando fazemos ping da CLI para fora (ou telnet para testar todas as 7 camadas do modelo OSI), ele funciona e roteia para fora o NIC apropriado. Podemos fazer ping em 10.1.12.1 no NIC1, podemos fazer ping em 192.168.10.129 no NIC2 e podemos fazer ping em 10.1.13.1 no NIC3... Também podemos fazer telnet.
É claro que reiniciamos o NetworkManager e baixamos/subimos cada interface, etc.
O problema é que se formos para uma caixa fora desta caixa na rede interna, só podemos:
- ping 10.1.12.157 de qualquer lugar
- ping 10.1.13.19 de uma caixa em
- 10.1.13.0/24 ping 192.168.10.99 de uma caixa em 192.168.10.0/24
No passado, no NMTUI, definimos um gateway em cada NIC para ser o gateway padrão (e adicionamos uma rota /24 em cada NIC, roteando o intervalo de IP da NIC para sua própria interface, por exemplo, 192.168.10.0/24 -> 192.168.10.99) e funcionou.
Mas no Alma Linux ele tenta adicionar 3 "rotas de gateway padrão", uma em cada NIC e ele quebra o roteamento e a caixa se torna inacessível. Nós não adicionamos rotas padrão em cada NIC porque fazer isso no Alma Linux adiciona essas rotas à tabela de roteamento como rotas padrão. Então aqui está a aparência da nossa tabela de roteamento agora:
# ip route show
default via 10.1.12.1 dev ens224 proto static metric 105
10.1.12.0/24 dev ens224 proto kernel scope link src 10.1.12.157 metric 105
10.1.13.0/24 via 10.1.13.19 dev ens256 proto static metric 103
10.1.13.19 dev ens256 proto static scope link metric 103
192.168.10.0/24 via 192.168.10.99 dev ens192 proto static metric 102
192.168.10.99 dev ens192 proto static scope link metric 102
Cada rede é uma VLAN e todas elas estão conectadas ao mesmo switch central CISCO.
Eu até tentei ativar o encaminhamento de IP ip4 no kernel e não ajudou.
/etc/sysctl.d/99-ipforward.conf contains "net.ipv4.ip_forward = 1" and run "sysctl -p" to activate.
Também defini a rota padrão como 10.1.12.1 em /etc/sysconfigs/network só para ter certeza.
Estou claramente esquecendo de algo simples, mas não consigo descobrir. Se alguém souber, por favor, me avise.
Obrigado! David
Algumas distribuições vêm com "filtragem de caminho reverso" habilitada por padrão. No modo estrito (o
rp_filter
sysctl definido como1
), ele descarta todos os pacotes de entrada cujas fontes não são alcançáveis pela mesma interface, o que não é adequado para sistemas multi-homed ou qualquer situação de roteamento assimétrico.Definir o sysctl para
2
alternar para o modo "loose", que permite pacotes se sua origem for acessível por meio de qualquer interface. Isso é igualmente inútil, mas de forma oposta, pois permitirá literalmente tudo, desde que o host tenha uma rota padrão. Definir o sysctl para0
desabilitar o rp_filter completamente.De acordo com o artigo da RedHat, o contador IPReversePathFilter em
nstat
ounetstat -s
pode ser usado para detectar pacotes descartados pelo rp_filter.Você realmente não precisa de um gateway padrão para cada interface (a menos que esteja usando
ip rule
roteamento de política), pois somente aquele com a métrica mais baixa será usado para tudo.