次のネットワーク設定があります
[ISP Router] <---> [Raspbian] <---> [Debian 10 Workstation]
私のRaspbian "ルーター"に関する情報は次のとおりです。
iptables
更新されましたiptables -F
。すべてのチェーンの基本戦略は次のとおりです。ACCEPT
ip a
レポートは、IPeth0
アドレスがeth1
私が期待する値に設定されていることを示しています。 (eth0
つまり192.168.1.201
、ISPルーターのDHCPサーバーに予約されているアドレスに設定します。eth1
静的設定を使用します/etc/dhcpcd.conf
。192.168.2.254
)
ルーティングテーブル情報は次のとおりです。
default via 192.168.1.254 dev eth0 proto dhcp src 192.168.1.201 metric 202
192.168.1.0/24 dev eth0 proto dhcp scope link src 192.168.1.201 metric 202
192.168.2.0/24 dev eth1 proto dhcp scope link src 192.168.2.254 metric 203
明らかに間違ったことはなく、iptables
明示的なデフォルトポリシーを使用すると、ACCEPT
ルーティングテーブルのすべてのアドレスに向かうすべてのパケットを転送する必要があると思います。cat /proc/sys/net/ipv4/ip_forward
返品1
。
これは私のワークステーションによって報告された情報です。
ip route
default via 127.0.0.1 dev enx00500b668976b proto dhcp metric 100
default via 127.0.0.1 dev enx00500b668976b proto dhcp metric 101
10.0.0.0/8 dev enp7s0 proto kernel scope link sec 10.0.0.1
127.0.0.1 dev enx00500b668976b proto dhcp scope link metric 100
192.168.2.0/24 dev enx00500b668976b proto kernel scope link src 192.168.2.10
これは私に少し奇妙に見えます。
Rasbianシステムではpingできますが、192.168.1.254
私のワークステーションではこのアドレスをpingできません。これは、2 つのデバイス間のリンクに問題があることを示します。
この問題を診断するにはどうすればよいですか?
上記の情報に基づいて設定に間違いがありますか?
答え1
部分回答(おそらく)
問題を診断する方法を調査しました。
tcpdump
ラズベリーパイに設置して監視してみましたeth1
。 「localhostを所有している人」を尋ねるARPリクエストが表示されます。
私は/etc/dhcp/dhcpd.conf
その行を編集して見つけましたoption routers localhost;
。私はそれが有効なオプションではないと思いますjournalctl -xe
。 (または少なくともそうではないと思います。起動時にエラーが見つかりませんでした。)
私はこれをに変更しましたoption routers 192.168.2.254
。これは私にとって「間違っているようです」。 PiはネットワークのDHCPサーバーであり、そのネットワークのルーターであるため、私はそれがlocalhost
...のいずれかだと思いました。127.0.0.1
192.168.2.0
再起動してiptables
再度削除すると、ルーター(Pi)を介してpingを実行できるようになりました。
追加情報
まあ、今はpingできませんが、今はできます...
私のワークステーションでは、これをルーティングテーブルとして見ます。
10.0.0.0/8 dev enp7s0 proto kernel scope link src 10.0.0.1
127.0.0.1 dev enx0050b668976b proto dhcp scope link metric 100
192.168.2.0/24 enx0050b668976b proto kernel scope link src 192.168.2.10 metric 100
これは私が期待していたものと似ているようです。
再起動後、
10.0.0.0/8 dev enp7s0 proto kernel scope link src 10.0.0.1
192.168.2.0/24 enx0050b668976b proto kernel scope link src 192.168.2.10 metric 100
今はうまくいきますが、なぜ100%確信できません。フラッシュクリアNATによって引き起こされたiptablesの問題である可能性が高い。
両方のデバイスが再起動されました。
これが出力ですiptables --list -v
sudo iptables --list -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
185 21142 ACCEPT all -- lo any anywhere anywhere
124 11380 ACCEPT tcp -- eth1 any anywhere anywhere tcp dpt:ssh
107 16316 ACCEPT all -- any any anywhere anywhere state RELATED,ESTABLISHED
34 2936 DROP all -- eth0 any anywhere anywhere
Chain FORWARD (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 192.168.1.254 dev eth0 proto dhcp src 192.168.1.201 metric 202
192.168.1.0/24 dev eth0 proto dhcp scope link src 192.168.1.201 metric 202
192.168.2.0/24 dev eth1 proto dhcp scope link src 192.168.2.254 metric 203
ワークステーションルーティングテーブル:
default via 192.168.2.254 dev enx0050b668976b proto dhcp metric 100
10.0.0.0/8 dev enp7s0 proto kernel scope link src 10.0.0.1
192.168.2.0/24 dev enx0050b668976b proto kernel scope link src 192.168.2.10 metric 100
default
彼が戻ってきたようです。どこかで間違った設定を除いて、なぜこれが起こるのかわかりません。
これは `/etc/dhcp/dhcpd.conf にある私のサブネット定義です。
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.10 192.168.2.120;
option routers 192.168.2.254;
option broadcast-address 192.168.2.255;
}
192.168.2.254
繰り返しますが、似たようなものではなく、ここで使用するのは少し以上です127.0.0.1
が、うまくいくと思いますか?