Hochverfügbarer Router / DHCP Server

Serow

New member
Hi, mein Ziel ist es mehrere VLANs über einen auf Linux basierenden Router zu verbinden. Dabei soll der Router hochverfügbar sein - also wenn einer ausfällt, soll der andere alles übernehmen. Dabei gibt es noch zwei Dinge, die ich berücksichtigen will:

1. Die beiden Systeme verfügen über feste IPs, die nicht zum Routing sondern z.B. zum Wartungszugriff genutzt werden sollen. Dennoch haben sie Layer 2 Connectivity in alle zu routenden VLANs.

VLAN 1: 172.16.1.10/11
VLAN 10: -
VLAN 20: 172.16.20.10/11
VLAN 30: -
VLAN 40: -
VLAN 50: -
VLAN 60: -

2. Die Router IP soll in jedem VLAN die .1 sein.

Momentan habe ich diesen Teil mit Keepalived umgesetzt. VRRP läuft in VLAN 1 und setzt auf dem entsprechenden Interface die .1 als IP wenn der Host der primary host ist.

Die Netfilter Regeln habe ich einfach auf beiden Hosts aktiviert auch wenn der Host gerade secondary ist.

Mit isc-dhcp-server habe ich nun ein Problem: Er kann sich ja selbst HA machen ohne dafür Pacemaker oder sowas einzusetzen. Das habe ich auch so gemacht und lasse natürlich den primären DHCP Server auf dem primären Keepalived Host laufen. Du leider kann ich den secondary DHCP Server nicht starten, weil er mit der Meldung

Code:
Not configured to listen on any interfaces!

Klar verstehe ich irgendwie, denn er entscheidet ja über die Interfaces an die er sich bindet über die konfigurierten Subnetze:

Code:
ddns-update-style none;
option domain-name "XXXXXXXXX";
option domain-name-servers 172.16.30.10;
default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local7;

failover peer "failover-partner" {
  secondary;
  address kvm01.XXXXXXXX;
  port 520;
  peer address kvm00.XXXXXXXX;
  peer port 519;
  max-response-delay 60;
  max-unacked-updates 10;
  load balance max seconds 3;
}

subnet 172.16.50.0 netmask 255.255.255.0 {
  option routers 172.16.50.1;
  pool {
    failover peer "failover-partner";
    range 172.16.50.100 172.16.50.150;
  }
}

subnet 172.16.60.0 netmask 255.255.255.0 {
  option routers 172.16.60.1;
  pool {
    failover peer "failover-partner";
    range 172.16.60.100 172.16.60.150;
  }
}

omapi-port 7911;
omapi-key omapi_key;

key omapi_key {
     algorithm hmac-md5;
     secret dwoi93r23rkhdjsfew;
}
root@kvm01:~# ip addr show br-officewifi
16: br-officewifi: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 00:1b:21:51:ca:89 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::21b:21ff:fe51:ca89/64 scope link 
       valid_lft forever preferred_lft forever
root@kvm01:~# ip addr show br-guestwifi
18: br-guestwifi: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 00:1b:21:51:ca:89 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::21b:21ff:fe51:ca89/64 scope link 
       valid_lft forever preferred_lft forever

Die beiden oben definierten Subnetze gehören zu den ebenfalls oben gezeigten Interfaces br-officewifi und br-guestwifi. Die haben natürlich keine IP, da diese erst über Keepalived gesetzt wird wenn es soweit ist.

Die Frage ist nun, kann ich isc-dhcp-server irgendwie dazu bringen das zu ignorieren? Wenn nein: Hat jemand eine elegantere Lösung? Pacemaker möchte ich hier vermeiden.

Grüße
serow
 
Oben