CoreCP

Een IP-adres vervangen

Vroeg of laat moet een server naar een ander IP-adres. Je provider levert een nieuw blok, je verhuist naar een ander datacentrum, of één adres staat op een zwarte lijst en je wilt ervanaf. Dat klinkt als één handeling, maar dat is het niet:

Geschreven voor: Beheerder

Vroeg of laat moet een server naar een ander IP-adres. Je provider levert een nieuw blok, je verhuist naar een ander datacentrum, of één adres staat op een zwarte lijst en je wilt ervanaf. Dat klinkt als één handeling, maar dat is het niet: de rest van het internet heeft jouw oude adres opgeslagen, en die kopieën verlopen niet allemaal tegelijk.

CoreCP doet daarom iets wat de meeste panelen niet doen. Er is een periode waarin je site op allebei de adressen antwoordt. Wie het nieuwe adres al heeft gekregen komt binnen, wie nog het oude gebruikt óók, en pas als er vrijwel geen verkeer meer op het oude adres binnenkomt laat jij het los. Geen nacht wakker blijven, geen "even wachten en hopen".

Beeld — Paneel → HostingServers → de server → menu Adres vervangen. Schermafdrukken worden gemaakt met openwolf designqc en staan in .wolf/designqc-captures/.

In het kort

FaseWat er gebeurtHoe lang
1. Nieuw adres erbijHet nieuwe adres komt op de netwerkkaartseconden
2. TTL verlagenDe DNS-records gaan naar 5 minutenseconden, daarna wachten
3. OmzettenDNS, SPF en de uitgaande mail wijzen naar het nieuwe adresseconden
4. UitfaserenMeten hoeveel er nog op het oude adres binnenkomt72 uur (standaard)
5. LoslatenHet oude adres gaat van de machine afseconden — en jij drukt

Alleen stap 5 is onomkeerbaar. Alle andere stappen kun je terugdraaien met Wissel afbreken.

Stap 1 — Begin de wissel

Ga naar de server, open het menu en kies Adres vervangen. Kies het adres dat weggaat en typ het adres dat ervoor in de plaats komt. Er verandert op dit moment nog niets: je maakt alleen het plan.

Onder Uitfaseren staan twee waarden die je meestal kunt laten staan:

  • Uitfaseerperiode — hoe lang het oude adres minstens in de lucht blijft. Standaard 72 uur.
  • Drempel — als er nog minder dan dit percentage verzoeken op het oude adres binnenkomt, mag het weg. Standaard 1%.

Eén van beide is genoeg. Is het verkeer na een dag al onder de drempel, dan hoef je de 72 uur niet uit te zitten.

Op de commandoregel:

# corectl ip migrate start 185.117.226.121 --to 185.117.226.123
[corecp] migration ipm-1786500000-a1b2c3 planned: 185.117.226.121 → 185.117.226.123 (v4, dedicated)
[corecp] phase-out period 72h, or until under 1.00% of requests still arrive on the old address
[corecp] next: corectl ip migrate preflight ipm-1786500000-a1b2c3

Stap 2 — Het nieuwe adres erbij

Druk op Adres toevoegen. De server zet het adres erbij via netplan, met een terugdraaitimer eronder: gaat er iets mis met de netwerkinstelling, dan zet de machine zichzelf binnen anderhalve minuut terug. Je kunt de server dus niet onbereikbaar maken met deze knop.

Daarna zie je vijf controles. De belangrijkste is beheeradres nog intact — die zegt dat de server nog steeds bereikbaar is op het adres waarop jij hem beheert.

Staat er bij reverse naam (PTR) dat er nog geen is, dan is dat geen probleem voor websites. Voor uitgaande mail wél: vraag de eigenaar van het netwerk om een PTR te zetten en draai daarna corectl ip list --refresh.

Stap 3 — De TTL verlagen, en wachten

Druk op TTL verlagen. Alle DNS-records die straks meeverhuizen gaan naar 300 seconden.

