A interface Wifi funciona, mas mostra o tipo de link Ethernet

A interface Wifi funciona, mas mostra o tipo de link Ethernet

Estou executando o Archlinux e tenho uma configuração de interface Wifi funcional com netctl:

Description='Automatically generated profile by wifi-menu'
Interface=wlp3s0
Connection=wireless
Security=wpa
ESSID=ZyXEL3C58C2
IP=dhcp
Key=XXXXXXXXXXXX

Porém quando executo ip link, o tipo de link aparece como link/ether:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s25: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
    link/ether f0:de:f1:d4:7e:89 brd ff:ff:ff:ff:ff:ff
3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether 10:0b:a9:c0:3b:80 brd ff:ff:ff:ff:ff:ff

Isso geralmente não é um problema, mas estou tentando escrever um software de rede sensível a diferentes tipos de link e o sistema retorna link/etherem vez do esperado link/iee802.11.

Por que isso poderia estar ocorrendo?

O computador é um Lenovo Thinkpad X220, usando os módulos iwlwifi e iwldvm para rede sem fio.

Responder1

Isso é normal. Por padrão, Wi-Fiédestinado a fornecer uma camada MAC compatível com Ethernet (bem, compatível com 802.3). Do IEEE 802.11-2016 (gratuitamente através do IEEE GET):

4.2.5 Interação com outras camadas IEEE 802®

O IEEE Std 802.11 é necessário para aparecer nas camadas superiores [controle de link lógico (LLC)] como uma LAN IEEE 802 de uso geral.

Portanto, é normal que os protocolos de camada superior tratem o Wi-Fi como Ethernet e o sistema operacional reescreva de forma transparente o cabeçalho L2 em um quadro de dados. Isso permite até mesmo que os APs (como o seu roteador doméstico) conectem o Wi-Fi à Ethernet de forma transparente, sem nenhum esforço adicional.

Para acessar recursos específicos de Wi-Fi (por exemplo, autenticação WPA por wpa_supplicant), o Linux fornece APIs Netlink (nl80211), bem como ioctls WEXT obsoletos. Veja o código-fonte de iw, wpa_supplicante iwdpara obter exemplos – ou de fato, considere se você pode fazer o que quiser usando a própria API do wpa_supplicant.


Para enviar e receberrealQuadros 802.11, habilite o modo monitor para a interface:

iw phy phy0 interface add mon0 type monitor
iw dev mon0 set monitor control otherbss
iw dev mon0 set channel 11
ip link set mon0 up

Resultado:

8: mon0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/ieee802.11/radiotap 48:5d:60:e8:65:8f brd ff:ff:ff:ff:ff:ff

Verdocumentação do aircrack-ngpara uma possível ferramenta de injeção de pacotes.

Observe queDe jeito nenhumOs adaptadores WLAN suportam injeção de pacotes ou até mesmo modo monitor em geral. (Você terá mais sorte com dispositivos "SoftMAC", como o ath9k, do que com os "FullMAC", pois eles lidam com tudo no firmware. Ainda não descobri como fazer meu iwlwifi exibir quadros de beacon.)

informação relacionada