Dua kerosakan tidak berkaitan menghasilkan aduan yang sama. Dalam yang pertama, satu klien tidak sampai ke klien lain walaupun melalui alamat terowong, kerana alamatnya bukan dalam satu subnet atau pelayan tidak memajukan trafik antara rakan. Dalam yang kedua, ping berfungsi tetapi senarai peranti aplikasi kekal kosong, kerana penemuan bergantung pada broadcast yang terowong lapisan 3 tidak dapat membawa. Satu ping memisahkan keduanya, dan pembaikan bagi setiap satu sama sekali tidak menyerupai pembaikan yang lain.

Satu ping membelah masalah kepada dua

Dari satu klien, ping alamat terowong klien yang lain, bukan namanya dan bukan alamat LAN-nya. Jika ia gagal, pemajuan atau pengalamatan ialah masalahnya dan penemuan tidak relevan sehingga ia diperbaiki. Jika ia berjaya, pemajuan sudah berfungsi dan jurang yang tinggal ialah broadcast atau penyelesaian nama.

ip addr show tun0

Baca antara muka klien sebelum apa-apa lagi, kerana netmask menamakan topologinya. /24 atau topeng subnet lain bermaksud kumpulan dikongsi; /30 dengan alamat rakan bermaksud susun atur titik-ke-titik lama, di mana setiap klien mempunyai tepat satu jiran, pelayan.

net30 berbanding subnet, dibaca dari sisi klien

What you observenet30subnet
Client netmask/30 with a peer addressThe pool's own mask
Peers a client can address directlyOne, the serverEvery client in the pool
AddressingOne /30 block per client, with the server as the only peerOne pool mask shared by all clients
Effect of client-to-clientRequired for any peer trafficRequired for peer traffic, still no broadcast

Dengan net30 pelayan memberikan blok kecil bagi setiap klien, jadi laluan ke alamat terowong klien lain tidak wujud melainkan pelayan memajukannya. Dengan subnet seluruh kumpulan ialah satu rangkaian, setiap klien boleh menuju ke setiap yang lain, dan pelayan memajukan antara mereka. Itulah sebabnya satu konfigurasi pelayan boleh kelihatan sihat sementara ping antara rakan gagal: tiada apa yang rosak, kliennya memang tidak berada dalam satu rangkaian. Klien melihat pautan yang berfungsi dan alamat rakan yang tidak menjawab, yang terbaca seperti firewall tetapi sebenarnya susun atur pengalamatan.

Menukar direktif ialah suntingan di sisi pelayan serta mula semula, dan ia terpakai pada sambungan seterusnya, bukan sesi yang sudah dibuka. Sambungkan semula klien sebelum menilai perubahan. Jika perkakas menjana semula konfigurasi daripada antara muka web, catat direktif, fail dan tarikhnya, dan lakukan suntingan melalui antara muka apabila ada, kerana pembinaan semula akan menimpa suntingan manual pada penyimpanan seterusnya.

client-to-client ialah pintu berasingan

Walaupun dalam satu subnet pelayan membuang paket yang datang dari satu klien dan dialamatkan kepada klien lain melainkan client-to-client ditetapkan. Kata kunci itu menjadikan pelayan pemaju trafik antara rakan dan bukan titik akhir yang hanya menerimanya. Itulah syarat kedua yang orang terlepas selepas membaiki topologi.

Ia tidak meluas kepada broadcast. Tetapan ini memajukan unicast antara klien; ia tidak menjadikan terowong segmen dikongsi, dan berapa banyak pun ia tidak akan menghantar pertanyaan penemuan multicast kepada setiap rakan.

TUN berbanding TAP, dan apa yang masing-masing boleh bawa

PropertyTUNTAP
LayerLayer 3, IP packetsLayer 2, Ethernet frames
Broadcast and multicastNot carriedCarried
Bridging to the LANNot applicableRequired for a shared segment
Client platform supportEverywhereMissing on Android and iOS, limited on macOS

Menjambatani peranti tap ke dalam LAN meletakkan klien jauh dalam domain broadcast pejabat, yang menyelesaikan penemuan sepenuhnya. Harganya ialah platform yang tidak melaksanakan TAP, jambatan yang mesti wujud pada pelayan, dan domain kegagalan tempat badai broadcast pada kabel pejabat sampai ke setiap komputer riba jauh.

Bagi dua atau tiga stesen kerja yang memerlukan penyelesaian nama, entri hosts atau alamat unicast jauh lebih murah daripada jambatan. Gunakan TAP apabila protokol yang tidak boleh anda ganti bergantung pada penemuan lapisan 2, dan bukan sebelum itu.

Klien subnet yang sama tanpa jambatan

Memberi alamat daripada julat LAN tidak meletakkan klien pada kabel. Pelayan menghala antara terowong dan Ethernet, jadi ARP bagi alamat itu berhenti pada antara muka pelayan dan seluruh LAN tidak pernah tahu di mana ia tinggal.

ip neigh add proxy 10.50.1.250 dev eth0

Proxy ARP menutup jurang itu dengan membenarkan pelayan menjawab bagi pihak klien. Bagi julat, parpd menguruskan entri ketika klien datang dan pergi, manakala sysctl net.ipv4.conf.eth0.proxy_arp=1 menjawab bagi semua yang dihalakan ke tempat lain, yang cukup luas untuk mencipta kejutan tersendiri pada segmen sibuk.

Laluan mana pun yang anda pilih, buang NAT antara terowong dan kabel. Peraturan MASQUERADE menyembunyikan tepat soalan pengalamatan yang anda cuba jawab. Ia juga meninggalkan orang seterusnya dengan topologi yang tidak dapat ia fikirkan dari sisi klien.

Sebelum mengubah apa-apa, tangkap satu percubaan pada pelayan dengan tcpdump -ni tun0 dan sahkan sama ada paket rakan benar-benar tiba. Tiba lalu dibuang menunjukkan client-to-client; tidak pernah tiba menunjukkan topologi atau penghalaan. Manual OpenVPN 2.6 mendokumenkan kedua-dua kata kunci dan topologi lalai, yang wajar dibandingkan dengan versi anda sebelum menyalin satu baris daripada kiriman forum.

  • Antara muka tun menunjukkan topeng kumpulan dan bukan pasangan rakan /30.
  • Ping terus ke alamat terowong yang lain berjaya sebelum anda menguji penemuan.
  • Konfigurasi pelayan menyertakan client-to-client setiap kali rakan perlu bertukar paket.
  • Namakan protokol penemuan yang anda uji dan bukan mengatakan aplikasi gagal.
  • Gunakan TAP hanya jika setiap platform klien dalam kumpulan menyokongnya.
  • Jauhkan NAT daripada laluan antara terowong dan LAN apabila ketercapaian dalam subnet yang sama penting.

Artikel berkaitan