wlanを常にデフォルトのルートにする方法は?(IPルートリスト)


8

4Gモデムをラズベリーに追加すると、デフォルトルートouに追加されますが、ip route listすべてがwlanを通過し、4Gモデムのみを使用してSSH接続を受信します。

デフォルトルートを無効にする方法について、この回答を見つけました。

ただし、再起動後、4Gモデムは先頭に戻ります。

wlan0デフォルトで常に最初のルールになるようにするにはどうすればよいですか?

更新:

USBドングルを接続したときのdmesg出力は次のとおりです。

[426102.910168] usb 1-1.5.1: new full-speed USB device number 6 using dwc_otg
[426103.046670] usb 1-1.5.1: not running at top speed; connect to a high speed hub
[426103.056674] usb 1-1.5.1: New USB device found, idVendor=12d1, idProduct=1f01
[426103.056693] usb 1-1.5.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[426103.056704] usb 1-1.5.1: Product: HUAWEI_MOBILE
[426103.056714] usb 1-1.5.1: Manufacturer: HUAWEI_MOBILE
[426103.056724] usb 1-1.5.1: SerialNumber: 0123456789ABCDEF
[426103.121355] usb-storage 1-1.5.1:1.0: USB Mass Storage device detected
[426103.122875] scsi host0: usb-storage 1-1.5.1:1.0
[426103.987177] usb 1-1.5.1: USB disconnect, device number 6
[426105.470211] usb 1-1.5.1: new full-speed USB device number 7 using dwc_otg
[426105.606666] usb 1-1.5.1: not running at top speed; connect to a high speed hub
[426105.615673] usb 1-1.5.1: New USB device found, idVendor=12d1, idProduct=14dc
[426105.615692] usb 1-1.5.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[426105.615703] usb 1-1.5.1: Product: HUAWEI_MOBILE
[426105.615713] usb 1-1.5.1: Manufacturer: HUAWEI_MOBILE
[426105.766297] usb-storage 1-1.5.1:1.2: USB Mass Storage device detected
[426105.766768] scsi host0: usb-storage 1-1.5.1:1.2
[426105.855053] cdc_ether 1-1.5.1:1.0 eth1: register 'cdc_ether' at usb-3f980000.usb-1.5.1, CDC Ethernet Device, 0c:5b:8f:27:9a:64
[426105.855593] usbcore: registered new interface driver cdc_ether
[426106.785653] scsi 0:0:0:0: Direct-Access     HUAWEI   TF CARD Storage  2.31 PQ: 0 ANSI: 2
[426106.803758] sd 0:0:0:0: Attached scsi generic sg0 type 0
[426106.820687] sd 0:0:0:0: [sda] Attached SCSI removable disk

ここに ip addr

eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 0c:5b:8f:27:9a:64 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::584f:751f:bb3e:e26b/64 scope link 
       valid_lft forever preferred_lft forever

アップデート2

eth1ルートが表示されるまで、さらに数回取り付けました。

