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 規則。現在,一切都按預期進行:-)

相關內容