Paket noutbukdan chiqadi, VPN shlyuziga hech qachon yetmaydi va hech bir tarmoq ekrani hisoblagichi qimirlamaydi. Marshrut jadvali paket taqdirini allaqachon hal qilgan: blackhole yozuvi unga mos keldi va yadro uni hech bir interfeys ko'rmasidan oldin tashladi. Bu xatti-harakat manzil yopiq holatda muvaffaqiyatsiz bo'lishi kerak bo'lganda foydali, ammo bu tor qamrovli marshrutlash amalidir. Uni to'liq kill switch deb hisoblash — loyihalar xato qiladigan joy.

Tashlash amali aslida nimaga mos keladi

Marshrut qidiruvi jadvalni tanlaydi, so'ng uning ichidan eng uzun mos keluvchi prefiksni tanlaydi. blackhole marshruti amali tashlash bo'lgan oddiy yozuv, shuning uchun u butun qarordan keyin o'sha yozuvni tanlagan paketlargagina ta'sir qiladi. Jadvalni siyosat qoidasi bilan o'zgartiring yoki aniqroq prefiks qo'shing, tashlash endi qo'llanilmaydi.

Shuning uchun blackhole qamrovi aniq va aytish oson: u prefiksni, jadvalda, o'sha manzil oilasi uchun qamrab oladi. Boshqa jadval yutadigan manzilni qamramaydi va faqat IPv4 prefiksi tashlangani uchun IPv6 ni qamramaydi.

ip route get biror narsa joylashtirishdan oldin qarorni ko'rsatadi, jadval va marshrut turini ham. Bu chiqishni o'qish muvaffaqiyatsiz so'rovdan qaysi qoida yoki prefiks ishlaganini taxmin qilishdan tezroq.

blackhole unreachable yoki prohibit bilan bir xil emas

Linux tashlashga o'xshash uch xil marshrut turini taklif qiladi va ular jo'natuvchi nimani kuzatishi bilan farq qiladi. blackhole paketni javobsiz tashlab yuboradi, shuning uchun mijoz vaqt tugashini ko'radi. unreachable marshruti ICMP unreachable xabarini qaytaradi, shuning uchun ulanish xost yoki tarmoq xatosi bilan tez uziladi. prohibit marshruti ma'muriy taqiq xatosini qaytaradi, bu siyosatni ataylab rad etishga yaqinroq.

Ilova ko'rishini xohlagan xatti-harakatni tanlang. Siyosatni oshkor qilishni xohlamasangiz, jim tashlash mos keladi, foydalanuvchilar manzil nima uchun mavjud emasligini tushunishi kerak bo'lsa, darhol xato yaxshiroq. Turlarni tarmoq bo'ylab aralashtirish bir xil siyosatni uch xil nosozlik sifatida tasvirlaydigan qo'llab-quvvatlash chiptalarini keltirib chiqaradi.

Ulanishni tashxislashda har bir tashlash yozuvini almashtirish mumkin deb o'ylamang. Xato matni, vaqt va paket ushlash farq qiladi, jadvaldagi marshrut turi esa qaysi biriga qarab turganingizni aytadi. ip-route qo'llanmasi turlarni va ularning xatolik holatidagi xatti-harakatini sanab o'tadi.

kill switch bilan qanday taqqoslanadi

kill switch — paketlarni filtrlash: tunnel tashqarisiga chiqadigan chiquvchi trafikni tashlaydigan tarmoq ekrani qoidasi. blackhole marshruti — stekda avvalroq qabul qilinadigan uzatish qarori. Ikkisi ham trafikni to'xtata oladi, lekin ular har xil narsalarni ko'radi va har xil holatlarni o'tkazib yuboradi.

MechanismWhat it blocksWhat it missesHow failure looks
Blackhole routeDestinations matching the prefix and tableOther tables, other address families, traffic with a different routeSilent timeout
Firewall kill switchEgress not bound to the tunnel interfaceRules that are too broad can break the endpoint or DHCPDropped packets with counters
WireGuard AllowedIPsDestinations not routed into the interfaceTraffic that never enters the interface at allNo tunnel route, direct egress

