저는 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 주소를 얻을 수 있습니다.
그러나 이러한 인터페이스 중 하나만 작동하는 것으로 나타났습니다. 다른 인터페이스를 핑할 수 없고 연결할 수 없습니다. 일반적으로 이더넷이 작동하지만 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
이는 완전한 솔루션이라기보다는 부록에 가깝습니다. [댓글을 달기에는 '평판 포인트'가 부족해서요. ]
먼저 두 인터페이스가 독립적으로 작동하도록 해야 합니다. 그런 다음 브리징 대신 두 인터페이스 간의 나가는 연결의 부하를 분산할 수도 있습니다.
https://www.tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.rpdb.multiple-links.html
저는 네트워크 관리자가 구성한 기본 인터넷 경로가 있는 두 장치로 시작했습니다.
❯ 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
사람! 두 개의 장치를 통해 연결되어 있습니다.
❯ 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와 함께 재부팅 후에도 구성을 유지하는 방법을 아직 모릅니다.