Kumokonekta at nagpapatotoo ang mga kliyente, pagkatapos ay lumalabas ang kanilang trapiko sa maling uplink, dahil ang nag-iisang default na ruta sa makina ay pag-aari ng gateway mismo. Ang pagpapalit ng default na rutang iyon ay sisira sa sariling mga update ng makina at sa access sa pamamahala, kaya kailangang mas makitid ang pagpili kaysa «lahat ng trapiko». Ang gumaganang anyo ay isang tuntunin ng patakaran na nakabatay sa panloob na source address ng pool ng kliyente, na tumuturo sa ikalawang talahanayan ng routing na nagmamay-ari ng alternatibong WAN. Mula doon, tungkol sa pagkakumpleto at pag-uugali sa kabiguan ang checklist, hindi sa tuntunin mismo.

Tiyakin na nabubuhay ang source address hanggang sa desisyon sa routing

Ang tuntunin ng patakarang tumutugma sa isang saklaw ng source ay nag-aarmas lamang kapag dala pa ng packet ang source na iyon sa oras ng paghahanap. Ginagawa ito ng naka-forward na trapiko ng kliyente, hangga't wala pang muling nagsulat nito sa itaas bago ang routing. Hindi ito ginagawa ng trapikong likha ng gateway mismo, at iyon mismo ang dahilan kung bakit maaaring manatili sa kinaroroonan nito ang sariling default na ruta ng gateway.

Dito nagliligaw ang mga lokal na pagsubok. Ang curl na pinatakbo sa gateway ay isang lokal na nalikhang daloy na may address ng gateway, kaya kinukuha nito ang pangunahing talahanayan at wala itong pinapatunayan tungkol sa landas ng kliyente. Subukan mula sa konektadong kliyente, o gumawa ng trapiko gamit ang source na talagang kabilang sa pool.

Magsimula sa pagsulat ng tunay na mga halaga: ang prefix ng pool, ang tunnel interface na nagdadala nito, ang address at susunod na hop ng ikalawang WAN, at ang numero ng talahanayang balak mong gamitin. Linisin ang lumang mga tuntunin mula sa anumang naunang pagtatangka bago magdagdag ng bago, dahil ang mga doble na tuntunin sa magkaibang priyoridad ay gumagawa ng mga kabiguan na mukhang random.

Bumuo ng piniling talahanayan na kumpleto

Ang talahanayan ay hindi default na rutang may kaibigan. Kailangan nito ng sapat na ruta para malutas ang bawat paghahanap sa loob nito, kasama ang konektadong ruta para sa subnet ng WAN upang maabot ang susunod na hop. Para sa pool na 10.77.0.0/24 sa tun1, address ng WAN na 203.0.113.20/24 na may susunod na hop na 203.0.113.1, at talahanayang 600:

ip -4 route replace 203.0.113.0/24 dev usb0 src 203.0.113.20 table 600
ip -4 route replace 10.77.0.0/24 dev tun1 table 600
ip -4 route replace default via 203.0.113.1 dev usb0 table 600
ip -4 rule add priority 1500 from 10.77.0.0/24 lookup 600

Nakaupo ang tuntunin sa priyoridad na mas mababa kaysa sa anumang umiiral na tuntuning humahawak sa lahat, kaya ang mga tugmang kliyente ay unang tumatama sa talahanayang 600 at lahat ng iba ay nahuhulog sa pangunahing talahanayan. Ang sanggunian ng ip-rule ay ganap na naglalarawan ng nakaayos na modelo ng paghahanap at ng syntax ng tagapili.

Pagkatapos ay isipin ang wala sa talahanayan. Ang destinasyong may ruta lamang sa pangunahing talahanayan, tulad ng subnet ng pamamahala na maaabot sa pamamagitan ng eth0, ay hindi makikita sa talahanayang 600 at hindi babalik sa pangunahing kapag may default na ruta na roon. Kung mahalaga ang mga landas na iyon, idagdag ang mga ito nang tahasan sa piniling talahanayan, na karaniwang tamang sagot para sa talahanayan ng labasan ng VPN.

Ilayo ang sariling trapiko ng tagapakinig sa patakaran

Ang tagapakinig ng OpenVPN ay may sariling panlabas na koneksyon, na dinadala sa uplink kung saan naabot ito ng kliyente. Dapat panatilihin ng trapikong iyon ang pabalik na landas na kinaratingan nito, at ang malawak na tuntuning sumasakop sa pampublikong address ng server o sa buong tunnel interface ay maaaring humila nito papasok sa alternatibong talahanayan. Limitahan ang tuntunin sa panloob na pool at wala nang iba.

