GNU/Linux >> Linux Esercitazione >  >> Linux

Collegato al bridge wireless in Linux

I ponti semplificati:

C'è un progetto su sourceforge fatto apposta per la tua situazione. http://sourceforge.net/projects/bridger/ Arriva anche come pacchetto deb.

Per quanto riguarda l'eliminazione dei pacchetti:

  1. Hai controllato se iptables è impostato su default drop? sudo iptables --list dovrebbe dire "ACCETTA, ACCETTA, ACCETTA" per una casella di questo tipo. Se questo è il problema, disattivalo.

  2. Inoltri anche i pacchetti, fratello? Assicurati che la riga "net.ipv4.ip_forward=1" NON sia commentata in /etc/sysctl.conf (lo è per impostazione predefinita), quindi riavvia la rete.

  3. La modalità promiscua non è supportata dal tuo dongle wireless. (il che significa che non può accettare pacchetti che non sono destinati ad esso)

Bridge puro contro Bridge condiviso:

  1. iface br0 inet dhcp indica un condiviso bridge, il che significa che il bridge stesso ottiene un IP e può essere un endpoint per il traffico.

  2. Un ponte puro non ottiene un indirizzo IP e inoltra solo il traffico tra le due interfacce

  3. Ponte condiviso Esempio di file di configurazione /etc/network/interfaces (Debian/Ubuntu)

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# Bridge between eth0 and wlan0
auto br0
iface br0 inet dhcp
  pre-up ip link set eth0 down
  pre-up ip link set wlan0 down
  pre-up brctl addbr br0
  pre-up brctl addif br0 eth0 wlan0
  pre-up ip addr flush dev eth0
  pre-up ip addr flush dev wlan0
  post-down ip link set eth0 down
  post-down ip link set wlan0 down
  post-down ip link set br0 down
  post-down brctl delif br0 eth0 wlan0
  post-down brctl delbr br0

Riavvia la rete:sudo /etc/init.d/networking restart Dopo aver apportato complesse modifiche alla configurazione di rete, è più semplice riavviare piuttosto che assicurarsi che tutto sia stato riavviato correttamente al riavvio.

Pensi di avere problemi di instradamento:

  1. Elimina DNS come causa testando con ping 8.8.8.8 . Se funziona, probabilmente hai un problema DNS nella tua rete.

  2. Controlla il tuo gateway con sudo ip route si spera che tu veda default via 192.168.1.1 dev br0 proto dhcp (supponendo che il tuo gateway sia 192.168.1.1). Se manca o è errato, correggilo sudo ip route add default via 192.168.1.1 . Riprova:ping 8.8.8.8

  3. Rinnova il tuo IP bridge condiviso con dhclient br0 e riprova con ping 8.8.8.8

  4. Controlla le tue interfacce 'slave' con ifconfig e assicurati che eth0 e wlan0 NON abbiano indirizzi IP. Adesso fanno parte del ponte. Se lo fanno, assicurati di rimuoverli da tutti i file di configurazione, impostandoli su static 0.0.0.0 o qualcosa del genere.

Se NESSUNO di questi funziona, prova quell'app di bridging debian e, se non funziona, il tuo dongle wireless non supporta la modalità promiscua. (vedi sopra)

Se funziona in qualsiasi momento qui, riavvia e assicurati che funzioni ancora.


Ho alcuni bridge wireless che funzionano su Debian Linux e Openwrt, quindi conosco molto bene questo problema.

Hai perso un comando importante:hai dimenticato di dire al tuo driver wireless di trasmettere frame a 4 indirizzi (a volte impropriamente/storicamente chiamati WDS), che è necessario per il bridging 802.11/wireless. Fallo con il comando "iw dev wlan0 set 4addr on". Usa un'istruzione "pre-up" nel tuo file delle interfacce Debian sul bridge per applicarla prima di aprire il bridge. Tieni presente che la modalità frame a 4 indirizzi richiede il supporto del driver e alcuni vecchi driver o hardware 802.11 scadenti potrebbero non supportarla.

Ho anche il forte sospetto che i tuoi problemi possano essere stati complicati da un bug nel kernel di Linux che riguarda specificamente le interfacce con bridge. Mi sono imbattuto in questo bug da solo e ho dovuto compilare il mio wpa_supplicant dai sorgenti perché la versione in Debian è vecchia e interessata. wpa_supplicant e hostapd condividono una base di codice comune, ma non sono del tutto sicuro che questo abbia influenzato hostapd e wpa_supplicant.

C'è un impegno per aggirare il problema qui:

https://w1.fi/cgit/hostap/commit/?id=e6dd8196e5daf39e4204ef8ecd26dd50fdca6040

Ho l'impressione che sia nella versione 2.5 e so che è nell'attuale sorgente 2.6. L'attuale versione di Debian è la 2.4, che non funziona. Si prega di infastidire il progetto Debian per aggiornare i loro pacchetti wpasupplicant e hostapd.

Ecco una configurazione di esempio per un client bridge wireless che utilizza WPA/WPA2 con un bridge wireless tra le interfacce wlan0 ed eth0, con l'host che ottiene un indirizzo DHCP sull'interfaccia br0 (sostituisci "dhcp" con "manual" per nessun indirizzo IP). Per una situazione in cui vuoi essere l'AP, includi i comandi interface=e bridge=in hostapd.conf e ometti i comandi wpa-* di seguito.

Nel tuo file /etc/network/interfaces:

allow-auto br0
iface br0 inet dhcp
    bridge_ports wlan0 eth0
    bridge_stp off
    bridge_waitport 5
    bridge_fd 0
    wpa-ssid mynetwork
    wpa-psk abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123
    wpa-iface wlan0
    wpa-bridge br0
    pre-up iw dev wlan0 set 4addr on
    post-down iw dev wlan0 set 4addr off

E assicurati che il tuo wpa_supplicant sia la versione 2.5 o successiva. Non funzionerà con wpa_supplicant 2.4 e le attuali versioni del kernel.

Dovrei anche notare che attualmente c'è un race bug in ifup in cui le interfacce bridge potrebbero non essere visualizzate al momento dell'avvio, ma questo è un altro problema.


Sembra che tu abbia bisogno dell'inoltro ip.

prova cat /proc/sys/net/ipv4/ip_forward

Se è 0 problema:echo 1 > /proc/sys/net/ipv4/ip_forward


Linux
  1. Come configurare un Bridge Linux per fungere da Hub anziché da Switch

  2. Linux:disabilitare l'adattatore di rete wireless in Arch?

  3. comando IP Linux

  4. comando cd di Linux

  5. Determinare se un'interfaccia di rete è wireless o cablata

Comando W in Linux

Al comando in Linux

Installa il driver wireless in AlmaLinux / Rocky Linux 8

Configurazione di Sun Java Wireless Toolkit su Linux Mint

Linux vs Unix

10 Esempi di comandi Linux brctl per bridge di rete Ethernet