Setiap laporan ini berbunyi sama dan bermaksud sesuatu yang berbeza: komputer riba mengadu tentang konflik alamat, tetapi hanya kadangkala, dan kebanyakannya semasa VPN hidup. Tiga kerosakan berasingan menghasilkan mesej itu: pendua sebenar pada pautan anda sendiri, pertindihan di mana rangkaian jauh menggunakan julat LAN anda dan tiada apa diduplikasi, dan terowong yang memberikan satu alamat kepada dua rakan. Pembaikan berbeza dalam setiap kes, dan yang salah memindahkan gejala dan bukannya menghapuskannya. Jadi tentukan kes mana yang anda hadapi sebelum mengubah apa-apa.

Tiga kerosakan dengan satu mesej ralat

Pendua bermaksud dua mesin pada segmen yang sama kedua-duanya menuntut satu alamat. Kernel menyedarinya kerana balasan kepada probe-nya sendiri datang daripada MAC yang berbeza, dan apa yang berlaku seterusnya bergantung pada tindanan: Linux merekodkannya, Windows menyahaktifkan antara muka dan menulis entri dalam log Sistem, dan klien DHCP mungkin menolak tawaran itu.

Pertindihan tidak menduplikasi mana-mana alamat. LAN anda ialah 192.168.1.0/24, rangkaian pejabat juga 192.168.1.0/24, dan sekarang laluan ke pejabat menunjuk kepada alamat yang juga pencetak dan NAS anda. Dalam erti ARP tiada apa yang berkonflik; paket itu hanya pergi ke peranti yang salah pada salah satu daripada dua rangkaian.

Perlanggaran dalam kumpulan ialah kesalahan terowong itu sendiri. Dua rakan dikonfigurasikan dengan atau diberi alamat terowong yang sama, jadi pelayan tidak dapat membezakan mereka apabila menghantar trafik balik. Salah satu daripada dua klien melihat jabat tangan yang berfungsi dan tiada data, yang dibaca seperti masalah penghalaan dan bukan.

Ujian 1: adakah pendua pada segmen anda sendiri?

Mulakan dengan menyenaraikan apa yang sebenarnya ada pada mesin anda, bukan apa yang anda ingat telah dikonfigurasikan. Alamat penyesuai VPN adalah peribadi kepada terowong dan bukan alamat yang sama dengan yang dilihat oleh laman web, jadi pintu keluar awam yang dikongsi bukan konflik.

ip -br addr
ip neigh
ip route show table all | grep -E 'wg|tun|ppp'

Pada Windows maklumat yang sama datang daripada ipconfig /all dan Get-NetIPAddress, dengan cache jiran dalam arp -a. Jika alamat yang dipertikaikan berada pada penyesuai fizikal dan aduan muncul tanpa VPN berjalan, VPN hanyalah penonton dan anda harus berhenti mendiagnosisnya.

Untuk membuktikan pendua dan bukannya meneka, siasat alamat itu daripada peranti yang tidak memilikinya. arping -D menghantar probe dengan alamat sumber sifar, jadi balasan daripada MAC yang tidak dijangka membuktikan hos lain sudah menjawab alamat tersebut.

sudo arping -D -I eth0 -c 3 192.168.1.50

Kemudian cari pemiliknya melalui pentadbir rangkaian dan bukannya memilih alamat lain sendiri. Penetapan statik yang hanya hidup dalam nota seseorang, pencetak dengan alamat tetap, dan tempahan pada pelayan DHCP ialah punca biasa, dan peranti yang dimatikan masih memiliki pajakannya.

Ujian 2: adakah kedua-dua rangkaian bertindih?

Bandingkan awalan yang diberikan terowong kepada anda dengan awalan pada antara muka anda sendiri. Jika julat jauh sama dengan atau mengandungi LAN anda, kerosakannya ialah pertindihan, dan petunjuknya ialah hos yang boleh dicapai tanpa VPN hilang, atau pencetak anda sendiri menjawab pada alamat pejabat.

ip route get 192.168.1.10
ip -br addr show

Carian laluan memberitahu anda antara muka mana yang akan digunakan oleh kernel, dan jawapan itu ialah keseluruhan diagnosis. Jika ia menyebut terowong untuk alamat milik pencetak setempat anda, anda mempunyai pertindihan dan tiada pembaharuan pajakan akan mengubahnya.

