我刚刚从 16.04 切换到 18.04,并且在进行无线漫游时遇到了问题。我的用例涉及大量漫游,我需要使漫游尽可能透明(理想情况下 < 50 毫秒)。
我有一个wpa_supplicant.conf
设置为使用FT-PSK
(802.11r)的文件,该文件在 16.04 上运行良好,但现在升级后似乎以某种方式与网络冲突。现在,在每次漫游时,都会断开连接,并完成完整的重新连接/身份验证。
首先,这是我得到的“错误”:
Oct 09 10:07:07.092601 p3-1337 wpa_supplicant[724]: wlp2s0: CTRL-EVENT-SIGNAL-CHANGE above=0 signal=-68 noise=9999 txrate=6000
Oct 09 10:07:07.153867 p3-1337 wpa_supplicant[724]: wlp2s0: SME: Trying to authenticate with f2:cb:ac:8a:e4:be (SSID='<ssid>' freq=5540 MHz)
Oct 09 10:07:07.157115 p3-1337 kernel: wlp2s0: disconnect from AP f2:cb:ac:8a:e8:1f for new auth to f2:cb:ac:8a:e4:be
Oct 09 10:07:07.161137 p3-1337 kernel: wlp2s0: authenticate with f2:cb:ac:8a:e4:be
Oct 09 10:07:07.164717 p3-1337 kernel: wlp2s0: send auth to f2:cb:ac:8a:e4:be (try 1/3)
Oct 09 10:07:07.165019 p3-1337 systemd-networkd[517]: wlp2s0: Lost carrier
Oct 09 10:07:07.165029 p3-1337 systemd-networkd[517]: wlp2s0: DHCP lease lost
Oct 09 10:07:07.165457 p3-1337 avahi-daemon[655]: Withdrawing address record for 10.101.65.100 on wlp2s0.
Oct 09 10:07:07.165481 p3-1337 avahi-daemon[655]: Leaving mDNS multicast group on interface wlp2s0.IPv4 with address 10.101.65.100.
Oct 09 10:07:07.165500 p3-1337 avahi-daemon[655]: Interface wlp2s0.IPv4 no longer relevant for mDNS.
Oct 09 10:07:07.191354 p3-1337 wpa_supplicant[724]: FT: Failed to set PTK to the driver
Oct 09 10:07:07.191375 p3-1337 wpa_supplicant[724]: wlp2s0: Trying to associate with f2:cb:ac:8a:e4:be (SSID='<ssid>' freq=5540 MHz)
Oct 09 10:07:07.193143 p3-1337 kernel: wlp2s0: authenticated
Oct 09 10:07:07.193183 p3-1337 kernel: wlp2s0: associate with f2:cb:ac:8a:e4:be (try 1/3)
Oct 09 10:07:07.197111 p3-1337 kernel: wlp2s0: RX ReassocResp from f2:cb:ac:8a:e4:be (capab=0x1511 status=0 aid=2)
Oct 09 10:07:07.201117 p3-1337 kernel: wlp2s0: associated
Oct 09 10:07:07.201715 p3-1337 wpa_supplicant[724]: wlp2s0: Associated with f2:cb:ac:8a:e4:be
Oct 09 10:07:07.201741 p3-1337 wpa_supplicant[724]: wlp2s0: WPA: Key negotiation completed with f2:cb:ac:8a:e4:be [PTK=CCMP GTK=CCMP]
Oct 09 10:07:07.201753 p3-1337 wpa_supplicant[724]: wlp2s0: CTRL-EVENT-CONNECTED - Connection to f2:cb:ac:8a:e4:be completed [id=0 id_str=]
Oct 09 10:07:07.201833 p3-1337 systemd-networkd[517]: wlp2s0: Gained carrier
Oct 09 10:07:07.203939 p3-1337 wpa_supplicant[724]: wlp2s0: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
Oct 09 10:07:07.205485 p3-1337 wpa_supplicant[724]: wlp2s0: CTRL-EVENT-SIGNAL-CHANGE above=1 signal=-58 noise=9999 txrate=6000
Oct 09 10:07:07.229116 p3-1337 kernel: wlp2s0: Limiting TX power to 21 (24 - 3) dBm as advertised by f2:cb:ac:8a:e4:be
Oct 09 10:07:11.067584 p3-1337 systemd-networkd[517]: wlp2s0: DHCPv4 address 10.101.65.100/18 via 10.101.64.1
Oct 09 10:07:11.067663 p3-1337 avahi-daemon[655]: Joining mDNS multicast group on interface wlp2s0.IPv4 with address 10.101.65.100.
Oct 09 10:07:11.067960 p3-1337 avahi-daemon[655]: New relevant interface wlp2s0.IPv4 for mDNS.
Oct 09 10:07:11.067973 p3-1337 avahi-daemon[655]: Registering new address record for 10.101.65.100 on wlp2s0.IPv4.
Oct 09 10:07:11.068265 p3-1337 systemd-networkd[517]: wlp2s0: Configured
我认为这显示了网络清理在漫游中的接口,因此需要建立一个全新的连接。以前没有 DHCP 请求,所以我知道这是一个新的变化。
网络计划配置
network:
ethernets:
enp1s0:
addresses:
- 1.2.3.4/24
- 1.2.4.5/24
wlp2s0:
dhcp4: true
version: 2
wpa_supplicant 配置
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
country=us
filter_ssids=1
# We don't use p2p networks so we can disable this to speed up startup.
p2p_disabled=1
# Not used if 802.11r works but speeds up roam when it doesn't.
okc=1
network={
ssid="dummy_ssid"
psk="notarealpassword"
# Increase scanning frequency when signal goes below -65dBm.
bgscan="simple:10:-65:300"
# Enable 802.11r to get fast roams
key_mgmt=FT-PSK
proto=RSN
pairwise=CCMP
group=CCMP
}
有什么想法吗?我意识到这是一个小众用例,所以我应该从使用网络恢复吗?
长话短说,4.20 中引入的内核发生了变化,每次发生 wifi 漫游时都会清除 ARP 缓存,这反过来又会导致我看到的大延迟。我提到的其他错误是“正常的”。
https://unix.stackexchange.com/questions/666620/send-delay-after-wifi-roam/685883