Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 425126

Summary: sys-apps/openrc-0.10.5 brings up br0 interface with nonfunctional route
Product: Gentoo Hosted Projects Reporter: David Klaftenegger <davidweb>
Component: netifrcAssignee: netifrc Team <netifrc>
Status: IN_PROGRESS ---    
Severity: normal    
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard: netifrc:bridge
Package list:
Runtime testing required: ---
Attachments: relevant /etc/conf.d/net settings
rc.log of a system startup

Description David Klaftenegger 2012-07-07 00:17:29 UTC
When running a virtual machine as an IPv6 gateway towards other (virtual) machines, and using openrc to set up the bridge and routing towards those other machines, the route is actually unavailable until manually deleted and readded.

This bug first occurs when booting the machine, and can be re-triggered by issuing
/etc/init.d/net.br0 restart

Note that no machines actually "behind" the gw machine have to be contacted to see the effect of this bug, but have been to verify they are all affected.

Note that having it set up as a route with a gateway is crucial to the bug, other bridges without a gateway on them work just fine. IPv4 is not affected and works the whole time, using NAT on the gateway VM.

below fe80::c8fe:caff:feba:0 is the link-local address of the gateway's eth0, attached to br0, ${v6net}::2 is the same eth0's public IP address. In place of ${v6net}::2 another host from the same subnet, attached to the gateway's eth1 via br1 was tested as well with identical results, i.e. it works only after re-adding the route.

Reproducible: Always

Steps to Reproduce:
1. /etc/init.d/net.br0 restart
2. ping6 -c3 fe80::c8fe:caff:feba:0 -I br0
3. ping6 -c3 ${v6net}::2 (or a client behind the gateway)
4. ip -6 route del ${v6net}::/64 via fe80::c8fe:caff:feba:0 dev br0
5. ip -6 route add ${v6net}::/64 via fe80::c8fe:caff:feba:0 dev br0
6. ping6 -c3 ${v6net}::2 (or a client behind the gateway)
Actual Results:  
result 2)
PING fe80::c8fe:caff:feba:0(fe80::c8fe:caff:feba:0) from fe80::9ce5:9ff:feca:b890 br0: 56 data bytes
64 bytes from fe80::c8fe:caff:feba:0: icmp_seq=1 ttl=255 time=0.217 ms
64 bytes from fe80::c8fe:caff:feba:0: icmp_seq=2 ttl=255 time=0.214 ms
64 bytes from fe80::c8fe:caff:feba:0: icmp_seq=3 ttl=255 time=0.235 ms

result 3)
PING ${v6net}::2(${v6net}::2) 56 data bytes
ping: sendmsg: Network is down
ping: sendmsg: Network is down
ping: sendmsg: Network is down

result 6)
PING ${v6net}::2(${v6net}::2) 56 data bytes
64 bytes from ${v6net}::2: icmp_seq=1 ttl=64 time=0.217 ms
64 bytes from ${v6net}::2: icmp_seq=2 ttl=64 time=0.204 ms
64 bytes from ${v6net}::2: icmp_seq=3 ttl=64 time=0.325 ms

Expected Results:  
result 2)
PING ${v6net}::2(${v6net}::2) 56 data bytes
64 bytes from ${v6net}::2: icmp_seq=1 ttl=64 time=0.217 ms
64 bytes from ${v6net}::2: icmp_seq=2 ttl=64 time=0.204 ms
64 bytes from ${v6net}::2: icmp_seq=3 ttl=64 time=0.325 ms

as seen on the command line when restarting net.br0:

stopped services, in stopping order:
sshd, radvd, nfsmount, libvirtd, dhcpd, net.br0

started services, in starting order (| denotes interleaving messages, rc_parallel=off!):
net.br0, ntp-client, radvd|sshd, dhcpd, nfsmount|libvirtd

 # emerge --info
Portage (hardened/linux/amd64/selinux, gcc-4.5.3, glibc-2.14.1-r3, 3.2.11-hardened x86_64)
System uname: Linux-3.2.11-hardened-x86_64-Intel-R-_Core-TM-_i7-2600_CPU_@_3.40GHz-with-gentoo-2.1
Timestamp of tree: Wed, 04 Jul 2012 23:30:01 +0000
app-shells/bash:          4.2_p20
dev-lang/python:          2.7.3-r2, 3.2.3
dev-util/cmake:           2.8.7-r5
dev-util/pkgconfig:       0.26  
sys-apps/baselayout:      2.1-r1
sys-apps/openrc:          0.10.5
sys-apps/sandbox:         2.5   
sys-devel/autoconf:       2.68  
sys-devel/automake:       1.11.1
sys-devel/binutils:       2.21.1-r1
sys-devel/gcc:            4.5.3-r2
sys-devel/gcc-config:     1.6   
sys-devel/libtool:        2.4-r1
sys-devel/make:           3.82-r1
sys-kernel/linux-headers: 3.4 (virtual/os-headers)
sys-libs/glibc:           2.14.1-r3
Repositories: gentoo            
CFLAGS="-O2 -pipe -march=native"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -pipe -march=native"
EMERGE_DEFAULT_OPTS="--jobs=16 --load-average=32"
FCFLAGS="-O2 -pipe"
FFLAGS="-O2 -pipe"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
USE="acl amd64 apache2 berkdb bzip2 cli cracklib crypt cups cxx dri gdbm gpm hardened iconv idn ipv6 jabber jingle justify kerberos lm_sensors mmx modules mudflap multilib ncurses nls nptl open_perms openmp pam pax_kernel pcre postgres pppd readline selinux session sse sse2 ssl tcpd threads unicode urandom vim-syntax xorg zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" PHP_TARGETS="php5-3" PYTHON_TARGETS="python3_2 python2_7" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="fbdev glint intel mach64 mga neomagic nouveau nv r128 radeon savage sis tdfx trident vesa via vmware dummy v4l" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Comment 1 David Klaftenegger 2012-07-07 00:19:22 UTC
Created attachment 317460 [details]
relevant /etc/conf.d/net settings

The attached /etc/conf.d/net is reduced to the relevant definitions, and changed to a readable format.
Comment 2 David Klaftenegger 2012-07-07 00:20:16 UTC
Created attachment 317462 [details]
rc.log of a system startup
Comment 3 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2013-08-28 16:20:53 UTC
Can you please include the output of 'ip -6 route' at step #3, before you modify it?
Comment 4 David Klaftenegger 2013-08-28 18:44:11 UTC
Unfortunately I will not have time to do so in the next two weeks.

I can provide the requested information when I am less busy, would you prefer it to be on the openrc I currently use, or a more recent version (if there is any)?
Comment 5 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2013-08-28 18:46:20 UTC
if you can provide it against netifrc-9999, or at least netifrc-0.1, that would be prefered. I'm on vacation for the next week anyway, so I'll look for your response in 2 weeks.