Når NAT inne i en site-til-site-VPN fortjener plassen sin
Oversettelse kan redde et overlappende prefiks eller en ensidig returvei, men den endrer adressene hver policy ser. Design mappingen eksplisitt.
To nettsteder bruker begge samme private område, og tunnelen kommer opp mens ingenting nyttig krysser den. Oversettelse er det vanlige svaret, og det er et reelt svar: å presentere et annet område for den fjerne siden kan løse en overlapping eller en returvei som det andre nettverket ikke kan rute. Delen som hoppes over, er at oversettelse endrer adressene hver senere beslutning ser. Behandle det som en dokumentert designbeslutning med en skriftlig mapping, ikke som en regel som legges til til en ping lykkes.
Bestem hvilken adresse som skrives om
Kildeoversettelse endrer hva den fjerne tjenesten og loggene dens ser som klient, så en filialvert blir en gateway-adresse ved ankomst. Destinasjons- eller prefiksoversettelse presenterer i stedet en alternativ adresse for en ekstern ressurs. Noen utrullinger trenger koordinert oversettelse på begge sider for å skille to ellers identiske nettverk, og kombinasjonen er der mesteparten av forvirringen starter.
Skriv ned kilden før oversettelse, destinasjonen slik applikasjonen kaller den, og adresseparet hver gateway matcher på. Tre kolonner er nok, og den tredje kolonnen er den folk utelater.
Rekkefølgen på selektorene har også noe å si. Valg og oversettelse av IPsec-policy skjer på definerte trinn, så en selektor skrevet for adresser før oversettelse matcher kanskje aldri pakken på trinnet du antok. Kontroller policyen som er installert i stedet for policyen du hadde tenkt å installere, fordi de to divergerer nøyaktig når en regel godtas av én komponent og ignoreres av en annen:
ip xfrm policy show
ip xfrm state show
nft list ruleset | grep -A4 nat
Følg nyttelasten og returveien
En server som logger den oversatte kilden i stedet for den enkelte filialverten, vil bryte enhver regel eller rapport som er knyttet til den opprinnelige adressen. Før du endrer mappingen, finn ut om noe lenger ned tar en beslutning fra det feltet: tilgangslister, revisjonsrapporter, hastighetsgrenser, lisenskontroller. Hver av dem er et sted der oversettelsen senere dukker opp som en uforklarlig feil.
Protokoller som bærer adresser inne i nyttelasten sin, trenger egen planlegging, fordi omskriving av den ytre headeren ikke berører den indre referansen. Aktiv FTP, SIP og noen fjernaksesprodukter er de klassiske tilfellene, og et design som ignorerer dem, vil virke for webtrafikk og feile for applikasjonen som betydde noe.
Returtrafikk avhenger av stateful mappings. Gateway-failover kan miste den tilstanden, asymmetrisk ruting kan omgå den, og en omstart kan tømme den mens sesjoner blir stående åpne på den fjerne siden. Derfor er en forespørsel som når destinasjonen, og en sesjon som fullføres, to forskjellige akseptresultater.
Vei det mot å omnummerere et nettsted
Omnummerering av ett motstridende nettsted fjerner mappingen helt og etterlater en adresseplan som kan leses uten oversettelsestabeller. Det er operativt dyrt: DNS-poster, statiske tildelinger, brannmurregler og hver dokumentert adresse må endres sammen. Kostnaden kommer én gang, i et planlagt vindu, med en klar slutttilstand. Det du kjøper, er evnen til å lese en pakkefangst år senere uten en oppslagstabell.
Oversettelse unngår de fleste lokale endringer og skaper en mapping som må vedlikeholdes i DNS, dokumentasjon og feilsøking for alltid. Kostnaden kommer kontinuerlig, i form av hver fremtidige ingeniør som må lære at ett prefiks betyr noe annet inne i tunnelen.
For en midlertidig forbindelse eller et partnernettverk du ikke kontrollerer, er den løpende kostnaden vanligvis verdt det. For to nettsteder du eier og vil eie i årevis, er omnummerering ofte den billigere beslutningen når migreringen regnes ærlig.
Bevis begge retninger med en ekte sesjon
Test en applikasjonssesjon i stedet for en enkelt sonde. En vellykket ekkoanmodning beviser at én retning av én protokoll virker, og den er fullt forenlig med en returvei som feiler for alt stateful. Bruk tjenesten som motiverte designet, og les loggen dens i den fjerne enden for å se hvilken kildeadresse den registrerte.
tcpdump -ni any host 10.40.9.20 and port 443
conntrack -L | grep 10.40.9.20
ip route get 10.40.9.20
Bekreft deretter at bare de tiltenkte tjenestene er tilgjengelige gjennom mappingen. Oversettelse endrer adressering og gjør ingenting for autorisasjon, så brannmurpolicyen avgjør fortsatt hva som er tillatt. Et design som stoler på et uklart oversatt prefiks som tilgangskontrollen sin, har ingen tilgangskontroll i det hele tatt.
Registrer mappingen, den testede sesjonen og adressene hver side observerte. Den neste personen som feilsøker denne tunnelen, trenger de tre fakta mer enn konfigurasjonsfilen.