Hetzner - DokuWiki

Netzkonfiguration Debian/en
(Die Seite wurde neu angelegt: „{{Languages|Netzkonfiguration_Debian}} {{IP-Disclaimer}} == Haupt-IP-Adresse == === IPv4 === Die Hauptadresse eines Hetzner-Servers liegt in der Regel in ein…“)
 
Zeile 1: Zeile 1:
 
{{Languages|Netzkonfiguration_Debian}}
 
{{Languages|Netzkonfiguration_Debian}}
  
{{IP-Disclaimer}}
+
Please note: It is not permitted, in addition to the main IP received by Hetzner simply use any neighbour IP as an additional IP address. If you would like to order additional IP addresses or an additional subnet please send us a request via https://www.hetzner.de/robot
  
== Haupt-IP-Adresse ==
+
== Main IP Address ==
  
 
=== IPv4 ===
 
=== IPv4 ===
  
Die Hauptadresse eines Hetzner-Servers liegt in der Regel in einem /27-Netz. Um die (versehentliche) Übernahme fremder IP-Adresse zu verhindern, verwirft Hetzners Netz-Infrastruktur Ethernet-Pakete, die nicht an die Gateway-Adresse gerichtet sind. Um auch Server im gleichen Netzsegment ansprechen zu können, richtet die Hetzner-Standardinstallation eine explizite Route ein, die Pakete an das eigene Subnetz über das Gateway leitet und nicht direkt zustellt.
+
The main IP of a Hetzner root server is usually located in a /27 or /26 subnet. In order to prevent an accidental use of a foreign IP address our infrastructure rejects any Ethernet packets that are not addressed to the gateway address. In order to reach any server in the same subnet our standard images have already a static route in their network configuration. The static route forwards the entire traffic to the gateway instead of sending it directly to the neighbour server.
  
Diese Lösung ist jedoch unschön, da doppelte und widersprüchliche Informationen in der Routing-Tabelle auftauchen. Eine sauberere Möglichkeit, diese Konfiguration zu erreichen, besteht darin, die Haupt-Adresse mit der Netzmaske 255.255.255.255 (/32) zu versehen; der Server geht so davon aus, sich alleine in seinem Ethernet-Segment zu befinden und stellt keine Pakete direkt zu. Damit er nun jedoch das Gateway erreichen kann, benötigen wir eine explizite Host-Route dorthin: Dies geht mit Debian sehr einfach, indem wir die Option "pointopoint 192.168.0.1" in die Konfiguration einfügen - "192.168.0.1" ist natürlich die IP-Adresse des Gateways.
+
This is not the best solution because of duplicate and inconsistent information appearing in the routing table. A better way to reach a server in your subnet is to set the netmast to 255.255.255.255 (/32). The server assumes it's alone in that subnet and won't send any packets directly. However, now you need an explicit host route to the gateway. This is very easy with Debian, by adding the option "pointopoint 192.168.0.1" in the Configuration. Please change "192.168.0.1" to the valid IP address of your gateway.
  
 
  ## /etc/network/interfaces Beispiel Hetzner Rootserver
 
  ## /etc/network/interfaces Beispiel Hetzner Rootserver
Zeile 93: Zeile 93:
 
   down ip -6 route del default via 2a01:4f8:61:20e0::1 dev eth0
 
   down ip -6 route del default via 2a01:4f8:61:20e0::1 dev eth0
  
== Zusätzliche IP-Adressen ==
+
== Additional IP Addresses ==
  
 
Alle alten Serverpakete der DS-Serie enthalten ein /29-Subnetz, dass 6 weitere Adressen beinhaltet. Dieses Netz schließt sich nicht direkt an die Hauptadresse an, sondern muss im Hetzner-Robot beantragt werden.
 
Alle alten Serverpakete der DS-Serie enthalten ein /29-Subnetz, dass 6 weitere Adressen beinhaltet. Dieses Netz schließt sich nicht direkt an die Hauptadresse an, sondern muss im Hetzner-Robot beantragt werden.
Zeile 107: Zeile 107:
 
Leider bieten die Konfigurationsmechanismen der Debian-Distriution keine Möglichkeit, mehrere IP-Adressen in der Datei "/etc/network/interfaces" zu hinterlegen. Diese Problem kann manuell oder mit einem speziellen Skript umgangen werden:
 
Leider bieten die Konfigurationsmechanismen der Debian-Distriution keine Möglichkeit, mehrere IP-Adressen in der Datei "/etc/network/interfaces" zu hinterlegen. Diese Problem kann manuell oder mit einem speziellen Skript umgangen werden:
  
