wlan0といくつかのUSBポートを持つ「ホスト」Raspberry Piがあります。 USBケーブルを介してホストPiに接続する別の「クライアント」Piがあります(クライアントPiには他のアクティブなネットワークインターフェイスはありません)。クライアントPiはg_etherを実行しているため、USBケーブルを介してホストに接続するとUSBベースのイーサネット接続が確立されます(ホストに「eth1」が生成されます)。また、クライアントデバイスが接続されると、クライアントデバイスは192.168.42.1にあり、ホストPiはそのネットワーク(192.168.42.x)からクライアントが割り当てたアドレスを取得します。クライアントが接続されると、ホストPiのルーティングテーブルに2番目のデフォルトパスが追加されます。したがって、ホストPiのルーティングテーブルは2つのデフォルトパスで終わります。
default via 192.168.42.1 dev eth1 proto dhcp src 192.168.42.21 metric 204
default via 192.168.1.1 dev wlan0 proto dhcp src 192.168.1.125 metric 303
192.168.1.0/24 dev wlan0 proto dhcp scope link src 192.168.1.125 metric 303
192.168.42.0/24 dev eth1 proto dhcp scope link src 192.168.42.21 metric 204
wlan0は私の一般的なインターネットパスなので、2番目のデフォルトパスは私のインターネットパスを妨げます。インターネット(wlan0経由)と192.168.42.1(eth1経由)の両方にルーティングしたいと思います。たとえば、クライアントデバイスを接続せずにwlan0経由でntp.orgにpingを送信できます。しかし、クライアントデバイスを接続した後、ntp.orgにpingを実行することはできません(おそらく、インターネットパスがない私のクライアントデバイスで作成された新しく追加された2番目のデフォルトパスを通過しようとしているため)。
2番目のデフォルトパスを削除すると問題が解決することがわかりました(ntp.orgをpingでき、192.168.42.1をpingすることができます)。
最初に2番目のデフォルトパスが追加されるのを防ぐ方法は?それとも別の解決策がありますか?
答え1
私の問題を解決するnogateway
ために追加しました。eth1
/etc/dhcpcd.conf
interface eth1
nogateway
dhcpcd.conf のマニュアルページのサポート(および一般的な方向を示す ChatGPT の場合は +1): https://manpages.debian.org/testing/dhcpcd5/dhcpcd.conf.5.en.html