Anycast DNS mit Infoblox

Letztens habe ich einen Blog Eintrag gefunden, in dem jemand sich ein Anycast DNS mit Infoblox gebaut hat. Die Idee fand ich richtig cool, deswegen habe ich es nachgemacht, allerdings etwas geändert.

Zuerst, die Blogeinträge, Part 1 mit viel Infos dazu warum Anycast DNS eine gute Idee ist. Und Part 2 mit der Umsetzung.

https://medium.com/@tom.bowles/anycast-dns-part-1-838033773af8

https://medium.com/@tom.bowles/anycast-dns-part-2-4acc51e4d64f

Mein Aufbau ist etwas anders als Tom es in seinem Blog gemacht hat, mein Netz sieht so aus:

Labor aufbau

Links seht ihr ein LAN mit zwei Switchen, zwei Infoblox, einem Linux Client und einem Windows Client. Rechts gibt es zwei identische „Standorte“, jeweils mit einer Infoblox und einem Windows Client.

Erstmal zum Netz und DHCP Konstrukt, die Verbindungen zwischen den Switchen sind geroutet, das könnt ihr an den /30er Netzen dazwischen erkennen. Die einzige geswitchte Verbindung ist zwischen SW1 und SW2. Alle Infoblox befinden sich in einem Grid, sie syncen sich also und werden über einen Master konfigruiert. Der Master ist in diesem Fall die Infoblox5, links oben. DHCP wird auch von den Infoblox lokal verteilt, die Switche haben jeweils im Clientnetz (in dem die Windows PC sind) einen IP Helper Eintrag konfiguriert der auf die jeweilige lokale Infoblox zeigt. Hier kann man, nach Abschluss der Konfig, auch die Anycast IP benutzen. So würden auch IPs per DHCP verteilt wenn die lokale Infoblox ausfällt. Durch die Synchronisation im Grid entstehen dadurch keine Probleme.

Die Anycast IP ist die 10.10.10.10/32, diese wird von allen Infoblox im Netz per OSPF verteilt. Ich habe mich dafür entschieden die Infoblox mit in die Area 0 aufzunehmen, so ist die Metrik dynamisch und der jeweilige Router kann sich den besten Weg zur Anycast IP auswählen. Die Infoblox unterstütz auch andere Area Typen, BFD & Authentication. Man könnte auch eine feste Metrik einstellen, dann als Routen-Typ E2 oder N2, je nach Area-Typ. Das hätte man mehrere gleiche Wege zur Anycast IP und könnte damit auch Loadsharing erreichen. Das wollte ich hier aber nicht so erzwingen. Im linken Teil des Netzes ist es aber so, da die beiden Infoblox im gleichen Netz stehen und beide per OSPF ihre 10.10.10.10/32 verteilen.

Wie wird die Infoblox konfiguriert? Ich möchte jetzt hier keine Screenshot-Orgie machen, daher verweise ich auf den Part 2 von Tom, oben habt ihr ja bereits die Links gesehen. Er hat es mit BGP gemacht, aber die Routing Konfiguration der Infoblox ist selbsterklärend.

Die Switche sprechen untereinander OSPF in Area 0, die Infoblox jeweils mit ihrem nächsten Switch. So ergibt sich die Routingtabelle wie folgt, als Beispiel die von Switch 4:

