tag 551950 +patch,upstream,fixed-upstream
thanks

Tom Eastep wrote:
> Vincent Danjean wrote:
> 
>>   I let the initial bug report to Debian below (it can also be seen at
>> http://bugs.debian.org/551950 ). It explains that I think that
>> detect_configuration() is never called.
> 
> Attached is an updated copy of /usr/share/shorewall/Perl/prog.footer6
> that should correct that problem.

Thanks. After diffing the file and the one on my system, I only take the
lines with detect_configuration (your file also delete all function definition
that you move to prog.header6 according to you git history).
  I put the patch I applied in attachment for the debian bug.
  This solve this bug (but I'm stopped by the next one, see below)

>> PPS: you might want to know that the iproute bug #551937 
>> (http://bugs.debian.org/551937)
>> also prevent Multi IPv6 ISP from working.
>> And http://lists.debian.org/debian-devel/2009/10/msg00472.html show yet 
>> another problem
>> (but I do not know yet if the latter is a shorewall6 bug or another package 
>> bug)

For the last bug, looking at ifupdown sources, it seems that the bug (adding 
via ::)
comes from either the 'ip' command or the kernel.  Or this is not a bug and 
shorewall6
should take care of this syntax.
  You can try on any host:
eyak:~# ip -6 route ls dev tun6to4
Cannot find device "tun6to4"
eyak:~# ip tunnel add tun6to4 mode sit remote  192.88.99.1 local 192.168.0.1
eyak:~# ip -6 route ls dev tun6to4
eyak:~# ip link set tun6to4 up
eyak:~# ip -6 route ls dev tun6to4
fe80::/64 via ::  proto kernel  metric 256  mtu 1480 advmss 1420 hoplimit 
4294967295
eyak:~# ip addr add 2002:0101:0101::1/64 dev tun6to4
eyak:~# ip -6 route ls dev tun6to4
2002:101:101::/64 via ::  proto kernel  metric 256  mtu 1480 advmss 1420 
hoplimit 4294967295
fe80::/64 via ::  proto kernel  metric 256  mtu 1480 advmss 1420 hoplimit 
4294967295
eyak:~#
  You can see that all route added by ip due to other commands (ie not "ip 
route")
lead to a route with "via ::". I'm under the impression that these routes are 
added
automatically by the kernel, not by the ip utility itself.
  So, I do not know how you want to deal with this (and I do not know IPv6 in 
linux
enough to know the right answer here). A workaround is to add something like
"|sed 's/ via :: / /'" when you get the routes. But I do not know if all "via 
::"
can really be suppressed in routes.

  Regards,
    Vincent

> Thanks,
> -Tom

Some more tests to see the difference between routes automatically added and
route manually added (I'm not able to interpret the results I get, I just see
the differences):
eyak:~# cat /proc/net/ipv6_route  | grep tun6to4
20020101010100000000000000000000 40 00000000000000000000000000000000 00 
00000000000000000000000000000000 00000100 00000000 00000000 00200001  tun6to4
fe800000000000000000000000000000 40 00000000000000000000000000000000 00 
00000000000000000000000000000000 00000100 00000000 00000000 00200001  tun6to4
ff000000000000000000000000000000 08 00000000000000000000000000000000 00 
00000000000000000000000000000000 00000100 00000000 00000000 00000001  tun6to4
eyak:~# ip -6 route ls dev tun6to4
2002:101:101::/64 via ::  proto kernel  metric 256  mtu 1480 advmss 1420 
hoplimit 4294967295
fe80::/64 via ::  proto kernel  metric 256  mtu 1480 advmss 1420 hoplimit 
4294967295
eyak:~# ip -6 route del 2002:101:101::/64 via ::  proto kernel  metric 256  mtu 
1480 advmss 1420 hoplimit 4294967295
eyak:~# ip -6 route add 2002:101:101::/64 via :: dev tun6to4 proto kernel  
metric 256  mtu 1480 advmss 1420 hoplimit 4294967295
RTNETLINK answers: Invalid argument
eyak:~# ip -6 route add 2002:101:101::/64 dev tun6to4 proto kernel  metric 256  
mtu 1480 advmss 1420 hoplimit 4294967295
eyak:~# cat /proc/net/ipv6_route  | grep tun6to4
20020101010100000000000000000000 40 00000000000000000000000000000000 00 
00000000000000000000000000000000 00000100 00000000 00000000 00000001  tun6to4
fe800000000000000000000000000000 40 00000000000000000000000000000000 00 
00000000000000000000000000000000 00000100 00000000 00000000 00200001  tun6to4
ff000000000000000000000000000000 08 00000000000000000000000000000000 00 
00000000000000000000000000000000 00000100 00000000 00000000 00000001  tun6to4
eyak:~# ip -6 route add 2002:101:101::/64 dev tun6to4 via 2002:101:101::3 proto 
kernel  metric 256  mtu 1480 advmss 1420 hoplimit 4294967295
eyak:~# cat /proc/net/ipv6_route  | grep tun6to4
20020101010100000000000000000000 40 00000000000000000000000000000000 00 
00000000000000000000000000000000 00000100 00000000 00000001 00000001  tun6to4
20020101010100000000000000000000 40 00000000000000000000000000000000 00 
20020101010100000000000000000003 00000100 00000000 00000000 00000003  tun6to4
fe800000000000000000000000000000 40 00000000000000000000000000000000 00 
00000000000000000000000000000000 00000100 00000000 00000000 00200001  tun6to4
ff000000000000000000000000000000 08 00000000000000000000000000000000 00 
00000000000000000000000000000000 00000100 00000000 00000000 00000001  tun6to4
eyak:~#

-- 
Vincent Danjean       GPG key ID 0x9D025E87         [email protected]
GPG key fingerprint: FC95 08A6 854D DB48 4B9A  8A94 0BF7 7867 9D02 5E87
Unofficial pacakges: http://moais.imag.fr/membres/vincent.danjean/deb.html
APT repo:  deb http://perso.debian.org/~vdanjean/debian unstable main

--- prog.footer6        2009-10-19 15:05:16.000000000 +0200
+++ /tmp/prog.footer6   2009-10-23 21:04:08.000000000 +0200
@@ -328,6 +90,7 @@
                status=0
            else
                progress_message3 "Starting $PRODUCT...."
+               detect_configuration
                define_firewall
                status=$?
                [ -n "$SUBSYSLOCK" -a $status -eq 0 ] && touch $SUBSYSLOCK
@@ -337,6 +100,7 @@
        stop)
            [ $# -ne 1 ] && usage 2
            progress_message3 "Stopping $PRODUCT...."
+           detect_configuration
            stop_firewall
            status=0
            [ -n "$SUBSYSLOCK" ] && rm -f $SUBSYSLOCK
@@ -379,6 +143,7 @@
                progress_message3 "Starting $PRODUCT...."
            fi
 
+           detect_configuration
            define_firewall
            status=$?
            if [ -n "$SUBSYSLOCK" ]; then
@@ -390,6 +155,7 @@
            [ $# -ne 1 ] && usage 2
            if shorewall6_is_started; then
                progress_message3 "Refreshing $PRODUCT...."
+               detect_configuration
                define_firewall
                status=$?
                progress_message3 "done."
@@ -400,6 +166,7 @@
            ;;
        restore)
            [ $# -ne 1 ] && usage 2
+           detect_configuration
            define_firewall
            status=$?
            if [ -n "$SUBSYSLOCK" ]; then

Reply via email to