OpenWrt 빠른 와이파이 로밍(802.11r fast wifi roaming)

모바일 기기의 급격한 증가와 인터넷 보급, 그로인해 와이파이는 우리의 일상이 되어 버렸습니다. 그러나 와이파이를 사용하면서 아직 만족스럽지 못한것 중에 하나는 무선 범위 확장과 로밍 문제일겁니다.

이러한 문제로 와이파이 무선범위를 확장하기 위해 일반적으로 개인사용자들 사이에서는 리피터(Repeater)를 구성하거나 확장기(Extender)라는 장치를 많이 사용하고 있습니다. 그러나 리피터나 확장기는 와이파이 통신으로 라우터의 신호를 받아서 다시 송출하는 방식을 사용하다 보니 속도나 지연율 등 통신 품질에서 손해가 발생하고 클라이언트 기기 이동에 따른 로밍이 불편합니다. 그래서 요즘 상업용 메쉬 라우터라고 광고하는 제품들이 각광을 받고 있지만, 이 또한 Wi-Fi Alliance의 오랜 IEEE 802.11s 표준 및 이후의 Wi-Fi EasyMesh 표준에도 불구하고 대부분의 Mesh AP는 서로 다른 제조사 제품간에 호환되지 않습니다. 그리고 구매 측면에서 여전히 비쌉니다.

여기 대안이 있습니다. 상용 라우터에 있는 유선 메쉬와 같은 개념으로 AP에 빠른 로밍(IEEE 802.11r Fast Roaming)을 접목시켜서 AP에 연결된 장치가 다른 AP로 연결 전환(로밍)을 할 때 FT(Fast Basic Service Set Transition)라는 기능을 사용하여 더욱 신속하게 인증함으로써 사용자가 로밍에 따른 접속 단절을 느끼지 못할 정도로 하여 무선범위 확장 및 로밍문제를 해결하는 것입니다.

(사실 메시는 라우터 간 무선 연결을 위한 것으로 유선 백홀이 있는 경우 굳이 메시가 필요하지 않습니다. 많은 상업용 메시 제품이 일종의 향상된 로밍(IEEE 802.11r Fast Roaming)을 구현하고 마케팅 수단으로 이용되기 때문에 이 점에 대해 혼란스러운데 이는 메시 프로토콜의 일부가 아니며 해당 제품의 AP 인터페이스가 수행하는 작업입니다.)

개념

빠른 로밍

사전준비

일러두기

  • 소규모 지역의 경우 기존 라우터에 AP를 추가하는 것보다 라우터를 업그레이드하는 것이 더 나은 해결책일 수 있습니다.
  • 로밍의 결정은 라우터나 AP가 아닌 전적으로 클라이언트가 신호의 강도 등을 고려해 결정합니다.
  • AP / 메시 포인트를 과도하게 사용 하지 마세요 - 너무 좁은 영역에 AP가 너무 많으면 끔찍한 로밍 동작을 보장 할 수 있습니다. 또한 일부 장치는 로밍을 하지 않을 수도 있습니다.
  • 클라이언트가 아닌 OpenWrt 라우터에서 신호가 좋지 않을 때 클라이언트의 연결을 끊고 다른 AP를 전환하도록하는 스크립트 사용을 고려할 수 있습니다.

설치

main router 및 sub AP에 각각 wpad-mini를 삭제하고 802.11r 기능이 포함되어 있는 wpad 또는 wpad-mesh-openssl 패키지를 설치합니다. (추후 mesh 이용을 위해서 wpad-mesh-openssl을 설치)

opkg install wpad-mesh-openssl --download-only && opkg remove wpad-mini && opkg install wpad-mesh-openssl --cache . && rm *.ipk

설정

wifi 5g를 로밍하는 설정입니다. 2.4g는 각자 환경을 고려해 설정하세요.

  • main router 및 sub AP는 동일한 ssid, password, encryption, mobility_domain으로 설정합니다.
  • mobility_domain은 16진수 4자리로 아무번호를 넣을수 있으나 main router와 sub AP 입력값은 같아야 합니다.
  • channel은 서로 다르게 설정하되 5g의 경우 dfs 채널은 피해서 선택합니다.
  • FT protocol은 FT over the Air를 선택합니다.

FT over the Air 와 FT over the DS(Distribution System)
무선 클라이언트가 Fast Transition 로밍을 사용하여 로밍 할 대상 AP와 통신하는 방법에는 두 가지가 있으며,이 두 가지 방법은 FT over the Air 및 FT over the DS입니다.

FT over the Air : 클라이언트는 FT 인증 알고리즘과 함께 IEEE 802.11 인증을 사용하여 대상 AP와 직접 통신합니다.

FT over the DS : 클라이언트는 현재 AP를 통해 대상 AP와 통신합니다. 클라이언트와 타겟 AP 사이의 통신은 클라이언트와 현재 AP 사이의 FT 액션 프레임으로 전달 된 다음 컨트롤러를 통해 전송됩니다 .

luci로 설정한 main router의 wireless 설정입니다. sub AP도 같은 방법으로 channel만 다르게 설정합니다.

OpenWrt wifi fast roaming setting
config wifi-device 'radio0'
        option type 'mac80211'
        option path 'soc/1b500000.pci/pci0000:00/0000:00:00.0/0000:01:00.0'
        option hwmode '11a'
        option htmode 'VHT80'
        option channel '36'
