
スタッカーの皆さん、こんにちは。
ネットワーク構成を完璧に計画できたかどうかはわかりません。
私のホームネットワークのトポロジは次のようになります。
モデム/ルーター <-> Debian ルーター <-> LAN。
Debian ルーターの背後にある LAN からインターネットにアクセスする必要があります。
これらの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ルーターのブランチを備えた小規模LANです。10.0.0.0/24
私のPiがあるプライベートLANです。
192.168.0.10
私の問題は、ワークステーションから10.0.0.4
Debian ルーターを経由してモデムに ping できないことです。
編集: 新しいトライアウト:
私はこのように/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 も正常です。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
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
ルールは適用されていません。(実際には、ルールはどれも適用されていません。)
この問題を解決するには、次の2つの方法があります。
ufw
適切なコマンド(私は使用しません)を使用してファイアウォールルールを適用し、ufw
10.0.0.0/24ネットワーク全体がDebianルーターの外部に面した単一のIPアドレスの背後に隠されるようにします。
または
- モデム/ルーターに、192.168.0.12 経由で内部の 10.0.0.0/24 ネットワークに到達できることを宣言する静的ルートを作成します。そうしないと、アップストリームを指すデフォルト ルートが、そのようなパケットを送信できる唯一の場所になります。
答え2
問題を発見しました。設定を忘れていたようです
DEFAULT_FORWARD_POLICY="ACCEPT"
/etc/default/ufw に。
@roaima が指摘したように、FORWARD ACCEPT より前には ACCEPT ルールはありませんでした。今では、すべてが期待どおりに動作します :-)