Hallo, Leute!
Da ich gestern (unglaublich, daß gestern die Leute von SixXS gearbeitet haben!) mein IPv6-Subnet bekommen habe, war ich dabei alles einzurichten.
Bisher habe ich geschafft, meinem PC und dem PC meiner Frau eine IPv6-Adresse zu geben und alles läuft.
Gerade kämpfe ich aber gegen den DNS... Es gibt sicher ein Fehler irgendwo, ich verstehe aber nicht wo...
Also, ich wollte meine Zone haus.lucabert.com einrichten, wie ich schon ein haus.lucabert.de (mit IPv4) vor Monaten eingerichtet habe.
Nun in der Zone lucabert.com auf meinem vServer habe ich folgendes geschrieben:
ns.haus IN AAAA 2001:4dd0:fd98:1::1 haus IN NS ns.haus.lucabert.com.
Dann auf meinem PC (der diese IPv6 Adresse hat) habe ich die Zone angelegt:
/etc/bind/named.conf.local:
zone "haus.lucabert.com"{ type master; file "haus.lucabert.com"; notify no; };
/var/cache/bind/haus.lucabert.com:
@ IN SOA ns.haus.lucabert.com. hostmaster.haus.lucabert.com. ( 2011042507 ; serial 28800 ; refresh 7200 ; retry 604800 ; expire 86400 ; comfault_ttl ) haus.lucabert.com. IN NS ns IN MX 10 mail.lucabert.de. TXT "IPv6 @home"
IN AAAA 2001:4dd0:fd98:1::1
ns IN AAAA 2001:4dd0:fd98:1::1 anika IN AAAA 2001:4dd0:fd98:1:20b:6aff:fe73:a7cb frodo IN AAAA 2001:4dd0:fd98:1::1
Nun, wenn ich von mein PC oder der PC meiner Frau die Auflösung versuche geht es problemlos, denn für beide der Nameserver ist mein PC. Wenn ich aber probiere außerhalb meines Netzes, geht es nicht:
lucabert@nsold:~$ host ns.haus.lucabert.com Host ns.haus.lucabert.com not found: 2(SERVFAIL)
Nun, was mache ich falsches?
Danke Luca Bertoncello (lucabert@lucabert.de)
On Monday 25 April 2011, Luca Bertoncello wrote:
Nun, wenn ich von mein PC oder der PC meiner Frau die Auflösung versuche geht es problemlos, denn für beide der Nameserver ist mein PC. Wenn ich aber probiere außerhalb meines Netzes, geht es nicht:
lucabert@nsold:~$ host ns.haus.lucabert.com Host ns.haus.lucabert.com not found: 2(SERVFAIL)
Nun, was mache ich falsches?
Zwei Möglichkeiten:
a) die externe Auflösung versteht kein IPv6 (z.B. weil keine IPv6- Konnektivität besteht)
b) Port 53/tcp6 Deines PC ist von außen nicht erreichbar
Ich habe das Problem gelöst, indem ich einen externen (per IPv4 erreichbaren) DNS-Server zum Slave gemacht habe. Ein wenig aufpassen muss man mit den Synchronisationen.
Der Master muss auf eine spezifische IP genagelt werden von der aus er Notifications sendet, der Slave muss von dieser IP Notifications akzeptieren. Da der Slave in der Zone mit IPv4 drin steht muss man dem Master dann auch noch mitteilen dass er den Slave auf IPv6 informieren soll.
/etc/bind/named.conf.options: options { // ... //IPv6 soll verwendet werden: listen-on-v6 { any; };
//Master-Slave-Notify einschalten, damit automagisch //synchronisiert wird: notify yes;
//das sind Master, die mich als Slave benutzen: allow-notify { 11.22.33.44; 2001:db8:123::3; };
//als Master rede ich von hier aus: notify-source-v6 2001:db8:f56::8a;
//als Master informiere ich immer diese Slaves: also-notify { 2001:db8:123::4 ; 2001:db8:fb7::7; }; };
/etc/bind/meinezone (lan.example.org): $TTL 604800 @ IN SOA ns.lan.example.org. root.example.org. ( 2011042501,604800,86400,2419200,604800 ); ;name server: ns=Master im LAN, ns2=Slave extern @ IN NS ns.example.org. @ IN NS ns2.example.org. ;IPs der Server ns IN AAAA 2001:db8:f56::8a ns2 IN A 11.22.33.44
Sobald im Master eine Zone geladen wird werden alle eingetragenen DNS-Server der Zone informiert welche Version aktiv ist. Zusätzlich werden alle in "also-notify" eingetragenen Server informiert.
Sobald im Slave eine Notification reinkommt wird gecheckt ob sie zu einer von diesem Server gehostete Slave-Zone gehört und von einem eingetragenen Server der Zone bzw. einem in "allow-notify" eingetragenen Server kommt. Wenn nicht wird sie verworfen. Ansonsten wird gecheckt ob die Version neuer ist als die bekannte, wenn ja wird ein Zonentransfer angestoßen und die Daten werden aktualisiert.
Konrad
Konrad Rosenbaum konrad@silmor.de schrieb:
Hallo, Konrad! Danke für deine Antwort
Zwei Möglichkeiten:
a) die externe Auflösung versteht kein IPv6 (z.B. weil keine IPv6- Konnektivität besteht)
Wenigstens mir zu sagen, WELCHER Server für die Domain zuständig ist, sollte es aber... Wenn ich das gleiche mit ipv6.google.com mache, bekomme ich eine Antwort...
b) Port 53/tcp6 Deines PC ist von außen nicht erreichbar
Hier meine Firewallregeln:
/sbin/ip6tables -A INPUT -p tcp -m multiport --dports domain -j ACCEPT /sbin/ip6tables -A INPUT -p udp -m multiport --dports domain -j ACCEPT
Dann gibt es selbstverständlich einen DROP, aber diese Regeln sollten schon reichen, oder? Aber komischerweise sehe ich KEINE Anfrage auf die Port 53...
Ich habe das Problem gelöst, indem ich einen externen (per IPv4 erreichbaren) DNS-Server zum Slave gemacht habe. Ein wenig aufpassen muss man mit den Synchronisationen.
Und das habe ich auch gerade gemacht. Erstmal geht, aber ich denke, daß das Problem gerade bei der Firewall ist...
Kannst du mir sagen, was ich falsches mache? Eigentlich ist nichts anderes als was ich schon für IPv4 mache...
Übrigens: kannst du mich anpingen?
Grüße Luca Bertoncello (lucabert@lucabert.de)
On Monday 25 April 2011, Luca Bertoncello wrote:
a) die externe Auflösung versteht kein IPv6 (z.B. weil keine IPv6- Konnektivität besteht)
Wenigstens mir zu sagen, WELCHER Server für die Domain zuständig ist, sollte es aber...
host ist nicht so komfortabel. dig gibt Dir mehr Möglichkeiten.
Wenn ich das gleiche mit ipv6.google.com mache, bekomme ich eine Antwort...
Weil:
ipv6.google.com ist ein CNAME für ipv6.l.google.com. und l.google.com. wird ausschließlich von IPv4-basierten Nameservers ausgeliefert.
Du musst hier zwischen dem DNS-Server und der ausgelieferten Adresse unterscheiden. Der Server liefert RRs (Resource Records) aus. Für den Server sind RRs nur Daten (bis darauf dass von Resolvern ab und zu mal einer interpretiert wird um die Serverhierarchie abzuklappern). Ihm ist es auch egal ob er die RRs via IPv4 oder IPv6 ausliefert.
In der Konsequenz bedeutet das dass im Moment noch jeder DNS-Server IPv4 sprechen können muss, damit jeder Resolver arbeiten kann - auch der dumme IPv4-basierte Resolver bei Deinem Provider. Genau! Der den Du als Forwarder benutzt, um IPv6-Adressen aufzulösen, die Du dann am Provider vorbei tunnelst... ;-)
b) Port 53/tcp6 Deines PC ist von außen nicht erreichbar
Hier meine Firewallregeln:
/sbin/ip6tables -A INPUT -p tcp -m multiport --dports domain -j ACCEPT /sbin/ip6tables -A INPUT -p udp -m multiport --dports domain -j ACCEPT
Dann gibt es selbstverständlich einen DROP, aber diese Regeln sollten schon reichen, oder? Aber komischerweise sehe ich KEINE Anfrage auf die Port 53...
Das weißt sehr deutlich darauf hin dass der anfragende Resolver kein IPv6 kann.
Ich habe das Problem gelöst, indem ich einen externen (per IPv4 erreichbaren) DNS-Server zum Slave gemacht habe. Ein wenig aufpassen muss man mit den Synchronisationen.
Und das habe ich auch gerade gemacht. Erstmal geht, aber ich denke, daß das Problem gerade bei der Firewall ist...
Nö. Die Firewallregeln sehen gut aus - es sei denn Du hast noch ein DROP weiter oben. Ich tippe auf Forwarder/Resolver beim Provider.
Kannst du mir sagen, was ich falsches mache? Eigentlich ist nichts anderes als was ich schon für IPv4 mache...
Mit der kleinen Schwierigkeit dass noch nicht alle Hosts da sind wo sie hin sollen.
Übrigens: kannst du mich anpingen?
Ja, 75ms RTT. Laut Traceroute 17 Hops (inklusive beider Home-Router) - wir sind bei unterschiedlichen SixXS-Tunnelservern (bei gleichem Server sind es 50ms und 5 Hops, die Zeit geht im Tunnel verloren).
Konrad
On Monday 25 April 2011, Luca Bertoncello wrote:
Aber komischerweise sehe ich KEINE Anfrage auf die Port 53...
Jetzt solltest Du ein paar sehen... ;-)
Ich habe mal "dig -t any +trace frodo...." gemacht - es ging prima.
Das bestätigt, dass das Problem ein IPv4-only-Resolver irgendwo in der Mitte ist. Das ist normal, wenn ein Rechner via normalem Provider ins Netz geht und keinen eigenen DNS-Server hat oder wenn er den Provider-Server als Forwarder benutzt.
Einzige Lösung ist AAAA-RRs auch via IPv4 auszuliefern.
Konrad
Konrad Rosenbaum konrad@silmor.de schrieb:
On Monday 25 April 2011, Luca Bertoncello wrote:
Aber komischerweise sehe ich KEINE Anfrage auf die Port 53...
Jetzt solltest Du ein paar sehen... ;-)
Jup!
Ich habe mal "dig -t any +trace frodo...." gemacht - es ging prima.
Das bestätigt, dass das Problem ein IPv4-only-Resolver irgendwo in der Mitte ist. Das ist normal, wenn ein Rechner via normalem Provider ins Netz geht und keinen eigenen DNS-Server hat oder wenn er den Provider-Server als Forwarder benutzt.
Einzige Lösung ist AAAA-RRs auch via IPv4 auszuliefern.
Mmm... kannst du mir ein Beispiel geben, wie es geht? Bei IPv6-Einrichtung von Bind bin ich etwas neu... :D
Ich frage mich auch, warum ich noch keinen Reverse sehen kann... Den habe ich auf meinem Nameserver eingerichtet (und innerhalb des lokalen Netzes kann ich auch alles richtig sehen) und dem SixXS gemeldet. Wenn ich mit dem Whois von SixXS (Web!) mein Subnet anfrage sehe ich auch:
rev-srv ns.haus.lucabert.com.
aber dig -x 2001:4dd0:fd98:1::1 von außerhalb meines Netzes sagt, daß kein "IN PTR" existiert...
Danke Luca Bertoncello (lucabert@lucabert.de)
On Monday 25 April 2011, Luca Bertoncello wrote:
Konrad Rosenbaum konrad@silmor.de schrieb:
Einzige Lösung ist AAAA-RRs auch via IPv4 auszuliefern.
Mmm... kannst du mir ein Beispiel geben, wie es geht? Bei IPv6-Einrichtung von Bind bin ich etwas neu... :D
Das ist genau das was ich in der vorletzten Mail beschrieben habe: ein DNS- Slave, der per IPv4 erreichbar ist.
Ich frage mich auch, warum ich noch keinen Reverse sehen kann... Den habe ich auf meinem Nameserver eingerichtet (und innerhalb des lokalen Netzes kann ich auch alles richtig sehen) und dem SixXS gemeldet. Wenn ich mit dem Whois von SixXS (Web!) mein Subnet anfrage sehe ich auch:
rev-srv ns.haus.lucabert.com.
aber dig -x 2001:4dd0:fd98:1::1 von außerhalb meines Netzes sagt, daß kein "IN PTR" existiert...
Dazu musst Du Reverse bei SixXS einrichten (kostet einen Punkt) und etwas warten (kostet etwas Geduld) - der SOA Record bei d.f.0.d.d.4.1.0.0.2.ip6.arpa ist noch von gestern. Bis morgen sollte sich das erledigt haben.
Ich gehe mal davon aus dass Du den Server gecheckt hast als Du ihn bei SixXS eingetragen hast - es gibt da einen Button zum Prüfen, ob alles Standardkonform ist. Wenn irgendwas nicht passt wird Dein Server nicht eingetragen. (Ein kurzer Blick auf dig sagt mir dass es eigentlich passen sollte.)
Konrad
Konrad Rosenbaum konrad@silmor.de schrieb:
Mmm... kannst du mir ein Beispiel geben, wie es geht? Bei IPv6-Einrichtung von Bind bin ich etwas neu... :D
Das ist genau das was ich in der vorletzten Mail beschrieben habe: ein DNS- Slave, der per IPv4 erreichbar ist.
Verstanden! Aber mit dynamischen IPv4 von Telekom geht es sicher nicht...
Ich frage mich auch, warum ich noch keinen Reverse sehen kann... Den habe ich auf meinem Nameserver eingerichtet (und innerhalb des lokalen Netzes kann ich auch alles richtig sehen) und dem SixXS gemeldet. Wenn ich mit dem Whois von SixXS (Web!) mein Subnet anfrage sehe ich auch:
rev-srv ns.haus.lucabert.com.
aber dig -x 2001:4dd0:fd98:1::1 von außerhalb meines Netzes sagt, daß kein "IN PTR" existiert...
Dazu musst Du Reverse bei SixXS einrichten (kostet einen Punkt) und etwas warten (kostet etwas Geduld) - der SOA Record bei d.f.0.d.d.4.1.0.0.2.ip6.arpa ist noch von gestern. Bis morgen sollte sich das erledigt haben.
Das habe ich gemacht... Die Frage war einfach: wenn ich in dem Whois SCHON sehe, warum geht es noch nicht mit dig? Komisch komisch... Naja! Wenn man kostenlose Dienste nutzen will, muss man auch bereit sein etwas zu warten...
Ich gehe mal davon aus dass Du den Server gecheckt hast als Du ihn bei SixXS eingetragen hast - es gibt da einen Button zum Prüfen, ob alles Standardkonform ist. Wenn irgendwas nicht passt wird Dein Server nicht eingetragen. (Ein kurzer Blick auf dig sagt mir dass es eigentlich passen sollte.)
Jo! Ist alles richtig eingerichtet und geprüft. Und der Punkt habe ich schon "bezahlt"...
Grüße Luca Bertoncello (lucabert@lucabert.de)
Hallo Luca,
also, damit es für dich ein wenig leichter wird, kann ich dir gerne mal mein Setup schildern.
Ich habe zuhause mein vollständiges IPv6- und IPv4-Netzwerk, und im Internet einen virtuellen Server (auch via v6 und v4 angebunden).
Meine DNS-Zonen liegen alle auf dem virtuellen Server im Netz, auf meinem heimischen Server habe ich seperat einen Bind installiert, der die lokalen Addressen auch kennt.
Auf dem Server im Netz habe ich meine DNS-Zone ak-online.be liegen, wie du es kennst als master konfiguriert. Darin liegen alle Einträge für die Rechner intern und extern meines Netzwerkes. Von der Domain-Registrierung wird dieser und ein paar "dumme" Slaves angesprochen (als Slaves kann ich puck.nether.net/dns und twisted4life.com empfehlen, die beide auch IPv6 sprechen).
Auf meinem Heimserver liegt eine abweichende Zone, in der aber alle Hosts ebenso vorhanden sind, aber mit modifizierten IPv4-Einträgen. Damit kann ich zuhause meine lokalen IPv4-Adressen benutzen, sowie die globalen IPv6-Adressen.
Im Endeffekt kommt damit eine Konfiguration heraus, dass der gleiche Name ( z.B. hive.ak-online.be) von extern mit der IPv4 des Providers angesprochen wird, von intern aber mit seiner lokalen 172.16.0.253). Beide Nameserver kennen aber auch die globale IPv6 2a01:198:2f4:0:21f:d0ff:fe8b:a293.
Einen Nameserver nur zuhause aufzusetzen, und nur via IPv6 dauerhaft zu konnektieren ist unvorteilhaft, da dann regelmäßig anfragen fehlschlagen. Ein DNS-Server braucht auch keine IPv6-Verbindung, um AAAA-Records zurück zu geben, dafür könntest du genausogut deinen bestehenden Nameserver verwenden.
Auch spart dir die zentrale Stelle einige Round-Trips, wenn man deine Zone auflösen möchte.
Was sich bei mir noch bewährt hat (und nur in diesem Split-Brain-Setup sinnvoll ist), ist das aufsetzen von Views im heimischen Bind. Mit der internen kennt er für lokale IPv6- und IPv4-Adressen die lokalen Adressen, in der externen View beantwortet er die verbleibenden Anfragen, und hat auch einen Slave für alle auf dem außen stehenden Server. Ebenfalls praktisch ist, die reverse Zone des IPv6-Netzwerkes im Internet zu betreiben, aber als Slave in das interne Netz zu ziehen.
Wenn du magst, kann ich dir gerne die meine Konfigurationsdateien zur Verfügung stellen.
Was vielleicht auch andere Interessieren könnte: da ich zuhause auch einige Serverdienste laufen habe, die ins Internet verbreitet werden sollen, habe ich mir mit bind, nsupdate und ein wenig Bash-Magie ein dynamisches IP-Adress-Update gebaut, was jetzt seit ein drei Monaten sehr gut läuft.
Gruß, Andre
Andre Klärner kandre@ak-online.be schrieb:
Hallo, Andre!
Meine DNS-Zonen liegen alle auf dem virtuellen Server im Netz, auf meinem heimischen Server habe ich seperat einen Bind installiert, der die lokalen Addressen auch kennt.
Wie bei mir... Gerade habe ich das Problem, auf meinem vServer, daß ip6tables nicht geht (fehlenden Module). Hast du was anderes benutzt? Ich habe schon ein Ticket bei dem Provider eröffnet, und hoffe, daß sie das schnell klären. Bis dahin werde ich auf meinem vServer KEINE IPv6 einrichten...
Wenn du magst, kann ich dir gerne die meine Konfigurationsdateien zur Verfügung stellen.
Das wäre nett... Kannst du es mir per privaten E-Mail schicken?
Besten Dank Luca Bertoncello (lucabert@lucabert.de)
Hallo Luca,
Zitat von Luca Bertoncello lucabert@lucabert.de:
Andre Klärner kandre@ak-online.be schrieb:
Hallo, Andre!
Meine DNS-Zonen liegen alle auf dem virtuellen Server im Netz, auf meinem heimischen Server habe ich seperat einen Bind installiert, der die lokalen Addressen auch kennt.
Wie bei mir... Gerade habe ich das Problem, auf meinem vServer, daß ip6tables nicht geht (fehlenden Module). Hast du was anderes benutzt? Ich habe schon ein Ticket bei dem Provider eröffnet, und hoffe, daß sie das schnell klären. Bis dahin werde ich auf meinem vServer KEINE IPv6 einrichten...
Ich fahre da eine etwas strenge Politik: was abgeschirmt oder nicht auf IPv6 laufen soll bekommt keine IPv6-Adresse. Daher laufen auf meinen Kisten nur Sachen, die das auch dürfen. Alle Daemons, die IPv6 könnten, aber nicht sollen bekommen so z.B. einfach nur 0.0.0.0 als bind-Adresse.
Wenn du magst, kann ich dir gerne die meine Konfigurationsdateien zur Verfügung stellen.
Das wäre nett... Kannst du es mir per privaten E-Mail schicken?
Kann ich machen, wenn aber noch jemand anderes Interesse hat, oder meine Configs auf Sicherheit überprüfen möchte stelle ich das auch gerne zur PeerReview aus ;) Wenn dann wird das heute Nacht erst.
Gruß Andre
lug-dd@mailman.schlittermann.de