config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option key '$tr0ngp@ssw0rd'
        option ssid 'OpenWrt50'
        option encryption 'psk2'
        option ft_over_ds '0'
        option mobility_domain '4f57'
        option ft_psk_generate_local '1'
        option ieee80211r '1'
...
Code language: Lua (lua)

설정이 완료된 sub AP의 /etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option path 'soc/1b500000.pci/pci0000:00/0000:00:00.0/0000:01:00.0'
        option hwmode '11a'
        option htmode 'VHT80'
        option channel '157'
config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option key '$tr0ngp@ssw0rd'
        option ssid 'OpenWrt50'
        option encryption 'psk2'
        option ft_over_ds '0'
        option mobility_domain '4f57'
        option ft_psk_generate_local '1'
        option ieee80211r '1'
...
Code language: Lua (lua)

재시작

/sbin/wifi down
/sbin/wifi up

참고사이트

10 thoughts on “OpenWrt 빠른 와이파이 로밍(802.11r fast wifi roaming)”

  1. main에 해당하는 장비가 AP 기능이 없어도 가능한 셋팅인지요?

    대부분의 경우 모뎀에 직결된 공유기는 단자함이 있는 구석에 쳐박아 두는게 일반적이라..

    응답
    • 메인 공유기는 단자함에 들어가 있고
      밖에 나와있는 서브공유기 2~3대로 빠른로밍을 구현한다는 말씀이시죠?
      저희집이 좁아서 테스트해보지는 않았지만 메인공유기와 무관하게 서브 ap끼리 빠른로밍이 가능할 것 같습니다.

      참고로 단자함의 메인공유기가 단자함에 들어가 ap를 꺼두신거라면
      그리고 거실에 최소 2개 라인이 포설되어 있는 상황이라면
      메인공유기를 스위치로 교체하는게 좋을것 같습니다.
      이런식으로요
      isp—모뎀(단자함)—메인공유기(거실)—스위치(단자함)—방1/방2/방3

      응답
  2. 그렇다면 모뎀에 직결된 공유기는 그냥 유선공유기로만 셋팅하면 되고,
    sub AP 중에 하나를 main으로 따로 지정하면 된다는 뜻으로 해석되는군요.

    사실 궁금했던건 모뎀에 직결된 공유기가 무선을 지원하지 않는 기종이어도 fast roaming 기능을 하는 main 으로 동작가능한지가 궁금했습니다.

    실제로는 듀얼 랜포트가 내장된 메인보드이고 x86_64 버전의 OpenWRT가 올라가 있는 상황입니다.
    당연히 무선랜은 없습니다.

    응답
    • 제가 그림상에 표현한 개념도 때문에 오해의 소지가 있었던 것 같습니다.

      main이 wifi를 지원하지 않더라도(main은 nat, dhcp, firewall, gateway 만 수행)
      내부 네트워크에 있는 ap끼리 빠른로밍을 설정하면 빠른로밍을 수행할 것으로 보입니다.
      fast roaming 설정 자체가 main이냐 sub냐를 따지지 않고(main에서 통제하는것이 아니라) mobility_domain 으로 식별하는것이기 때문에
      메인의 wifi 여부와 상관없다고 보여집니다.(다만 직접 테스트를 한것이 아니기 때문에 100%라고 말씀드릴 수는 없네요)

      응답
    • 제가 장담할수는 없지만 아마 힘들겁니다.
      통신사나 주요 제조사에서 생산하는 공유기는 안정성이나 as편의 등을 위해 설정을 복잡하게 만들지 않아요. 사용자가 임의로 설정을 변경할까봐 시스템 접근을 어렵게 하기도 하고 펌웨어도 달라서 따로 정보를 가지고 있지 않으면 어려울 것 같습니다.

      응답
      • 혹시나 해서 ap 이름 같게 하고 통신사 공유기를 ap이름 을 같게 브릿지모드로 설정해서 해봤는데 안되더군요. 애초에 802.11r 미지원 인듯 하더라구요.
        다른 질문인데, sticky client 문제는 본문에 있는 방법말고는 해결법이 없을까요 신호가 -90dbm 으로 내려가도 신호가 더 좋은 쪽으로 연결이 되지 않네요…

        응답
        • 안녕하세요.

          고정클라이언트 관련해서는 제가 어디서 언급한것 같은데 wifi 로밍의 결정은 순전히 클라이언트가 결정합니다.
          ap는 클라이언트에게 언제 로밍할지 알려주지 않습니다.
          이는 ap가 로밍 결정을 강제하는데 사용할 수 있는 옵션이 많지 않다는 것이죠.

          사용할 수 있는 옵션중 몇가지는 위에 소개한 802.11r과 802.11k의 neighbor report, 802.11v의 BSS 전환관리
          이것들에 대한 설정방법이나 소개는 openwrt user guide에서 찾을수 있을거예요

          그리고 rssi 수치를 이용해 연결을 제어할 수 있도록 하는 패키지 등이 있습니다.
          https://github.com/berlin-open-wireless-lab/DAWN (이것은 패키지화 되어 있는것 같습니다),
          https://github.com/barbieri/barbieri-playground/tree/master/openwrt/wifi-disconnect-low-signal

          응답

Leave a Comment