Ich habe ein Dedi mit einem IP-Bereich von 123.123.123.1/24, das Problem ist die Gateway-Adresse: 111.111.111.254 und es liegt in einem völlig anderen Subnetz. Ich habe bereits eine Bridge und KVM-Virtualisierung eingerichtet.
/etc/dhcpd.conf auf dem Hostknoten.
subnet 0.0.0.0 netmask 0.0.0.0 {
authoritative;
default-lease-time 21600000;
max-lease-time 432000000;
}
ddns-update-style ad-hoc;
host kvm111.0 {
hardware ethernet 02:00:00:ce:fd:ab;
option routers 111.111.111.254;
option subnet-mask 255.255.255.0;
fixed-address 123.123.123.2;
option domain-name-servers 8.8.8.8,8.8.4.4;
}
Dann habe ich auf dieser HWID eine virtuelle KVM-Maschine (VM) mit Windows-Betriebssystem und aktiviertem DHCP eingerichtet. Es funktioniert gut. Die Windows-VM hat die IP 123.123.123.2 mit dem Gateway 111.111.111.254.
Aber wenn ich das Betriebssystem der VM auf Debian 6 ändere, funktioniert es nicht. Ich melde mich bei der VM an und stelle fest, dass das Gateway nicht zugewiesen ist. Wenn ich eingebeRoute hinzufügen Standard gw 111.111.111.254die Antwort ist:
SIOADDCART: no such process
Das liegt daran, dass sich das Gateway in einem anderen Subnetz befindet als die zugewiesene IP-Adresse. Daher musste ich Folgendes auf der VM tun:
Route hinzufügen 111.111.111.254/32 dev eth0
Route hinzufügen Standard gw 111.111.111.254
und dann klappt es. Da ich aber eine Automatisierung über den Host-Knoten möchte (und nicht manuell über VM), musste ich es über /etc/dhcpd.conf machen
Weiß jemand wie das gehtRoute hinzufügen 111.111.111.254/32 dev eth0über /etc/dhcpd.conf?
Antwort1
Die Antwort istKlassenlose statische Routen (RFC3442). Im ISC-DHCP-Server müssen Sie die Option manuell angeben.
Diese Internetseitebeschreibt kurz und bündig, wie es auf eine Weise funktioniert, die sowohl für Windows- als auch für Linux-Clients funktioniert.
Hier ist die Kurzfassung:
Fügen Sie oben zu dhcpd.conf Folgendes hinzu
option rfc3442-classless-static-routes code 121 = array of integer 8;
option ms-classless-static-routes code 249 = array of integer 8;
Fügen Sie im entsprechenden Subnetzblock die folgenden beiden Optionszeilen hinzu
option rfc3442-classless-static-routes 32, 111, 111, 111, 254, 0, 0, 0, 0, 111, 111, 111, 254;
option ms-classless-static-routes 32, 111, 111, 111, 254, 0, 0, 0, 0, 111, 111, 111, 254;
Dadurch sollte eine statische Route für 111.111.111.254 on-link mit der per DHCP zugewiesenen Adresse erstellt werden und der Standardrouter 111.111.111.254 beibehalten werden. Der spezielle Routerwert 0.0.0.0 bedeutet on-link. Laut RFC müssen Clients keine klassenlosen statischen Routen implementieren, Windows tut dies jedoch über seine MS-Option, Linux-dhclient (getestet mit Debian7, Rhel6.4) tut dies und alle meine IPMI- und PXE-Clients tun dies ebenfalls. Sie sollten testen, ob es mit Ihren Clients funktioniert, aber ich bin ziemlich zuversichtlich, dass es funktionieren wird.dhclient kann mit einem Exit-Hook dazu gebracht werden, Option 121 zu interpretieren, sofern dies nicht bereits standardmäßig unterstützt wird.
Im schlimmsten Fall können Sie auf dem Hostknoten eine IP hinzufügen, die im LAN-Bereich liegt (in Ihrem Beispiel 123.123.123.254) und den Clients anweisen, diese als Standard-Gateway zu verwenden.