Project

General

Profile

Bug #6237

RADVD, Route Information Option type 24, Multiple IPv6 gateways

Added by Antonio Prado over 3 years ago. Updated about 1 year ago.

Status:
Resolved
Priority:
Normal
Assignee:
-
Category:
Routing
Target version:
Start date:
04/22/2016
Due date:
% Done:

100%

Estimated time:
Affected Version:
All
Affected Architecture:
All

Description

hi,

I just noted that, when radvd is enabled, it always advertises Route Information Option type 24 (illustrated in RFC 4191 section 2.3).

in radvd.conf it appears in the following line:

route ::/0 {
                RemoveRoute on;
        };

well, it shouldn't do it by default because, in some OSes, it conflicts with "AdvDefaultPreference".

Consider a scenario where there are 2 different RAs, one with Router priority (AdvDefaultPreference) "high" and the other one with Router priority "low".

packets flow smoothly:

packet with "AdvDefaultPreference high" and RIO type 24 set with "pref=medium"

10:18:47.670250 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 144) fe80::a236:9fff:fe3a:ff5c > ff02::1: [icmp6 sum ok] ICMP6, router advertisement, length 144
hop limit 64, Flags [managed, other stateful], *pref high*, router lifetime 60s, reachable time 0s, retrans time 0s
prefix info option (3), length 32 (4): sisinf.vlans.xxxxxxxx.it/64, Flags [onlink, auto, router], valid time 86400s, pref. time 14400s
0x0000: 40e0 0001 5180 0000 3840 0000 0000 2a02
0x0010: cdc5 9715 0022 0000 0000 0000 0000
route info option (24), length 24 (3): ::/0, *pref=medium*, lifetime=60s
0x0000: 0000 0000 003c 0000 0000 0000 0000 0000
0x0010: 0000 0000 0000
rdnss option (25), length 24 (3): lifetime 20s, addr: sisinf.vlans.xxxxxxxx.it
0x0000: 0000 0000 0014 2a02 cdc5 9715 0022 0172
0x0010: 0031 0022 0001
dnssl option (31), length 32 (4): lifetime 20s, domain(s): sisinf.xxxxxxxx.it.
0x0000: 0000 0000 0014 0673 6973 696e 6609 636f
0x0010: 6d75 6e65 7362 7402 6974 0000 0000
mtu option (5), length 8 (1): 1500
0x0000: 0000 0000 05dc
source link-address option (1), length 8 (1): a0:36:9f:3a:ff:5c
0x0000: a036 9f3a ff5c

packet with "AdvDefaultPreference low" and RIO type 24 set with "pref=medium"

10:18:49.536624 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 144) fe80::a236:9fff:fe3b:1e > ff02::1: [icmp6 sum ok] ICMP6, router advertisement, length 144
hop limit 64, Flags [managed, other stateful], *pref low*, router lifetime 60s, reachable time 0s, retrans time 0s
prefix info option (3), length 32 (4): sisinf.vlans.xxxxxxxx.it/64, Flags [onlink, auto, router], valid time 86400s, pref. time 14400s
0x0000: 40e0 0001 5180 0000 3840 0000 0000 2a02
0x0010: cdc5 9715 0022 0000 0000 0000 0000
route info option (24), length 24 (3): ::/0, *pref=medium*, lifetime=60s
0x0000: 0000 0000 003c 0000 0000 0000 0000 0000
0x0010: 0000 0000 0000
rdnss option (25), length 24 (3): lifetime 20s, addr: sisinf.vlans.xxxxxxxx.it
0x0000: 0000 0000 0014 2a02 cdc5 9715 0022 0172
0x0010: 0031 0022 0001
dnssl option (31), length 32 (4): lifetime 20s, domain(s): sisinf.xxxxxxxx.it.
0x0000: 0000 0000 0014 0673 6973 696e 6609 636f
0x0010: 6d75 6e65 7362 7402 6974 0000 0000
mtu option (5), length 8 (1): 1500
0x0000: 0000 0000 05dc
source link-address option (1), length 8 (1): a0:36:9f:3b:00:1e
0x0000: a036 9f3b 001e

when a windows box receives both packets, it installs two different gateways (as it's expected to do) in the routing table.

but it cannot handle "AdvDefaultPreference low" and RIO type 24 set with "pref=medium" together, so it sets those two gateways with the same metric and it's not the wanted behavior.

IPv6 Route Table
============================================================
Active Routes:
If Metric Network Destination Gateway
17 266 ::/0 fe80::a236:9fff:fe3b:1e
17 266 ::/0 fe80::a236:9fff:fe3a:ff5c

If I manually edit /var/etc/radvd.conf and remove

route ::/0 {
                RemoveRoute on;
        };

everything simply works and those two gateways are installed with different metrics:

IPv6 Route Table
==============================================================
Active Routes:
 If Metric Network Destination      Gateway
 17     26 ::/0                     fe80::a236:9fff:fe3a:ff5c
 17    266 ::/0                     fe80::a236:9fff:fe3b:1e

would be possible to remove RIO type 24

route ::/0 {
                RemoveRoute on;
        };

from default radvd.conf ?

thank you
--
antonio

History

#1 Updated by Jim Pingle about 1 year ago

  • Category set to Routing
  • Status changed from New to Feedback
  • Target version set to 2.4.4
  • % Done changed from 0 to 100
  • Affected Version set to All
  • Affected Architecture set to All

Apparently fixed by https://github.com/pfsense/pfsense/pull/3918 which was merged a while ago

#2 Updated by Vladimir Lind about 1 year ago

On 2.4.3-p1:

Enabled RA, set Router Priority to Low (also tested with High and Normal):

radvd.conf left unchanged all the time:

route ::/0 {
RemoveRoute on;
};

On 2.4.4 Fri Aug 17 21:29:09 EDT 2018:

Enabled RA, set Router Priority to Low, in radvd.conf changes are reflected correctly:

route ::/0 {
AdvRoutePreference low;
RemoveRoute on;
};

Same with High and Normal:

route ::/0 {
AdvRoutePreference high;
RemoveRoute on;
};
route ::/0 {
AdvRoutePreference medium;
RemoveRoute on;
};

Should be good.

#3 Updated by Vladimir Lind about 1 year ago

  • Status changed from Feedback to Resolved

Also available in: Atom PDF