こんにちは仲間のスタッカー、
ネットワーク構成を完璧に計画したかどうかはわかりません。
私はこのようなホームネットワークの地形を持っています:
モデム/ルーター<-> Debianルーター<-> LAN。
私は自分のLANからdebianルーターの後ろでインターネットにアクセスする必要があります。
debian routerに次の3つのルールがある場合、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ルーターのブランチを備えた小さなLANです。 10.0.0.0/24
は私のPiがである私のプライベートLANです。
私の問題は、モデムにpingできないことです192.168.0.10
私のワークステーションから10.0.0.4
、Debianルーターを経由します。
編集:新しいトライアウト:
私はこのように/ etc/network/interfacesをdebian routerに変更しました:
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、DNS ok、pingokをpingできます。 10 ...ネットワーク上のPiから、モデム/ルーター.10にpingを実行できません。 Debianルーター(192.168.0.12)の反対側のインターフェースにpingを実行できます。
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
ラズビアンではこれらのルートがあります(簡略化):
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できない理由はありますか?:-)
iptables
出力がDebianルーターからのものであるとすると、ファイアウォールのMASQUERADE
ルールは適用されていません。 (実際、どのルールも適用されていません。)
問題を解決するには、次の2つのいずれかを実行できます
ufw
コマンド(私はufw
を使用しません)を使用してファイアウォールルールを適用し、10.0.0.0/24ネットワーク全体がDebianの単一の外部向けIPアドレスの背後に隠れるようにします。ルーターOR
私は問題を見つけました。設定するのを忘れたに違いない
DEFAULT_FORWARD_POLICY="ACCEPT"
/ etc/default/ufwに。
@roaimaが指摘したように、FORWARDACCEPTの前にACCEPTルールはありませんでした。今、すべてが期待どおりに機能します:-)