Ada tiga jalan keluar yang jujur, dan biasanya hanya satu tersedia untuk anda. Bahagian jauh boleh menyamar trafik untuk subnet yang bertindih, jadi klien anda hanya melihat alamat terowong pelayan. Terowong boleh membawa awalan jauh yang lebih sempit yang tidak berlanggar dengan LAN anda. Atau klien boleh menghala mengikut alamat sumber dengan peraturan dasar, yang berfungsi tetapi rapuh dan sukar diserahkan kepada rakan sekerja.

Menomborkan semula rangkaian pejabat jarang menjadi keputusan anda. Menomborkan semula LAN anda sendiri untuk mengelakkan perlanggaran ialah perubahan yang lebih besar daripada yang dijangka kebanyakan orang apabila pencetak, kamera dan hos statik terlibat.

Ujian 3: adakah terowong memberi satu alamat dua kali?

WireGuard tidak mempunyai kumpulan alamat. Setiap rakan dikenal pasti melalui kunci awamnya dan melalui awalan dalam AllowedIPs, jadi pendua muncul apabila alamat terowong yang sama ditulis ke dalam dua entri rakan atau pasangan kunci yang sama dipasang pada dua mesin.

wg show all allowed-ips
wg show wg0 latest-handshakes
wg show wg0 transfer

Pembilang trafik ialah lajur yang berguna di sini: rakan yang menunjukkan jabat tangan terkini tetapi tiada pemindahan sama ada salah alamat atau dilindungi oleh entri lain yang menuntut awalan yang sama. Letakkan awalan pada tepat satu rakan dan beri setiap peranti pasangan kuncinya sendiri.

OpenVPN mempunyai kumpulan, dan perlanggaran biasa ialah profil klien dikongsi dengan baris --ifconfig tetap yang disalin ke mesin kedua. Kedua-dua klien kemudian meminta alamat terowong yang sama, dan pelayan menerima sesi yang diprosesnya dahulu. Kehabisan kumpulan dengan --duplicate-cn menghasilkan kesan serupa apabila beberapa sesi satu sijil bersaing untuk satu entri.

Untuk ini baca log pelayan dan bukannya log klien. Pelayan tahu sesi mana mengambil alamat mana, dan alamat berulang di sana kelihatan sebagai amaran yang tidak pernah sampai kepada klien.

Betulkan pada sumbernya, kemudian periksa semula kedua-dua peranti

Urutan penting. Betulkan dahulu pendua LAN, kerana klien yang tidak dapat mengekalkan alamat juga tidak dapat mengekalkan terowong. Kemudian betulkan peruntukan di sebelah VPN, kerana suntingan sebelah klien pada penetapan kumpulan dibatalkan pada sambungan seterusnya. Akhir sekali, tangani identiti berganda: pasangan kunci berasingan pada WireGuard, sijil berasingan atau sekurang-kurangnya profil berasingan pada OpenVPN.

Pada klien bahagian mekanikalnya singkat. Lepaskan dan perbaharui pajakan DHCP, atau minta alamat diubah pada pelayan untuk tempahan. Jangan taip alamat rawak yang kelihatan bebas.

sudo dhclient -r eth0 && sudo dhclient eth0
ipconfig /release && ipconfig /renew

Kemudian sahkan dari kedua-dua hujung, bukan satu. Sahkan get laluan, kemudian perkhidmatan yang benar-benar anda perlukan, kemudian sambung semula dan ulangi. Jika dua peranti terlibat, periksa kedua-duanya: memindahkan satu alamat meninggalkan yang lain dengan entri jiran yang lapuk atau pajakan lama yang muncul semula kemudian.

Apa yang tidak patut dilakukan di sepanjang jalan

Jangan bisukan gejalanya. Pengesanan alamat pendua ialah yang menghalang anda daripada mengambil alamat yang sudah digunakan, dan mematikannya mengubah konflik yang kelihatan menjadi kehilangan paket sekali-sekala yang jauh lebih sukar dijejaki. Perkara yang sama berlaku untuk menerima amaran sijil daripada hos yang tidak dijangka: itu sama sekali bukan masalah alamat, dan melangkaunya menyembunyikan kerosakan lain.

Jangan ubah pengalamatan rangkaian terurus sendiri juga. Catat tetapan asalnya, tanya pemiliknya apabila alamat diperuntukkan secara berpusat, dan kekalkan perubahan cukup kecil untuk dibatalkan. Peraturan pengesanan konflik alamat RFC 5227 menerangkan apa yang dibuktikan oleh probe yang betul, yang wajar diketahui sebelum anda menyebut konflik itu nyata.

Artikel berkaitan