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

1

Estou executando o Archlinux e tenho uma configuração de interface Wi-Fi funcionando com o netctl:

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

No entanto, 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 gravar softwares de rede sensíveis a diferentes tipos de links e o sistema retorna link/ether em vez do esperado link/iee802.11 .

Por que isso pode acontecer?

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

    
por Josh Taylor 08.03.2018 / 17:33

1 resposta

1

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

4.2.5 Interaction with other IEEE 802® layers

IEEE Std 802.11 is required to appear to higher layers [logical link control (LLC)] as a general-purpose IEEE 802 LAN.

Portanto, é normal que os protocolos de camada superior tratem o Wi-Fi como Ethernet e o sistema operacional reescreve de forma transparente o cabeçalho L2 em um quadro de dados. Isso permite que os APs (como o roteador doméstico) interliguem de maneira transparente o Wi-Fi à Ethernet 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 de Netlink (nl80211) e WOCT ioctls obsoletos. Veja o código-fonte de iw , wpa_supplicant e iwd para exemplos - ou, de fato, considere se você pode fazer o que quiser usando a própria API do wpa_supplicant.

Para enviar e receber quadros real 802.11, ative 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

Veja documentação do aircrack-ng para uma possível ferramenta de injeção de pacotes.

Note que não todos adaptadores WLAN suportam a injeção de pacotes, ou mesmo o modo monitor em geral. (Você terá mais sorte com dispositivos "SoftMAC", como o ath9k, do que com o "FullMAC", pois eles lidam com tudo no firmware. Ainda não descobri como fazer meus quadros de beacon de exibição iwlwifi.)

    
por 08.03.2018 / 18:44