Hi all,

I've found something that I think is a bug in ipfw. At the very least,
it contradicts the man page and a number of web sites. It's also
different behaviour from a few months ago.

I have a IPV6 tunnel connection to Hurricane Electric that I use every
now and then. When I want to use it, I manually enable it in ipfw and
then disable it again afterwards. After a recent csup and new world and
kernel, it stopped working. The script output below shows the problem.

I start with IPv6 disallowed by ipfw as can be seen in the first failed
ping6. Normally, I then allow ipv6 and the ping6 should work. But it
seems that ipv6 isn't what it used to be. I need to explicitly use the
protocol number (41) to get it to work. According to the ipfw man page,
ip6 and ipv6 are the same thing, and it implies that they should both be
the same as "41". Obviously they're not.

So, when you add a rule with "ipv6" or "ip6" in it, "ipfw list" displays
it as "ip6". When you enter a rule with "41" in it, it displays as
"ipv6". Very confusing!

I can't see any option to get "ipfw list" to output numeric values
rather than protocol names, but moving /etc/protocols aside seems to do
the trick. You can see from the last ipfw output that ip6 is the same as
ipv6, but they're not the same as 41.

I did a few google searches for "ipfw, freebsd, ipv6" and a number of
sites say that you just do "allow ipv6 from any to any" to get it
working. That's what I used to do too, but it doesn't work any more.

I'm running 8-Stable csupped yesterday on i386: FreeBSD
maxwell.mencon.com.au 8.2-PRERELEASE FreeBSD 8.2-PRERELEASE #28: Sun Nov
28 07:44:12 EST 2010    
r...@chief-freebsd.mencon.com.au:/usr/obj/usr/src/sys/maxwell  i386.

Does anybody have any ideas, please?

Thanks,   
    Graham

Script output (with a few irrelevant bits trimmed, and some blank lines
inserted for clarity):

Script started on Sun Nov 28 11:26:27 2010

r...@maxwell% ipfw list 50
ipfw: rule 50 does not exist

r...@maxwell% ping6 www.kame.net
PING6(56=40+8+8 bytes) 2001:470:1f04:35d::2 -->
2001:200:dff:fff1:216:3eff:feb1:44d7
ping6: sendmsg: Permission denied

r...@maxwell% ipfw add 50 allow ipv6 from any to any
00050 allow ip6 from any to any

r...@maxwell% ipfw list 50
00050 allow ip6 from any to any

r...@maxwell% ping6 www.kame.net
PING6(56=40+8+8 bytes) 2001:470:1f04:35d::2 -->
2001:200:dff:fff1:216:3eff:feb1:44d7
ping6: sendmsg: Permission denied

r...@maxwell% ipfw add 50 allow ip6 from any to any
00050 allow ip6 from any to any

r...@maxwell% ipfw list 50
00050 allow ip6 from any to any
00050 allow ip6 from any to any

r...@maxwell% ping6 www.kame.net
PING6(56=40+8+8 bytes) 2001:470:1f04:35d::2 -->
2001:200:dff:fff1:216:3eff:feb1:44d7
ping6: sendmsg: Permission denied

r...@maxwell% ipfw add 50 allow 41 from any to any
00050 allow ipv6 from any to any

r...@maxwell% ping6 www.kame.net
PING6(56=40+8+8 bytes) 2001:470:1f04:35d::2 -->
2001:200:dff:fff1:216:3eff:feb1:44d7
16 bytes from 2001:200:dff:fff1:216:3eff:feb1:44d7, icmp_seq=0 hlim=56
time=291.889 ms

r...@maxwell% ipfw list 50
00050 allow ip6 from any to any
00050 allow ip6 from any to any
00050 allow ipv6 from any to any

r...@maxwell% mv /etc/protocols /etc/protocols_save

r...@maxwell% ipfw list 50
00050 allow ip6 from any to any
00050 allow ip6 from any to any
00050 allow 41 from any to any
r...@maxwell% exit

Script done on Sun Nov 28 11:28:22 2010

_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"

Reply via email to