私はArch Linux(Raspberry Pi 3)を実行しており、イーサネットとWi-Fiを同じネットワークに接続しようとしています。route
以下を見せてください:
$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 1024 0 0 eth0
default gateway 0.0.0.0 UG 1024 0 0 wlan0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
gateway 0.0.0.0 255.255.255.255 UH 1024 0 0 eth0
gateway 0.0.0.0 255.255.255.255 UH 1024 0 0 wlan0
ip addr
以下を見せてください:
$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether b8:27:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
inet 192.168.1.103/24 brd 192.168.1.255 scope global dynamic eth0
valid_lft 85717sec preferred_lft 85717sec
inet6 fe80::ba27:ebff:fee4:4f60/64 scope link
valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether b8:27:YY:YY:YY:YY brd ff:ff:ff:ff:ff:ff
inet 192.168.1.102/24 brd 192.168.1.255 scope global dynamic wlan0
valid_lft 85727sec preferred_lft 85727sec
inet6 fe80::ba27:ebff:feb1:1a35/64 scope link
valid_lft forever preferred_lft forever
wlan0
インターフェイスはeth0
ルータから IP アドレスを取得できます。
しかし、これらのインターフェイスの1つだけが機能することがわかりました。他のインターフェイスをpingできず、接続できません。通常、イーサネットは動作しますが、Wi-Fiが動作する場合もあります。
どうしたの?これを行うにはどうすればよいですか?
答え1
ご存知のように、ルーティングの観点からは可能ですが、異なるインターフェイスに同じネットワークのアドレスを持つことは理想的ではありません。
ルーティングはインターフェイスごとに異なるネットワークを必要とし、最終的にはどちらかが重複するため、ルーティングは他のネットワークよりも優先されます。
複数のインターフェイスを同じネットワークに接続するための推奨ソリューションは、それをブリッジインターフェイスに統合することです。
ブリッジインターフェイスはIPアドレスを「所有」し、実際の物理インターフェイスは仮想単一エンティティの下にグループ化されますbr0
。
allow-hotplug eth0
iface eth0 inet manual
allow-hotplug wlan0
iface wlan0 inet manual
auto br0
iface br0 inet dhcp
bridge_ports eth0 wlan0
答え2
これは完全な解決策ではなく付録に近いです。 [コメントするには「評判ポイント」が足りません。 ]
まず、両方のインターフェイスが独立して動作するようにする必要があります。その後、ブリッジングの代わりに2つのインターフェイス間の発信接続の負荷を分散できます。
https://www.tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.rpdb.multiple-links.html
私は、ネットワーク管理者が設定したデフォルトのインターネットパスを持つ2つのデバイスで始めました。
❯ ip route
default via 192.168.0.1 dev eno1 proto dhcp metric 100
default via 192.168.0.1 dev wlp4s0 proto dhcp metric 600
169.254.0.0/16 dev wlp4s0 scope link metric 1000
192.168.0.0/24 dev eno1 proto kernel scope link src 192.168.0.246 metric 100
192.168.0.0/24 dev wlp4s0 proto kernel scope link src 192.168.0.213 metric 600
その後、ロードバランシングで説明されているコマンドを使用しました。
https://www.tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.rpdb.multiple-links.html
❯ P1=192.168.0.1
❯ P2=192.168.0.1
❯ IF1=eno1
❯ IF2=wlp4s0
❯ ip route add default scope global nexthop via $P1 dev $IF1 weight 1 \
nexthop via $P2 dev $IF2 weight 1
人! 2つのデバイスを介して接続されています。
❯ ip route
default
nexthop via 192.168.0.1 dev eno1 weight 1
nexthop via 192.168.0.1 dev wlp4s0 weight 1
default via 192.168.0.1 dev eno1 proto dhcp metric 100
default via 192.168.0.1 dev wlp4s0 proto dhcp metric 600
169.254.0.0/16 dev wlp4s0 scope link metric 1000
192.168.0.0/24 dev eno1 proto kernel scope link src 192.168.0.246 metric 100
192.168.0.0/24 dev wlp4s0 proto kernel scope link src 192.168.0.213 metric 600
接続に問題があると、デバッグがより困難になる可能性があります。)
そして、特にNetwork Managerと一緒に再起動した後でも設定を維持する方法がまだわかりません。