Twa klintpulen, ien gateway en it plan liket triviaal: ien regel stjoert it earste pul oer de flugge uplink, in oare stjoert it twadde pul troch in partnerskonnel. Dan steane de regels en it twadde pul ferlit noch altyd fia de standertrûte. De regel is net stikken. De boarne fan it pakket is net wat de auteur ferwachte op it momint fan 'e syktocht, om't oersetting en syktocht op ferskillende punten yn 'e reis fan itselde pakket plakfine, en de folchoarder is it tsjinoerstelde fan it mentale diagram dat de measte minsken tekenje.

De syktocht bart foardat de boarne werom skreaun wurdt

Foar in pakket dat fan in VPN-klint trochstjoerd wurdt, rint de kernel in fêste folchoarder út. It komt oan op 'e tunnelinterface, giet troch prerouting dêr't conntrack en DNAT lizze, dan wurdt de routingbeslissing nommen, dan trochstjoere, dan postrouting, dêr't SNAT as lêste tapast wurdt. In regel fan 'e foarm from wurdt by dy routingbeslissing besjoen, wat betsjut dat er it oarspronklike adres fan 'e klint sjocht, net it oersetten iene.

It tafoegjen fan in masquerade-regel feroaret dus net hokker belied by de útgeande stream past. Wat it feroaret is wat de fiere kant sjocht, en dêrtroch hokker weromrûte bestiet. Dat binne twa ferskillende gefolgen, en feroaringsresinsjes betiizje se hieltyd. Skied se en it ûntwerp wurdt meastentiids binnen in minút dúdlik.

It is yn 'e rjochting fan it antwurd dat it oersetten adres yn 'e regels ferskynt. In pakket dat nei de gateway weromkomt is oan it oersetten adres adressearre, en as jo beliedsregels hawwe op basis fan bestimming of fan 'e ynterface dêr't it oer binnenkaam, is dat de wearde dy't jo ferlykje. Deselde ferbining, oare boarne fan wierheid yn elke rjochting.

StageSource the kernel seesWhat it means for your rule
PreroutingClient address, 172.31.7.42Where marks and DNAT are applied
Routing decisionStill 172.31.7.42This is where from rules match
PostroutingBecomes 198.51.100.9What the far end and its return route see

Twa pulen mei ferskillende boarnen hawwe dus yndie ferskillende tabellen nedich, en it ûntwerp is sûn. Wat de tabel hjirboppe útslút is de fluchwei om te debuggen troch te sjen wat de fiere site ûntfongen hat en dêrút de regel ôf te lieden.

In test fan 'e gateway is gjin test fan it pul

Ferfier dat de gateway sels generearret giet nea troch prerouting, om't it net op in ynterface oankaam. It wurdt yn it outputpaad routed, mei it eigen adres fan 'e gateway as boarne, en in from-regel basearre op in klintberik sil net passe. Elk kaartsje yn dit mêd dat seit dat it fan 'e doaze ôf wurket mar net fan 'e klint, is datselde feit yn oare wurden.

Simulearje de klint ynstee fan him te benearen. De routingssyktocht kin direkt frege wurde, mei in boarne en in yngongsynterface jûn:

ip route get 198.51.100.9 from 172.31.7.42 iif tun0
ip route get 198.51.100.9 from 172.31.8.42 iif tun0
ip route show table 201

Rin it ien kear per pul. As de twa opdrachten deselde ynterface weromjouwe, skiede de regels de pulen net, en de reden is óf in ûntbrekkende regel óf in regel mei hegere prioriteit dy't by beide past. As se ferskillende ynterfaces weromjouwe mar de klint mislearret noch, leit de fout efter de syktocht en kinne jo ophâlde mei nei regels te sjen.

Prioriteit, net posysje yn it bestân

Regels wurde yn tanimmende prioriteitsfolchoarder beoardiele, en it getal is wat telt, net de folchoarder dêr't jo se yntypen. De local-tabel stiet op prioriteit 0, de main-tabel op 32766 en de standertregel op 32767, dêrom belânet in regel dy't mei de standertprioriteit tafoege is ticht by de ein fan 'e list en ferliest fan hast alles.

ip rule show
ip rule add from 172.31.8.0/24 lookup 201 priority 1000
ip -4 route show table 201

In eksplisite prioriteit makket de bedoelde folchoarder sichtber yn it bestân en by resinsje. It foarkomt ek dat in lettere tafoeging stilwei foar in besteande regel springt, wat de meast foarkommende oarsaak is dat in wurkjend belied nei in net besibbe feroaring ophâldt te wurkjen.

In passende regel dy't nei in ûnfolsleine tabel wiist is de oare falstrik. As tabel 201 in standertrûte befettet mar gjin rûte nei de bestimming, wurdt it pakket weilitten of nei it ferkearde plak stjoerd, en de regel liket isolearre folslein korrekt. Lês de tabel, net allinnich de regel. In regel is in wiizer, en in lege tabel is in wiizer nei neat.

De weromrûte moat noch altyd bestean

Boarnebelied kiest in útgong. It makket gjin weromrûte. As it twadde pul troch in partnerskonnel fuortgiet, moat de partner witte hoe't er 172.31.8.0/24 berikt, itsij fia in rûte werom nei de gateway, itsij troch oersetten adressen te ûntfangen dy't er al ken.

Kieze tusken dy beiden is in ûntwerpbeslissing mei sichtbere gefolgen. It klintberik werom routearje behâldt de identiteit fan elke klint by de partner en freget dat er jo prefiks akseptearret. Oersetting ferberget it pul efter ien adres en freget dat de partner allinnich dat adres akseptearret, tsjin 'e priis dat jo logboeken en dy fan har net mear oerienkomme oer wa't ferbûn is.

Wat jo ek kieze, skriuw it njonken de puldefinysje. In weromrûte dy't allinnich yn iens immen syn ûnthâld bestiet is krekt it soarte ding dat oerbliuwt oant de partner in brânmuorre feroaret, en dan in dei kostet om te rekonstruearjen.

Fang de eigen tunnel fan 'e gateway net yn it belied

De regels dy't jo foar klinten skriuwe jilde ek foar ferfier dat de gateway generearret, útsein as jo it útslute. In brede regel basearre op in mark of op 'e útgongsynterface kin de eigen ferbining fan 'e gateway nei de partner fange, en dan wurdt de tunnel dy't it belied draacht troch it belied routed. Dat leveret in lus of in ûnderbrekking op dy't op in providerflater liket.

Behein elke regel sa nau as it ûntwerp tasteat: boarneprefiks, yngongsynterface en, wêr't stipe, in mark dy't allinnich klintpakketten drage. Test dan de eigen ferbining fan 'e gateway nei elke regelferoaring, om't de flater selsferwizend is en net yn in klinttest ferskynt.

De ip-rule-hânlieding dokumintearret de semantyk fan 'e selektor en de prioriteit. Kombinearje dy mei in syktochttest per pul en it ûntwerp wurdt kontrolearber, wat it ferskil is tusken beliedsrouting dy't in jier hâldt en beliedsrouting dêr't elkenien bang foar is om oan te kommen.

Relatearre artikelen