From 7e4128eebafa8e8a305333fa249e676d18384b1f Mon Sep 17 00:00:00 2001 From: Matthieu Imbert <matthieu.imbert@inria.fr> Date: Mon, 2 Nov 2020 15:13:21 +0100 Subject: [PATCH] kavlan ipv6: change address plan for global kavlans --- lib/refrepo/gen/puppet/templates/kavlan-dhcp.conf.erb | 2 +- lib/refrepo/input_loader.rb | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/refrepo/gen/puppet/templates/kavlan-dhcp.conf.erb b/lib/refrepo/gen/puppet/templates/kavlan-dhcp.conf.erb index 300228050a..d87b5f8169 100644 --- a/lib/refrepo/gen/puppet/templates/kavlan-dhcp.conf.erb +++ b/lib/refrepo/gen/puppet/templates/kavlan-dhcp.conf.erb @@ -67,7 +67,7 @@ subnet <%= kavlan_ip.network %> netmask <%= kavlan_ip.netmask %> { kavlan6_net = kavlan_id + 0x90 - 4 kavlan6_ip = "#{refapi['sites'][site_uid]['ipv6']['prefix']}#{sprintf('%02x', kavlan6_net)}::/64" else # global vlan - kavlan6_ip = "#{refapi['sites'][site_uid]['ipv6']['prefix']}a0::/59" + kavlan6_ip = "#{refapi['sites'][site_uid]['ipv6']['prefix']}a0::/64" end -%> subnet6 <%= kavlan6_ip %> { <% end -%> diff --git a/lib/refrepo/input_loader.rb b/lib/refrepo/input_loader.rb index 1e605f21c2..56e73b38b9 100644 --- a/lib/refrepo/input_loader.rb +++ b/lib/refrepo/input_loader.rb @@ -213,10 +213,15 @@ def add_kavlan_ipv6s(h) ip6 += '%x' % h['ipv6']['site_indexes'][site_uid] ip6 += '%x:' % (kvl_id + 0x90 - 4) else # global - ip6 += '%x' % h['ipv6']['site_indexes'][global_vlan_site[kvl_id]] - ip6 += '%x:' % ((h['ipv6']['site_indexes'][site_uid]&0x1f) + 0xa0) + ip6 += '%xa0:' % h['ipv6']['site_indexes'][global_vlan_site[kvl_id]] # no matter what, the gw is always on the global kavlan's site + end + if kvl_id > 9 + # global kavlan: set most signicant octet of interface part to site index + ip6 += '%x' % h['ipv6']['site_indexes'][site_uid] + ip6 += '%02x' % ((ip4.split('.')[2].to_i & 0b1111) + 1) + else + ip6 += '%x' % ((ip4.split('.')[2].to_i & 0b1111) + 1) end - ip6 += '%x' % ((ip4.split('.')[2].to_i & 0b1111) + 1) if idx > 0 ip6 += ':%x::' % idx else -- GitLab