asg
push it, don´t hype
Moin.
Ich muss irgendwo einen Denkfehler haben, komme aber nicht drauf:
Zwei primäre Firewalls (fw1 und fw2) welche mit dem WAN über einen Router verbunden sind. Hinter den Firewalls rennen zwei Applikationsserver (app1 und app2), ebenfalls mit PF, einer der beiden ist das GW für die Clients im internen Netz.
Es hier um fw1 und fw2 die als transparente FW mit PF+CARP+PFSYNC unter FBSD 6.1 arbeiten sollen.
Das GW für die internen Clients ist app2 (10.4.1.251), und das GW für app2 ist wiederum .252/29 (das eine CARP interface auf fw1 und fw2). app2 hat auch eine externe Adresse, .251/29 und ist via einer anderen NIC mit dem internen Netz verbunden:10.4.1.251
Das läuft alles. Regeln passen, alles geht.
fw1 (zwei externe Adressen wobei int zu app geht)
ext -> .242/29
int -> .249/29
fw2 (zwei externe Adressen wobei int zu app geht)
ext -> .243/29
int -> .250/29
auf beiden fw habe ich:
CARP0 -> .252/29
CARP1 -> .244/29
fw1 der Master (etc/rc.conf):
fw2 der Backups (etc/rc.conf):
Auf beiden fw /etc/sysctl.conf:
In beiden pf.conf:
xl0 das externe interface, xl1 das interne und xl2 ist mittels crossover kabel mit fw1 und fw2 verbunden.
Wenn ich nun CARP0 runternehme:
ifconfig carp0 down
Bekomme ich folgenden output bei ifconfig
fw1:
fw2:
So, fw arbeitet nun als MASTER, aber nur auf CARP0. Ich dachte wenn preempt aktiviwert ist, das dann alle CARP interfaces übernommen werden.
Bevor ich nun CARP0 runternehme führe ich einen ping aus von intern nach extern. Nehme ich CARP0 runter, bricht der Ping nicht ab. Gut.
ABER, ssh, http, ftp, alles andere, bricht ab.
Einfache Frage: Warum? Was zum Henker übersehe ich gerade?
Ich muss irgendwo einen Denkfehler haben, komme aber nicht drauf:
Zwei primäre Firewalls (fw1 und fw2) welche mit dem WAN über einen Router verbunden sind. Hinter den Firewalls rennen zwei Applikationsserver (app1 und app2), ebenfalls mit PF, einer der beiden ist das GW für die Clients im internen Netz.
Es hier um fw1 und fw2 die als transparente FW mit PF+CARP+PFSYNC unter FBSD 6.1 arbeiten sollen.
Das GW für die internen Clients ist app2 (10.4.1.251), und das GW für app2 ist wiederum .252/29 (das eine CARP interface auf fw1 und fw2). app2 hat auch eine externe Adresse, .251/29 und ist via einer anderen NIC mit dem internen Netz verbunden:10.4.1.251
Das läuft alles. Regeln passen, alles geht.
fw1 (zwei externe Adressen wobei int zu app geht)
ext -> .242/29
int -> .249/29
fw2 (zwei externe Adressen wobei int zu app geht)
ext -> .243/29
int -> .250/29
auf beiden fw habe ich:
CARP0 -> .252/29
CARP1 -> .244/29
fw1 der Master (etc/rc.conf):
Code:
cloned_interfaces="carp0 carp1"
network_interfaces="lo0 xl0 xl1 xl2 carp0 carp1 pfsync0 pflog0"
ifconfig_carp0="vhid 1 pass foo xxx.xxx.xxx.244 255.255.255.248"
ifconfig_carp1="vhid 2 pass bar xxx.xxx.xxx.252 255.255.255.248"
pfsync_enable="YES"
pfsync_syncdev="xl2"
fw2 der Backups (etc/rc.conf):
Code:
cloned_interfaces="carp0 carp1"
network_interfaces="lo0 xl0 xl1 xl2 carp0 carp1 pfsync0 pflog0"
ifconfig_carp0="vhid 1 pass foo advskew 128 xxx.xxx.xxx.244
255.255.255.248"
ifconfig_carp1="vhid 2 pass bar advskew 128 xxx.xxx.xxx.252
255.255.255.248"
pfsync_enable="YES"
pfsync_syncdev="xl2"
Auf beiden fw /etc/sysctl.conf:
Code:
net.inet.carp.preempt=1
net.inet.carp.allow=1
net.inet.carp.log=1
In beiden pf.conf:
Code:
pass out on $ext_if proto carp keep state
pass out on $int_if proto carp keep state
pass quick on { xl2 } proto pfsync
pass on { xl0 xl1 } proto carp keep state
xl0 das externe interface, xl1 das interne und xl2 ist mittels crossover kabel mit fw1 und fw2 verbunden.
Wenn ich nun CARP0 runternehme:
ifconfig carp0 down
Bekomme ich folgenden output bei ifconfig
fw1:
Code:
carp0: flags=8<LOOPBACK> mtu 1500
inet xxx.xxx.xxx.244 netmask 0xffffff00
carp: INIT vhid 1 advbase 1 advskew 0
carp1: flags=49<UP,LOOPBACK,RUNNING> mtu 1500
inet xxx.xxx.xxx.252 netmask 0xffffff00
carp: MASTER vhid 2 advbase 1 advskew 0
fw2:
Code:
carp0: flags=49<UP,LOOPBACK,RUNNING> mtu 1500
inet xxx.xxx.xxx.244 netmask 0xffffff00
carp: MASTER vhid 1 advbase 1 advskew 128
carp1: flags=49<UP,LOOPBACK,RUNNING> mtu 1500
inet xxx.xxx.xxx.252 netmask 0xffffff00
carp: BACKUP vhid 2 advbase 1 advskew 128
So, fw arbeitet nun als MASTER, aber nur auf CARP0. Ich dachte wenn preempt aktiviwert ist, das dann alle CARP interfaces übernommen werden.
Bevor ich nun CARP0 runternehme führe ich einen ping aus von intern nach extern. Nehme ich CARP0 runter, bricht der Ping nicht ab. Gut.
ABER, ssh, http, ftp, alles andere, bricht ab.
Einfache Frage: Warum? Was zum Henker übersehe ich gerade?