# Netzwerk

LAN, WLAN, Routing, etc.

# Chrony installieren und konfigurieren

##### Chrony installieren

Chrony ist eine Implementierung des Network Time Protokolls NTP und damit eine Alternative zu **ntpd** und **systemd-timesyncd.**

```bash
apt install chrony
```

<p class="callout info">ntp, ntpsec oder systemd-timesyncd werden durch die Installation von Chrony entfernt.</p>

##### Chrony konfigurieren

Chrony verwendet bei Debian / RaspiOS standardmäßig den NTP-Pool von ntp.org.

Wenn ein eigener Zeitserver verwendet weden soll muss die Zeile in der /etc/chrony/chrony.conf auskommentiert werden:

```shell
# pool 2.debian.pool.ntp.org iburst
```

Dann eine Datei im Verzeichnis **/etc/chrony/sources.d** erstellen:

```bash
echo 'server <IP NTP-SERVER> iburst' > /etc/chrony/sources.d/local-ntp-server.sources
```

Chrony neu starten:

```bash
systemctl restart chrony
```

##### Chrony Befehle

Hilfe anzeigen:

```bash
chronyc help
```

Informationen zur Systemzeit:

```bash
chronyc tracking
```

Verwendete NTP-Server:

```bash
chronyc sources
```

Aktivität anzeigen:

```bash
chronyc activity
```

# iproute2 (ip) Befehle

<p class="callout success">Die wichtigsten iproute2 (ip) Befehle</p>

##### Show informations

<table border="1" id="bkmrk-show-link-status%C2%A0-ip" style="border-collapse: collapse; width: 100%; height: 202.467px;"><colgroup><col style="width: 24.9101%;"></col><col style="width: 47.2034%;"></col><col style="width: 27.8845%;"></col></colgroup><tbody><tr style="height: 30.8px;"><td style="height: 30.8px;">Show link status

</td><td style="height: 30.8px;">***ip link show***</td><td style="height: 30.8px;">***ip l***</td></tr><tr style="height: 35.6px;"><td style="height: 35.6px;">Show link status &amp; stats

</td><td style="height: 35.6px;">***ip -statistics link show*** </td><td style="height: 35.6px;">***ip -s l***</td></tr><tr style="height: 36.2667px;"><td style="height: 36.2667px;">Show IP address

</td><td style="height: 36.2667px;">***ip addr show***</td><td style="height: 36.2667px;">***ip a***

</td></tr><tr style="height: 32.2667px;"><td style="height: 32.2667px;">Show ARP cache

</td><td style="height: 32.2667px;">***ip neigh show***

</td><td style="height: 32.2667px;">***ip n***

</td></tr><tr style="height: 31.2667px;"><td style="height: 31.2667px;">Show connections

</td><td style="height: 31.2667px;">***ss --tcp --all --processes --extended --numeric*** </td><td style="height: 31.2667px;">***ss -tapen***  
</td></tr><tr style="height: 36.2667px;"><td style="height: 36.2667px;">Show routing table

</td><td style="height: 36.2667px;">***ip route show***

</td><td style="height: 36.2667px;">***ip r***</td></tr></tbody></table>



##### Set interface

<table border="1" id="bkmrk-set-ip-address%C2%A0-ip-a" style="border-collapse: collapse; width: 100%; height: 95.3333px;"><colgroup><col style="width: 24.9096%;"></col><col style="width: 47.191%;"></col><col style="width: 28.0146%;"></col></colgroup><tbody><tr style="height: 33.7333px;"><td style="height: 33.7333px;">Set IP address

</td><td style="height: 33.7333px;">***ip addr add IP/NETMASK dev DEV***</td><td style="height: 33.7333px;">***ip a a IP/NETMASK dev DEVICE***

</td></tr><tr style="height: 30.8px;"><td style="height: 30.8px;">Set device up

</td><td style="height: 30.8px;">***ip link set DEV up***

 </td><td style="height: 30.8px;"></td></tr><tr style="height: 30.8px;"><td style="height: 30.8px;">Set device down

</td><td style="height: 30.8px;">***ip link set DEV down***</td><td style="height: 30.8px;"></td></tr></tbody></table>



##### Add VLANs


<table border="1" id="bkmrk-add-vlan-to-link-ip-" style="width: 100%;"><colgroup><col style="width: 24.9213%;"></col><col style="width: 75.0788%;"></col></colgroup><tbody><tr><td>Add VLAN to link