Taqqoslash muhim bo'ladigan joy — qamrov. Tarmoq ekrani egasi, port yoki interfeysni moslashtirib, oxirgi nuqta yetib borish mumkin bo'lib turganda ilovani bloklashi mumkin; marshrut buni qila olmaydi. Aksincha, marshrut hech bir paket filtri yuklanmasdan butun prefiksni tashlashga yuborishi mumkin, bu minimal tizimda foydali.

WireGuard'ning AllowedIPs — kriptokaltli marshrutlash, tarmoq ekrani emas. U qaysi manzil prefikslari interfeysga qabul qilinishini hal qiladi, faqat tunnel quyi tarmog'ini sanab o'tgan profil boshqa manzillarni odatdagi standart marshrutga qoldiradi. Shuning uchun to'liq tunnel profillari 0.0.0.0/0 dan foydalanadi va shuning uchun wg-quick ham imkoni bo'lganda tarmoq ekrani qoidalarini o'rnatadi.

Tunnel oxirgi nuqtasini tashlashdan tashqarida saqlang

Oxirgi nuqtaning tashqi manzili jismoniy interfeys orqali yetib borish mumkin bo'lib qolishi kerak. O'sha manzilni ham ushlaydigan tashlash qo'l berib ko'rishishning chiqishiga to'sqinlik qiladi va tunnel hech qachon ko'tarilmaydi, bu marshrut siyosati emas, VPN nosozligi kabi ko'rinadi. O'zgartirishdan oldin va keyin oxirgi nuqta marshrutini tekshiring.

Boshqaruv ruxsati ham xuddi shu ko'rikka kiradi. Agar router yoki mijozga yagona yo'l tunnel bo'lsa, haddan tashqari keng tashlash sizni uni olib tashlashga imkon beradigan mashinadan tashqarida qulflab qo'yishi mumkin. Hujjatlashtirilgan tarmoqdan tashqari marshrut, konsol yoki vaqtli qaytarishni saqlang.

IPv6 o'z yozuvi va o'z ko'rigini talab qiladi. IPv4 ni blackhole ga tashlab, IPv6 ni standart marshrutda qoldiradigan loyiha siyosat to'xtatmoqchi bo'lgan trafikni aynan oqizib yuboradi, xato esa faqat IPv4 bilan sinovda ko'rinmaydi.

Uni taymer va qaytarish bilan bosqichma-bosqich joriy eting

Marshrutni qisqa avtomatik olib tashlash bilan qo'llang, xato qayta yuklashdan keyin ham qolmasin. Quyidagi buyruqlar hujjat diapazonidan foydalanadi; uni loyihangiz haqiqatan tashlaydigan prefiks bilan almashtiring:

sudo ip route replace blackhole 10.0.0.0/8
ip route get 10.1.2.3
sudo systemd-run --on-active=60 /sbin/ip route del blackhole 10.0.0.0/8

Ikkinchi buyruq blackhole marshruti va u qaysi jadvaldan kelganini xabar qilishi kerak. Uchinchisi olib tashlashni bir daqiqadan keyin rejalashtiradi, bu siyosatni tasdiqlash uchun yetarli vaqt va uzoq xostdagi xatodan tiklanish uchun yetarli qisqa. Xatti-harakat tasdiqlangach, yozuvni boshqa marshrutlarga ega o'sha konfiguratsiya boshqaruvi orqali doimiy qiling.

O'zgartirishni prefiks, jadval, manzil oilasi va qaytarish usulini qayd etib yoping. Tashlash marshrutlash loyihasida ataylab qilingan istisno, keyingi muhandis esa u hali ham o'rinli ekanini hal qilishdan oldin qaysi trafikni to'xtatish uchun mo'ljallanganini bilishi kerak.

O'xshash maqolalar