DHCP: Unterschied zwischen den Versionen
Dirk (Diskussion | Beiträge) |
Boenki (Diskussion | Beiträge) |
||
(17 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
Per DHCP (Dynamic Host Configuration Protocol) ist es möglich, IP-Adressen mit Hilfe eines Servers dynamisch zuzuweisen. Zusätzlich zu den IP-Adressen können dem Client auch noch weitere Netzinformationen wie Nameserver, Gateway, etc. zugewiesen werden. | Per DHCP (Dynamic Host Configuration Protocol) ist es möglich, IP-Adressen mit Hilfe eines Servers dynamisch zuzuweisen. Zusätzlich zu den IP-Adressen können dem Client auch noch weitere Netzinformationen wie Nameserver, Gateway, etc. zugewiesen werden. | ||
DHCP wurde entwickelt, um große Netze mit häufig wechselnder Topologie (Beispielsweise ein Rechner/Netzwerk-Pool an einer Universität, wo häufig verschiedene Rechner in Betrieb sind) zu verwalten | DHCP wurde entwickelt, um große Netze mit häufig wechselnder Topologie (Beispielsweise ein Rechner/Netzwerk-Pool an einer Universität, wo häufig verschiedene Rechner in Betrieb sind) zu verwalten. Zudem wird im privaten Umfeld meist DHCP benutzt, wenn man nur einen Computer hat, um ins Internet gehen zu können – Im Modem/Router befindet sich dann auch meist ein DHCP-Server. | ||
== Konfiguration == | == Konfiguration == | ||
Um | Um unter Arch DHCP zu benutzen, reicht es, den entsprechenden Service für das entsprechende Netzwerk-Interface zu aktivieren und zu starten. | ||
systemctl enable dhcpcd@eth0 | |||
eth0 | systemctl start dhcpcd@eth0 | ||
Wobei hier {{ic|eth0}} als Beispiel dient. Mit dem ersten Befehl wird der dhcpd-Service für den automatischen Start markiert, und der zweite Befehl startet diesen Service, ohne, dass man einen System-Neustart ausführen muss. | |||
== Verwendung == | |||
Beim nächsten Start wird das Interface nun also mittels DHCP konfiguriert. Man kann das Interface aber auch manuell konfigurieren. | |||
{{hc|dhcpcd eth0|eth0: dhcpcd 4.0.4 starting | |||
eth0: broadcasting for a lease | |||
eth0: offered 192.168.6.64 from 192.168.6.249 | |||
eth0: checking 192.168.6.64 is available on attached networks | |||
eth0: acknowledged 192.168.6.64 from 192.168.6.249 | |||
eth0: leased 192.168.6.64 for 691200 seconds}} | |||
In diesem Fall wurde ein DHCP-Server mit der IP 192.168.6.249 gefunden. Der DHCP-Server hat dem Client die IP 192.168.6.64 angeboten. Der Client prüft daraufhin, ob diese IP in dem Netzwerk überhaupt verfügbar ist, und akzeptiert die IP dann. Zudem wird die Information ausgegeben, dass die IP nun für 691200 Sekunden (= 8 Tage) zugewiesen wurde. Dies ist eine Einstellung auf dem DHCP-Server. | |||
{{ic|ip a show}} zeigt neben generellen Informationen zum Interface auch an, was per DHCP sonst noch kam. So sind dort neben der IP natürlich auch die Broadcast-Adresse und die Netzmaske zu sehen, die [[resolv.conf]] gibt zudem Aufschluss über die verwendeten Nameserver. | |||
{{hc|ip a show eth0|2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 | |||
link/ether 00:21:9b:13:c4:13 brd ff:ff:ff:ff:ff:ff | |||
inet 192.168.6.64/24 brd 192.168.6.255 scope global eth0 | |||
inet6 fe80::221:9bff:fe13:c413/64 scope link | |||
valid_lft forever preferred_lft forever}} | |||
{{hc|cat /etc/resolv.conf|# Generated by dhcpcd from eth0 | |||
# /etc/resolv.conf.head can replace this line | |||
search domain.lokal | |||
nameserver 192.168.6.254 | |||
# /etc/resolv.conf.tail can replace this line}} | |||
Natürlich sind alle Angaben hier nur exemplarisch, und hängen vom DHCP-Server ab, von dem man ein DHCP-Angebot auf seine Anfrage bekommt. | |||
== DNS-Server festlegen == | |||
Der DNS-Server wird in der [[resolv.conf]] festgelegt. Diese Datei wird beim Ausführen von {{ic|dhcpcd}} überschrieben. Will man einen anderen, als den von {{ic|dhcpcd}} automatisch ermittelten, DNS Server verwenden, muss man verhindern, dass die {{ic|resolv.conf}} überschrieben wird. Dazu muss man {{ic|dhcpcd}} mit der Option {{ic|-C resolv.conf}} aufrufen. | |||
dhcpcd -C resolv.conf eth0 | |||
Damit dies auch beim automatischen Start funktioniert, muss die entsprechende Option in die {{ic|/etc/conf.d/dhcpcd}} eingetragen werden. | |||
DHCPCD_ARGS="-C resolv.conf" | |||
Alternativ kann man den gewünschten DNS-Server auch in {{ic|/etc/resolv.conf.head}} eintragen. Der Inhalt dieser Datei wird beim Ausführen von {{ic|dhcpcd}} am Anfang der {{ic|resolv.conf}} eingefügt. | |||
== DHCP-Server aufsetzen == | == DHCP-Server aufsetzen == | ||
Selbst einen DHCP-Server aufsetzen zu wollen, kann verschiedene Gründe haben. Hauptsächlich wird man das vermutlich wollen, weil man mehrere Rechner hat, und diese nicht | Selbst einen DHCP-Server aufsetzen zu wollen, kann verschiedene Gründe haben. Hauptsächlich wird man das vermutlich wollen, weil man mehrere Rechner hat, und diese nicht manuell konfigurieren will. Man benötigt zum Aufsetzen eines DHCP-Servers natürlich einen Computer, auf dem dieser Server laufen soll, zudem benötigt man ein Serverprogramm. | ||
Im „[[Pacman#Repositorien_und_Spiegel-Server|extra]]“-Repository befinden sich mehrere Programme, mittels derer man einen DHCP-Server aufsetzen kann. | Im „[[Pacman#Repositorien_und_Spiegel-Server|extra]]“-Repository befinden sich mehrere Programme, mittels derer man einen DHCP-Server aufsetzen kann. | ||
* | * {{Paket|dhcp}} ist das eigentliche Serverprogramm | ||
* | * {{Paket|dnsmasq}} ist ein kombinierter DNS/DHCP-Server | ||
* | * {{Paket|bind}} ist ein umfangreiches DNS-Serverprogramm | ||
* | * {{Paket|dhclient}} ist ein Standalone-Programm für DHCP-Anfragen | ||
* {{Paket|dhcpcd}} ist der „''c''lient ''d''aemon“ für DHCP | |||
* | |||
Es gibt im Netz unzählige Anleitungen, um einen DHCP-Server aufzusetzen und zu konfigurieren. Da dies trotz vieler anders lautender Behauptungen nicht ganz trivial ist, und eine Fehlkonfiguration zudem sogar ein Sicherheitsrisiko darstellen kann, sei hier noch mal darauf verwiesen, dass man nur einen DHCP-Server selbst einrichten sollte, wenn man es wirklich benötigt, und bereits Erfahrung im Umgang mit Linux und Wissen im Bereich der Netzwerkadministration hat. Für den durchschnittlichen Heimanwender reichen die DNS-Lösungen, die mit den meisten Modems/Routern kommen, völlig aus. | |||
== Siehe auch == | |||
* [[dhcpd]] – Aufsetzen eines DHCP-Servers | |||
== Weblinks == | |||
* [http://www.howtoforge.com/dhcp_server_linux_debian_sarge dhcpd-Einrichtung am Beispiel von Debian Sarge] {{sprache|en}} | * [http://www.howtoforge.com/dhcp_server_linux_debian_sarge dhcpd-Einrichtung am Beispiel von Debian Sarge] {{sprache|en}} | ||
* [http://wiki.ubuntuusers.de/Dnsmasq Dnsmasq-Konfiguration am Beispiel von Ubuntu] {{sprache|de}} | * [http://wiki.ubuntuusers.de/Dnsmasq Dnsmasq-Konfiguration am Beispiel von Ubuntu] {{sprache|de}} | ||
* [http://oob.freeshell.org/nzwireless/dhcpd.html dhcpd auf freeshell.org] {{sprache|en}} | * [http://oob.freeshell.org/nzwireless/dhcpd.html dhcpd auf freeshell.org] {{sprache|en}} | ||
[[Kategorie:Netzwerk]] | [[Kategorie:Netzwerk]] |
Aktuelle Version vom 21. November 2016, 22:20 Uhr
Per DHCP (Dynamic Host Configuration Protocol) ist es möglich, IP-Adressen mit Hilfe eines Servers dynamisch zuzuweisen. Zusätzlich zu den IP-Adressen können dem Client auch noch weitere Netzinformationen wie Nameserver, Gateway, etc. zugewiesen werden.
DHCP wurde entwickelt, um große Netze mit häufig wechselnder Topologie (Beispielsweise ein Rechner/Netzwerk-Pool an einer Universität, wo häufig verschiedene Rechner in Betrieb sind) zu verwalten. Zudem wird im privaten Umfeld meist DHCP benutzt, wenn man nur einen Computer hat, um ins Internet gehen zu können – Im Modem/Router befindet sich dann auch meist ein DHCP-Server.
Konfiguration
Um unter Arch DHCP zu benutzen, reicht es, den entsprechenden Service für das entsprechende Netzwerk-Interface zu aktivieren und zu starten.
systemctl enable dhcpcd@eth0 systemctl start dhcpcd@eth0
Wobei hier eth0
als Beispiel dient. Mit dem ersten Befehl wird der dhcpd-Service für den automatischen Start markiert, und der zweite Befehl startet diesen Service, ohne, dass man einen System-Neustart ausführen muss.
Verwendung
Beim nächsten Start wird das Interface nun also mittels DHCP konfiguriert. Man kann das Interface aber auch manuell konfigurieren.
dhcpcd eth0
eth0: dhcpcd 4.0.4 starting eth0: broadcasting for a lease eth0: offered 192.168.6.64 from 192.168.6.249 eth0: checking 192.168.6.64 is available on attached networks eth0: acknowledged 192.168.6.64 from 192.168.6.249 eth0: leased 192.168.6.64 for 691200 seconds
In diesem Fall wurde ein DHCP-Server mit der IP 192.168.6.249 gefunden. Der DHCP-Server hat dem Client die IP 192.168.6.64 angeboten. Der Client prüft daraufhin, ob diese IP in dem Netzwerk überhaupt verfügbar ist, und akzeptiert die IP dann. Zudem wird die Information ausgegeben, dass die IP nun für 691200 Sekunden (= 8 Tage) zugewiesen wurde. Dies ist eine Einstellung auf dem DHCP-Server.
ip a show
zeigt neben generellen Informationen zum Interface auch an, was per DHCP sonst noch kam. So sind dort neben der IP natürlich auch die Broadcast-Adresse und die Netzmaske zu sehen, die resolv.conf gibt zudem Aufschluss über die verwendeten Nameserver.
ip a show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:21:9b:13:c4:13 brd ff:ff:ff:ff:ff:ff inet 192.168.6.64/24 brd 192.168.6.255 scope global eth0 inet6 fe80::221:9bff:fe13:c413/64 scope link valid_lft forever preferred_lft forever
cat /etc/resolv.conf
# Generated by dhcpcd from eth0 # /etc/resolv.conf.head can replace this line search domain.lokal nameserver 192.168.6.254 # /etc/resolv.conf.tail can replace this line
Natürlich sind alle Angaben hier nur exemplarisch, und hängen vom DHCP-Server ab, von dem man ein DHCP-Angebot auf seine Anfrage bekommt.
DNS-Server festlegen
Der DNS-Server wird in der resolv.conf festgelegt. Diese Datei wird beim Ausführen von dhcpcd
überschrieben. Will man einen anderen, als den von dhcpcd
automatisch ermittelten, DNS Server verwenden, muss man verhindern, dass die resolv.conf
überschrieben wird. Dazu muss man dhcpcd
mit der Option -C resolv.conf
aufrufen.
dhcpcd -C resolv.conf eth0
Damit dies auch beim automatischen Start funktioniert, muss die entsprechende Option in die /etc/conf.d/dhcpcd
eingetragen werden.
DHCPCD_ARGS="-C resolv.conf"
Alternativ kann man den gewünschten DNS-Server auch in /etc/resolv.conf.head
eintragen. Der Inhalt dieser Datei wird beim Ausführen von dhcpcd
am Anfang der resolv.conf
eingefügt.
DHCP-Server aufsetzen
Selbst einen DHCP-Server aufsetzen zu wollen, kann verschiedene Gründe haben. Hauptsächlich wird man das vermutlich wollen, weil man mehrere Rechner hat, und diese nicht manuell konfigurieren will. Man benötigt zum Aufsetzen eines DHCP-Servers natürlich einen Computer, auf dem dieser Server laufen soll, zudem benötigt man ein Serverprogramm.
Im „extra“-Repository befinden sich mehrere Programme, mittels derer man einen DHCP-Server aufsetzen kann.
- dhcp ist das eigentliche Serverprogramm
- dnsmasq ist ein kombinierter DNS/DHCP-Server
- bind ist ein umfangreiches DNS-Serverprogramm
- dhclient ist ein Standalone-Programm für DHCP-Anfragen
- dhcpcd ist der „client daemon“ für DHCP
Es gibt im Netz unzählige Anleitungen, um einen DHCP-Server aufzusetzen und zu konfigurieren. Da dies trotz vieler anders lautender Behauptungen nicht ganz trivial ist, und eine Fehlkonfiguration zudem sogar ein Sicherheitsrisiko darstellen kann, sei hier noch mal darauf verwiesen, dass man nur einen DHCP-Server selbst einrichten sollte, wenn man es wirklich benötigt, und bereits Erfahrung im Umgang mit Linux und Wissen im Bereich der Netzwerkadministration hat. Für den durchschnittlichen Heimanwender reichen die DNS-Lösungen, die mit den meisten Modems/Routern kommen, völlig aus.
Siehe auch
- dhcpd – Aufsetzen eines DHCP-Servers