部分回答(おそらく)

部分回答(おそらく)

次のネットワーク設定があります

[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.conf192.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.1192.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が、うまくいくと思いますか?

関連情報