Två platser som båda använder 192.168.1.0/24 kan var och en nå internet och ändå inte nå varandra. Gatewayen rapporterar inget fel; den installerar en enda rutt för det prefixet och skickar varje paket till den part som krävde det först. Ingenting i handskakningen, chifferlistan eller gränssnittets metrik säger vilken part som har fel. Adressplanering är den del av designen som avgör detta innan någon ansluter.

Inventera varje utrymme som måste vara nåbart

Skriv ned intervallen som måste routas, inte bara de du konfigurerar. Det betyder platsernas LAN, VPN-klientpooler, molnets undernät, hanterings- och out-of-band-nätverk, laboratoriosegment och de nätverk som användare vanligtvis ansluter från hemmet. En konsumentrouter som levereras som 192.168.1.0/24 är inte hypotetisk, och samma prefix dyker upp på hotell och konferensanläggningar. Inventariet är en tabell över prefix, ägare och syfte, och det är den enda artefakt som hindrar att samma intervall delas ut två gånger.

PrefixPurposeOwner
10.20.0.0/16site LANsnetwork team
10.20.100.0/22VPN client poolremote access
10.20.200.0/24managementoperations

Lägg till de prefix du förväntar dig under det kommande året, eftersom en plan som bara täcker i dag misslyckas på den första nya platsen. Markera i varje rad vem som kan ändra den, inte bara vem som äger den.

Det är återanvändningen som gör detta svårt: det privata utrymmet är ändligt och varje organisation betraktar 10.0.0.0/8 som sitt eget. En plan kan inte lova att inget framtida gäst-LAN landar på ett av dina prefix, så designen måste säga vad som händer när det gör det. Två regler gör det mesta av arbetet. Lägg klientpooler i ett sammanhängande block som du kan sammanfatta, och tilldela aldrig ett intervall som ett annat team redan routar. Allt annat är ett register som någon håller uppdaterat.

Varför en överlappning besegrar routingtabellen

En rutt är ett prefix plus ett nästa hopp, och vidarebefordran väljer det längsta matchande prefixet. När två parter båda kräver samma 192.168.1.0/24 har tabellen en enda post för det, så trafik för båda platserna går ut genom samma tunnel. Den andra platsen är inte felkonfigurerad; den är onåbar eftersom den första svarar för samma adresser. Ingen metrik kan skilja dem, eftersom matchningen sker innan metriker konsulteras.

Felet är asymmetriskt och lätt att läsa fel. Värdar på plats A når gatewayen och vissa tjänster, medan värdarna på plats B inte svarar på något, och loggen visar en frisk tunnel i båda riktningarna. Det mönstret är en adresskollision och inte ett fel i autentisering eller brandvägg, och att bekräfta det kräver en tabellutskrift jämförd med inventariet.

Dimensionera klientpoolen och platsernas intervall medvetet

En VPN-klientpool är ett intervall som gatewayen delar ut en adress i taget, så storleken begränsar samtidigheten. Ett /24 rymmer 254 användbara adresser, vilket är generöst för ett litet team och trångt för en filial som kör containrar; ett /22 kostar inget extra i det privata utrymmet och tar bort diskussionen. Håll poolen sammanhängande och borta från varje plats LAN, så att samlingsrutten mot klienter aldrig sväljer en plats. Reservera intervallet även när poolen är tom, eftersom ett oskrivet intervall är det som nästa ingenjör tilldelar.

Platser får intervall dimensionerade för förväntade värdar plus tillväxt, justerade på en gräns som sammanfattas rent. Medvetna luckor mellan tilldelningar kostar ingenting och köper plats för senare aggregering.

Kontrollera sedan den riktning folk glömmer: returvägen. Varje platsrouter behöver en rutt till klientpoolen, och koncentratorn behöver en rutt till varje plats-prefix den betjänar. En prydlig prefixtabell utan väg tillbaka till poolen är fortfarande en trasig design, och symptomet är en enkelriktad anslutning som inte svarar på något. Håll båda riktningarna i samma tabell och granska den varje gång en plats läggs till.

Översättning och omnumrering löser olika problem

När en överlappning redan finns finns två ärliga alternativ och ett oärligt. Omnumrering tar bort kollisionen permanent och kostar ett underhållsfönster plus varje hårdkodad adress du glömde. Adressöversättning mappar den ena sidans privata intervall till ett annat intervall vid tunnelkanten, vilket lämnar båda platserna orörda men lägger till tillstånd, bryter protokoll som bäddar in adresser och gör loggarna svårare att läsa. Det oärliga alternativet är en värdrutt till en enda server, som klarar ett test och misslyckas med allt annat.

Välj efter kontroll och livslängd. En plats du äger och kan planera hör på omnumreringsvägen; ett partnernätverk du inte kan röra, använt för en enda applikation, är en kandidat för översättning med en dokumenterad mappning. Skriv ned den mappningen, för översättning som bara finns inne i en konfigurationsfil försvinner i samma ögonblick som filen ersätts.

Testa från den avlägsna sidan innan du rullar ut

Testa från ett nätverk som inte är värd för gatewayen, eftersom gatewayens eget LAN döljer de flesta routingfel. Anslut en klient bakom en vanlig hemrouter och nå sedan en tjänst på varje plats och en inne i klientpoolen. Testa även motsatt riktning, från en platsvärd till klienten, eftersom returvägar misslyckas oberoende. Ett test som bara pingar gatewayen bevisar att tunneln är uppe och inget mer.

Håll intervall, ägare och översättningsmappningar i ett gemensamt register som nästa plats läser innan den tilldelar något. Granska det när en plats läggs till, och behandla ett odokumenterat intervall som en defekt och inte som en överraskning.

Registret är leveransen. En plan som lever i tre personers minne misslyckas första gången en av dem är på semester, och en överlappning som hittas i produktion kostar mer än tabellen skulle ha kostat.

Relaterade artiklar