Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:dhcp_isc_dhc-relay_archlinux

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
tachtler:dhcp_isc_dhc-relay_archlinux [2021/07/12 11:59] klaustachtler:dhcp_isc_dhc-relay_archlinux [2022/03/31 05:34] (aktuell) – [Installation] klaus
Zeile 32: Zeile 32:
  
 Mit nachfolgendem Befehl, wird das Pakete **''dhcp''** installiert: Mit nachfolgendem Befehl, wird das Pakete **''dhcp''** installiert:
 +<code>
 +# pacman --noconfirm -S dhcp
 +</code> 
 +++++ Installationsverlauf |
 <code> <code>
 # pacman --noconfirm -S dhcp # pacman --noconfirm -S dhcp
 </code> </code>
 +++++
  
 Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket **''dhcp''** installiert wurden. Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket **''dhcp''** installiert wurden.
 +
 +<code>
 +# pacman -Qil dhcp
 +</code> 
 +++++ Installierte Dateien |
 <code> <code>
 # pacman -Qil dhcp # pacman -Qil dhcp
Zeile 113: Zeile 123:
 dhcp /usr/share/man/man8/dhcrelay.8.gz dhcp /usr/share/man/man8/dhcrelay.8.gz
 </code> </code>
 +++++
  
 ===== Dienst/Deamon-Start konfigurieren ===== ===== Dienst/Deamon-Start konfigurieren =====