[10787.229141] usb 1-1.5: new full-speed USB device number 7 using dwc_otg
[10787.363515] usb 1-1.5: New USB device found, idVendor=05e3, idProduct=0606
[10787.363533] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[10787.363544] usb 1-1.5: Product: USB Hub 2.0
[10787.363555] usb 1-1.5: Manufacturer: ALCOR
[10787.365166] hub 1-1.5:1.0: USB hub found
[10787.369831] hub 1-1.5:1.0: 4 ports detected
[10797.419094] usb 1-1.5.1: new full-speed USB device number 8 using dwc_otg
[10797.555636] usb 1-1.5.1: not running at top speed; connect to a high speed hub
[10797.565759] usb 1-1.5.1: New USB device found, idVendor=12d1, idProduct=1f01
[10797.565777] usb 1-1.5.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[10797.565789] usb 1-1.5.1: Product: HUAWEI_MOBILE
[10797.565799] usb 1-1.5.1: Manufacturer: HUAWEI_MOBILE
[10797.565808] usb 1-1.5.1: SerialNumber: 0123456789ABCDEF
[10797.630477] usb-storage 1-1.5.1:1.0: USB Mass Storage device detected
[10797.631101] scsi host0: usb-storage 1-1.5.1:1.0
[10798.472745] usb 1-1.5.1: USB disconnect, device number 8
[10799.469081] usb 1-1.5.1: new full-speed USB device number 9 using dwc_otg
[10799.630768] usb 1-1.5.1: not running at top speed; connect to a high speed hub
[10799.646891] usb 1-1.5.1: New USB device found, idVendor=12d1, idProduct=14dc
[10799.646909] usb 1-1.5.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[10799.646920] usb 1-1.5.1: Product: HUAWEI_MOBILE
[10799.646930] usb 1-1.5.1: Manufacturer: HUAWEI_MOBILE
[10799.814489] usb-storage 1-1.5.1:1.2: USB Mass Storage device detected
[10799.815008] scsi host0: usb-storage 1-1.5.1:1.2
[10799.897788] cdc_ether 1-1.5.1:1.0 eth1: register 'cdc_ether' at usb-3f980000.usb-1.5.1, CDC Ethernet Device, 0c:5b:8f:27:9a:64
[10799.898127] usbcore: registered new interface driver cdc_ether
[10800.889652] scsi 0:0:0:0: Direct-Access     HUAWEI   TF CARD Storage  2.31 PQ: 0 ANSI: 2
[10800.910585] sd 0:0:0:0: Attached scsi generic sg0 type 0
[10800.923297] sd 0:0:0:0: [sda] Attached SCSI removable disk

ここに route -n

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 wlan0
0.0.0.0         192.168.8.1     0.0.0.0         UG    207    0        0 eth1
0.0.0.0         192.168.1.1     0.0.0.0         UG    303    0        0 wlan0
169.254.0.0     0.0.0.0         255.255.0.0     U     202    0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     204    0        0 docker0
169.254.0.0     0.0.0.0         255.255.0.0     U     206    0        0 veth4557ad2
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U     303    0        0 wlan0
192.168.8.0     0.0.0.0         255.255.255.0   U     207    0        0 eth1

to をラズベリーifmetric wlan0に使用できるようにするために行ったことを確認してくださいwlan0ssh

更新09/10:

allow-hotplug wlan0
iface wlan0 inet dhcp
    up ifmetric wlan0 0
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

これで私のwlan0メトリックが0になることはありません。何が問題なのですか?


1
最初のステップは、4Gモデムがデフォルトルートを取得する理由を見つけることです。DHCPを実行しますか?はいの場合は、それを呼び出すもの(ネットワークマネージャー?従来のifup / ifdown?)を見つけ、その特定のインターフェイスにデフォルトルートを設定しないようにその呼び出しでdhclientなどを構成します。
Dirkt 2018

@dirktはUSBドングルなので、接続すると、デフォルトで新しいインターフェースを取得します。/ etc / network / interfacesのeth1にはルールはありませんが、これはそれに割り当てられているイーサネットデバイスです。なぜなのかご存知ですか?DHCPを実行するかどうかはわかりませんが、インターフェイスはかなりシンプルで、変更または確認する高度なものはありません。huawei社のモデムです。助けてくれませんか?
Guerlando OCs

1
USBドングル(stackoverflowで適切にフォーマットするために4つのスペースをインデント)を差し込んだ後dmesg、syslog(journalctlsystemdを使用している場合は使用)の出力で質問を編集してください。
18

@dirkt誰かに4Gモデムを接続してもらうようになったら、すぐにdmesgを投稿します。それまでの間、ルーターにIPアドレスを付与しているものを見つけるにはどうすればよいですか?私はdebianベースのraspbianを使用しているので、何かアイデアはありますか?
Guerlando OCs

通常、IPアドレスはDHCP経由で、通常はを呼び出して取得しますdhclientモデムがポイントツーポイントプロトコルを使用している場合は、このプロトコルから取得します。ログのどこかに表示されるはずです。そのため、ログを要求していました。RaspPiに物理的にアクセスできない場合(これについては言及していません)、ip linkまたはip addrポイントツーポイントプロトコルかどうかも表示する必要があります(おそらく冗長モードが必要です)。
18