SW4#sh ip route
 Codes: L - local, C - connected, S - static, R - RIP, M - mobile, 
        [...]
 Gateway of last resort is not set
   1.0.0.0/8 is variably subnetted, 5 subnets, 2 masks
 O        1.1.1.0/30 [110/20] via 1.1.3.1, 00:16:20, Ethernet0/3
 C        1.1.2.0/30 is directly connected, Ethernet0/2
 L        1.1.2.2/32 is directly connected, Ethernet0/2
 C        1.1.3.0/30 is directly connected, Ethernet0/3
 L        1.1.3.2/32 is directly connected, Ethernet0/3
       10.0.0.0/32 is subnetted, 1 subnets
 O        10.10.10.10 [110/11] via 192.168.3.2, 00:12:06, Vlan40
 O     192.168.1.0/24 [110/21] via 1.1.3.1, 00:15:54, Ethernet0/3
 O     192.168.2.0/24 [110/11] via 1.1.3.1, 00:16:20, Ethernet0/3
       192.168.3.0/24 is variably subnetted, 2 subnets, 2 masks
 C        192.168.3.0/24 is directly connected, Vlan40
 L        192.168.3.1/32 is directly connected, Vlan40
 O     192.168.20.0/24 [110/22] via 1.1.3.1, 00:15:54, Ethernet0/3
 O     192.168.30.0/24 [110/11] via 1.1.3.1, 00:16:20, Ethernet0/3
       192.168.40.0/24 is variably subnetted, 2 subnets, 2 masks
 C        192.168.40.0/24 is directly connected, Vlan41
 L        192.168.40.1/32 is directly connected, Vlan41
 SW4# 
 SW4#sh ip ospf neighbor 
 Neighbor ID     Pri   State           Dead Time   Address         Interface
 3.3.3.3           1   FULL/BDR        00:00:31    1.1.3.1         Ethernet0/3
 192.168.3.2       0   FULL/DROTHER    00:00:34    192.168.3.2     Vlan40
 2.2.2.2           1   FULL/BDR        00:00:33    1.1.2.1         Ethernet0/2

Zum weiteren Verständnis noch die interne OSPF Datenbank, hier sieht man von wem das Netz 10.10.10.10/32 verteilt wird (alle Infoblox):

SW4#sh ip ospf database internal 
         OSPF Router with ID (4.4.4.4) (Process ID 1)             Stub Link States (Area 0)
 Link ID         ADV Router      Age         Seq#       Checksum Mask
 1.1.2.3         4.4.4.4         1137        0x0        0x00587B /30
 1.1.3.3         4.4.4.4         1137        0x0        0x004D85 /30
 10.10.10.10     192.168.1.2     783         0x0        0x004310 /32
 10.10.10.10     192.168.1.3     856         0x0        0x003D15 /32
 10.10.10.10     192.168.2.2     885         0x0        0x003C16 /32
 10.10.10.10     192.168.3.2     868         0x0        0x00351C /32
 192.168.1.255   1.1.1.1         1123        0x0        0x005524 /24
 192.168.1.255   2.2.2.2         1123        0x0        0x00373E /24
 192.168.2.255   3.3.3.3         1122        0x0        0x000E62 /24
 192.168.3.255   4.4.4.4         1123        0x0        0x00E486 /24
 192.168.20.255  2.2.2.2         1097        0x0        0x0065FC /24
 192.168.30.255  3.3.3.3         889         0x0        0x00D87B /24
 192.168.40.255  4.4.4.4         868         0x0        0x004CF9 /24
[...]

Die Switche nutzen ihre Nummer als Router-ID, also SW1 ist 1.1.1.1 und SW3 ist 3.3.3.3 usw., die Infobloxen nutzen ihre LAN0 IP, diese stehen auch oben im Screenshot.

Wenn nun eine Infoblox ausfällt, der DNS Dienst abgeschaltet wird oder auch nur neugestartet wird, fällt das Anycast Interface runter und die OSPF Nachbarschaft geht verloren. Somit wird automatisch die nächste beste Route zu einer anderen Infoblox gewählt.

In der Infoblox ist zwar nur für DNS das Anycast Interface extra konfiguriert, aber über diese IP kann man auch DHCP und NTP erreichen. Diese Dienste habe ich extra eingeschaltet und getestet. Man muss aber keine extra Netzwerk- bzw. Dienstkonfiguration machen, das funktioniert direkt.

Somit hat man jetzt eine redundanz von DHCP, NTP und DNS im Netzwerk per Infoblox Grid hinter einer einzelnen Anycast IP-Adresse.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden..