Hi list,
I am testing a bridge with carp and pf. My plan has been that I am
controlling the bridge-status with ifstated.
The network looks like that:
|OpenBSD4.0|
/ \
-|cisco-switch|- -|cisco-switch|-
\ /
|OpenBSD4.0|
The machines are two Sun Fire V120.
The ifstated (started with -d -vv) destroys not the bridges as wanted:
--------snip --- ifstated.conf ------------
state primary {
init {
run "ifconfig carp0 advskew 10"
run "ifconfig carp1 advskew 10"
run "ifconfig bridge0 up"
}
if ! $net
set-state demoted
}
state demoted {
init {
run "ifconfig carp0 advskew 254"
run "ifconfig carp1 advskew 254"
run "ifconfig bridge0 destroy"
}
if $net
set-state primary
}
state promoted {
init {
run "ifconfig carp0 advskew 0"
run "ifconfig carp1 advskew 0"
}
if $peer || ! $net
set-state backup
}
state backup {
init {
run "ifconfig carp0 advskew 100"
run "ifconfig carp1 advskew 100"
run "ifconfig bridge0 destroy"
}
--------snap ------ ifstated.conf-----------
the carp-devices are cofigured as follow:
# cat /etc/hostname.carp0
inet 192.168.1.1 255.255.255.0 192.168.1.255 vhid 1 carpdev gem0 pass
intrageheim
# cat /etc/hostname.carp1
inet 192.168.3.50 255.255.255.0 192.168.3.255 vhid 2 carpdev gem1 pass
wangeheim
The networking-interfaces are configured as bridges
Sometimes one of the machines is ending in an Kernel-Panic:
ddb> trace
data_access_fault(e0017b58, 30, 1067764, 0, 10, 0) at
data_access_fault+0x2c0
trapbase(0, 50, 2b12d80, 0, 0, 2) at trapbase+0x87ac
gem_rint(2b02000, ff00000000, ff00, ff000000, ff0000, 4cd0) at
gem_rint+0x2c8
gem_intr(2b02000, 0, e0017ec8, 0, 1067c20, 2) at gem_intr+0xec
sparc_interrupt(2b02000, 1, 80206910, 272c5c70, 1067c20, 77a10) at
sparc_interr
upt+0x20c
gem_ioctl(0, 80206910, 272c5c70, 272c5c70, 0, 0) at gem_ioctl+0x1d8
ifioctl(cc4afe0, 80206910, 272c5c70, cc1c9a0, 100a2a4, 0) at
ifioctl+0x384
sys_ioctl(0, 272c5dd0, 272c5dc0, 0, 0, 180e408) at sys_ioctl+0x10c
syscall(272c5ed0, 36, 10bae8, 10baec, 0, 0) at syscall+0x280
softtrap(3, 80206910, fffffffffffe5c90, 0, 0, 0) at softtrap+0x184
ps:
PID PPID PGRP UID S FLAGS WAIT COMMAND
* 1058 19020 1058 0 7 0x4006 ifconfig
27647 26750 27647 0 3 0x4086 ttyin ksh
19020 7773 19020 0 3 0x4086 pause ksh
26750 5255 26750 0 3 0x4084 select sshd
7773 5255 7773 0 3 0x4084 select sshd
25076 1 25076 0 3 0x40184 select sendmail
28111 1 28111 0 3 0x4086 ttyin ksh
10610 1 10610 0 3 0x84 select cron
5255 1 5255 0 3 0x84 select sshd
19645 1 19645 0 3 0x184 select inetd
20885 14264 14264 83 3 0x184 poll ntpd
14264 1 14264 0 3 0x84 poll ntpd
15461 1146 1146 74 3 0x184 bpf pflogd
1146 1 1146 0 3 0x84 netio pflogd
10786 23975 23975 73 2 0x184 syslogd
23975 1 23975 0 3 0x8c netio syslogd
12 0 0 0 3 0x100204 crypto_wa crypto
11 0 0 0 3 0x100204 aiodoned aiodoned
10 0 0 0 3 0x100204 syncer update
9 0 0 0 3 0x100204 cleaner cleaner
8 0 0 0 3 0x100204 reaper reaper
7 0 0 0 3 0x100204 pgdaemon pagedaemon
6 0 0 0 3 0x100204 pftm pfpurge
5 0 0 0 3 0x100204 usbevt usb1
4 0 0 0 3 0x100204 usbtsk usbtask
3 0 0 0 3 0x100204 usbevt usb0
2 0 0 0 3 0x100204 kmalloc kmthread
1 0 1 0 3 0x4084 wait init
0 -1 0 0 3 0x80204 scheduler swapper
---------------
I think the problem is because of carp-advertisments, that are looped by
the bridges.
I tried several configurations: bridge with carp- and physical
interfaces, interfaces gem0 and gem1 with and without ip-adress. pf was
disabled during the tests.
Did i something wrong with the configuration? Or something forgotten?
regards,
Marcus