=== Manuelle Konfiguration ===
+
=== Manual Configuration ===
 
In der <tt>/etc/network/interfaces</tt> werden unter dem entsprechenden Interface (hier <tt>eth0</tt>) die folgenden beiden Zeilen eingefügt:
 
In der <tt>/etc/network/interfaces</tt> werden unter dem entsprechenden Interface (hier <tt>eth0</tt>) die folgenden beiden Zeilen eingefügt:
 
   up ip addr add 10.4.2.1/32 dev eth0
 
   up ip addr add 10.4.2.1/32 dev eth0
 
   down ip addr del 10.4.2.1/32 dev eth0
 
   down ip addr del 10.4.2.1/32 dev eth0
 
<tt>up</tt> und <tt>down</tt> erwarten einfach eine Zeile Shell-Code und könnnen für mehrere Adressen wiederholt vorkommen. Der Nachteil: sowohl Schnittstellenname als auch die einzustellende Adresse müssen jeweils zwei mal aufgeführt werden, bei einer größeren Anzahl Adressen wird die Konfiguration daher unübersichtlich und fehleranfällig; ändern sich die Daten, müssen alle Einträge angepasst werden.
 
<tt>up</tt> und <tt>down</tt> erwarten einfach eine Zeile Shell-Code und könnnen für mehrere Adressen wiederholt vorkommen. Der Nachteil: sowohl Schnittstellenname als auch die einzustellende Adresse müssen jeweils zwei mal aufgeführt werden, bei einer größeren Anzahl Adressen wird die Konfiguration daher unübersichtlich und fehleranfällig; ändern sich die Daten, müssen alle Einträge angepasst werden.
 
=== Konfiguration via addresses-Skript ===
 
 
Das Skript befindet sich im Paket "ifupdown-scripts-wa", das jedoch nicht Teil der offiziellen Debian-Distribution ist; fügt man folgende Zeile zur APT-Konfiguration hinzu, reicht der Befehl "apt-get install ifupdown-scripts-wa" um das Skript korrekt zu installieren:
 
 
  # /etc/apt/sources.list.d/wertarbyte.list
 
  # Tartarus, ifupdown-scripts etc.
 
  deb http://wertarbyte.de/apt/ ./
 
 
Die gesamte Installationsroutine lässt sich mit den folgenden Befehlen abkürzen:
 
 
  wget -P/etc/apt/sources.list.d/ http://wertarbyte.de/apt/wertarbyte-apt.list
 
  wget -O - http://wertarbyte.de/apt/software-key.gpg | apt-key add -
 
  apt-get update
 
  apt-get install ifupdown-scripts-wa
 
 
Wer das Skript nicht über das Paketsystem installieren möchte, kann es auch manuell herunterladen: http://wertarbyte.de/debian/ifupdown/addresses. Es wird im Verzeichnis "/etc/network/if-up.d/" abgelegt und zusätzlich nach "/etc/network/if-down.d/" verlinkt:
 
 
cd /etc/network/if-up.d/ &amp;&amp; \
 
wget http://wertarbyte.de/debian/ifupdown/addresses &amp;&amp; \
 
chmod +x addresses &amp;&amp; \
 
cd ../if-down.d/ &amp;&amp; \
 
ln -s ../if-up.d/addresses .
 
 
Die Installation über das Paketsystem wird jedoch empfohlen, da so stets die aktuelle Version des Skripts verfügbar ist.
 
 
Das Skript erweitert die Syntax der Konfigurationsdatei um eine neue Anweisung namens "addresses", mit der zusätzliche zu bindende IP-Adressen (mit der Netzmaske in /-Notation) angegeben werden können:
 
 
addresses 10.4.2.1/32 10.4.2.2/32 10.4.2.3/32
 
 
Fügt man diese Zeile zur Konfiguration der Schnittstelle "eth0" hinzu, so werden die Adressen beim Aktivieren der Schnittstelle hinzugefügt und bei deren Deaktivierung wieder entfernt.
 
 
Zusätzlich ist es möglich, mehrere Zeilen zu verwenden, um Adressen in Kategorien zu bündeln und die Konfiguration übersichtlicher zu gestalten:
 
 
addresses      10.4.2.1/32
 
addresses-https 10.4.2.2/32 10.4.2.3/32 # SSL-Websites
 
