임베디드 보드에서 wlan0과 eth0을 연결하려고 합니다. 보드는 Wi-Fi를 통해 내 집 AP에 연결되며 내 노트북을 브리지의 유선 다리에 연결하고 내 집 LAN과 인터넷에 액세스하려고 합니다. 전체 설정은 다음과 같습니다.
- 노트북 -> eth0 -> 브리지가 있는 임베디드 보드(Khadas VIM3L) -> wlan0 -> LAN *
지금까지 다음 명령을 사용하여 임베디드 보드의 wlan0과 eth0 인터페이스 사이에 브리지를 성공적으로 설정할 수 있었습니다.
# WIFI Connection on the khadas board
sudo nmcli device wifi connect ${MY-AP-SSID} password ${MY-AP-PASSWORD}
# Setting up the bridge on the khadas board
sudo iw dev wlan0 set 4addr on
sudo ip link set dev wlan0 up;
sudo ip link set dev eth0 up;
sudo ip addr flush wlan0;
sudo ip addr flush eth0;
sudo ip link add name br0 type bridge nf_call_iptables 0;
sudo brctl addif br0 eth0;
sudo brctl addif br0 wlan0;
sudo brctl stp br0 on;
sudo ip link set dev br0 up;
sudo dhclient -v br0;
임베디드 보드의 브리지가 작동 중인 것으로 보입니다.
khadas@Khadas:~$ sudo brctl show
bridge name bridge id STP enabled interfaces
br0 8000.70f754e4b567 yes eth0
wlan0
khadas@Khadas:~$ sudo ip addr
...
10: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 70:f7:54:e4:b5:67 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.248/24 brd 10.0.0.255 scope global dynamic br0
valid_lft 14194sec preferred_lft 14194sec
inet6 2001:1308:2830:6b00:85a1:a05c:6bf9:a94d/64 scope global temporary dynamic
valid_lft 86165sec preferred_lft 86117sec
inet6 2001:1308:2830:6b00:72f7:54ff:fee4:b567/64 scope global dynamic mngtmpaddr
valid_lft 86165sec preferred_lft 86165sec
inet6 fe80::72f7:54ff:fee4:b567/64 scope link
valid_lft forever preferred_lft forever
브리지는 작동하는 것 같지만 이더넷을 통해 보드에 연결된 랩탑에 대한 IP 임대를 얻을 수 없습니다.
내 노트북의 관점에서 보면:
❯ sudo dhclient -v enp0s31f6
[sudo] password for gabriel:
Internet Systems Consortium DHCP Client 4.4.3
Copyright 2004-2022 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/enp0s31f6/6c:24:08:a9:86:8c
Sending on LPF/enp0s31f6/6c:24:08:a9:86:8c
Sending on Socket/fallback
xid: warning: no netdev with useable HWADDR found for seed's uniqueness enforcement
xid: rand init seed (0x6435e938) built using gethostid
DHCPDISCOVER on enp0s31f6 to 255.255.255.255 port 67 interval 3 (xid=0x39f0361d)
...
임베디드 보드 및 브리지 관점에서 보면:
khadas@Khadas:~$ sudo tcpdump -i br0 -vv -n -e port 67 or port 68
tcpdump: listening on br0, link-type EN10MB (Ethernet), capture size 262144 bytes
17:25:13.340635 6c:24:08:a9:86:8c > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)
0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] BOOTP/DHCP, Request from 6c:24:08:a9:86:8c, length 300, xid 0x39f0361d, Flags [none] (0x0000)
Client-Ethernet-Address 6c:24:08:a9:86:8c
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message Option 53, length 1: Discover
Requested-IP Option 50, length 4: 10.0.0.88
Hostname Option 12, length 12: "ThinkPad-E15"
Parameter-Request Option 55, length 13:
Subnet-Mask, BR, Time-Zone, Default-Gateway
Domain-Name, Domain-Name-Server, Option 119, Hostname
Netbios-Name-Server, Netbios-Scope, MTU, Classless-Static-Route
NTP
...
DHCP 요청이 브리지에 도착하지만 내 집 AP로 전달되지 않는 것 같습니다.
무엇이 잘못될 수 있는지에 대한 아이디어가 있나요?