Inhaltsverzeichnis
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 Maschinen → net.ifnames) → eth0
BIOS/Consistent Network Device Naming (ab 2009 für DELL entwickelt, für Hardware → biosdevname) → 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)
- Onboard-NIC: em[1–N] - zum Beispiel: em1
- 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