addresses-mail  10.4.2.4/32            # Mailserver
 
 
Das Skript erfasst sämtliche Anweisungen, die mit dem Schlüsselwort "addresses-" und einer frei wählbaren Bezeichnung beginnen. Eine Bezeichnung darf nicht doppelt verwendet werden, da ansonsten ifupdown einen Syntaxfehler anzeigt und die Konfiguration der Schnittstelle abbricht - unter Umständen ist der Server dadurch nicht mehr erreichbar.
 
 
Die via "ip addr" hinzugefügten IP-Adressen sind in der Ausgabe von "ifconfig" nicht sichtbar; um sie anzuzeigen, wird der Befehl "ip addr show" benötigt. Das addresses-Skript kann jedoch auch Alias-Geräte anlegen:
 
 
  addresses 10.0.0.1/32 10.0.0.2/32 10.0.0.3/32
 
  create_alias_devices yes
 
 
Mit dieser Konfiguration legt das Skript durchnumerierte eth0:X-Geräte an, die auch in "ifconfig" sichtbar sind.
 
 
Anstatt die Geräte nur zu numerieren kann man jedoch auch die Beschreibungen aus der Konfiguration verwenden:
 
 
  addresses-https 10.0.0.1/32 10.0.0.3/32
 
  addresses-vhost 10.0.0.2/32
 
  label_addresses yes
 
 
Die Adressen werden daraufhin in der Ausgabe von "ip addr" mit den Beschriftungen "eth0:https" bzw. "eth0:vhost" versehen, die auch von "ifconfig" angezeigt werden.
 
  
 
[[Kategorie:IP-Adressen]]
 
[[Kategorie:IP-Adressen]]

Version vom 7. Dezember 2011, 12:06 Uhr

Please note: It is not permitted, in addition to the main IP received by Hetzner simply use any neighbour IP as an additional IP address. If you would like to order additional IP addresses or an additional subnet please send us a request via https://www.hetzner.de/robot

Inhaltsverzeichnis

Main IP Address

IPv4

The main IP of a Hetzner root server is usually located in a /27 or /26 subnet. In order to prevent an accidental use of a foreign IP address our infrastructure rejects any Ethernet packets that are not addressed to the gateway address. In order to reach any server in the same subnet our standard images have already a static route in their network configuration. The static route forwards the entire traffic to the gateway instead of sending it directly to the neighbour server.

This is not the best solution because of duplicate and inconsistent information appearing in the routing table. A better way to reach a server in your subnet is to set the netmast to 255.255.255.255 (/32). The server assumes it's alone in that subnet and won't send any packets directly. However, now you need an explicit host route to the gateway. This is very easy with Debian, by adding the option "pointopoint 192.168.0.1" in the Configuration. Please change "192.168.0.1" to the valid IP address of your gateway.

## /etc/network/interfaces Beispiel Hetzner Rootserver
# Loopback-Adapter
auto lo
iface lo inet loopback
# LAN-Schnittstelle
auto eth0
iface eth0 inet static
  # Haupt-IP-Adresse des Servers
  address 192.168.0.250
  # Netzmaske 255.255.255.255 (/32) unabhängig von der
  # realen Netzaufteilung (z.B. /27)
  netmask 255.255.255.255
  # Explizite Hostroute zum Gateway
  gateway 192.168.0.1
  pointopoint 192.168.0.1

Die in der Hetzner-Standardkonfiguration vorgesehene zusätzliche Route ist damit nicht mehr nötig.

IPv6

Im Prinzip gilt für IPv6 das gleiche wie im IPv4 Abschnitt erwähnt. Statt der einzelnen Haupt-IP bekommt man einen /64 Block. Und statt des /27 Subnetzes befindet man sich in einem /59 Subnetz. Direkte Kommunikation im /59 Subnetz ist nicht möglich sondern wird vom Switch verworfen. Deshalb muss der gesamte Traffic, also auch der im eigenen Subnetz, über das Gateway gehen.

Im Gegensatz zur IPv4 Konfiguration gibt es für IPv6 keinen "pointopoint" Eintrag. Deshalb wird die Host-Route zum Gateway manuell mittels "pre-up" gesetzt.

Beispiel:

  • Adressblock: 2a01:4f8:61:20e1::2 bis 2a01:4f8:61:20e1:ffff:ffff:ffff:ffff
  • Davon verwenden wir die erste Adresse 2a01:4f8:61:20e1::2
  • Gateway: 2a01:4f8:61:20e0::1
