Ubuntu Netzwerkkonfiguration

Aus xinux.net
Zur Navigation springen Zur Suche springen

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


/etc/netplan