Bug #6237
closedRADVD, Route Information Option type 24, Multiple IPv6 gateways
100%
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
Updated by Jim Pingle about 6 years 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 All added
- Affected Architecture deleted (
)
Apparently fixed by https://github.com/pfsense/pfsense/pull/3918 which was merged a while ago
Updated by Vladimir Lind about 6 years 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.
Updated by Vladimir Lind about 6 years ago
- Status changed from Feedback to Resolved