## /etc/network/interfaces Beispiel Hetzner Rootserver
# Loopback-Adapter
auto lo
iface lo inet loopback
# IPv6 LAN
auto eth0
iface eth0 inet6 static
  # Haupt-IPv6-Adresse des Servers
  address 2a01:4f8:61:20e1::2
  netmask 64
  # Host-Route, da das Gateway ausserhalb des eigenen /64 Blocks liegt
  up ip -6 route add 2a01:4f8:61:20e0::1 dev eth0
  # Host-Route, da das Gateway ausserhalb des eigenen /64 Blocks liegt
  down ip -6 route del 2a01:4f8:61:20e0::1 dev eth0
  # Default Route
  up ip -6 route add default via 2a01:4f8:61:20e0::1 dev eth0
  down ip -6 route del default via 2a01:4f8:61:20e0::1 dev eth0

IPv4 + IPv6

Gewöhnlich wird man (bis auf weiteres) IPv4 und IPv6 parallel verwenden. Dazu werden einfach die beiden Konfigurationsdateien aneinandergefügt und die doppelten Einträge weggelassen.

## /etc/network/interfaces Beispiel Hetzner Rootserver
# Loopback-Adapter
auto lo
iface lo inet loopback
# LAN-Schnittstelle
auto eth0
iface eth0 inet static
  # Haupt-IP-Adresse des Servers
  address 192.168.0.250
  # Netzmaske 255.255.255.255 (/32) unabhängig von der
  # realen Netzaufteilung (z.B. /27)
  netmask 255.255.255.255
  # Explizite Hostroute zum Gateway
  gateway 192.168.0.1
  pointopoint 192.168.0.1
iface eth0 inet6 static
  # Haupt-IPv6-Adresse des Servers
  address 2a01:4f8:61:20e1::2
  netmask 64
  # Host-Route, da das Gateway ausserhalb des eigenen /64 Blocks liegt
  up ip -6 route add 2a01:4f8:61:20e0::1 dev eth0
  # Host-Route, da das Gateway ausserhalb des eigenen /64 Blocks liegt
  down ip -6 route del 2a01:4f8:61:20e0::1 dev eth0
  # Default Route
  up ip -6 route add default via 2a01:4f8:61:20e0::1 dev eth0
  down ip -6 route del default via 2a01:4f8:61:20e0::1 dev eth0

Additional IP Addresses

Alle alten Serverpakete der DS-Serie enthalten ein /29-Subnetz, dass 6 weitere Adressen beinhaltet. Dieses Netz schließt sich nicht direkt an die Hauptadresse an, sondern muss im Hetzner-Robot beantragt werden.

Neue Server der EQ-Serie erhalten auf Antrag vier einzelne IP-Adressen. Die Konfiguration erfolgt jedoch auf die gleiche Weise:

Um die zusätzlichen Adressen auf dem Server zu nutzen, wird das Paket "iproute" mit dem Dienstprogramm "ip" benötigt. Konfigurationen mit Alias-Schnittstellen (eth0:1, eth0:2 etc.) sind veraltet und sollten keine Verwendung mehr finden. Um eine Adresse hinzuzufügen, genügt das folgende Kommando:

ip addr add 10.4.2.1/32 dev eth0

Der Befehl "ip addr" zeigt die momentan aktiven IP-Adressen an. Da das Subnetz dem Server exklusiv zur Verfügung steht, ist es auch hier sinnvoll, die Adressen mit der Präfixlänge /32, also der Subnetzmaske 255.255.255.255 hinzuzufügen.

Leider bieten die Konfigurationsmechanismen der Debian-Distriution keine Möglichkeit, mehrere IP-Adressen in der Datei "/etc/network/interfaces" zu hinterlegen. Diese Problem kann manuell oder mit einem speziellen Skript umgangen werden:

Manual Configuration

In der /etc/network/interfaces werden unter dem entsprechenden Interface (hier eth0) die folgenden beiden Zeilen eingefügt:

  up ip addr add 10.4.2.1/32 dev eth0
  down ip addr del 10.4.2.1/32 dev eth0

up und down erwarten einfach eine Zeile Shell-Code und könnnen für mehrere Adressen wiederholt vorkommen. Der Nachteil: sowohl Schnittstellenname als auch die einzustellende Adresse müssen jeweils zwei mal aufgeführt werden, bei einer größeren Anzahl Adressen wird die Konfiguration daher unübersichtlich und fehleranfällig; ändern sich die Daten, müssen alle Einträge angepasst werden.



© 2020. Hetzner Online GmbH. Alle Rechte vorbehalten.