Nu komt het enige echte wachten. Onder Omzetten kan na staat een tijdstip. Dat is het moment waarop de oude TTL overal verlopen is: een resolver die het record een seconde vóór jouw wijziging ophaalde, houdt het oude antwoord nog de oude tijd vast. Meestal een uur.

Je kunt eerder omzetten met Toch omzetten, maar dan duurt de overlap navenant langer. Het scherm zegt dat er ook bij.

Stap 4 — Omzetten

Druk op Sites omzetten. Dit is de stap waar het om draait, en er gebeuren vier dingen tegelijk:

  • de A/AAAA-records wijzen naar het nieuwe adres;
  • de SPF-record noemt het nieuwe adres, zodat je mail niet ineens als spam wordt gezien;
  • uitgaande mail vertrekt vanaf het nieuwe adres;
  • de sites blijven óók op het oude adres luisteren.

Dat laatste is het hele punt. Bezoekers die het oude adres nog in hun cache hebben, merken niets.

Stap 5 — Uitfaseren en meten

Onder Uitfaseren staat hoeveel verzoeken er nog op het oude adres binnenkomen. Dat is geen schatting: de webserver schrijft bij elke regel op welk lokaal adres de verbinding binnenkwam, en dat wordt geteld.

Druk op Nu meten om opnieuw te tellen. Je kunt het scherm ook gewoon open laten staan; het loopt vanzelf bij.

Zolang je wacht, staat er onderaan de lijst Wat alleen jij kunt regelen. Dat is het deel dat buiten CoreCP ligt en dat je niet moet vergeten:

  • reverse DNS (PTR) voor het nieuwe adres, bij de eigenaar van het netwerk;
  • glue-records als een nameservernaam naar het oude adres wees — zie Eigen nameservers;
  • licenties die op een IP-adres staan (panelen, WAFs, commerciële mailfilters);
  • firewalls en toegangslijsten bij derden die het oude adres noemen.

Stap 6 — Het oude adres loslaten

Als de uitfaseerperiode voorbij is óf het verkeer onder de drempel zit, wordt de knop onderaan actief. Hij staat in een rood kader en vraagt je het adres over te typen, want dit is de enige stap die je niet kunt terugdraaien: wie het oude adres dan nog in zijn cache heeft, krijgt een geweigerde verbinding tot zijn resolver ververst.

# corectl ip migrate release ipm-1786500000-a1b2c3
[corecp] 185.117.226.121 is off this node; 185.117.226.123 serves alone

Wil je het adres nog even aanhouden — bijvoorbeeld omdat je het pas volgende maand teruggeeft aan je provider — gebruik dan --keep. De wissel is dan af, maar het adres blijft op de machine staan zonder iets te bedienen.

Het beheeradres van de server

Het adres waarop jíj de server beheert, wissel je niet in het paneel. Daar hangen de agent, het servercertificaat en elke site zonder eigen adres aan, dus dat gebeurt op de machine zelf:

$ ssh root@stck1.corecp.dev
# corectl ip migrate start 185.117.226.120 --to 185.117.226.130

Het paneel toont wel het plan, zodat je weet wat je gaat doen. Alle fasen zijn verder identiek — inclusief de terugdraaitimer.

Iets misgegaan?

Ik ben te vroeg omgezet. Druk op Wissel afbreken. De sites gaan terug naar het oude adres en beide adressen blijven op de machine staan. Je kunt daarna opnieuw beginnen.

Het oude adres wil er niet af. Zolang de overlap loopt, weigert corectl ip remove het adres met een verwijzing naar deze wizard. Dat is met opzet: het is de enige onomkeerbare stap en die hoort één plek te hebben.

Ik zie "niet gemeten" bij het verkeer. De webserver schrijft het lokale adres pas mee sinds deze versie. Draai corectl reconcile op de server; daarna telt de volgende meting weer echt. Zolang dat niet is gebeurd, is de uitfaseerperiode het enige signaal — en die loopt gewoon door.