debian:无法 ping 超出路由器

debian:无法 ping 超出路由器

各位堆垛机朋友大家好,

我不确定我是否以完美的方式规划了我的网络配置。

我有一个像这样的家庭网络拓扑:

调制解调器/路由器 <-> debian 路由器 <-> LAN

我需要从我的 LAN(位于 Debian 路由器后面)访问互联网。

当我有这 3 条规则时Debian路由器,我可以访问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是我的调制解调器/路由器192.168.0.0/24是带有调制解调器/路由器和 debian 路由器分支的小型 LAN10.0.0.0/24是我的 Pi 所在的私人 LAN

我的问题是我无法通过 debian 路由器192.168.0.10从我的工作站ping 调制解调器。10.0.0.4

编辑:新的试用:

我以这种方式修改了 /etc/network/interfaces 为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

结果:通过网络服务验证。它在上生成这些路由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 

我可以从 debian 路由器 WAN 上 ping 通,DNS 正常,ping 正常。从我的 Pi 在 10... 网络上,我无法 ping 调制解调器/路由器 .10 。我可以 ping 通 debian 路由器的另一侧接口 (192.168.0.12)。

在 debian 路由器上我有这些 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

我不知道为什么我无法从 Rasbian ping 调制解调器/路由器(ufw 上允许 ping - 不知道这是否有意义)。

net.ipv4.ip_forward=1设置在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

在 Rasbian 上我有这些路线(简化)

default via 10.0.0.12 { the debian router's directly connected iface }
10.0.0.0/24 via 10.0.0.12

那么,有什么线索说明为什么我无法从 Raspbian Pi ping 调制解调器吗? :-)

答案1

假设iptables输出来自 Debian 路由器,则您的防火墙MASQUERADE规则尚未应用。 (事实上​​,你的规则都没有被应用。)

要解决该问题,您可以执行以下两项操作之一

  1. ufw使用适当的命令(我不使用)应用防火墙规则,ufw以便您的整个 10.0.0.0/24 网络隐藏在 Debian 路由器的单个面向外部的 IP 地址后面

或者

  1. 在调制解调器/路由器上创建一条静态路由,声明它可以通过 192.168.0.12 到达您的内部 10.0.0.0/24 网络。否则,其指向上游的默认路由将是它知道发送此类数据包的唯一位置。

答案2

我发现了问题。我一定是忘记设置了

DEFAULT_FORWARD_POLICY="ACCEPT"

进入 /etc/default/ufw.

正如@roaima 指出的,在 FORWARD ACCEPT 之前没有 ACCEPT 规则。现在,一切都按预期进行:-)

相关内容