CARP Backup sendet advertisements

Tillo

New Member
Hallo!

Ich habe hier zwei OpenBSD 4.0 Firewalls mit CARP und PFSync laufen. Die Konfiguration entspricht im Wesentlichen der aus dem PF-Howto. Ich habe also carp.preempt enabled und die PF-Regeln entsprechend angepasst.

Die CARP-interfaces sehen so aus:
Code:
carp2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:00:5e:00:01:01
        carp: BACKUP carpdev em2 vhid 1 advbase 1 advskew 100
        groups: carp
        inet6 fe80::200:5eff:fe00:101%carp2 prefixlen 64 scopeid 0xb
        inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
Entsprechend sind die anderen Interfaces konfiguriert und auf der MasterFW ist natürlich advskew 50.

Es funktioniert auch soweit, dass die FW mit dem niedrigeren advskew Master wird und der Traffic über sie läuft. Beim Reboot des Masters wird der Backup kurz zum Master bis der eigentliche Master wieder da ist - da also kein Problem.

Wenn jetzt aber beide Firewalls laufen und ich verbinde mich per SSH auf die CARP-IP (192.168.0.1 in dem Fall), kommt es immer nach wenigen Zeilen zum Verbindungsabbruch. Verbinde ich mich mit der normalen IP, die das physikalische Interface hat, gibt es keine Probleme.

Ein TCPdump zeigt:

Code:
# tcpdump -i em1 ether multicast
tcpdump: WARNING: em1: no IPv4 address assigned
tcpdump: listening on em1, link-type EN10MB
19:52:27.790682 CARPv2-advertise 36: vhid=1 advbase=1 advskew=50 demote=0 (DF) [tos 0x10]
19:52:29.000777 CARPv2-advertise 36: vhid=1 advbase=1 advskew=50 demote=0 (DF) [tos 0x10]
19:52:29.990114 CARPv2-advertise 36: vhid=1 advbase=1 advskew=100 demote=0 (DF) [tos 0x10]
19:52:29.990241 fe80::20e:cff:fe83:cf0b > ff02::12: ip-proto-112 36
19:52:29.990246 arp who-has 192.168.0.1 tell 192.168.0.1
19:52:30.210853 CARPv2-advertise 36: vhid=1 advbase=1 advskew=50 demote=0 (DF) [tos 0x10]
19:52:31.420843 CARPv2-advertise 36: vhid=1 advbase=1 advskew=50 demote=0 (DF) [tos 0x10]
19:52:32.630939 CARPv2-advertise 36: vhid=1 advbase=1 advskew=50 demote=0 (DF) [tos 0x10]
19:52:33.620159 CARPv2-advertise 36: vhid=1 advbase=1 advskew=100 demote=0 (DF) [tos 0x10]
19:52:33.620169 fe80::20e:cff:fe83:cf0b > ff02::12: ip-proto-112 36
19:52:33.620175 arp who-has 192.168.0.1 tell 192.168.0.1

Eigentlich sollte die Firewall mit dem höheren advskew doch erkennen, dass die andere "geeigneter" ist und erst gar keine advertisements senden...

Hat vielleicht jemand eine Idee wo hier das Problem liegen könnte?

Vielen Dank,

Till
 
Hallo Till,

schicke doch mal Deine gesamte Konfiguration - hieraus läßt sich erst einmal nichts erkennen.

LG Uwe
 
Ich hoffe mal, dass das hier nicht zu unübersichtlich wird:

MasterFW:
Code:
WAN:
fxp0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:0e:0c:6f:aa:d2
        media: Ethernet autoselect (100baseTX full-duplex)
        status: active
        inet6 fe80::20e:cff:fe6f:aad2%fxp0 prefixlen 64 scopeid 0x1

DMZ:
fxp1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:02:b3:ef:68:17
        media: Ethernet autoselect (100baseTX full-duplex)
        status: active
        inet6 fe80::202:b3ff:feef:6817%fxp1 prefixlen 64 scopeid 0x2

LAN:
fxp2: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:0e:0c:6f:ab:52
        media: Ethernet autoselect (100baseTX full-duplex)
        status: active
        inet 192.168.0.251 netmask 0xffffff00 broadcast 192.168.0.255
        inet6 fe80::20e:cff:fe6f:ab52%fxp2 prefixlen 64 scopeid 0x3

PFSync:
fxp3: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:0e:0c:6f:ab:39
        media: Ethernet autoselect (100baseTX full-duplex)
        status: active
        inet 10.1.1.2 netmask 0xffffff00 broadcast 10.1.1.255
        inet6 fe80::20e:cff:fe6f:ab39%fxp3 prefixlen 64 scopeid 0x4
pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33224
pfsync0: flags=41<UP,RUNNING> mtu 1460
        pfsync: syncdev: fxp3 syncpeer: 224.0.0.240 maxupd: 128
        groups: carp
enc0: flags=0<> mtu 1536

WAN:
carp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:00:5e:00:01:02
        carp: MASTER carpdev fxp0 vhid 2 advbase 1 advskew 50
        groups: carp egress
        inet6 fe80::200:5eff:fe00:102%carp0 prefixlen 64 scopeid 0x9
        inet 123.123.123.74 netmask 0xfffffffc broadcast 123.123.123.75

DMZ:
carp1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:00:5e:00:01:03
        carp: MASTER carpdev fxp1 vhid 3 advbase 1 advskew 50
        groups: carp
        inet6 fe80::200:5eff:fe00:103%carp1 prefixlen 64 scopeid 0xa
        inet 123.123.123.77 netmask 0xfffffffc broadcast 123.123.123.79

LAN:
carp2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:00:5e:00:01:01
        carp: MASTER carpdev fxp2 vhid 1 advbase 1 advskew 50
        groups: carp
        inet6 fe80::200:5eff:fe00:101%carp2 prefixlen 64 scopeid 0xb
        inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255

BackupFW:
Code:
WAN:
em0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:0e:0c:c2:cf:f7
        media: Ethernet autoselect (100baseTX full-duplex)
        status: active
        inet6 fe80::20e:cff:fec2:cff7%em0 prefixlen 64 scopeid 0x1

DMZ:
em1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:0e:0c:c2:be:16
        media: Ethernet autoselect (100baseTX full-duplex)
        status: active
        inet6 fe80::20e:cff:fec2:be16%em1 prefixlen 64 scopeid 0x2

LAN:
em2: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:0e:0c:83:cf:0b
        media: Ethernet autoselect (100baseTX full-duplex)
        status: active
        inet6 fe80::20e:cff:fe83:cf0b%em2 prefixlen 64 scopeid 0x3
        inet 192.168.0.250 netmask 0xffffff00 broadcast 192.168.0.255

PFSync
em3: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:0e:0c:83:cf:22
        media: Ethernet autoselect (100baseTX full-duplex)
        status: active
        inet6 fe80::20e:cff:fe83:cf22%em3 prefixlen 64 scopeid 0x4
        inet 10.1.1.1 netmask 0xffffff00 broadcast 10.1.1.255
pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33224
pfsync0: flags=41<UP,RUNNING> mtu 1460
        pfsync: syncdev: em3 syncpeer: 224.0.0.240 maxupd: 128
        groups: carp
enc0: flags=0<> mtu 1536

WAN:
carp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:00:5e:00:01:02
        carp: BACKUP carpdev em0 vhid 2 advbase 1 advskew 100
        groups: carp egress
        inet6 fe80::200:5eff:fe00:102%carp0 prefixlen 64 scopeid 0x9
        inet 123.123.123.74 netmask 0xfffffffc broadcast 123.123.123.75

DMZ:
carp1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:00:5e:00:01:03
        carp: BACKUP carpdev em1 vhid 3 advbase 1 advskew 100
        groups: carp
        inet6 fe80::200:5eff:fe00:103%carp1 prefixlen 64 scopeid 0xa
        inet 123.123.123.77 netmask 0xfffffffc broadcast 123.123.123.79

LAN:
carp2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:00:5e:00:01:01
        carp: BACKUP carpdev em2 vhid 1 advbase 1 advskew 100
        groups: carp
        inet6 fe80::200:5eff:fe00:101%carp2 prefixlen 64 scopeid 0xb
        inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255

In der pf.conf noch auf beiden ein set skip on {lo0, $pfsync_if) und ein pass proto carp all keep state.

Ich denke das sollte erstmal reichen, vielleicht findet ja wer den Fehler...


Danke schonmal :)

Till
 
Warum machst du auf em1 ein tcpdump? Das ist doch das Interface für die DMZ, welches nichts mit dem LAN zu tun haben sollte. Habe jetzt leider keinen Testaufbau hier, aber für die Fehlersuche würde ich erstmal alle Interfaces down nehmen die nichts mit der SSH-Session zu tun haben und es nochmal mit einem audführlichen dump ohne Filter probieren. Eventuell haut deine pf.conf nicht hin.
 
hi

interessant ist das er auf master und backup nen advskew gesetzt hat
was ja nicht wirklich noetig ist.

du kannst mal testen den master ohne advskew zu betreiben.

fw code mal abschalten test weise ( pfctl -d )

hast du in den fw regeln die carp regeln drinn ?
ala
Code:
pass quick on { wan dmz privat } proto carp all

holger
 
Zurück
Oben