Ang policy routing ay sumasagot sa ibang tanong kaysa sa itinatanong ng karamihan ng mga tala sa pag-aayos ng problema. Sinasabi ng pangunahing talahanayan kung saan pupunta ang isang destinasyon; sinasabi ng mga tuntunin ng patakaran kung aling talahanayan ang titingnan, at maaari nilang pasyahan iyon batay sa address ng pinagmulan, sa isang marka ng pakete, o sa interface kung saan dumating ang isang pakete. Kapag ang isang tunnel ay kumikilos nang hindi pare-pareho, ang set ng mga tuntunin ang kadalasang dahilan at ang routing table ang kadalasang hindi.

Pinipili ng mga tuntunin ang talahanayan, pagkatapos pinipili ng talahanayan ang ruta

Bawat tuntunin ay may dalang prayoridad, kundisyon sa pagtutugma at target na talahanayan. Binabagtas ng kernel ang mga tuntunin sa ayos ng prayoridad at humihinto sa unang tugma, pagkatapos ay gumagawa ng ordinaryong paghahanap ng pinakamahabang prefix sa talahanayang iyon. Ang tuntuning tumuturo sa walang laman na talahanayan ay nahuhulog sa pipiliin ng susunod na tuntunin, at ganoon ang isang maingat na naisulat na tuntunin ay maaaring magmukhang walang ginagawa.

Iyon ang dahilan kung bakit ang pag-dump ng pangunahing talahanayan ay bihirang magpaliwanag ng gumaganang VPN client. Karaniwang naglalagay ang mga client ng mga tuntunin sa mababang numero ng prayoridad, malayo bago ang default na tuntunin ng pangunahing talahanayan, kaya hindi kailanman naaabot ng pakete ang rutang tinititigan mo. Ang pagbaba ng metriko sa pangunahing talahanayan ay walang binabago para sa trapikong nailihis na.

Maaari ring sadyang gawing black hole o hindi maabot ng isang tuntunin ang isang prefix. May mga client na nagdaragdag ng ganoong tuntunin bilang kill switch, at pagkatapos ang pagbagsak ay mukhang sirang tunnel sa halip na naka-configure.

Basahin ang set ng mga tuntunin bilang pagkakasunod-sunod, hindi bilang listahan

I-print ang mga tuntunin kasama ang kanilang mga prayoridad at ang mga talahanayang tinutukoy nila, pagkatapos i-print ang bawat talahanayang may default o rutang tunnel. Ang ayos ang mahalagang bahagi, at ito ang bahaging kadalasang iniiwan ng screenshot:

ip rule show
ip route show table all | sed -n '1,60p'
ip route get 198.51.100.20 from 10.8.0.2
ip route get 198.51.100.20 from 10.8.0.2 mark 0x1

Ang huling dalawang utos ang nagpapalit ng teorya tungo sa obserbasyon, dahil nagtatanong sila kung ano ang gagawin ng kernel para sa pinagmulang iyon at sa markang iyon. Kung nagbabago ang sagot kapag nagbabago ang marka, may tuntuning nakabatay sa marka na gumagana at anumang pagsubok na nag-iiwan sa marka ay sumusubok ng ibang pakete. Ang panlabas na koneksyon ay karapat-dapat sa sariling tuntunin. Ang tunnel na nagruruta ng lahat ng trapiko sa sarili nito ay dapat ibukod ang address ng endpoint na kinokonektahan nito, kung hindi ay ipinapadala pabalik ang mga naka-encrypt na pakete sa tunnel na kalalabasan lang nila. Karamihan ng mga client ay awtomatikong naglalagay ng pagbubukod na iyon, at ang set ng mga tuntuning mano-manong inedit ang lugar kung saan ito nawawala.

Mga marka at socket: dalawang paraan ng paghahati ng trapiko ng mga client

May mga client na nagmamarka ng mga pakete sa firewall at nagdaragdag ng tuntuning tumutugma sa marka. Ang iba ay gumagamit ng routing sa antas ng socket, na naglalagay ng ruta sa socket bago ito kumonekta. Ang una ay nakikita sa ip rule; ang pangalawa ay hindi, at hindi ito lalabas sa pangkalahatang paghahanap.

Kung ang isang test program ay kumikilos nang iba kaysa sa application na dapat nitong katawanin, tingnan kung naglalagay ng marka ang application o nagbubuklod sa isang device. Ang pagkakaibang iyon ay hindi misteryo kapag pinangalanan na ang mekanismo, at ipinapaliwanag nito kung bakit ang isang curl mula sa shell at isang tab ng browser ay maaaring tumahak ng magkaibang landas sa parehong makina. Ang dalawang teknik ay policy routing sa malawak na kahulugan: pumipili sila ng landas sa pamamagitan ng iba kaysa sa destinasyon. Wala sa kanila ang nagbibigay ng pahintulot sa trapiko, at wala sa kanila ang pumapalit sa mga tuntunin ng firewall o sa mga kredensyal na inaasahan ng peer.

Subaybayan ang pagmamay-ari bago magdagdag ng isa pang tuntunin

May nag-i-install ng mga tuntunin. Isang VPN client, isang tagapamahala ng network at isang script na isinulat sa kamay ay maaaring magdagdag ng mga tuntunin sa pagsisimula, at ang lohika ng muling pagkonekta ay maaaring mag-iwan ng dating set. Dalawang lumang tuntunin mula sa dating profile ay patuloy na gagabay sa trapiko matagal pagkatapos na mabura ang profile.

Alamin kung aling proseso ang nagmamay-ari ng tuntunin sa pamamagitan ng prayoridad at hugis nito, at tingnan kung muli nitong isinusulat ang set sa bawat koneksyon. Kung oo, ang tuntuning manwal na idinagdag ngayon ay mawawala bukas, at ang pagwawasto ay nabibilang sa configuration ng client at hindi sa file ng kasaysayan ng shell. Ang paglilinis ng buong set ng mga tuntunin para subukan ay isang nakakaakit na shortcut na may mahuhulaang gastos: tinatanggal din nito ang mga tuntuning kailangan ng client upang manatiling gumagana ang sarili nitong tunnel. Burahin ang isang tuntunin sa isang pagkakataon, o subukan sa isang makinang maaari mong i-reboot.

Patunayan ang saklaw sa dalawang daloy, hindi isa

Ang pagwawasto ay napapatunayan lamang ng isang daloy na dapat maapektuhan at isang daloy na hindi dapat. Pumili ng destinasyong itinuturo ng patakaran sa tunnel, at isang dapat manatili sa labas, pagkatapos ihambing ang mga paghahanap at mga pagkuha para sa dalawa:

ip route get 198.51.100.20 from 192.0.2.44
ip route get 198.51.100.21 from 192.0.2.44
tcpdump -ni any host 198.51.100.21 and port 443

Kapag ang dalawang paghahanap ay nagbalik ng magkaibang interface, may ginagawa ang tuntunin. Kapag nagbalik sila ng parehong interface, tumutugma ang tuntunin nang mas malawak kaysa sa nilayon, at iyon ang kabiguan na tahimik na nagpapadala ng buong subnet sa isang tunnel na inilaan para sa isang application.

Itala ang mga prayoridad ng tuntunin at ang serbisyong nagmamay-ari sa ticket, kasama ang dalawang test address. Pagkatapos ang susunod na tao ay may paulit-ulit na pares sa halip na paglalarawan ng sintomas, at masasabi sa loob ng isang minuto kung gumagana pa ang policy routing.

Kaugnay na mga artikulo