[Users] fib6_clean_all: NULL exec env (table->owner_env)
Axton
axton.grams at gmail.com
Fri Jan 25 15:20:51 EST 2013
While running containers with ipv6 addresses on Debian I get the
following log entries on CT0 in /var/log/messages:
Jan 25 16:58:17 cluster-02 kernel: [845803.804023] fib6_clean_all:
NULL exec env (table->owner_env)
Jan 25 16:58:47 cluster-02 kernel: [845833.804024] fib6_clean_all:
NULL exec env (table->owner_env)
Jan 25 16:59:17 cluster-02 kernel: [845863.804024] fib6_clean_all:
NULL exec env (table->owner_env)
Jan 25 16:59:47 cluster-02 kernel: [845893.804024] fib6_clean_all:
NULL exec env (table->owner_env)
Here is my system information:
root at cluster-02:~# uname -a
Linux cluster-02 2.6.32-5-openvz-amd64 #1 SMP Sun Sep 23 11:32:18 UTC
2012 x86_64 GNU/Linux
root at cluster-02:~# vzctl --version
vzctl version 3.0.24
If I stop the containers, the errors stop. They seem to occur at a
rate of x messages every 30 seconds (more containers means more log
entries). The host has 1 interface connected to an untagged port on
my switch. 4 vlans are accessible to this port: 10, 20, 30, and 40.
Only vlan40 is used for access to CT0. The other 3 vlans are for the
containers.
The interfaces are configured as follows:
root at cluster-02:~# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
iface eth1 inet manual
auto vlan10
iface vlan10 inet manual
vlan_raw_device eth1
auto vlan20
iface vlan20 inet manual
vlan_raw_device eth1
auto vlan30
iface vlan30 inet manual
vlan_raw_device eth1
auto vlan40
iface vlan40 inet manual
vlan_raw_device eth1
auto br10
iface br10 inet manual
up ip link set $IFACE up
bridge_ports vlan10
bridge_stp off
bridge_fd 0
up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/autoconf
up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/accept_ra
up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/accept_ra_defrtr
up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/accept_ra_pinfo
up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/accept_ra_rtr_pref
auto br20
iface br20 inet manual
up ip link set $IFACE up
bridge_ports vlan20
bridge_stp off
bridge_fd 0
up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/autoconf
up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/accept_ra
up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/accept_ra_defrtr
up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/accept_ra_pinfo
up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/accept_ra_rtr_pref
auto br30
iface br30 inet manual
up ip link set $IFACE up
bridge_ports vlan30
bridge_stp off
bridge_fd 0
up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/autoconf
up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/accept_ra
up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/accept_ra_defrtr
up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/accept_ra_pinfo
up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/accept_ra_rtr_pref
auto br40
iface br40 inet static
address 10.0.20.58
netmask 255.255.252.0
broadcast 10.0.23.255
gateway 10.0.20.1
bridge_ports vlan40
bridge_stp off
bridge_fd 0
up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/autoconf
up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/accept_ra
up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/accept_ra_defrtr
up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/accept_ra_pinfo
up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/accept_ra_rtr_pref
up ip -6 addr add 2001:470:e067:40::58/64 dev $IFACE
up ip -6 route add fe80::1 dev $IFACE
up ip -6 route add default via 2001:470:e067:40::10
down ip -6 addr del 2001:470:e067:40::58/64 dev $IFACE
down ip -6 route del fe80::1 dev $IFACE
down ip -6 route del default via 2001:470:e067:40::10
Everything works fine up to this point. The issue comes when I start
one of the containers. I use veth interfaces for the containers. I
do not use venet.
root at cluster-02:~# vzctl start 5000
Starting container ...
Container is mounted
Setting CPU units: 1000
Set hostname: fs01
File resolv.conf was modified
Configure veth devices: veth5000.1 veth5000.2 veth5000.3 veth5000.4
Adding interface veth5000.1 to bridge br10 on CT0 for CT5000
Adding interface veth5000.2 to bridge br20 on CT0 for CT5000
Adding interface veth5000.3 to bridge br30 on CT0 for CT5000
Adding interface veth5000.4 to bridge br40 on CT0 for CT5000
Container start in progress...
Within container 5000, I have the following configuration for the interfaces:
root at fs01:/# cat /etc/network/interfaces
# Used by ifup(8) and ifdown(8). See the interfaces(5) manpage or
# /usr/share/doc/ifupdown/examples for more information.
auto lo eth1 eth2 eth3 eth4
iface lo inet loopback
iface eth1 inet static
address 10.0.4.249
netmask 255.255.252.0
broadcast 10.0.7.255
post-up ip route add table 100 to 10.0.4.0/22 dev eth1
post-up ip route add table 100 to default via 10.0.4.1 dev eth1
post-up ip rule add from 10.0.4.0/22 table 100 priority 100
post-up ip route flush cache
pre-down ip route del table 100 to 10.0.4.0/22 dev eth1
pre-down ip rule del from 10.0.4.0/22 table 100 priority 100
pre-down ip route flush cache
iface eth1 inet6 static
address 2001:470:e067:10::249
netmask 64
pre-up echo 0 > /proc/sys/net/ipv6/conf/eth1/autoconf
pre-up echo 0 > /proc/sys/net/ipv6/conf/eth1/accept_ra
post-up ip -6 route add table 100 to 2001:470:e067:10::/64 dev eth1
post-up ip -6 route add table 100 to default via
2001:470:e067:10::10 dev eth1
post-up ip -6 rule add from 2001:470:e067:10::/64 table 100 priority 100
post-up ip -6 route flush cache
pre-down ip -6 rule del from 2001:470:e067:10::/64 table 100
priority 100
pre-down ip -6 route flush cache
iface eth2 inet static
address 10.0.0.249
netmask 255.255.252.0
broadcast 10.0.3.255
post-up ip route add table 200 to 10.0.0.0/22 dev eth2
post-up ip route add table 200 to default via 10.0.0.1 dev eth2
post-up ip rule add from 10.0.0.0/22 table 200 priority 200
post-up ip route flush cache
pre-down ip rule del from 10.0.0.0/22 table 200 priority 200
pre-down ip route flush cache
iface eth3 inet static
address 10.0.16.249
netmask 255.255.252.0
broadcast 10.0.19.255
post-up ip route add table 300 to 10.0.16.0/22 dev eth3
post-up ip route add table 300 to default via 10.0.16.1 dev eth3
post-up ip rule add from 10.0.16.0/22 table 300 priority 300
post-up ip route flush cache
pre-down ip rule del from 10.0.16.0/22 table 300 priority 300
pre-down ip route flush cache
iface eth4 inet static
address 10.0.20.249
netmask 255.255.252.0
broadcast 10.0.23.255
gateway 10.0.20.1
post-up ip route add table 400 to 10.0.20.0/22 dev eth4
post-up ip route add table 400 to default via 10.0.20.1 dev eth4
post-up ip rule add from 10.0.20.0/22 table 400 priority 400
post-up ip route flush cache
pre-down ip route del table 400 to 10.0.20.0/22 dev eth4
pre-down ip route del table 400 to default via 10.0.20.1 dev eth4
pre-down ip rule del from 10.0.20.0/22 table 400 priority 400
pre-down ip route flush cache
I use separate inet/inet6 configuration stanzas on CT0 because I can
not use more than one configuration stanza for a bridge interface.
Within the container I have separate inet/inet6 stanzas because these
are not bridge interfaces as far as the container is concerned. The
rules in the container are there to keep traffic bound to a given
interface (e.g., if some host on vlan20 talks to the container ip on
vlan40, the return packets will go out the same interface they came
in).
As far as functionality goes, I do not have any issues. I simply have
these /var/log/messages entries that fill up the log file. I do not
know what is causing these errors. More containers a given host means
more of the same log entries. I tried searching the web for clues,
but I seem to have stumbled into something that is not common. Any
help is appreciated. If you need more information let me know. If I
do not have any ipv6 address in the containers I do not have these
errors.
As a side note (probably not related), I updated the vznetaddbr script
used to add veth interfaces to the respective bridge on CT0 to retain
the appropriate MAC address by adding the following lines:
# Retain the existing MAC address when the veth interfaces are
added to the bridge
#ifconfig $VZHOSTBR hw ether $($ifconfig eth0 | awk '{print $5; exit}')
ifconfig $bridge hw ether 00:25:90:61:74:53
This really just causes the bridge to not change mac address. The mac
changing had the side effect that all tcp sessions were dropped (i.e.,
when I stop a container, I would lose my ssh session to CT0).
Thanks in advance,
Axton Grams
More information about the Users
mailing list