</td><td>***ip link add link DEV name DEV.VID type vlan id VID***

</td></tr></tbody></table>


##### Delete device addresses

<table border="1" id="bkmrk-delete-ip-address%C2%A0-i" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 24.9096%;"></col><col style="width: 47.191%;"></col><col style="width: 28.0146%;"></col></colgroup><tbody><tr><td>Delete IP address </td><td>***ip addr del IP/NETMASK dev DEV***</td><td>***ip a d IP/NETMASK dev DEVICE***   
</td></tr><tr style="height: 30px;"><td>Delete all IPs</td><td>***ip addr flush dev DEV***</td><td>***ip a f dev DEVICE*** </td></tr></tbody></table>



##### Set gateway

<table border="1" id="bkmrk-set-standard-gateway" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 25.148%;"></col><col style="width: 46.9526%;"></col><col style="width: 28.0146%;"></col></colgroup><tbody><tr style="height: 30px;"><td>Set standard gateway   
</td><td>***ip route add default via IP***   
</td><td>***ip r a default via IP*** </td></tr></tbody></table>

# Name einer Netzwerkkomponente ändern

<p class="callout success">Die Bezeichnung einer Netzwerkkomponente mit Hilfe eines **systemd.link** Files unveränderlich festlegen.</p>

#### Bezeichnung und MAC Adresse der Netzwerkkomponenten auslesen

```bash
ip a
```

```shell
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    .
    .
    .
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 8c:6a:00:ad:bd:f0 brd ff:ff:ff:ff:ff:ff
```

Da die MAC Adresse des Netzwerkgeräts immer gleich bleibt macht es Sinn diese als Match für den Link zu verwenden.

#### Bezeichnung des Netzwerkgeräts ändern

In diesem Beispiel wird die Bezeichnung von **eth0** auf **ethlan0** geändert.

Im Verzeichnis **/etc/systemd/network** eine Datei mit folgendem Inhalt anlegen:

```bash
nano /etc/systemd/network/10-ethlan0.link
```

```
[Match]
MACAddress=8c:6a:00:ad:bd:f0

[Link]
Name=ethlan0
```

<p class="callout info">Die Änderungen werden erst nach einem Neustart übernommen!</p>

# NetworkManager - IPv6 deaktivieren mit nmcli

#### IPv6 Deaktivieren

Anzeigen der Netzwerkverbindungen:

```bash
nmcli connection show
```

IPv6 mit **modify** deaktivieren:

```bash
nmcli connection modify "CONNECTIONNAME" ipv6.method "disabled"
```

Aktivieren der Einstellung:

```bash
nmcli connection up "CONNECTIONNAME"
```

# WLAN Konfiguration mit wpa_supplicant (veraltet)

<p class="callout success">Beispiel einer wpa\_supplicant Datei</p>

<span style="font-family: Liberation Sans, sans-serif;">ctrl\_interface=DIR=/var/run/wpa\_supplicant</span>

<span style="font-family: Liberation Sans, sans-serif;">update\_config=1</span>

<span style="font-family: Liberation Sans, sans-serif;">country=AT</span>

<span style="font-family: Liberation Sans, sans-serif;">network={</span>

<span style="font-family: Liberation Sans, sans-serif;">ssid="mywifi"</span>

<span style="font-family: Liberation Sans, sans-serif;">psk=fda1a0139acf704ca9dc8c8d40d301aceb13202fea922373e43c505a3a92705c</span>

<span style="font-family: Liberation Sans, sans-serif;">scan\_ssid=1</span>

<span style="font-family: Liberation Sans, sans-serif;">}</span>

# Linux - Dienste erst nach Zeitsyncronisation starten

Wenn es notwendig ist, einen Dienst nach einem Neustart erst nach der Zeitsyncronisation zu starten, kann das mit dem SNTP (Simple Network Time Protokol) Client von systemd erreicht werden.

Falls ein anderer NTP-Server installiert ist diesen löschen

```bash
apt purge chrony ntp
```

Den NTP-Server von systemd aktivieren:

```bash
systemctl enable systemd-timesyncd
```

Den Dienst zum verzögerten Starten anderer Dienste aktivieren:

```bash
systemctl enable systemd-time-wait-sync
```

In der zu verzögernden Service-Unit folgendes eintragen:

```bash
systemctl edit foo.service
```

```shell
[Unit]
After=time-sync.target
Wants=time-sync.target
```