Är Routelinn kënnt ofgelehnt zréck, an den Uerot, deen Dir fannt, seet, Dir sollt IP-Weiderleitung aktivéieren. Déi zwou Saachen leien op verschiddenen Etappe vum Problem. Weiderleitung entscheet, ob en Host Paketen tëscht Interfaces bewege kann; si huet keng Meenung dozou, ob d'Destinatioun, déi Dir aginn hutt, e gültegt Netzwierk ass. Fixéiert als éischt de Präfix, well Weiderleitung eng Adress an eng Mask, déi sech widerspriechen, net rett.

Woriwwer de Parser sech tatsächlech beschwéiert

Eng Destinatioun, déi als Adress plus Mask geschriwwen ass, muss en Netzwierk beschreiwen, an en Netzwierk fänkt mat genullten Hostbits un. Wa d'Adress, déi Dir ugitt, nach e Wäert am Hostdeel dréit, ass d'Paar banneschten inkonsistent: 172.20.130.0 gesäit propper aus, well et mat Null ophält, awer d'Null am véierten Oktett ass net dat eenzegt, wat zielt. Dat drëtt Oktett ass dat, wat hei verfeelt Bits hält.

Instrumenter behandle déi Inkonsistenz ënnerschiddlech. Streng Parser lehnen d'Linn of an nennen d'Hostbits. Mëll Parser maskéieren d'Adress an installéieren eppes, wat Dir net gefrot hutt, wat méi schlëmm ass, well d'Konfiguratioun elo e Beräich routet, deen Dir ni gemengt hutt. Dem Python säin ipaddress-Modul weist d'Wiel direkt: streng Netzwierkparsing werft e Feeler, an strict=False maskéiert d'Hostbits aus. Äre Client kann tëscht Versiounen streng, mëll oder inkonsistent sinn, also liest d'Message, amplaz enger Gewunnecht ze vertrauen.

Schafft d'Beispill mat der Hand duerch

Huelt en Tunnel, deen 172.20.130.0 mat enger /20-Mask erreeche muss. Eng /20 léint véier Bits aus dem drëtten Oktett, também zielt dat Oktett nëmmen a Schrëtt vun 16: 0, 16, 32 an esou weider bis 240. De Wäert 130 fält tëscht 128 an 143, wat heescht, datt d'ëmfaasst Netzwierk bei 172.20.128.0 ufänkt, net bei 172.20.130.0 mam leschten Oktett genullt.

Ausgeschriwwen geet de Block vun 172.20.128.0 bis 172.20.143.255 an hält 4,096 Adressen. Déi selwecht Wäerter engem net-strengen Parser ze ginn, weist d'Ersetzung, déi en an Ärem Numm géif maachen:

$ python3 -c "import ipaddress; n=ipaddress.ip_network('172.20.130.0/20', strict=False); print(n, n.num_addresses)"
172.20.128.0/20 4096

Entscheet, wéi eng Destinatioun Dir tatsächlech gemengt hutt

D'ofgelehnte Linn verstoppt meeschtens eng vun dräi Absiichten, an nëmmen Dir kënnt wielen. Wann den Tunnel de ganze Block brauch, schreift 172.20.128.0/20, déi kanonesch Netzwierkadress. Wann den Tunnel nëmmen de 130-Segment brauch, war d'Mask falsch an 172.20.130.0/24 ass déi éierlech Form. Wann eng eenzeg Maschinn d'Zil ass, ass eng IPv4-Hostroute /32 an et ass keng Maskenarithmetik dobäi.

Jidderee vun hinnen erlaabt eng aner Quantitéit Trafic, an dat ass de richtegen Grond, d'Mask net ze verbreeden, bis d'Beschwéier opgehältt. Eng /16 hëlt d'Linn bal iwwerall un an schéckt Trafic zu Destinatiounen, déi Dir ni duerch den Tunnel wëllt routen. Schreift de schmuelste Präfix, deen der Absicht entsprécht, a bestätegt en dann géint den nächsten Hop, deen Dir erwaart, net géint dem Parser seng Rou.

Firwat Weiderleitung ni d'Léisung war

Eng ofgelehnte Route erreecht ni de Weiderleitungswee, also kann d'Ëmschalten vun net.ipv4.ip_forward d'Resultat net änneren. Déi Astellung zielt méi spéit, wann den Host Paketen tëscht Interfaces muss weiderginn, an se anzeschalten, ier den Dësch korrekt ass, ännert nëmmen, wéi eng Etapp als nächstes feelt.

Zwee aner Saachen ginn dacks op der selwechter Plaz beschëllegt. D'Route kann ugeholl ginn an trotzdem géint eng méi spezifesch Route verléieren, an eng Firewall-Reeg kann Trafic no enger korrekter Sich fale loossen. Halt d'Etappen auserneen: Syntax, Installatioun, Auswiel, Filterung. Op der falscher Etapp ze schaffen fillt sech produktiv un, well all Ännerung eppes nei startet.

Kontrolléiert déi installéiert Route an de Wee, deen se gewënnt

Soubal de Client d'Linn ugeholl huet, kuckt, wat en installéiert huet a wéi eng Route de Kernel fir eng representativ Adress am Block wielt. Wann de installéierte Präfix vum geschriwwenen ofwäicht, huet en Normalisateur an Ärem Numm gehandelt.

Frot eng Memberadress souwéi eng baussen dem Block, sou datt de Verglach sënnvoll ass an net just eng berouegend Linn:

ip -4 route show 172.20.128.0/20
ip -4 route get 172.20.140.10
ip -4 route get 172.20.200.10

Déi drëtt Ufro soll baussen dem Tunnel falen, wann Äre Präfix richteg ass, a wann net, ass d'Route, déi Dir gebaut hutt, méi breet wéi Dir mengt. Notéiert, wat de Präfix sollte couvréieren, ier Dir déi nächst Astellung beréiert, well eng Route, déi sech parst, an e Wee, deen funktionéiert, getrennte Beobachtunge bleiwen.

Ähnlech Artikelen