PDA

Bekijk Volledige Versie : server move ttl wijzigen



dasal
03/05/07, 16:47
beste,

We gaan een 80 tal websites verhuizen naar een nieuwe server met een ander ip-adres. Hiernaar verwijzen een 250-tal (sub+)domeinnamen. Nu moet ik dus blijkbaar de ttl verlagen naar een half uurtje ofzo en dit 2 dagen voor de verhuis.
Nu, waar moet ik de ttl verlagen? Is dit per domeinnaam of kan dit ergens globaal op de dns server? We draaien momenteel bind op redhat. Er is in de grafische interface onder zone defaults een "default time-to-live".

thnx&greets,

Ryan Kalkhoven
03/05/07, 16:52
Hou er rekening mee dat jij je TTL wel kan verlagen, maar dat providers in hun nameservers ook zelf kunnen bepalen dat ze maar om de 3 dagen een refresh doen.
Met alleen het aanpassen van de TTL kom je niet vlekkeloos over. Een tijdelijk iptables forward script kom je stukken verder mee.

crazycoder
03/05/07, 17:06
Als je dit wil dan moet je rekening houden met meer dan 2 dagen. Als het echt kritisch is bijvoorbeeld omdat een nieuwe site live moet komen dan regelen wij dit weken voordien.
Dan is het, zoals Ryan aangeeft, nog maar de vraag of men zich er veel van aantrekt.

Afhankelijk van de huidige settings van de DNS en de belangen van de site, verhuizen wij domeinen en zetten de DNS "om". Voor het grootste deel van de internetters is het dan binnen 8-24 uur geregeld.

Als het database driven sites zijn kan het inderdaad beter zijn om via iptables door te sturen naar het nieuwe IP en dat een week of 2 laten draaien om er zeker van te zijn dat niemand meer op het oude IP beland.

dasal
03/05/07, 17:12
1.okay, maar is het voldoende om de "default time-to-live" te wijzigen of moet dit voor alle domeinnamen appart?

2.ik ga eens wat kijken voor die iptables forward, wat waar en hoe. De websites draaien op iis5 en de huidige firewall en nat op ipchains. De verhuis komt er niet voor niets :).

3.Als je gewoon een dns-record wijzigd (A bijvoorbeeld) duurt dit toch bijna nooit langer als een dag?

VinceSTM
03/05/07, 18:16
kan iemand zeggen hoe je een ip forward naar een ander ip met iptables?

Ryan Kalkhoven
03/05/07, 18:27
Indien je een compleet ip wil forwarden dan moet je gaan werken met nat.
Dit is niet altijd handig. Wij doen het vaak alleen per poort

Ik zal straks eens kijken of ik een stukje van het script kan posten

crazycoder
03/05/07, 19:27
kan iemand zeggen hoe je een ip forward naar een ander ip met iptables?
Google tip: nat prerouting dnat iptables

Exacte code zou ik ook op moeten zoeken maar met google zou je plenty voorbeelden moeten kunnen vinden.

groenleer
04/05/07, 16:06
Ook een oplossing zou kunnen zijn het volgende:
(werkt alleen met een ip in de zelfde range als het oude)
Het nieuwe ip adres toevoegen als subinterface op je server.
zorgen dat de server ook met het nieuwe ip de requests afhandelt.

DNS wijzigen.
Nu een weekje zo laten draaien.
Nieuwe server voorzien van de website data, en het ip adres verhuizen van de servers.
De DNS is al gewijzigd dus hier heb je niet echt om kijken meer naar.

Echter dit trucje werkt alleen in een beperkt aantal situaties.

Ryan Kalkhoven
25/05/07, 10:20
Ik zal straks eens kijken of ik een stukje van het script kan posten

Beter laat dan nooit zou ik zeggen, maar hierbij nog het script wat ik bedoel:

Wij gebruiken hier 2 scriptjes voor. Of eigenlijk 1 script en een makkelijk config script.


Het eerste script "redirect_single_port.sh"
####################
#!/bin/bash
IPTABLES=`which iptables`

# test parameters
if [ $# -ne 3 ]
then
echo "Usage $0 destination_ip forwarding_ip portnumber"
exit 0
fi
destination_ip=$1
forwarding_ip=$2
portnumber=$3


# Activate forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

# Forward packets coming in from the outside
iptables -t nat -A PREROUTING -p tcp -d $destination_ip --dport $portnumber -j DNAT --to-destination $forwarding_ip:$portnumber

# Make it work from the firewall itself
iptables -t nat -A OUTPUT -p tcp -d $destination_ip --dport $portnumber -j DNAT --to-destination $forwarding_ip:$portnumber

# Make responses on the destination network go through this server
iptables -t nat -A POSTROUTING -p tcp -d $forwarding_ip --dport $portnumber -j SNAT --to-source $destination_ip

# Allow forwarded packets
iptables -A FORWARD -p tcp -d $forwarding_ip --dport $portnumber -j ACCEPT -m state --state NEW,ESTABLISHED,RELATED
####################


Het config bestand: "runme.sh"
####################
#!/bin/bash
IPTABLES=/sbin/iptables

# Flush all chains including the user defined ones
$IPTABLES -F
$IPTABLES -t nat -F PREROUTING
$IPTABLES -t nat -F POSTROUTING

# Redirect ports
cmd=./redirect_single_port.sh

# === test ===
$cmd 213.247.45.27 213.247.45.11 25
####################

Beide scripts moeten executable zijn en met runme.sh activeer je het script.
De regel "$cmd 213.247.45.27 213.247.45.11 25" moet je naar eigen wens aanpassen. De regel kun je zo vaak kopieren als je wil (onder elkaar). Het eerste IP is het IP waarop het binnen komt op dat systeem (dient als alias of vast ip geconfigureerd te zijn), het tweede adres is waar naartoe je het wil forwarden en het laatste getal is om welke poort het gaat.

Succes!

hrodenburg
25/05/07, 10:41
Of je gebruikt "6tunnel" (zit standaard in debian). Eigenlijk is het bedoeld om te proxy'en tussen ipv4 en ipv6, maar om simpel ip/poorten te forwarden werkt het ook prima. Soms beter dan met iptables moet ik zeggen, omdat je source ip, het ip van de "forwardende" server wordt. (Lijkt het script van Ryan ook te doen overigens).

GlennMatthys
25/05/07, 15:47
Een nog simplere oplossing, reverse http proxy.

hrodenburg
25/05/07, 16:30
Een nog simplere oplossing, reverse http proxy.

Als het echt alleen om http verkeer gaat inderdaad. Kun je het zelfs nog per vhost doen :cool:

GlennMatthys
26/05/07, 19:11
Als het echt alleen om http verkeer gaat inderdaad. Kun je het zelfs nog per vhost doen :cool:

En voor mail hoef je alleen maar het MX record aan te passen en op de oude mailserver een transport map maken die doorstuurt naar de nieuwe server.

Hmm ik weet niet direct nog andere diensten die soms getransplanteerd moeten worden... interessant onderwerp!

Pur
27/05/07, 10:52
Hmm ik weet niet direct nog andere diensten die soms getransplanteerd moeten worden... interessant onderwerp!

De nameserver zelf
De FTP accounts behorende tot de websites die je migreert
De POP accounts behorende bij de mail server die je migreert
Eventuele SCP/SFTP/SSH accounts die om allerlei redenen gebruikt kunnen worden.

Paar dwars straatjes om over te peinzen :-)