Toka kwa kando: bwawa la VPN kwenye usb0, trafiki ya lango kwenye eth0
Wateja wa VPN wanaosambazwa wanaweza kutoka kupitia usb0 huku lango likihifadhi njia yake chaguo-msingi ya eth0. Jenga jedwali teule kamili, kisha fanya kushindwa kufunge badala ya kuvuja.
Wateja wanaunganisha na kuthibitisha, kisha trafiki yao inatoka kupitia kiungo cha juu kisichofaa, kwa sababu njia pekee chaguo-msingi kwenye mashine ni ya lango lenyewe. Kubadilisha njia hiyo chaguo-msingi kungevunja masasisho ya mashine yenyewe na ufikiaji wa usimamizi, kwa hiyo uteuzi lazima uwe mwembamba kuliko «trafiki yote». Umbo linalofanya kazi ni kanuni ya sera inayotegemea anwani ya chanzo ya ndani ya bwawa la wateja, inayoelekeza kwenye jedwali la pili la uelekezaji linalomiliki WAN mbadala. Kutoka hapo orodha hakiki inahusu ukamilifu na tabia wakati wa kushindwa, sio kanuni yenyewe.
Hakikisha anwani ya chanzo inaendelea hadi uamuzi wa uelekezaji
Kanuni ya sera inayolingana na safu ya chanzo huwaka tu pale pakiti bado inabeba chanzo hicho wakati wa utafutaji. Trafiki ya wateja iliyosambazwa hufanya hivyo, mradi hakuna kitu juu zaidi kilichoandika upya kabla ya uelekezaji. Trafiki inayozalishwa na lango yenyewe haifanyi hivyo, na ndiyo sababu njia chaguo-msingi ya lango yenyewe inaweza kubaki mahali ilipo.
Hapa ndipo majaribio ya ndani yanapotosha. curl inayoendeshwa kwenye lango ni mtiririko uliozalishwa ndani na anwani ya lango, kwa hiyo inachukua jedwali kuu na haithibitishi chochote kuhusu njia ya mteja. Jaribu kutoka kwa mteja aliyeunganishwa, au zalisha trafiki kwa chanzo ambacho kwa kweli ni cha bwawa.
Anza kwa kuandika thamani halisi: kiambishi cha bwawa, kiolesura cha handaki kinacholibeba, anwani na hatua inayofuata ya WAN ya pili, na nambari ya jedwali unayokusudia kutumia. Safisha kanuni za zamani kutoka kwa jaribio lolote la awali kabla ya kuongeza mpya, kwa sababu kanuni zilizorudiwa kwa vipaumbele tofauti huzalisha kushindwa kunakoonekana kama bahati nasibu.
Jenga jedwali teule lililo kamili
Jedwali sio njia chaguo-msingi na rafiki. Linahitaji njia za kutosha ili kila utafutaji utatuliwe ndani yake, ikiwa ni pamoja na njia iliyounganishwa ya subneti ya WAN ili hatua inayofuata ifikiwe. Kwa bwawa la 10.77.0.0/24 kwenye tun1, anwani ya WAN 203.0.113.20/24 na hatua inayofuata 203.0.113.1, na jedwali 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
Kanuni inakaa katika kipaumbele chini ya kanuni yoyote iliyopo inayokamata kila kitu, kwa hiyo wateja wanaolingana hupiga jedwali 600 kwanza na kila kitu kingine huanguka kwenye jedwali kuu. Rejea ya ip-rule inaeleza kikamilifu mfano wa utafutaji uliopangwa na sintaksia ya kichaguzi.
Kisha fikiri kuhusu kile jedwali lisilo na. Marudio yenye njia tu kwenye jedwali kuu, kama subneti ya usimamizi inayofikiwa kupitia eth0, hayatapatikana kwenye jedwali 600 na hayatarudi kwenye kuu pindi njia chaguo-msingi inapokuwepo hapo. Ikiwa njia hizo ni muhimu, ziongeze kwa uwazi kwenye jedwali teule, ambayo kwa kawaida ni jibu sahihi kwa jedwali la kutoka la VPN.
Weka trafiki ya msikilizaji yenyewe nje ya sera
Msikilizaji wa OpenVPN ana muunganisho wake wa nje, unaobebwa juu ya kiungo cha juu alichokifika mteja. Trafiki hiyo lazima ihifadhi njia ya kurudi iliyo nayo ilipofika, na kanuni pana inayofunika anwani ya umma ya seva au kiolesura chote cha handaki inaweza kuivuta kwenye jedwali mbadala. Punguza kanuni kwa bwawa la ndani na hakuna kingine.
Uchujaji wa njia ya kurudi unastahili mtazamo kwa sababu hiyo hiyo. Wakati majibu kwa wateja yanatoka kupitia usb0 huku ombi likifika kupitia kiungo kingine, mpangilio mkali wa rp_filter unaweza kutupa pakiti ambazo sera ya uelekezaji inaziona kuwa halali. Angalia thamani za sysctl zinazotumika kwenye violesura vyote viwili kabla ya kuhitimisha kuwa kanuni imeshindwa.
Mpangilio pia ni muhimu kuhusiana na kitu kingine chochote kwenye mashine. Madaraja ya Docker, VPN ya pili na kanuni zozote zilizokuwepo awali kutoka kwa taswira ya mtoa huduma zote zinaongeza vipaumbele, kwa hiyo soma orodha kamili ya kanuni badala ya kudhani kipaumbele 100 kiko peke yake.
Fanya usambazaji na tafsiri vilingane na njia
Uelekezaji huchagua kiungo cha juu; hautoi ruhusa ya kusambaza. Kokwa lazima iwe na usambazaji wa IPv4 umewashwa, na kinga ya moto lazima ikubali mwelekeo kutoka kwa mteja kuelekea WAN na trafiki ya kurudi. Jedwali sahihi lenye mnyororo wa FORWARD unaotupa mtiririko hutoa dalili sawa na njia inayokosekana, ndiyo sababu zote mbili hukaguliwa katika hatua moja.
Ikiwa WAN ya pili haitaelekeza bwawa la kibinafsi kurudi kwako, tafsiri chanzo kwenye toka hilo. Kwa kiolesura chenye anwani inayobadilika, chaguo la kawaida ni kanuni nyembamba ya masquerade iliyopunguzwa kwa bwawa na kiolesura:
iptables -t nat -A POSTROUTING -s 10.77.0.0/24 -o usb0 -j MASQUERADE
Wigo ni muhimu zaidi kuliko lengo hapa. Kanuni ya masquerade inayolingana na kiolesura chochote cha kutoka pia itaandika upya trafiki inayotoka vizuri kupitia eth0, na hiyo huficha makosa ya uelekezaji badala ya kuyarekebisha. Tafsiri huendeshwa baada ya uamuzi wa uelekezaji, kwa hiyo haiwezi kamwe kurekebisha pakiti iliyotumwa kwenye kiungo cha juu kisichofaa.
Gharama ya handaki pia inahitaji umakini pindi njia zinapotofautiana. Ikiwa wateja wanajadiliana TCP MSS kubwa na WAN mbadala ina MTU ndogo au handaki ndani yake, sehemu kubwa hukwama huku ndogo zikifanya kazi. Kubana MSS kwenye njia ya usambazaji kunafanya hilo kuwa tabia inayotabirika badala ya kukwama kwa vipindi.
Amua kile kinachotokea usb0 inapotoweka
Jedwali tupu sio hali ya kufunga wakati wa kushindwa. Ikiwa njia inayolingana inatoweka, utafutaji unaendelea hadi kanuni inayofuata, unafika jedwali kuu na kuchukua chaguo-msingi la eth0. Trafiki ambayo ilipaswa kutoka kupitia WAN ya pili inatoka kimya kupitia ya kwanza, ambayo katika usambazaji wenye uelekezaji wa sera kwa kawaida ni tokeo ambalo hulitaki kwa kiwango cha chini.
Mahali ambapo kurudi nyuma huko hakukubaliki, ongeza njia ya mwisho iliyo wazi kwenye jedwali 600, kama chaguo-msingi la blackhole, au tupa bwawa kwenye kinga ya moto wakati kiolesura kimezimwa. Yoyote kati ya hizo ni uamuzi unaoweza kuandika; ukimya sio.
Uthabiti ni kipengele cha mwisho. Yeyote anayemiliki viungo vyote viwili, iwe ni meneja wa mtandao, hati ya mtumaji au mzunguko wa maisha wa muunganisho, lazima aunde upya njia na kanuni kila kuunganisha upya bila kuongeza nakala. Thibitisha kwa ombi kutoka kwa mteja halisi na ombi tofauti kutoka kwa lango, thibitisha toka lililozingatiwa kwa zote mbili, kisha vuta WAN ya pili na uangalie ni tokeo gani kati ya mawili uliyobuni linatokea kweli. IPv6 linahitaji jedwali, kanuni na tafsiri yake yenyewe; kanuni ya IPv4 hapo juu haisemi chochote kuhusu hilo.