no servidor mu Ubuntu 22.04 eu tenho duas NIC internas e uma externa conectada à Internet. Eu defini as interfaces com o Netplan da seguinte forma:
network:
ethernets:
eno1:
dhcp4: true
dhcp4-overrides:
route-metric: 100
enp2s0:
addresses:
- 172.16.1.1/24
nameservers:
addresses:
- 127.0.0.53
- 8.8.8.8
search:
- wombats.org
routes:
- to: default
via: 192.168.0.254
- to: 172.16.1.0/24
via: 172.16.1.1
metric: 200
table: 101
routing-policy:
- from: 172.16.1.0/24
table: 101
wlp8s0:
dhcp4: no
addresses:
- 172.16.2.1/24
routes:
- to: 172.16.2.0/24
via: 172.16.2.1
metric: 20
table: 102
routing-policy:
- from: 172.16.2.0/24
table: 102
version: 2
Um computador conectado ao enp2s0 é roteado perfeitamente para a internet e internamente. Quando o mesmo computador está conectado através do wlp8s0 ele não consegue nem mesmo acessar a rede gerenciada pelo enp2s0 (172.16.1.1/24). Aqui estão as duas tabelas de roteamento: conectadas por meio de enp2s0:
ip r
default via 172.16.1.1 dev enxf8e43b9d4867 proto dhcp metric 100
169.254.0.0/16 dev enxf8e43b9d4867 scope link metric 1000
172.16.1.0/24 dev enxf8e43b9d4867 proto kernel scope link src 172.16.1.3 metric 100
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
conectado através de wlp8s0:
ip r
default via 172.16.2.1 dev wlp0s20f3 proto dhcp metric 20600
169.254.0.0/16 dev wlp0s20f3 scope link metric 1000
172.16.2.0/24 dev wlp0s20f3 proto kernel scope link src 172.16.2.4 metric 600
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
A diferença notável é a métrica da rota padrão em ambas as configurações. Isso não vem do servidor DHCP, pois ambas as sub-redes são configuradas de forma idêntica. Tentei desabilitar o ufw e tentei adicionar iptables. Mas tudo isso não mudou o resultado.
Não entendo porque não consigo rotear o tráfego do wlp8s0! O fato de uma NIC ser um cabo e a outra um wifi explica a diferença? Não deveria, pois eles recebem IPs servidos da mesma maneira.
Obrigado pela ajuda. janeiro
Responder1
A solução para este problema foi dupla: primeiro, o mascaramento precisa ser feito em ambas as interfaces (sub-redes):
-A POSTROUTING -s 172.16.1.0/24 -o eno1 -j MASQUERADE
-A POSTROUTING -s 172.16.2.0/24 -o eno1 -j MASQUERADE
Então o que não é menos importante é que as interfaces sejam criadas com ou sem operadora. Isso é feito em /etc/netplan/00-installer-config.yaml com a linha:
enp2s0:
ignore-carrier: true
o mesmo para o wlp8s0. Se você não