Statische IP

Aus wiki.archlinux.de
Die druckbare Version wird nicht mehr unterstützt und kann Darstellungsfehler aufweisen. Bitte aktualisiere deine Browser-Lesezeichen und verwende stattdessen die Standard-Druckfunktion des Browsers.

Eine statische IP-Adresse ist meist für Rechner relevant, welche immer im selben Netzwerk sind und somit keine Änderung der Netzwerkadressen, Router oder ähnlichem zu erwarten sind. Besonders bei Servern, die eigene Dienste anbieten, wird für gewöhnlich eine feste IP-Adresse verwendet. Zudem muss der Rechner nicht auf die Zuweisung einer IP-Adresse durch den DHCP-Server warten, sondern die Netzwerkschnittstelle kann direkt eingerichtet werden.

Für die Verwaltung der Netzwerkschnittstellen gibt es das Tool ip aus dem Paket iproute2.

Netzwerkschnittstelle ermitteln

Zuerst muss die Netzwerkschnittstelle ermittelt werden:

ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN mode DEFAULT 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 11:11:11:11:11:11 brd ff:ff:ff:ff:ff:ff

Hinweis: Die Netzwerkschnittstelle heißt hier eth0, der Name kann abweichen. In diesem Beispiel wird weiterhin diese Bezeichnung verwendet.

Netzwerkschnittstelle (de)aktivieren

Nachdem man weiß wie die Netzwerkschnittstelle heißt muss diese aktiviert werden

 ip link set eth0 up
ip link show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 11:11:11:11:11:11 brd ff:ff:ff:ff:ff:ff

Deaktivieren kann man die Schnittstelle mittels

 ip link set eth0 down
ip link show eth0
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000
    link/ether 11:11:11:11:11:11 brd ff:ff:ff:ff:ff:ff

IP-Adresse zu vergeben

Um eine IP-Adresse vergeben zu können braucht man

  • eine freie IP-Adresse
  • die Subnetzmaske
  • die Broadcast-Adresse
  • die IP-Adresse des Gateways

Viele Router für den Heimanwenderbereich benutzen 192.168.*.* für Client-IPs. Entsprechend kann man bei kleinen privaten Netzen eine Adresse in 192.168.*.* nehmen. Die dazu passende Subnetzmaske lautet 255.255.255.0 und die Broadcast-Adresse 192.168.*.255 (ergibt einen Adressbereich von 192.168.*.1 bis 192.168.*.254). Das Gateway hat meist die Adresse 192.168.*.1.

temporäres Zuweisen

Die IP-Adresse lässt sich nun ganz einfach in der Konsole zuweisen.

 ip addr add 192.168.1.2/24 dev eth0

Danach muss das Gateway zugewiesen werden.

 ip route add default via 192.168.1.1

Diese Einstellungen gehen beim Ausschalten verloren. Um zu testen ob die Einstellungen korrekt sind kann man nun mit ping die Verbindung testen:

ping -c3 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.419 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.674 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.697 ms

--- 192.168.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.419/0.596/0.697/0.129 ms

Zuweisen beim Booten

Damit die IP-Adresse bei jedem Start des Systems vergeben wird, erstelle die Datei /etc/conf.d/net-conf-gerätename, also z.B /etc/conf.d/net-conf-eth0. In dieser Datei werden die Einstellungen zu dem Netzwerkgerät gespeichert.

/etc/conf.d/net-conf-eth0
address=192.168.1.2
netmask=24
broadcast=192.168.1.255
gateway=192.168.1.1

Danach erstelle die Datei /etc/systemd/system/network@.service. Dies ist die Servicebeschreibung für systemd.

/etc/systemd/system/network@.service
[Unit]
Description=Network startup (%i)
Wants=network.target
Before=network.target
BindsTo=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device

[Service]
Type=oneshot
RemainAfterExit=yes
EnvironmentFile=/etc/conf.d/net-conf-%i
ExecStart=/sbin/ip link set dev %i up
ExecStart=/sbin/ip addr add ${address}/${netmask} broadcast ${broadcast} dev %i
ExecStart=/sbin/ip route add default via ${gateway}
ExecStop=/sbin/ip addr flush dev %i
ExecStop=/sbin/ip link set dev %i down

[Install]
WantedBy=multi-user.target

Jetzt noch den Service für systemd auf enabled stellen

 systemctl enable network@eth0.service

Namensauflösung

Damit Domainnamen auch in IP-Adressen aufgelöst werden können benötigt man noch einen Domain Name Server. Siehe dazu den Artikel resolv.conf

Siehe auch

https://wiki.archlinux.org/index.php/Network_Configuration