回答:


5

インターフェースのルーティング優先度を変更するには、メトリックを変更します。

デフォルトでは、すべて0であり、これが最高の優先順位です。だから、あなたは行うことができます:

allow-hotplug eth1
iface eth1 inet dhcp
    up ifmetric eth1 30

ifmetricDebianで使用するには、それをインストールする必要があります。

sudo apt-get install ifmetric

ifmetric

ネットワークインターフェースのルーティングメトリックを設定する

ifmetricは、特定のネットワークインターフェイスに接続されているすべてのIPv4ルートのメトリックを一度に設定するためのLinuxツールです。これは、インターフェースを介したIPv4トラフィックのルーティングの優先順位を変更するために使用できます。メトリックが低いほど、優先度は高くなります。

メトリック0は最も優先度の高いルートを意味し、デフォルトのルートです。メトリック値が大きいほど、優先度の低いルートを意味します。最も低いメトリック値を持つアクティブなインターフェースのIPアドレスが、発信元のIPアドレスになります。ifmetric(8)を参照してください。


1
他のインターフェイスが存在する場合に、DHCPを無視するのではなく、特定のインターフェイスからDHCPを取得するのに役立つ理由も説明する必要があります。
18

@dirkt dhcpについてもっと説明してくれませんか?現在、iface wlan0 inetのマニュアルをifmetric wlan0 0に設定していますが、wlan0メトリックが0と表示されません
Guerlando OCs

1

これは、デフォルトルートを上書きする方法の古き良き問題です。

IPv4の最も簡単な方法は、メトリック/優先順位を変更しようとせず、ルートを分割することです。

ip route add 0.0.0.0/1 via wlan0-gw
ip route add 128.0.0.0/1 via wlan0-gw

これが機能する理由は、ルーティングテーブルのルックアップが最長一致プレフィックス検索を使用して実行されるためです。ルートメトリックは、同等のルートが2つある場合にのみ機能します。この場合、これらの2つのルートには、デフォルトルートの0ビットプレフィックス(0.0.0.0/0)よりも長い1ビットプレフィックスがあり、最初に参照されます。これら2つのルートは0.0.0.0/0全体をカバーするため、デフォルトルートよりも常に優先されます。

別のアプローチは、希望するデフォルトルートを使用して別のルーティングテーブルを使用し、そこにすべてのトラフィックを送信するルールを追加することです。私はipルールに干渉する自動化を見たことがないので、他にどのようなルートを追加してもかまいません。ここでの問題は、自動化が追加のルートを挿入できないことです。

したがって、tl; dr:

iface wlan0 inet manual
    up ip route add 0.0.0.0/1 via wlan0-gw
    up ip route add 128.0.0.0/1 via wlan0-gw
    ....

または(ただし、他のすべてのルートを「表5」に追加する必要があります):

iface wlan0 inet manual
    up ip rule add to 0.0.0.0/0 table 5
    up ip route add default via wlan0-gw table 5
    ....

0

ip route add/deldebianで永続化する1つの方法は、/etc/network/interfaces以下のように書き留めることです。

allow-hotplug eth1
iface eth1 inet dhcp
    post-up ip route del default
    post-up ip route add default via <gateway IP> dev wlan0

このようにすると、各インターフェイスにデフォルトゲートウェイが追加されるだけで、どのゲートウェイが好ましく使用されるかは
わかり

了解しました。デフォルトを除外し、wlan0に1を追加します。しかし、eth0のデフォルトも追加されませんか?
Guerlando OCs

0

デフォルトゲートウェイの問題だと思います。こちらがチュートリアルです。

手順を簡単に説明します。まず、デフォルトゲートウェイを削除して、追加するゲートウェイを追加する必要があります。次に、「/ etc / network / interfaces」を編集して永続的に変更します。最後に、サービスを再起動します。

https://www.wikihow.com/Add-or-Change-the-Default-Gateway-in-Linux

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.