Ubuntu Netzwerkkonfiguration
Netzwerke Konfigurieren
Die Netzwerkkonfiguration ist einer der wichtigsten Bestandteile der Linux-Welt.
Grundlagen
Ein paar der grundlegenden Befehle dazu sind ip addr, ip route, ss und ip neigbhour
Anmerkung
Bei einem Serversystem sollte man statische Adressen verwenden, man sollte den network-manager entfernen!
- apt-get remove network-manager
IP Route2
ip addr
Mit ip addr show erhält man Informationen über und kann Netzwerkschnittstellen konfigurieren.
Der Befehl ip addr show alleine gibt den Status der momentan aktiven Netzwerkschnittstellen aus.
Gibt man ip addr show in einem Terminal ein bekommt man folgende zu anfangs meist kryptische Ausgabe:
- ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 48:5b:39:ad:8a:12 brd ff:ff:ff:ff:ff:ff inet 10.81.7.1/16 brd 10.81.255.255 scope global enp2s0 valid_lft forever preferred_lft forever inet6 fe80::4a5b:39ff:fead:8a12/64 scope link valid_lft forever preferred_lft forever 3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000 link/ether 52:54:00:b0:b2:1d brd ff:ff:ff:ff:ff:ff inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0 valid_lft forever preferred_lft forever 4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000 link/ether 52:54:00:b0:b2:1d brd ff:ff:ff:ff:ff:ff
Davon sollte man sich jedoch nicht abschrecken lassen, denn die wichtigsten Informationen sind daraus leicht abzulesen.
enp2s0 ist der Name den Ubuntu unserer Netzwerkkarte gegeben hat
Und in folgender Zeile,
inet 10.81.7.1/16 brd 10.81.255.255 scope global enp2s0
erfahren wir:
- Unsere IP Adresse ( zu sehen bei Adresse: )
- Und unsere Networkmask ( Maske: /16 )
- Unseren Broadcast ( Bcast: )
- Die Verbindungsart (scope global = Global; scope lo = local)
Um mit ip addr jetzt eine Schnittstelle zu konfigurieren muss man die Einstellungen die man ändern möchte als Option an den Befehl anhängen ( Alle Änderungen die mit ip addr gemacht werden sind temporär und gehen verloren wenn man die Schnittstelle reaktiviert ):
- ip addr add 192.168.250.79/20 dev enp2s0
- enp2s0: Name der Netzwerkschnittstelle die bearbeitet wird gefolgt von der neuen IP Adresse
- netmask (/20): neue Netzwerkmaske
- ip link set enp2s0 down
Schaltet die Schnittstelle eth0 aus und entsprechend
- ip link set enp2s0 up
wieder ein.
ip route
Mit dem Befehl ip route show lässt sich die IP Routing Tabelle konfigurieren und anschauen. Alle Änderungen sind wie bei ip addr add nur temporär. Der Befehl allein führt wieder zur reinen Information:
root@zero:~# ip route show default via 10.81.0.1 dev enp2s0 proto static 10.81.0.0/16 dev enp2s0 proto kernel scope link src 10.81.7.1 192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown
Man kann einen standard gateway bestimmen mit:
root@zero:~# ip route add default via 192.168.240.21
und ihn wieder entfernen mit:
root@zero:~# ip route del default via 192.168.240.21
Setzen der Default Route mit Metric
root@zero:~# ip route add 192.168.240.21 via 10.0.1.1 metric 150
Setzen einer Route
root@zero:~# ip route add 10.12.14.16/8 via 192.168.240.57/20
ss
ss ist ein sehr vielseitiger Befehl mit dem man unter anderem Netzwerk Verbindungen, Routing Tabellen (wie route), Schnittstellen Statistiken und andere Details einsehen kann.
Ohne Optionen zeigt ss eine Liste offener/verbundener Sockets an. (Sockets sind Schnittstellen bestehend aus IP Adressen und Ports die es Anwendungen ermöglichen untereinander übers Netzwerk zu kommunizieren)
root@zero:~# ss Aktive Internetverbindungen (ohne Server) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 zero.delta.int:ssh 192.168.247.222:32800 VERBUNDEN tcp 0 0 zero.delta.int:omirr arilon.alpha.quadra:nfs VERBUNDEN Aktive Sockets in der UNIX-Domäne (ohne Server) Proto RefCnt Flags Type State I-Node Pfad unix 2 [ ] DGRAM 2645 @/com/ubuntu/upstart unix 14 [ ] DGRAM 5457 /dev/log unix 2 [ ] DGRAM 2838 @/org/kernel/udev/udevd ...
Mit folgenden Befehlen kann man ss einsetzen:
-l | listening | Zeigt nur die "Hörenden" Internetverbindungen und Sockets an |
-n | numerical | Ausgabe der numerischen Adressen statt symbolischen host,port oder Benutzernamen |
-t | tcp | Nur Verbindungen und Sockets die mit dem Protokoll Tcp ( TransportControlProtocol ) arbeiten |
-u | udp | Das selbe mit dem Protokoll Udp ( UserDatagrammProtocol ) |
-x | unix | Hier werden die Unixsockets angezeigt |
-p | program | Zeigt die PID ( ProzessIDentifikationsnummer ) und die Namen der Programme zu denen die Verbindungen und Sockets gehören |
-r | route | |
-i | interfaces | Gibt Statistiken der Interfaces aus |
-a | all | Eine Liste der "Hörenden" und "Nichthörenden" sockets |
Bespiele:
Liste der hörenden Verbindungen:
root@zero:~# ss -l Aktive Internetverbindungen (Nur Server) tcp LISTEN 0 64 [::]:46807 [::]:* tcp LISTEN 0 128 [::]:8472 [::]:* tcp LISTEN 0 128 [::]:39545 [::]:* ...
Liste der TCP Verbindungen:
root@zero:~# ss -t Aktive Internetverbindungen (ohne Server) State Recv-Q Send-Q Local Address:Port Peer Address:Port ESTAB 0 0 10.81.7.1:36108 87.128.42.65:https ESTAB 0 0 10.81.7.1:53540 10.82.10.10:ldaps ...
Numerische Liste der Verbindungen:
root@zero:~# ss -n Aktive Internetverbindungen (ohne Server) u_str ESTAB 0 0 @/tmp/.X11-unix/X0 48164 * 47418 ??? UNCONN 0 0 0.0.0.0:1 0.0.0.0:* icmp6 UNCONN 0 0 *%enp2s0:58 *:* tcp ESTAB 0 0 10.81.7.1:47594 172.217.21.106:443 ...
Numerische Liste der hörenden TCP Verbindungen:
root@zero:~# ss -ltn Aktive Internetverbindungen (Nur Server) State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:35047 0.0.0.0:* LISTEN 0 128 0.0.0.0:111 0.0.0.0:* LISTEN 0 128 127.0.0.1:5939 0.0.0.0:*
ip neighbour
arp steht für Address Resolution Protocol das dazu benutzt wird IP Adressen die Physikalischen Adressen von Netzwerkkarten ( Hardware- bzw. MAC-Adressen ) zuzuordnen.
Die arp Tabelle findet man nun unter dem Befehl ip neigh
Der gleichnahmige Linuxbefehl ermöglicht es die Tabelle der zugeordneten Adressen zu Konfigurieren oder Anzusehen.
Der Befehl ip neigh alleine zeigt wie üblich nur Informationen zu oben genannter Tabelle:
- ip neigh
Adresse Hardware-Typ Hardware-Adresse Optionen Maske Schnittstelle 10.81.0.1 dev enp2s0 lladdr 00:19:aa:7d:d8:40 REACHABLE fe80::219:aaff:fe7d:d840 dev enp2s0 lladdr 00:19:aa:7d:d8:40 router STALE
Mit dem Zusatz add kann man Zuordnungen von Adressen zu der Tabelle hinzufügen.
- ip neigh add 192.168.247.222 lladdr 1:2:3:4:5:6 dev enp2s0
Mit dem Zusatz del (delete) kann man Zuordnungen von Adressen aus der Tabelle entfernen.
- ip neigh del 192.168.247.222
Wichtige Dateien
In den Dateien
- /etc/resolv.conf
- /etc/network/interface
- /etc/hosts
- /etc/services
kann man die Konfigurationen des Netzwerks einsehen und auch permanent verändern.
/etc/services
In dieser Datei werden Ports verschiedenen Netzwerkdiensten zugeordnet.
thomas@lydia:~$ grep www /etc/services www 80/tcp http # WorldWideWeb HTTP www 80/udp # HyperText Transfer Protoco
Namensauflösung
/etc/resolv.conf
Die Datei /etc/resolv.conf enthält Angaben zum DomainNameServer (DNS) Angegeben in folgender Weise:
root@zero:~# cat /etc/resolv.conf search alpha.quadrant nameserver 192.168.240.21
Wobei "192.168.240.21" die ip ihres Nameservers sein muss und "alpha.quadrant" ihre Domain, fals Sie eine haben.
/etc/hosts
Durch die /etc/hosts Datei lassen sich IP-Adressen zu Hostnamen fest zuordnen, was auch mehrere Namen einer IP Adresse ermöglicht.
Eine typische hosts-Datei sieht etwa so aus:
127.0.0.1 zero localhost.localdomain localhost 127.0.1.1 zero 192.168.242.12 zero.delta.int # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
Wenn man jetzt ohne einen Domain Name Server einen Rechner über seinen Namen anpingen will kommt das hier dabei raus:
root@zero:~# ping ctu ping: unknown host ctu
Wenn man jetzt nicht gezwungen sein will dessen IP-Adresse einzugeben, dann kann man dank der hosts-Datei der IP einen Namen zuordnen.
root@zero:~# echo 192.168.247.222 ctu >> /etc/hosts
in unserem Beispiel ordnen wir jetzt der IP Adresse 192.168.247.222 den Namen ctu zu.
Nachdem wir eine der Methoden angewendet haben können wir nun auch den Rechner nach seinem Namen anpingen:
root@zero:~# ping ctu PING ctu (192.168.247.222) 56(84) bytes of data. 64 bytes from ctu (192.168.247.222): icmp_seq=1 ttl=64 time=0.626 ms
Man kann ihm auch weitere Namen hinzufügen:
root@zero:~# echo "192.168.247.222 suxer" >> /etc/hosts
root@zero:~# ping suxer PING suxer (192.168.247.222) 56(84) bytes of data. 64 bytes from ctu (192.168.247.222): icmp_seq=1 ttl=64 time=0.724 ms
Somit kann man auch ohne DNS Namen vergeben oder einem Ausfall eines vorhandenen DNS vorbeugen.
host
host ist ein Werkzeug um die zu Hostnamen gehörenden IP's herauszufinden und umgekehrt.
IP Adresse von der domain anzeigen:
root@zero:~# host www.xinux.de www.xinux.de has address 88.198.59.246
Domain Name Pointer anzeigen:
root@zero:~# host 88.198.59.246 246.59.198.88.in-addr.arpa domain name pointer gaius.tuxmen.de.
Mail Server einer domain anzeigen:
root@zero:~# host -t mx xinux.de xinux.de mail is handled by 10 baltar.tuxmen.de.
Name Server einer domain anzeigen:
root@zero:~# host -t ns xinux.de xinux.de name server ns4.schlumbumbel.de. xinux.de name server gaius.tuxmen.de. xinux.de name server ns5.bonis.de.
Start of Authority anzeigen:
root@zero:~# host -t soa xinux.de xinux.de has SOA record gaius.tuxmen.de. technik.xinux.de. 2008091901 14400 1800 604800 86400
Wie ist meine öffentliche IP?
vi /usr/local/bin/howismyip
cat /usr/local/bin/howismyip #!/bin/bash wget http://www.wieistmeineip.de -U "" -qO - | egrep -o 'digit:{1,3}\.digit:{1,3}\.digit:{1,3}\.digit:{1,3}' | uniq
Netzwerkkarte ummappen
Netzwerkbrücke