Bridging: Kehilangan koneksi jaringan WLAN dengan opsi 4addr on - Mengapa?

9

Pertanyaan:
Untuk digunakan dengan Xen VM saya, saya perlu membuat antarmuka jaringan virtual (vif) yang dijembatani ke wlan0.

Jika di / etc / network / interfaces saya tambahkan

auto xenbr0
       iface xenbr0 inet dhcp

Dan kemudian lakukan

brctl addif xenbr0 wlan0

Saya mendapatkan pesan kesalahan ini.

can't add wlan0 to bridge xenbr0: Operation not supported

Saya menemukan bahwa Linux tidak akan membiarkan Anda menjembatani antarmuka nirkabel dalam mode terkelola sama sekali kecuali Anda mengaktifkan opsi 4addr (diperlukan untuk mengkompilasi ulang iw):

iw dev wlan0 set 4addr on

Setelah itu

brctl addif xenbr0 wlan0

berfungsi, dan acara brctl menunjukkan xenbr0 sebagai bridged to wlan0.

Sayangnya, segera setelah saya mengeksekusi

iw dev wlan0 set 4addr on

seluruh koneksi jaringan saya hilang (tidak ada koneksi). Segera setelah itu saya jalankan

iw dev wlan0 set 4addr off

Saya menyambung kembali dan berfungsi lagi. Jika saya menjalankan kembali 4addr, itu rusak lagi, jika saya mengeksekusi 4addr, itu berfungsi lagi.

Sayangnya, saya tidak bisa menyalakan 4addr saja, mengaktifkan jembatan lalu mematikannya kembali (kesalahan: perangkat tidak siap).

Adakah yang tahu mengapa saya kehilangan koneksi?

Sihir
sumber

Jawaban:

14

Temukan jawabannya di sini: http://nullroute.eu.org/~grawity/journal.html#post:20110826

iw dev wlan0 set 4addr on

Namun, dengan 4addr diaktifkan, Anda kemungkinan besar akan sepenuhnya diabaikan oleh AP: asosiasi berhasil tetapi semua frame data menghilang ke eter. Ini bisa karena alasan keamanan (karena sangat sulit untuk menipu alamat MAC sumber. Ya.) Di router saya (menjalankan OpenRG), perlu untuk mengaktifkan mode "WDS" untuk antarmuka AP nirkabel, tambahkan perangkat WDS yang terbatas pada perangkat saya. alamat MAC laptop, dan tambahkan ke jembatan LAN. Paket 4addr sekarang berfungsi.

Namun, ada masalah lain dengan ini - router sekarang menolak paket tiga-alamat dari laptop, yang mungkin agak tidak nyaman (harus beralih 4addr setiap kali jaringan WLAN diubah). Solusinya adalah menambahkan, pada laptop, antarmuka nirkabel kedua yang terhubung ke perangkat yang sama, tetapi dengan alamat MAC yang berbeda:

# undo the earlier configuration
iw dev wlan0 set 4addr off


# add a second interface
iw dev wlan0 interface add wds.wlan0 type managed 4addr on
ip link set dev wds.wlan0 addr $ADDR
ip link set dev wds.wlan0 up

Di sini $ ADDR harus cocok dengan alamat perangkat WDS yang dikonfigurasi di router; selain itu, dapat berupa alamat MAC yang valid. MAC asli dari wlan0 kemudian tetap untuk penggunaan "normal".

Dimungkinkan untuk menggunakan wlan0 dan wds.wlan0 pada saat yang sama - walaupun saya baru saja menguji asosiasi dengan AP yang sama dua kali, bukan pada AP yang berbeda.

fmo
sumber
5

Dalam keadaan tertentu, Anda juga bisa menggunakan wlan_kabel. Menggunakan soket paket untuk langsung menjembatani wlan * -perangkat dengan perangkat ethernet. Namun, Anda hanya dapat menjembatani satu MAC pada satu waktu dengan wlan_kabel. Itu tidak memiliki kelemahan dilarang oleh titik akses, karena hanya MAC asli dari perangkat wlan yang digunakan.

Dalam kasus Anda ini berarti, bahwa wlan0 hanya dapat digunakan oleh satu VM dan bahkan oleh tuan rumah.

Anda bisa mendapatkan wlan_kabel di sini .

escitalopram
sumber