Issue with multiple configured IPv6 prefixes in rtadvd.conf
Archimedes Gaviola
agaviola at infoweapons.com
Mon Feb 27 02:58:46 UTC 2012
Hi,
I setup my FreeBSD 8.2 IPv6 router with 2 IPv6 addresses on its
interface and configure a static router advertisement (RA) using the 2
prefixes. Each prefix has its corresponding prefix length, valid
lifetime, preferred lifetime and MTU options.
vulcan# ifconfig em2
em2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=3<RXCSUM,TXCSUM>
inet6 fe80::204:23ff:fed4:903a%em2 prefixlen 64 scopeid 0x3
inet6 3ffe:501:ffff:100::1 prefixlen 64
inet6 3ffe:501:ffff:101::1 prefixlen 64
ether 00:04:23:d4:90:3a
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
vulcan# cat /etc/rtadvd.conf
em2:\
:addrs#1:addr="3ffe:501:ffff:100::":prefixlen#64:vltime#12345:pltime#12345:mtu#1400:
:addrs#2:addr="3ffe:501:ffff:101::":prefixlen#64:vltime#12345:pltime#12345:mtu#1400:
Run RA with rtadvd,
vulcan# rtadvd -s -c /etc/rtadvd.conf em2
and here's one of the tcpdump packet logs (exported to a file):
Frame 4 (150 bytes on wire, 150 bytes captured)
Ethernet II, Src: Intel_d4:90:3a (00:04:23:d4:90:3a), Dst:
IPv6mcast_00:00:00:01 (33:33:00:00:00:01)
Internet Protocol Version 6
Internet Control Message Protocol v6
Type: 134 (Router advertisement)
Code: 0
Checksum: 0x1d4f [correct]
Cur hop limit: 64
Flags: 0x00
Router lifetime: 1800
Reachable time: 0
Retrans timer: 0
ICMPv6 Option (Source link-layer address)
Type: Source link-layer address (1)
Length: 8
Link-layer address: 00:04:23:d4:90:3a
ICMPv6 Option (MTU)
Type: MTU (5)
Length: 8
MTU: 1400
ICMPv6 Option (Prefix information)
Type: Prefix information (3)
Length: 32
Prefix length: 64
Flags: 0xc0
Valid lifetime: 2592000
Preferred lifetime: 604800
Prefix: 3ffe:501:ffff:101::
ICMPv6 Option (Prefix information)
Type: Prefix information (3)
Length: 32
Prefix length: 64
Flags: 0xc0
Valid lifetime: 2592000
Preferred lifetime: 604800
Prefix: 3ffe:501:ffff:100::
it seems like the prefix and MTU options took effect upon advertising
the RA message while the valid lifetime and preferred lifetime were
using the default values.
So, I try to modify my rtadvd.conf using one prefix temporarily to
verify if those values are acceptable.
vulcan# cat /etc/rtadvd.conf
em2:\
:addrs#1:addr="3ffe:501:ffff:100::":prefixlen#64:vltime#12345:pltime#12345:mtu#1400:
Re-run rtadvd again and here's the packet logs,
Frame 6 (118 bytes on wire, 118 bytes captured)
Ethernet II, Src: Intel_d4:90:3a (00:04:23:d4:90:3a), Dst:
IPv6mcast_00:00:00:01 (33:33:00:00:00:01)
Internet Protocol Version 6
Internet Control Message Protocol v6
Type: 134 (Router advertisement)
Code: 0
Checksum: 0xd622 [correct]
Cur hop limit: 64
Flags: 0x00
Router lifetime: 1800
Reachable time: 0
Retrans timer: 0
ICMPv6 Option (Source link-layer address)
Type: Source link-layer address (1)
Length: 8
Link-layer address: 00:04:23:d4:90:3a
ICMPv6 Option (MTU)
Type: MTU (5)
Length: 8
MTU: 1400
ICMPv6 Option (Prefix information)
Type: Prefix information (3)
Length: 32
Prefix length: 64
Flags: 0xc0
Valid lifetime: 12345
Preferred lifetime: 12345
Prefix: 3ffe:501:ffff:100::
so, this time the values are correct since it was advertised in the message.
Now, my observation is that there seems to be a problem with advertising
two or perhaps more prefixes in the RA message. This has been tested in
7.x and the issues were the same. FreeBSD 4.11 behave the same as well.
Is this a bug or limitation of the rtadvd design implementation?
Thanks,
Archimedes
More information about the freebsd-net
mailing list