Blindly bridging wireless client com MAC NAT

1

Esta é a pergunta usual "Quero interligar o Wi-Fi com ethernet", mas preciso de algo específico aqui.

Minha caixa do Linux tem uma interface wlan0 que está no modo de estação, com MAC aa:aa:aa:aa:aa:aa e uma interface de VLAN ( vlan0 ) com MAC bb:bb:bb:bb:bb:bb . Apenas um host específico está falando comigo pela VLAN, portanto, todos os pacotes que chegam da VLAN terão o endereço MAC de origem cc:cc:cc:cc:cc:cc .

E devido ao enquadramento de três endereços no WiFi, todos os pacotes que chegam de wlan0 terão o endereço MAC de destino aa:aa:aa:aa:aa:aa . Isso está certo ou estou simplificando demais?

O que eu quero fazer é uma ponte MAC NAT simples, na qual:

  1. Um pacote proveniente de wlan0 obtém seu MAC de destino alterado para cc:cc:cc:cc:cc:cc e enviado cegamente por VLAN.

    Got from wlan0                       Sent through vlan0
    SRC: whatever it is                  SRC: whatever it is
    DST: aa:aa:aa:aa:aa:aa      -->      DST: cc:cc:cc:cc:cc:cc
    (payload)                            (payload)
    
  2. Um pacote vindo de vlan0 obtém seu MAC de origem alterado para aa:aa:aa:aa:aa:aa e enviado cegamente por wlan0 .

    Sent through wlan0                   Got from vlan0
    SRC: aa:aa:aa:aa:aa:aa               SRC: cc:cc:cc:cc:cc:cc
    DST: whatever it is         <--      DST: whatever it is
    (payload)                            (payload)
    
  3. As respostas recebidas do ARP de vlan0 também atualizam o MAC do ARP. Exemplo:

    Sent through wlan0                   Got from vlan0
    SRC: aa:aa:aa:aa:aa:aa               SRC: cc:cc:cc:cc:cc:cc
    DST: whatever it is         <--      DST: whatever it is
    1.2.3.4 can be found at              1.2.3.4 can be found at
    aa:aa:aa:aa:aa:aa                    cc:cc:cc:cc:cc:cc
    

ebtables soa como a maneira perfeita de fazer isso ... se eu pudesse unir as duas interfaces juntas.
Qualquer ideia? Eu já ouvi falar sobre relayd , isso poderia ajudar?

    
por Alba Mendez 13.12.2014 / 12:21

0 respostas