Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux_netzwerkkonfiguration

Linux Netzwerkkonfiguration

> ip link set dev enp6s0 down
> ip link set dev enp6s0 up
> ip a
> ls -l /sys/class/net/
lrwxrwxrwx 1 root root 0 Oct 17 13:00 em1 -> ../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/net/em1
lrwxrwxrwx 1 root root 0 Oct 17 13:00 em2 -> ../../devices/pci0000:00/0000:00:01.0/0000:01:00.1/net/em2
lrwxrwxrwx 1 root root 0 Oct 17 13:00 em3 -> ../../devices/pci0000:00/0000:00:03.0/0000:02:00.0/net/em3
lrwxrwxrwx 1 root root 0 Oct 17 13:00 em4 -> ../../devices/pci0000:00/0000:00:03.0/0000:02:00.1/net/em4
lrwxrwxrwx 1 root root 0 Oct 17 13:00 lo -> ../../devices/virtual/net/lo
lrwxrwxrwx 1 root root 0 Oct 17 13:00 p1p1 -> ../../devices/pci0000:00/0000:00:06.0/0000:05:00.0/net/p1p1
lrwxrwxrwx 1 root root 0 Oct 17 13:00 p1p2 -> ../../devices/pci0000:00/0000:00:06.0/0000:05:00.1/net/p1p2
lrwxrwxrwx 1 root root 0 Oct 17 13:00 p2p1 -> ../../devices/pci0000:00/0000:00:05.0/0000:04:00.0/net/p2p1
lrwxrwxrwx 1 root root 0 Oct 17 13:00 p2p2 -> ../../devices/pci0000:00/0000:00:05.0/0000:04:00.1/net/p2p2
lrwxrwxrwx 1 root root 0 Oct 17 13:00 p3p1 -> ../../devices/pci0000:00/0000:00:09.0/0000:07:00.0/net/p3p1
lrwxrwxrwx 1 root root 0 Oct 17 13:00 p3p2 -> ../../devices/pci0000:00/0000:00:09.0/0000:07:00.1/net/p3p2

zusätzliche IP's auf eine Netzwerkkarte konfigurieren (Alias-IP)

mit ifconfig

setzen:

> ifconfig eth0:0 192.168.1.40/32 up

entfernen:

> ifconfig eth0:0 down

mit ip

setzen:

> ip addr add 192.168.1.40/32 dev eth0

oder Linux-2.0-kompatibel (mit Label):

> ip addr add 192.168.1.40/32 dev eth0 label eth0:0

entfernen:

> ip addr add 192.168.1.40/32 dev eth0
oder
> ip addr add 192.168.1.40/32 dev eth0 label eth0:0

Wechsel zu systemd-networkd und systemd-resolved oder unbound

mit unbound

  • unbound config: /etc/unbound/unbound.conf.d/default.conf (siehe dns_mit_unbound)
  • resolv.conf config: /etc/resolv.conf
apt install unbound
systemctl disable systemd-resolved
systemctl enable unbound
unlink /etc/resolv.conf; vim /etc/resolv.conf
/etc/resolv.conf
nameserver ::1
nameserver 127.0.0.1
options edns0 trust-ad
search fritz.box

mit systemd-resolved

  • systemd-resolved config: /etc/systemd/resolved.conf (siehe systemd-resolved)
  • resolv.conf config: /etc/resolv.conf
apt install systemd-resolved
systemctl disable unbound
systemctl enable systemd-resolved
ln -fs /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

networkd config

anpassen je nachdem, welcher dns, siehe oben

  • systemd-networkd config: /etc/systemd/network/default.network (siehe systemd-networkd)
systemctl disable network-manager
systemctl disable networking
systemctl enable systemd-networkd
apt purge dhcpcd5 openresolv isc-dhcp-client isc-dhcp-common ifupdown
reboot now && exit

Netplan (ab Ubuntu 18.04)

alle Netplan-Konfigurationen aufrufen:

