Rutang blackhole kumpara sa kill switch ng VPN: ano ang ginagawa ng bawat isa
Itinatapon ng rutang blackhole ang tumutugmang trapiko at nagpapatupad ng saradong landas kapag nabigo. Ihambing ang saklaw at mga patay na sulok nito sa kill switch na batay sa pagsasala ng packet.
Umalis ang isang packet sa laptop, hindi kailanman umabot sa gateway ng VPN, at walang counter ng firewall na gumagalaw. Napagpasyahan na ng talahanayan ng ruta ang kapalaran ng packet: tumugma ang isang entry na blackhole dito at itinapon ito ng kernel bago pa ito makita ng anumang interface. Kapaki-pakinabang ang pag-uugali na iyon kapag dapat mabigo ang isang destinasyon sa saradong paraan, ngunit ito ay aksyon sa pagruruta na makitid ang saklaw. Ang ituring itong ganap na kill switch ang lugar kung saan nagkakamali ang mga disenyo.
Ano ang talagang tinutugma ng aksyon ng pagtatapon
Pumipili ang paghahanap ng ruta ng talahanayan, pagkatapos ay ang pinakamahabang tugmang prefix sa loob nito. Ang rutang blackhole ay ordinaryong entry na ang aksyon ay itapon, kaya apektado lamang nito ang mga packet na pipili sana ng entry na iyon pagkatapos ng buong desisyon. Palitan ang talahanayan ng panuntunan ng patakaran, o magdagdag ng mas tiyak na prefix, at hindi na nalalapat ang pagtatapon.
Kaya ang saklaw ng blackhole ay tumpak at madaling sabihin: sinasaklaw nito ang prefix, sa talahanayan, para sa pamilya ng address na iyon. Hindi nito sinasaklaw ang destinasyong pananalunin ng ibang talahanayan, at hindi nito sinasaklaw ang IPv6 dahil lamang itinatapon ang prefix na IPv4.
ip route get ay nagpapakita ng desisyon bago ka mag-deploy ng anuman, kasama ang talahanayan at uri ng ruta. Mas mabilis basahin ang output na iyon kaysa hulaan mula sa nabigong kahilingan kung aling panuntunan o prefix ang gumana.
Ang blackhole ay hindi katulad ng unreachable o prohibit
Nag-aalok ang Linux ng tatlong uri ng rutang katulad ng pagtatapon, at naiiba sila sa nakikita ng nagpapadala. Itinatapon ng blackhole ang packet nang walang sagot, kaya nakikita ng kliyente ang pagkaubos ng oras. Ang rutang unreachable ay nagbabalik ng mensaheng ICMP unreachable, kaya mabilis na nabigo ang koneksyon sa error ng host o network. Ang rutang prohibit ay nagbabalik ng error ng administratibong pagbabawal, na mas malapit sa sadyang pagtanggi ng patakaran.
Piliin ang pag-uugaling gusto mong makita ng aplikasyon. Ang tahimik na pagtatapon ay angkop kapag ayaw mong ihayag ang patakaran, at ang agad na error ay mas mabuti kapag kailangang maintindihan ng mga user kung bakit hindi available ang isang destinasyon. Ang paghahalo ng mga uri sa isang network ay gumagawa ng mga tiket sa suporta na naglalarawan sa iisang patakaran bilang tatlong magkakaibang sira.
Huwag ipagpalagay na ang bawat entry ng pagtatapon ay mapagpapalit kapag nag-diagnose ka ng koneksyon. Naiiba ang teksto ng error, ang oras at ang pagkuha ng packet, at sinasabi sa iyo ng uri ng ruta sa talahanayan kung alin ang tinitingnan mo. Ang manwal ng ip-route ay naglilista ng mga uri at ng kanilang pag-uugali sa error.
Paano ito inihahambing sa kill switch
Ang kill switch ay pagsasala ng packet: isang panuntunan ng firewall na nagtatapon ng papalabas na trapikong aalis sa labas ng tunnel. Ang rutang blackhole ay desisyon sa pagpapasa na ginawa nang mas maaga sa stack. Pareho silang makakapigil ng trapiko, ngunit magkaiba ang nakikita nila at magkaiba ang napapalampas.
| Mechanism | What it blocks | What it misses | How failure looks |
|---|---|---|---|
| Blackhole route | Destinations matching the prefix and table | Other tables, other address families, traffic with a different route | Silent timeout |
| Firewall kill switch | Egress not bound to the tunnel interface | Rules that are too broad can break the endpoint or DHCP | Dropped packets with counters |
| WireGuard AllowedIPs | Destinations not routed into the interface | Traffic that never enters the interface at all | No tunnel route, direct egress |
Ang saklaw ang lugar kung saan mahalaga ang paghahambing. Maaaring itugma ng firewall ang may-ari, port o interface at harangan ang isang aplikasyon habang nananatiling maabot ang endpoint; hindi ito kaya ng ruta. Sa kabaligtaran, maaaring ipadala ng ruta ang buong prefix sa pagtatapon nang walang na-load na packet filter, na kapaki-pakinabang sa isang minimal na sistema.
Ang AllowedIPs ng WireGuard ay pagruruta gamit ang cryptographic key, hindi firewall. Ito ang nagpapasya kung aling mga prefix ng destinasyon ang tinatanggap sa interface, at ang profile na naglilista lamang ng subnet ng tunnel ay iniiwan ang ibang destinasyon sa karaniwang default na ruta. Iyon ang dahilan kung bakit gumagamit ng 0.0.0.0/0 ang mga full-tunnel na profile at kung bakit nag-i-install din ng mga panuntunan ng firewall ang wg-quick kapag kaya nito.
Panatilihin ang endpoint ng tunnel sa labas ng pagtatapon
Ang panlabas na address ng endpoint ay dapat manatiling maabot sa pamamagitan ng pisikal na interface. Ang pagtatapong humuhuli rin sa address na iyon ay humahadlang sa handshake na lumabas, at hindi kailanman bumangon ang tunnel, na mukhang pagkabigo ng VPN sa halip na patakaran sa pagruruta. Suriin ang ruta patungo sa endpoint bago at pagkatapos ng pagbabago.
Ang pag-access para sa pamamahala ay kabilang sa parehong pagsusuri. Kung ang tanging daan patungo sa router o kliyente ay ang tunnel, ang masyadong malawak na pagtatapon ay maaaring mag-lock sa iyo palabas ng makina na magpapahintulot sa iyong alisin ito. Panatilihin ang nakadokumentong out-of-band na ruta, isang console o isang naka-iskedyul na pagbabalik.
Kailangan ng IPv6 ang sarili nitong entry at sariling pagsusuri. Ang disenyong nagtatapon ng IPv4 sa blackhole habang iniiwan ang IPv6 sa default na ruta ay tumatagas sa eksaktong trapikong nilalayon ng patakarang pigilan, at hindi nakikita ang pagkakamali sa pagsubok na IPv4 lamang.
Ilunsad ito nang paunti-unti gamit ang timer at pagbabalik
Gamitin ang ruta na may maikling awtomatikong pag-alis upang hindi makaligtas ang pagkakamali sa muling pag-boot. Ginagamit ng mga utos sa ibaba ang isang saklaw ng dokumentasyon; palitan ito ng prefix na talagang itinatapon ng iyong disenyo:
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/8Dapat iulat ng ikalawang utos ang rutang blackhole at ang talahanayan kung saan ito nagmula. Nag-iskedyul ang ikatlo ng pag-alis sa loob ng isang minuto, na sapat na oras upang kumpirmahin ang patakaran at sapat na maikli upang makabangon mula sa pagkakamali sa isang malayong host. Kapag nakumpirma ang pag-uugali, gawing permanente ang entry sa pamamagitan ng parehong pamamahala ng configuration na nagmamay-ari ng ibang mga ruta.
Isara ang pagbabago sa pamamagitan ng pagtatala ng prefix, talahanayan, pamilya ng address at paraan ng pagbabalik. Ang pagtatapon ay sadyang pagbubukod sa disenyo ng pagruruta, at kailangang malaman ng susunod na inhinyero kung aling trapiko ang dapat nitong pigilan bago magpasya kung nababagay pa ito roon.