Ang pagsala sa pabalik na landas ay karapat-dapat tingnan sa parehong dahilan. Kapag ang mga sagot sa kliyente ay lumalabas sa usb0 habang ang kahilingan ay dumating sa ibang link, ang mahigpit na set ng rp_filter ay maaaring magtapon ng mga packet na itinuturing na wasto ng patakaran ng routing. Suriin ang aktwal na mga halaga ng sysctl sa dalawang interface bago magpasya na nabigo ang tuntunin.

Mahalaga rin ang pagkakasunod-sunod kaugnay ng lahat ng iba pa sa makina. Ang mga tulay ng Docker, ikalawang VPN at anumang dating tuntunin mula sa image ng provider ay nagdaragdag ng priyoridad, kaya basahin ang buong listahan ng tuntunin sa halip na ipagpalagay na nag-iisa ang priyoridad 100.

Gawing tugma ang pag-forward at pagsasalin sa ruta

Pumipili ng uplink ang routing; hindi ito nagbibigay ng pahintulot na mag-forward. Kailangang naka-enable ang pag-forward ng IPv4 sa kernel, at kailangang tanggapin ng firewall ang direksyon mula kliyente patungong WAN at ang pabalik na trapiko. Ang tamang talahanayan na may FORWARD chain na nagtatapon ng daloy ay nagbibigay ng parehong sintomas ng nawawalang ruta, kaya pareho silang sinusuri sa iisang pagdaan.

Kung hindi iruruta ng ikalawang WAN ang pribadong pool pabalik sa iyo, isalin ang source sa labasang iyon. Para sa interface na may dinamikong address, ang karaniwang pinipili ay makitid na tuntunin ng masquerade na limitado sa pool at interface:

iptables -t nat -A POSTROUTING -s 10.77.0.0/24 -o usb0 -j MASQUERADE

Mas mahalaga ang saklaw kaysa sa target dito. Ang tuntunin ng masquerade na tumutugma sa anumang palabas na interface ay muling magsusulat din ng trapikong lumalabas nang tama sa eth0, at itinatago nito ang mga pagkakamali sa routing sa halip na ituwid ang mga ito. Tumatakbo ang pagsasalin pagkatapos ng desisyon sa routing, kaya hinding-hindi nito kayang ayusin ang packet na ipinadala sa maling uplink.

Kailangan din ng atensyon ang overhead ng tunnel kapag magkaiba ang mga landas. Kung makikipagkasundo ang mga kliyente sa malaking TCP MSS at ang alternatibong WAN ay may mas mababang MTU o may tunnel sa loob nito, natitigil ang malalaking segment habang gumagana ang maliliit. Ang pag-clamp ng MSS sa landas ng pag-forward ay ginagawa itong mahuhulaang pag-uugali sa halip na paminsan-minsang pagkahinto.

Magpasya kung ano ang mangyayari kapag nawala ang usb0

Ang walang laman na talahanayan ay hindi estadong nagsasara sa kabiguan. Kung mawala ang tugmang ruta, nagpapatuloy ang paghahanap sa susunod na tuntunin, naaabot ang pangunahing talahanayan at kinukuha ang default ng eth0. Ang trapikong dapat lumabas sa ikalawang WAN ay tahimik na lumalabas sa una, na sa deployment na rutadong ayon sa patakaran ay karaniwang resulta na pinakamababa mong gusto.

Kung saan hindi katanggap-tanggap ang pag-atras na iyon, magdagdag ng tahasang terminal na ruta sa talahanayang 600, tulad ng default na blackhole, o itapon ang pool sa firewall habang nakababa ang interface. Alinman sa dalawa ay desisyong maaari mong isulat; hindi ang katahimikan.

Ang pagtitiis ay ang huling aytem. Sino man ang nagmamay-ari ng dalawang link, maging tagapamahala ng network, script ng nagpapadala o siklo ng buhay ng koneksyon, kailangan nitong muling likhain ang mga ruta at ang tuntunin sa bawat muling pagkonekta nang walang idinadagdag na doble. I-verify gamit ang kahilingan mula sa tunay na kliyente at hiwalay na kahilingan mula sa gateway, kumpirmahin ang naobserbahang labasan sa dalawa, pagkatapos ay hilahin ang ikalawang WAN at tingnan kung alin sa dalawang resultang dinisenyo mo ang talagang nangyayari. Ang IPv6 ay kailangan ng sariling talahanayan, tuntunin at pagsasalin; ang tuntunin ng IPv4 sa itaas ay walang sinasabi tungkol doon.

Kaugnay na mga artikulo