이론: WIFI 상위 인터페이스가 있는 TAP 인터페이스

이론: WIFI 상위 인터페이스가 있는 TAP 인터페이스

여러 개의 Linux TAP 인터페이스를 만들고 단일 WIFI 어댑터를 통해 패킷을 보내고 받을 수 있도록 하려고 합니다. 모든 의도와 목적을 위해 TAP 인터페이스가 완전한 네트워크 어댑터 역할을 하길 원합니다. 그들은 자신의 DHCP 주소를 요청하고 다른 네트워크 어댑터처럼 로컬 네트워크에서 상호 작용할 수 있어야 합니다.

나는 이더넷 어댑터를 사용하여 이를 달성했지만 WiFi는 다른 짐승이라고 들었습니다. 정확한 이유는 기억나지 않지만 "라디오 방송 주소당 IP 주소 1개"와 관련이 있었습니다.

TAP 인터페이스를 사용하여 WiFi 연결을 통해 네트워크를 브리지할 수 있습니까? Network Manager를 사용하여 수행할 수 있는 구성이 있습니까? 누군가가 기사 한두 개에 링크를 걸어줄 수 있나요? 나는 이것에 대해 아무것도 찾는 데 어려움을 겪고 있습니다.

답변1

이 네트워크 엔지니어링 SE 링크802.11 프레임 헤더에 있는 4개의 레이어 2 주소이더넷과 Wi-Fi의 차이점에 대한 훌륭한 설명입니다.

Wi-Fi에는 통신을 위해 추가 MAC 주소가 필요합니다. Wi-Fi에는 이더넷의 소스 MAC 및 대상 MAC와 동일한 발신자 주소(SA) 및 대상 주소(DA) 외에도 송신기 주소(TA) 및 수신기도 필요합니다. 작동할 주소( RA): 총 4개의 MAC 주소가 제공됩니다. 일반적인 경우는 클라이언트(STA)가 보낼 때 TA = SA, 액세스 포인트(AP)가 STA으로 보낼 때 DA = RA이므로 보통 3개의 주소만 필요하며, AP는 이렇게 구성됩니다. : 가능한 주소 4개 중 3개만 사용됩니다.

브리지 모드의 클라이언트는 위에서 TA != SA 또는 DA != RA를 의미하며 4개의 주소가 모두 필요한 반면, AP는 3개로만 구성됩니다. 이것이 일반적인 구성에서 Wi-Fi 브리징이 불가능한 이유입니다. 클라이언트 브리징이 작동하려면 AP 및 STA에서 4주소 모드를 활성화해야 합니다. 이것은 종종 호출됩니다.무선 분배 시스템(WDS)하지만 호환되지 않는 구현이 여러 개 있을 수 있습니다. AP와 모든 STA는 호환 가능한 구현을 사용해야 합니다.

그래서:

  • 시스템 브리지가 AP인 경우 문제 없이 Wi-Fi를 브리지할 수 있습니다. 이는 기본 3 주소 모드를 사용하여 모든 AP가 수행하는 작업입니다.

  • 브리지하려는 시스템이 STA(단순 클라이언트)인 경우 작동하지 않습니다. 최근 드라이버는 무선 인터페이스가 브리지 포트로 설정되는 것을 방지하기도 하며 다음과 같은 오류가 발생합니다.

    # ip link set wlan0 master bridge0
    Error: Device does not allow enslaving to a bridge.
    
  • 구성할 수 있는 경우둘 다AP와 STA를 호환 가능한 WDS에 통합합니다. 예를 들어 모든 장치가 Linux를 실행하고 드라이버가 mac80211과 호환되는 경우 다음을 통해 STA에서 이 기능을 활성화할 수 있습니다.

    # iw dev wlan0 set 4addr on
    

그런 다음 노예화될 수 있습니다.

    # ip link set wlan0 master bridge0
    # ip link show wlan0
    3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue master bridge0 state DOWN mode DEFAULT group default qlen 1000
    [...]

iw 명령을 사용하는 4-주소 모드에 대한 일부 문서는 Linux 무선 위키에서 찾을 수 있습니다.AP와 클라이언트 모드는 4개의 주소를 사용합니다.

AP 구성은 여기의 범위를 벗어납니다. 그것을 사용할 때주인, 활성화해야 하는 특정 설정이 있습니다.

# WDS (4-address frame) mode with per-station virtual interfaces
# (only supported with driver=nl80211)
# This mode allows associated stations to use 4-address frames to allow layer 2
# bridging to be used.
#wds_sta=1

단일 Wi-Fi 기본 모드(3개 주소 모드) 연결을 통해 별도의 IP가 있는 여러 컨테이너 또는 가상 머신을 동시에 사용할 수 있는 해결 방법도 있습니다.하나MAC 주소(STA의 주소로 사용됨): 따라서일반적으로 DHCP와 호환되지 않음기본적으로 MAC 주소에 의존합니다(DHCP 서버가 허용하지 않는 한).DHCP 클라이언트 식별자옵션). 그것은 알려져있다IPVLAN(컨테이너에 일반적으로 사용됨) 및 이에 상응하는 TAP(가상 머신에 일반적으로 사용됨)가 호출됩니다.IPVTAP. L2 모드에서 사용하면 표준 이더넷 인터페이스처럼 보이는 기능을 제공합니다.

(간단한IP 네트워크네트워크) 컨테이너, 호스트의 인터페이스를 사용하여 IP LAN 192.0.2.0/24의 게이트웨이 192.0.2.1과 Wi-Fi 연결을 설정한 후 다음과 같이 사용할 수 있습니다.무선랜 0:

# ip netns add testwifi
# ip link add link wlan0 name ipvl0 type ipvlan mode l2
# ip link set dev ipvl0 netns testwifi up
# ip -n testwifi address add 192.0.2.99/24 dev ipvl0
# ip -n testwifi route add default via 192.0.2.1
# ip netns exec testwifi ping -q -c1 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.

--- 8.8.8.8 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 5.372/5.372/5.372/0.000 ms

NetworkManager에 4주소 모드와 관련된 옵션이 있는지 심각하게 의심됩니다. 에 관해서는IPVLAN/IPVTAP이는 컨테이너/가상화 애플리케이션에서 지원되어야 합니다.LXC또는 실제로 NetworkManager에서 제공하지 않는 libvirt(기본적으로 IPVTAP를 지원하지 않는 것 같습니다).

관련 정보