Zeile 136: Zeile 147:
 </code> </code>
  
 +==== /usr/lib/systemd/system/dhcrelay4.service ====
 +
 +Nachfolgender ''systemd''-Service kann nun unter nachfolgendem Pfad und mit nachfolgendem Namen angelegt werdenn:
 +  * ''/usr/lib/systemd/system/dhcrelay4.service''
 +
 +Der Inhalt des Service kann wie folgt aussehen:
 +<code ini>
 +[Unit]
 +Description=IPv4 DHCRELAY server
 +After=network.target network-online.target
 +Wants=network-online.target
 +
 +[Service]
 +Type=forking
 +ExecStart=/usr/bin/dhcrelay -4 -q -pf /run/dhcrelay4/dhcrelay4.pid 192.168.0.20
 +RuntimeDirectory=dhcrelay4
 +PIDFile=/run/dhcrelay4/dhcrelay4.pid
 +User=dhcp
 +AmbientCapabilities=CAP_NET_BIND_SERVICE CAP_NET_RAW
 +ProtectSystem=full
 +ProtectHome=on
 +KillSignal=SIGINT
 +# We pull in network-online.target for a configured network connection.
 +# However this is not guaranteed to be the network connection our
 +# networks are configured for. So try to restart on failure with a delay
 +# of two seconds. Rate limiting kicks in after 12 seconds.
 +RestartSec=2s
 +Restart=on-failure
 +StartLimitInterval=12s
 +
 +[Install]
 +WantedBy=multi-user.target
 +</code>
 +
 +:!: **HINWEIS** - Wichtig ist hier die IP-Adresse am Ende in nachfolgender Zeile:
 +<code ini>
 +ExecStart=/usr/bin/dhcrelay -4 -q -pf /run/dhcrelay4/dhcrelay4.pid 192.168.0.20
 +</code>
 +
 +^ Option           ^ Beschreibung                                                          ^
 +| ''192.168.0.20'' | **DHCP-Server an** den die DHCPREQUEST-Anfragen weitergeleitet werden |
 +
 +Abschließend muss die ''systemd'' Start Datei noch ''systemd'' bekannt gemacht werden, was mit nachfolgendem Befehl durchgeführt werden kann:
 +<code>
 +# systemctl --system daemon-reload
 +</code>
 +
 +==== /usr/lib/systemd/system/dhcrelay6.service ====
 +
 +Nachfolgender ''systemd''-Service kann nun unter nachfolgendem Pfad und mit nachfolgendem Namen angelegt werdenn:
 +  * ''/usr/lib/systemd/system/dhcrelay6.service''
 +
 +Der Inhalt des Service kann wie folgt aussehen:
 +<code ini>
 +[Unit]
 +Description=IPv6 DHCRELAY server
 +After=network.target network-online.target
 +Wants=network-online.target
 +
 +[Service]
 +Type=forking
 +# DHCP-Relay is only necassary when more than one interface is available.  
 +ExecStart=/usr/bin/dhcrelay -6 -q -pf /run/dhcrelay6/dhcrelay6.pid -l eth1 -u eth0
 +RuntimeDirectory=dhcrelay6
 +PIDFile=/run/dhcrelay6/dhcrelay6.pid
 +User=dhcp
 +AmbientCapabilities=CAP_NET_BIND_SERVICE CAP_NET_RAW
 +ProtectSystem=full
 +ProtectHome=on
 +KillSignal=SIGINT
 +# We pull in network-online.target for a configured network connection.
 +# However this is not guaranteed to be the network connection our
 +# networks are configured for. So try to restart on failure with a delay
 +# of two seconds. Rate limiting kicks in after 12 seconds.
 +RestartSec=2s
 +Restart=on-failure
 +StartLimitInterval=12s
 +
 +[Install]
 +WantedBy=multi-user.target
 +</code>
 +
 +:!: **HINWEIS** - Wichtig sind hier am Ende der nachfolgenden Zeile, die Parameter mit den richtigen Interfaces: 
 +<code ini>
 +ExecStart=/usr/bin/dhcrelay -6 -q -pf /run/dhcrelay6/dhcrelay6.pid -l eth0 -u eth1
 +</code>
 +
 +^ Option           ^ Beschreibung                                                          ^
 +| ''-l eth0''      | Lauscht auf DHCPREQUEST auf dem Interface ''eth0''                    |
 +| ''-u eth1''      | Weiterleitung der DHCPREQUEST an das Interface ''eth1''               |
 +
 +Abschließend muss die ''systemd'' Start Datei noch ''systemd'' bekannt gemacht werden, was mit nachfolgendem Befehl durchgeführt werden kann:
 +<code>
 +# systemctl --system daemon-reload
 +</code>
 +
 +===== Dienst/Deamon-Start einrichten =====
 +
 +Um die DHC-Relay Dienste, welche als Dienst/Deamon als Hintergrundprozesse laufen, auch nach einem Neustart des Servers zur Verfügung zu haben, sollen die Dienst/Daemon mit dem Server mit gestartet werden, was mit nachfolgendem Befehlen realisiert werden kann:
 +<code>
 +# systemctl enable dhcrelay4.service dhcrelay6.service 
 +Created symlink /etc/systemd/system/multi-user.target.wants/dhcrelay4.service → /etc/systemd/system/dhcrelay4.service.
 +Created symlink /etc/systemd/system/multi-user.target.wants/dhcrelay6.service → /etc/systemd/system/dhcrelay6.service.
 +</code>
 +
 +Eine Überprüfung, ob beim Neustart des Server der ''dhcrelay4''-Dienst/Deamon und der ''dhcrelay6''-Dienst/Deamon wirklich mit gestartet werden, kann mit nachfolgendem Befehl erfolgen und sollte eine Anzeige, wie ebenfalls nachfolgend dargestellt ausgeben:
 +<code>
 +# systemctl list-unit-files --type=service | grep dhcrelay
 +dhcrelay4.service                          enabled         disabled
 +dhcrelay6.service                          enabled         disabled
 +</code>
 +bzw.
 +<code>
 +# systemctl is-enabled dhcrelay4.service dhcrelay6.service
 +enabled
 +enabled
 +</code>
 +
 +===== iptables/ip6tables Regeln =====
 +
 +Damit der DHC-Relay-Server auch erreichbar ist und nicht die Weitergabe der IP-Address Informationen vom Paketfilter ''iptables'' und ''ip6tables'' blockiert wird, muss nachfolgende Regel zum ''iptables'' bzw. ''ip6tables''-Regelwerk hinzugefügt werden.
 +
 +Um die aktuellen ''iptables''-Regeln erweitern zu können, sollten diese erst einmal aufgelistet werden, was mit nachfolgendem Befehl durchgeführt werden kann:
 +<code>
 +# iptables -nvL --line-numbers
 +Chain INPUT (policy DROP 0 packets, 0 bytes)
 +num   pkts bytes target     prot opt in     out     source               destination         
 +1        6   398 ACCEPT     all  --  *      *       0.0.0.0/           0.0.0.0/           ctstate RELATED,ESTABLISHED
 +2        0     0 ACCEPT     icmp --  *      *       0.0.0.0/           0.0.0.0/          
 +3        0     0 ACCEPT     all  --  lo           0.0.0.0/           0.0.0.0/          
 +4        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/           0.0.0.0/           tcp dpt:22
 +5        0     0 LOG        all  --  *      *       0.0.0.0/           0.0.0.0/           LOG flags 0 level 5 prefix "REC-INP Defend "
 +6        0     0 REJECT     tcp  --  *      *       0.0.0.0/           0.0.0.0/           reject-with tcp-reset
 +7        0     0 REJECT     udp  --  *      *       0.0.0.0/           0.0.0.0/           reject-with icmp-port-unreachable
 +8        0     0 REJECT     all  --  *      *       0.0.0.0/           0.0.0.0/           reject-with icmp-proto-unreachable
 +
 +Chain FORWARD (policy DROP 0 packets, 0 bytes)
 +num   pkts bytes target     prot opt in     out     source               destination         
 +1        0     0 LOG        all  --  *      *       0.0.0.0/           0.0.0.0/           LOG flags 0 level 5 prefix "REC-FWD Defend "
 +2        0     0 REJECT     tcp  --  *      *       0.0.0.0/           0.0.0.0/           reject-with tcp-reset
 +3        0     0 REJECT     udp  --  *      *       0.0.0.0/           0.0.0.0/           reject-with icmp-port-unreachable
 +4        0     0 REJECT     all  --  *      *       0.0.0.0/           0.0.0.0/           reject-with icmp-proto-unreachable
 +
 +Chain OUTPUT (policy ACCEPT 8 packets, 478 bytes)
 +num   pkts bytes target     prot opt in     out     source               destination         
 +</code>
 +
 +Nachfolgende Befehle, fügen folgende ''iptables''-Regeln dem ''iptables''-Regelwerk nach der **Position 4** hinzu, ohne das der Paketfilter angehalten werden muss:
 +  * <code>-A INPUT -p udp --dport 67 -j ACCEPT</code>
 +  * <code>-A OUTPUT -p udp --dport 68 -j ACCEPT</code>
 +und hier die Befehle:
 +<code>
 +# iptables -I INPUT 5 -p udp --dport 67 -j ACCEPT
 +# iptables -I OUTPUT 1 -p udp --dport 68 -j ACCEPT
 +</code>
 +
 +Ein erneute Abfrage des ''iptables''-Regelwerts, sollte dann nachfolgend dargestellte Ausgabe ergeben, was mit folgendem Befehl durchgeführt werden kann:
 +<code>
 +# iptables -nvL --line-numbers
 +Chain INPUT (policy DROP 0 packets, 0 bytes)
 +num   pkts bytes target     prot opt in     out     source               destination         
 +1       29 15634 ACCEPT     all  --  *      *       0.0.0.0/           0.0.0.0/           ctstate RELATED,ESTABLISHED
 +2        0     0 ACCEPT     icmp --  *      *       0.0.0.0/           0.0.0.0/          
 +3        0     0 ACCEPT     all  --  lo           0.0.0.0/           0.0.0.0/          
 +4        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/           0.0.0.0/           tcp dpt:22
 +5        0     0 ACCEPT     udp  --  *      *       0.0.0.0/           0.0.0.0/           udp dpt:67
 +6        0     0 LOG        all  --  *      *       0.0.0.0/           0.0.0.0/           LOG flags 0 level 5 prefix "REC-INP Defend "
 +7        0     0 REJECT     tcp  --  *      *       0.0.0.0/           0.0.0.0/           reject-with tcp-reset
 +8        0     0 REJECT     udp  --  *      *       0.0.0.0/           0.0.0.0/           reject-with icmp-port-unreachable
 +9        0     0 REJECT     all  --  *      *       0.0.0.0/           0.0.0.0/           reject-with icmp-proto-unreachable
 +
 +Chain FORWARD (policy DROP 0 packets, 0 bytes)
 +num   pkts bytes target     prot opt in     out     source               destination         
 +1        0     0 LOG        all  --  *      *       0.0.0.0/           0.0.0.0/           LOG flags 0 level 5 prefix "REC-FWD Defend "
 +2        0     0 REJECT     tcp  --  *      *       0.0.0.0/           0.0.0.0/           reject-with tcp-reset
 +3        0     0 REJECT     udp  --  *      *       0.0.0.0/           0.0.0.0/           reject-with icmp-port-unreachable
 +4        0     0 REJECT     all  --  *      *       0.0.0.0/           0.0.0.0/           reject-with icmp-proto-unreachable
 +
 +Chain OUTPUT (policy ACCEPT 38 packets, 4765 bytes)
 +num   pkts bytes target     prot opt in     out     source               destination         
 +1        0     0 ACCEPT     udp  --  *      *       0.0.0.0/           0.0.0.0/           udp dpt:68</code>
 +
 +Die neuen Zeilen sind an **Position 5 (INPUT)** und **Postition 1 (OUTPUT)** zu sehen, hier nachfolgend zur Verdeutlichung noch einmal dargestellt (**nur relevanter Ausschnitt**):
 +<code>
 +...
 +5        0     0 ACCEPT     udp  --  *      *       0.0.0.0/           0.0.0.0/           udp dpt:67
 +...
 +1        0     0 ACCEPT     udp  --  *      *       0.0.0.0/           0.0.0.0/           udp dpt:68
 +...
 +</code>
 +
 +Um diese ''iptables''-Regel dauerhaft, auch nach einem Neustart des Server, weiterhin im ''iptables''-Regelwerk zu speichern, muss nachfolgend dargestellter Befehl abschließend noch ausgeführt werden:
 +<code>
 +# /usr/sbin/iptables-save > /etc/iptables/iptables.rules
 +</code>
 +
 +Nachfolgender Befehl kann dazu verwendet werden, um zu überprüfen, ob das ''iptables''-Regelwerk auch korrekt gespeichert wurde:
 +<code>
 +# cat /etc/iptables/iptables.rules
 +# Generated by iptables-save v1.8.7 on Mon Jul 12 16:38:03 2021
 +*mangle
 +:PREROUTING ACCEPT [179:83438]
 +:INPUT ACCEPT [179:83438]
 +:FORWARD ACCEPT [0:0]
 +:OUTPUT ACCEPT [221:105831]
 +:POSTROUTING ACCEPT [222:105904]
 +COMMIT
 +# Completed on Mon Jul 12 16:38:03 2021
 +# Generated by iptables-save v1.8.7 on Mon Jul 12 16:38:03 2021
 +*filter
 +:INPUT DROP [0:0]
 +:FORWARD DROP [0:0]
 +:OUTPUT ACCEPT [221:105831]
 +-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
 +-A INPUT -p icmp -j ACCEPT
 +-A INPUT -i lo -j ACCEPT
 +-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
 +-A INPUT -p udp -m udp --dport 67 -j ACCEPT
 +-A INPUT -j LOG --log-prefix "REC-INP Defend " --log-level 5
 +-A INPUT -p tcp -j REJECT --reject-with tcp-reset
 +-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
 +-A INPUT -j REJECT --reject-with icmp-proto-unreachable
 +-A FORWARD -j LOG --log-prefix "REC-FWD Defend " --log-level 5
 +-A FORWARD -p tcp -j REJECT --reject-with tcp-reset
 +-A FORWARD -p udp -j REJECT --reject-with icmp-port-unreachable
 +-A FORWARD -j REJECT --reject-with icmp-proto-unreachable
 +-A OUTPUT -p udp -m udp --dport 68 -j ACCEPT
 +COMMIT
 +# Completed on Mon Jul 12 16:38:03 2021
 +# Generated by iptables-save v1.8.7 on Mon Jul 12 16:38:03 2021
 +*nat
 +:PREROUTING ACCEPT [0:0]
 +:INPUT ACCEPT [0:0]
 +:OUTPUT ACCEPT [33:2171]
 +:POSTROUTING ACCEPT [33:2171]
 +COMMIT
 +# Completed on Mon Jul 12 16:38:03 2021</code>
 +
 +Um die aktuellen ''ip6tables''-Regeln erweitern zu können, sollten diese erst einmal aufgelistet werden, was mit nachfolgendem Befehl durchgeführt werden kann:
 +<code>
 +# ip6tables -nvL --line-numbers
 +Chain INPUT (policy DROP 0 packets, 0 bytes)
 +num   pkts bytes target     prot opt in     out     source               destination         
 +1        0     0 ACCEPT     all      *      *       ::/                ::/                ctstate RELATED,ESTABLISHED
 +2        0     0 ACCEPT     icmp          *       ::/                ::/               
 +3        0     0 ACCEPT     all      lo           ::/                ::/               
 +4        0     0 ACCEPT     tcp      *      *       ::/                ::/                tcp dpt:22
 +5        0     0 LOG        all      *      *       ::/                ::/                LOG flags 0 level 5 prefix "REC-INP Defend "
 +6        0     0 REJECT     tcp      *      *       ::/                ::/                reject-with tcp-reset
 +7        0     0 REJECT     udp      *      *       ::/                ::/                reject-with icmp6-port-unreachable
 +8        0     0 REJECT     all      *      *       ::/                ::/                reject-with icmp6-addr-unreachable
 +
 +Chain FORWARD (policy DROP 0 packets, 0 bytes)
 +num   pkts bytes target     prot opt in     out     source               destination         
 +1        0     0 LOG        all      *      *       ::/                ::/                LOG flags 0 level 5 prefix "REC-FWD Defend "
 +2        0     0 REJECT     tcp      *      *       ::/                ::/                reject-with tcp-reset
 +3        0     0 REJECT     udp      *      *       ::/                ::/                reject-with icmp6-port-unreachable
 +4        0     0 REJECT     all      *      *       ::/                ::/                reject-with icmp6-addr-unreachable
 +
 +Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 +num   pkts bytes target     prot opt in     out     source               destination</code>
 +
 +Nachfolgende Befehle, fügen folgende ''ip6tables''-Regeln dem ''ip6tables''-Regelwerk nach der **Position 4** hinzu, ohne das der Paketfilter angehalten werden muss:
 +  * <code>-A INPUT -p udp --dport 547 -j ACCEPT</code>
 +  * <code>-A OUTPUT -p udp --dport 546 -j ACCEPT</code>
 +und hier die Befehle:
 +<code>
 +# ip6tables -I INPUT 5 -p udp --dport 547 -j ACCEPT
 +# ip6tables -I OUTPUT 1 -p udp --dport 546 -j ACCEPT
 +</code>
 +
 +Ein erneute Abfrage des ''ip6tables''-Regelwerts, sollte dann nachfolgend dargestellte Ausgabe ergeben, was mit folgendem Befehl durchgeführt werden kann:
 +<code>
 +# ip6tables -nvL --line-numbers
 +Chain INPUT (policy DROP 0 packets, 0 bytes)
 +num   pkts bytes target     prot opt in     out     source               destination         
 +1        0     0 ACCEPT     all      *      *       ::/                ::/                ctstate RELATED,ESTABLISHED
 +2        0     0 ACCEPT     icmp          *       ::/                ::/               
 +3        0     0 ACCEPT     all      lo           ::/                ::/               
 +4        0     0 ACCEPT     tcp      *      *       ::/                ::/                tcp dpt:22
 +5        0     0 ACCEPT     udp      *      *       ::/                ::/                udp dpt:547
 +6        0     0 LOG        all      *      *       ::/                ::/                LOG flags 0 level 5 prefix "REC-INP Defend "
 +7        0     0 REJECT     tcp      *      *       ::/                ::/                reject-with tcp-reset
 +8        0     0 REJECT     udp      *      *       ::/                ::/                reject-with icmp6-port-unreachable
 +9        0     0 REJECT     all      *      *       ::/                ::/                reject-with icmp6-addr-unreachable
 +
 +Chain FORWARD (policy DROP 0 packets, 0 bytes)
 +num   pkts bytes target     prot opt in     out     source               destination         
 +1        0     0 LOG        all      *      *       ::/                ::/                LOG flags 0 level 5 prefix "REC-FWD Defend "
 +2        0     0 REJECT     tcp      *      *       ::/                ::/                reject-with tcp-reset
 +3        0     0 REJECT     udp      *      *       ::/                ::/                reject-with icmp6-port-unreachable
 +4        0     0 REJECT     all      *      *       ::/                ::/                reject-with icmp6-addr-unreachable
 +
 +Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 +num   pkts bytes target     prot opt in     out     source               destination         
 +1        0     0 ACCEPT     udp      *      *       ::/                ::/                udp dpt:546
 +</code>
 +
 +Die neuen Zeilen sind an **Position 5 (INPUT)** und **Postition 1 (OUTPUT)** zu sehen, hier nachfolgend zur Verdeutlichung noch einmal dargestellt (**nur relevanter Ausschnitt**):
 +<code>
 +...
 +5        0     0 ACCEPT     udp      *      *       ::/                ::/                udp dpt:547 
 +...
 +1        0     0 ACCEPT     udp      *      *       ::/                ::/                udp dpt:546
 +...
 +</code>
 +
 +Um diese ''ip6tables''-Regel dauerhaft, auch nach einem Neustart des Server, weiterhin im ''ip6tables''-Regelwerk zu speichern, muss nachfolgend dargestellter Befehl abschließend noch ausgeführt werden:
 +<code>
 +# /usr/sbin/ip6tables-save > /etc/iptables/ip6tables.rules 
 +</code>
 +
 +Nachfolgender Befehl kann dazu verwendet werden, um zu überprüfen, ob das ''ip6tables''-Regelwerk auch korrekt gespeichert wurde:
 +<code>
 +# cat /etc/iptables/ip6tables.rules
 +# Generated by ip6tables-save v1.8.7 on Mon Jul 12 16:48:38 2021
 +*mangle
 +:PREROUTING ACCEPT [0:0]
 +:INPUT ACCEPT [0:0]
 +:FORWARD ACCEPT [0:0]
 +:OUTPUT ACCEPT [0:0]
 +:POSTROUTING ACCEPT [0:0]
 +COMMIT
 +# Completed on Mon Jul 12 16:48:38 2021
 +# Generated by ip6tables-save v1.8.7 on Mon Jul 12 16:48:38 2021
 +*filter
 +:INPUT DROP [0:0]
 +:FORWARD DROP [0:0]
 +:OUTPUT ACCEPT [0:0]
 +-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
 +-A INPUT -p icmp -j ACCEPT
 +-A INPUT -i lo -j ACCEPT
 +-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
 +-A INPUT -p udp -m udp --dport 547 -j ACCEPT
 +-A INPUT -j LOG --log-prefix "REC-INP Defend " --log-level 5
 +-A INPUT -p tcp -j REJECT --reject-with tcp-reset
 +-A INPUT -p udp -j REJECT --reject-with icmp6-port-unreachable
 +-A INPUT -j REJECT --reject-with icmp6-addr-unreachable
 +-A FORWARD -j LOG --log-prefix "REC-FWD Defend " --log-level 5
 +-A FORWARD -p tcp -j REJECT --reject-with tcp-reset
 +-A FORWARD -p udp -j REJECT --reject-with icmp6-port-unreachable
 +-A FORWARD -j REJECT --reject-with icmp6-addr-unreachable
 +-A OUTPUT -p udp -m udp --dport 546 -j ACCEPT
 +COMMIT
 +# Completed on Mon Jul 12 16:48:38 2021
 +# Generated by ip6tables-save v1.8.7 on Mon Jul 12 16:48:38 2021
 +*nat
 +:PREROUTING ACCEPT [0:0]
 +:INPUT ACCEPT [0:0]
 +:OUTPUT ACCEPT [0:0]
 +:POSTROUTING ACCEPT [0:0]
 +COMMIT
 +# Completed on Mon Jul 12 16:48:38 2021
 +</code>
 +
 +===== DHC-Relay starten ======
 +
 +Falls alle voranstehenden Schritte wie beschrieben durchgeführt wurden, **Installation, iptables/ip6tables**, sollte dem **ersten Start** nichts im Wege stehen und dies mit nachfolgendem Befehl durchgeführt werden:
 +<code>
 +# systemctl start dhcrelay4.service dhcrelay6.service
 +</code>
 +
 +===== DHC-Relay Überprüfung =====
 +
 +Ob der DHC-Relay-Server, sprich der ''dhcrelay4''-Dienst/Deamon und der ''dhcrelay6''-Dienst/Deamon auch tatsächlich als Hintergrundprozesse laufen, kann mit nachfolgendem Befehl überprüft werden (Es sollte eine Ausgabe wie nachfolgend dargestellt, erfolgen - es kommt auf die **zweite und dritte** Zeile an!):
 +<code>
 +# ps auxwf | grep dhcrelay
 +root       64385  0.0  0.1   6736  2432 pts/1    S+   16:53   0:00                      \_ grep dhcrelay
 +dhcp       64381  0.0  0.1   5872  3496 ?        Ss   16:50   0:00 /usr/bin/dhcrelay -4 -q -pf /run/dhcrelay4/dhcrelay4.pid 10.0.0.20
 +dhcp       64382  0.0  0.1   6168  3788 ?        Ss   16:50   0:00 /usr/bin/dhcrelay -6 -q -pf /run/dhcrelay6/dhcrelay6.pid -l net1 -u net0
 +
 +</code>
 +
 +Eine weitere Überprüfung, ob der **erste Start** erfolgreich war, kann durch Einsicht in das
 +  * **''systemd-journal''**
 +durchgeführt werden.
 +
 +Die Ausgabe des **''systemd-journald''** kann mit nachfolgendem Befehl erfolgen, die Ausgabe sollte wie nachfolgend dargestellt aussehen:
 +<code>
 +# journalctl -u dhcrelay?.service
 +Jul 12 16:59:15 vml010 systemd[1]: Starting IPv4 DHCRELAY server...
 +Jul 12 16:59:15 vml010 systemd[1]: Starting IPv6 DHCRELAY server...
 +Jul 12 16:59:15 vml010 dhcrelay[64601]: Bound to *:547
 +Jul 12 16:59:15 vml010 systemd[1]: Started IPv6 DHCRELAY server.
 +Jul 12 16:59:15 vml010 systemd[1]: Started IPv4 DHCRELAY server.
 +</code>
 +
 +===== Interface Überprüfung =====
 +
 +Ob und an welchen Interfaces das DHC-Relay "lauscht", bzw. DHCP-Requests weitergeleitet werden, kann mit nachfolgendem Befehl überprüft werden:
 +<code>
 +# ss -taub | grep -E 'bootps|dhcpv6-server'
 +udp   UNCONN 0      0                          0.0.0.0:bootps             0.0.0.0:                              
 +udp   UNCONN 0      0                                *:dhcpv6-server            *:*
 +</code>
 +
 +:!: **HINWEIS** - **Auch bei der Konfiguration __nur__ ein Netzwerk-Interface für eingehende Broadcast-Anfragen zu nutzen, wird immer ''0.0.0.0:67'' als "Listener" IP-Adresse angezeigt.**
 +
 +===== IP-Adressanfragen Überprüfung =====
 +
 +Um die Anfrage einer IP-Adresse zu überprüfen, kann ein Blick in das **''systemd-journald''** geworfen werden, was mit nachfolgendem Befehl durchgeführt werden kann (**nur relevanter Auszug**):
 +<code>
 +</code>
 +FIXME
tachtler/dhcp_isc_dhc-relay_archlinux.1626083945.txt.gz · Zuletzt geändert: 2021/07/12 11:59 von klaus