
Olá colegas empilhadores,
Não tenho certeza se planejei minha configuração de rede de maneira perfeita.
Eu tenho uma topografia de rede doméstica como esta:
modem/roteador <-> roteador debian <-> LAN.
Preciso acessar a Internet da minha LAN, atrás de um roteador Debian.
Quando eu tenho essas 3 regras noroteador debian, posso acessar a WAN:
default via 192.168.0.10 dev enp1s0f1
10.0.0.0/24 dev enp1s0f0 proto kernel scope link src 10.0.0.12
192.168.0.0/24 dev enp1s0f1 proto kernel scope link src 192.168.0.12
192.168.0.10
é o meu modem/roteador.192.168.0.0/24
é a pequena LAN com o modem/roteador e uma ramificação do roteador debian.10.0.0.0/24
é minha LAN privada onde está meu Pi.
Meu problema é que não consigo fazer ping no modem 192.168.0.10
da minha estação de trabalho 10.0.0.4
, passando pelo roteador Debian.
EDITAR: novo teste:
Eu modifiquei desta forma /etc/network/interfaces para oroteador debian:
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
allow-hotplug enp1s0f0
iface enp1s0f0 inet static
address 10.0.0.12
netmask 255.255.255.0
allow-hotplug enp1s0f1
iface enp1s0f1 inet static
address 192.168.0.12
netmask 255.255.255.0
gateway 192.168.0.10
RESULTADO: validação do serviço de rede aprovada. Ele gera essas rotas noroteador debian:
default via 192.168.0.10 dev enp1s0f1 onlink
10.0.0.0/24 dev enp1s0f0 proto kernel scope link src 10.0.0.12
192.168.0.0/24 dev enp1s0f1 proto kernel scope link src 192.168.0.12
Eu posso fazer ping do roteador debian na WAN, DNS ok, ping ok. Do meu Pi na rede 10..., não consigo executar ping no modem/roteador .10 . Posso executar ping na outra interface lateral do roteador Debian (192.168.0.12).
No roteador debian eu tenho essas configurações do ufw:
*nat
#:PREROUTING ACCEPT - [0:0]
:POSTROUTING ACCEPT - [0:0]
#Port fwd
#-A PREROUTING -i enp1s0f1 -p tcp --dport 22 -j DNAT --to-destination 10.0.0.3
# Forward traffic from source through iface
-A POSTROUTING -s 10.0.0.0/24 -o enp1s0f1 -j MASQUERADE
# don't delete the 'COMMIT' line or these nat table rules won't be processed
COMMIT
Não sei por que não consigo executar ping no modem/roteador do Rasbian (ping permitido no ufw - não sei se é significativo).
net.ipv4.ip_forward=1
está definido noroteador debian.
iptables-nvL:
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
117K 7348K ACCEPT all -- enp1s0f0 * 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
iptables -t nat -nvL:
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
No Rasbian tenho essas rotas (simplificadas):
default via 10.0.0.12 { the debian router's directly connected iface }
10.0.0.0/24 via 10.0.0.12
Então, alguma pista de por que não consigo fazer ping no modem do Raspbian Pi? :-)
Responder1
Supondo que a iptables
saída seja do roteador Debian, sua MASQUERADE
regra de firewall não foi aplicada. (Na verdade, nenhuma de suas regras foi aplicada.)
Para resolver o problema, você pode fazer uma de duas coisas
- Aplique as regras de firewall usando o
ufw
comando apropriado (eu não usoufw
) para que toda a sua rede 10.0.0.0/24 fique escondida atrás do único endereço IP externo do seu roteador Debian
OU
- Crie uma rota estática no modem/roteador que declare que pode alcançar sua rede interna 10.0.0.0/24 via 192.168.0.12. Caso contrário, sua rota padrão, apontando para cima, será o único local conhecido para enviar tais pacotes.
Responder2
Eu encontrei o problema. Devo ter esquecido de definir
DEFAULT_FORWARD_POLICY="ACCEPT"
em /etc/default/ufw.
Como apontou @roaima, não havia regras ACCEPT antes de FORWARD ACCEPT. Agora, tudo funciona como esperado :-)