> vi /etc/netplan/*.yaml
> vi /lib/netplan/*.yaml
> vi /run/netplan/*.yaml

die Netplan-Konfigurationen starten/anwenden

> netplan generate
> netplan apply
> netplan try

ein NIC hoch- bzw. runterfahren:

> ip link set enp0s3 up
> ip link set enp0s3 down

NameServer anzeigen:

> systemd-resolve --status

eine IP von einem NIC entfernen:

> ip address del 123.123.123.123/24 dev enp0s3

Die IP wird zwar beim Bootvorgang nicht mehr geladen, wenn die Konfiguration fehlt aber will man eine IP von einem laufenden System entfernen, dann geht das nicht, wenn man einfach nur die Konfigurationsdatei entfernt und netplan apply aufruft.

statische Netzwerkkonfiguration

/etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    enp59s0f0:
      addresses: [192.168.24.21/24]
      #gateway4: 192.168.24.1       # alt, statt dessen jetzt "default routes"
      routes:
        - to: default
          via: 192.168.24.1
      nameservers:
        search: [domain.net]
        addresses: [192.168.110.170,192.168.110.171]
> mv /etc/netplan/01-network-manager-all.yaml /etc/netplan/01-network-manager-all.yaml.SiK
> vi /etc/netplan/eth0.yaml
/etc/netplan/eth0.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      dhcp-identifier: mac
      addresses:
        - 10.10.10.2/24
      gateway4: 10.10.10.1
      nameservers:
        addresses:
          - 10.10.10.1
          - 1.1.1.1
> netplan generate
> netplan apply

Hier wird der Ethernetschnittstelle eth0 die IP-Adresse 10.10.10.2 zugewiesen, DHCP deaktiviert, als Gateway 10.10.10.1 und als DNS-Server 10.10.10.1 und 1.1.1.1 festgelegt. Für die Netzwerkschnitte ist dann systemd-networkd zuständig.

DHCP Netzwerkkonfiguration

> mv /etc/netplan/01-network-manager-all.yaml /etc/netplan/01-network-manager-all.yaml.SiK
> vi /etc/netplan/eth0.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      addresses: []
      dhcp4: true
      optional: true
> netplan generate
> netplan apply

> netplan ip leases eth0
# This is private data. Do not parse.
ADDRESS=192.168.1.90
NETMASK=255.255.255.0
ROUTER=192.168.1.254
SERVER_ADDRESS=192.168.1.4
NEXT_SERVER=192.168.1.4
BROADCAST=192.168.1.255
T1=43200
T2=75600
LIFETIME=86400
DNS=192.168.1.4
DOMAINNAME=lan
HOSTNAME=rechnervonfritz
CLIENTID=ffb6820feb00020000ab1263b9c5e8a84783fe

Netzwerkkonfiguration mit DHCP (IPv4) und SLAAC (IPv6)

/etc/netplan/00-installer-config.yaml
network:
    version: 2
    renderer: networkd
    ethernets:
        eth0:
            optional: true
            dhcp-identifier: mac
            dhcp4: true
            dhcp6: true
            ipv6-privacy: true
            accept-ra: true
            nameservers:
                addresses:
                    - 2606:4700:4700::1111
                    - 1.1.1.1
                    - 2606:4700:4700::1001
                    - 1.0.0.1
> netplan generate
> netplan apply

Netzwerkkonfiguration mit statischer IPv4 und SLAAC (IPv6)

/etc/netplan/00-installer-config.yaml
network:
    version: 2
    renderer: networkd
    ethernets:
        eth0:
            optional: true
            dhcp-identifier: mac
            dhcp4: false
            dhcp6: true
            ipv6-privacy: true
            accept-ra: true
            addresses:
                - 10.0.0.64/24
            gateway4: 10.0.0.1
            nameservers:
                addresses:
                    - 2606:4700:4700::1111
                    - 1.1.1.1
                    - 2606:4700:4700::1001
                    - 1.0.0.1
> netplan generate
> netplan apply

Bond

/etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    enp59s0f0:
      dhcp4: no
      dhcp6: no
    enp59s0f1:
      dhcp4: no
      dhcp6: no
  bonds:
    bond0:
      interfaces:
        - enp59s0f0
        - enp59s0f1
      addresses: [192.168.24.21/24]
      gateway4: 192.168.24.1
      nameservers:
        search: [domain.net]
        addresses:
          - 192.168.110.170
          - 192.168.110.171
> netplan generate
> netplan apply

Bond + LACP

LACP wird mit der Option mode: 802.3ad aktiviert.

/etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    enp59s0f0:
      dhcp4: no
      dhcp6: no
    enp59s0f1:
      dhcp4: no
      dhcp6: no
  bonds:
    bond0:
      interfaces:
        - enp59s0f0
        - enp59s0f1
      parameters:
        mode: 802.3ad
        lacp-rate: fast
        mii-monitor-interval: 100
      addresses: [192.168.24.21/24]
      gateway4: 192.168.24.1
      nameservers:
        search: [domain.net]
        addresses:
          - 192.168.110.170
          - 192.168.110.171
> netplan generate
> netplan apply
> cat /sys/class/net/bond0/bonding/mode
802.3ad 4

Performance der Netzverbindung Testen

Allgemeines

Zum Test des physikalischen Durchsatzes der Netzwerkleitung kann das Tool iperf genutzt werden. Dieses beinhaltet eine Server und eine Client Komponente und kann den Durchsatz des Netzwerkes unabhängig von der Leistungsfähigkeit des lokalen Dateisystems testen.

> aptitude update && aptitude install iperf

Verwendung von iperf

Auf dem Server auszuführen

> iperf -s -w 65536 -p 12345
  • -s als Server starten
  • -w <size> TCP window size
  • -p <port> Port

Auf dem Client auszuführen

> iperf -c 10.10.5.100 -w 65536 -p 12345 -t 60

oder

> iperf -c 10.10.5.100 -w 65536 -p 12345 -t 60 -P 4
  • -c <IP> verbinden zu IP
  • -w <size> TCP window size
  • -p <port> Port
  • -t <time> Testdauer
  • [-P <n>] Anzahl paralleler Prozesse

Predictable Network Interface Naming - Consistent Network Device Naming

Kernel/Predictable Network Interface Naming (seit v197 systemd/udev von Canonical entwickelt, für virtuelle Maschinennet.ifnames) → eth0
BIOS/Consistent Network Device Naming (ab 2009 für DELL entwickelt, für Hardwarebiosdevname) → p1p1

Standard bis Ubuntu 12.04 (Predictable Network Interface Naming):

> lshw -businfo -C network
Bus info          Device         Class      Description
=======================================================
pci@0000:01:00.0  eth0           network    NetXtreme II BCM5709 Gigabit Ethernet
pci@0000:01:00.1  eth1           network    NetXtreme II BCM5709 Gigabit Ethernet
pci@0000:02:00.0  eth2           network    NetXtreme II BCM5709 Gigabit Ethernet
pci@0000:02:00.1  eth3           network    NetXtreme II BCM5709 Gigabit Ethernet
pci@0000:04:00.0  eth4           network    82576 Gigabit Network Connection
pci@0000:04:00.1  eth6           network    82576 Gigabit Network Connection
pci@0000:05:00.0  eth8           network    82576 Gigabit Network Connection
pci@0000:05:00.1  eth9           network    82576 Gigabit Network Connection
pci@0000:07:00.0  eth5           network    NetXtreme II BCM57711 10-Gigabit PCIe
pci@0000:07:00.1  eth7           network    NetXtreme II BCM57711 10-Gigabit PCIe

Standard ab Ubuntu 14.04 (Consistent Network Device Naming):

> lshw -businfo -C network
Bus info          Device         Class      Description
=======================================================
pci@0000:01:00.0  em1            network    NetXtreme II BCM5709 Gigabit Ethernet
pci@0000:01:00.1  em2            network    NetXtreme II BCM5709 Gigabit Ethernet
pci@0000:02:00.0  em3            network    NetXtreme II BCM5709 Gigabit Ethernet
pci@0000:02:00.1  em4            network    NetXtreme II BCM5709 Gigabit Ethernet
pci@0000:04:00.0  p2p1           network    82576 Gigabit Network Connection
pci@0000:04:00.1  p2p2           network    82576 Gigabit Network Connection
pci@0000:05:00.0  p1p1           network    82576 Gigabit Network Connection
pci@0000:05:00.1  p1p2           network    82576 Gigabit Network Connection
pci@0000:07:00.0  p3p1           network    NetXtreme II BCM57711 10-Gigabit PCIe
pci@0000:07:00.1  p3p2           network    NetXtreme II BCM57711 10-Gigabit PCIe

Alte Netzwerkinterface Namen wiederherstellen (Predictable Network Interface Naming)

Quelle: Ubuntu Netzwerkinterface Namen von biosdevname

/etc/default/grub
...
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
...
> apt-get purge biosdevname
> update-initramfs -u
> update-grub
> reboot

Kernel/Predictable Network Interface Naming (eth0)

ab Ubuntu 14.04

das Paket biosdevname entfernen:

> apt purge biosdevname
> update-initramfs -u
update-initramfs: Generating /boot/initrd.img-3.13.0-24-generic

im Bootloader deaktivieren:

/etc/default/grub
...
GRUB_CMDLINE_LINUX="net.ifnames=1 biosdevname=0"
...
> mv /etc/udev/rules.d/70-persistent-net.rules .
> update-grub2

Netzwerkkonfiguration anpassen: Vor dem Neustart sollte noch in der Konfigurationsdatei /etc/network/interfaces geprüft werden, ob ein Eintrag für ein ethX-Interface existiert. Ansonsten kann dem Server beim Neustart keine IP-Adresse zugewiesen werden.

…zum Beispiel so:

/etc/network/interfaces
...
auto eth0
iface eth0 inet dhcp
...
> reboot

BIOS/Consistent Network Device Naming (p1p1)

The new naming scheme is:

  1. Onboard-NIC: em[1–N] - zum Beispiel: em1
  2. PCI-NIC: p<pci_slot_number>p<port_number> - zum Beispiel: p1p1

ab Ubuntu 14.04

das Paket biosdevname installieren:

> apt update
> apt upgrade
> apt install biosdevname
> update-initramfs -u
update-initramfs: Generating /boot/initrd.img-3.13.0-24-generic

im Bootloader deaktivieren:

/etc/default/grub
...
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=1"
...
> mv /etc/udev/rules.d/70-persistent-net.rules .
> update-grub2

Netzwerkkonfiguration anpassen: Vor dem Neustart sollte noch in der Konfigurationsdatei /etc/network/interfaces geprüft werden, ob ein Eintrag für ein pXpX-Interface existiert. Ansonsten kann dem Server beim Neustart keine IP-Adresse zugewiesen werden.

…zum Beispiel so:

/etc/network/interfaces
...
auto em1
iface em1 inet dhcp
 
auto p1p1
iface p1p1 inet dhcp
...
> reboot

virtuelles NIC mit eigener MAC-Adresse

das virtuelle NIC hat hier den Namen mac0:

> ip link add link eth0 address 00:11:11:11:11:11 mac0 type macvlan
> ifconfig mac0 up
> vi /etc/network/interfaces
...

auto mac0
iface mac0 inet manual
        pre-up ip link add mac0 link eth0 type macvlan mode bridge
        post-down ip link del mac0 link eth0 type macvlan mode bridge
> ip a
...

31: mac0@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1
    link/ether 32:fa:b4:f6:6c:af brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.185/32 scope global mac0
       valid_lft forever preferred_lft forever

Bridge

eth0 steht hier für das NIC im Host-System und die IP-Adresse 192.168.1.1/24 war bisher auf dem Host-NIC:

> brctl addbr br0
> ifconfig eth0 0.0.0.0 promisc
> brctl addif br0 eth0
> ip a add 192.168.1.1/24 dev br0
> ifconfig br0 up

siehe: Understanding TUN TAP Interfaces

Nur TAP (OSI/ISO-Layer 2) kann in einer Bridge verwendet werden, nicht TUN (OSI/ISO-Layer 3)!

Linux Ubuntu 16.04.6 LTS

Eine Bridge ohne IP-Adresse konfigurieren

> brctl addbr br0
> brctl addif br0 tap0
> ifup br0
> ifconfig br0 up
> brctl show
> vi /etc/network/interfaces
...

auto tap0
iface tap0 inet static
        pre-up ip tuntap add mode tap name tap0
        address 10.10.1.201
        netmask 255.255.255.0
#
auto br0
iface br0 inet manual
    bridge_ports tap0
    bridge_stp on
> ip link show
/home/http/wiki/data/pages/linux_netzwerkkonfiguration.txt · Zuletzt geändert: von manfred