diff --git a/lib/refrepo/gen/puppet/templates/kavlan-dhcp.conf.erb b/lib/refrepo/gen/puppet/templates/kavlan-dhcp.conf.erb index 300228050ad6aec571c7d0623bb8b312d71b0b3f..d87b5f8169976f8ccf06de78f2a61f05c8a618b3 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 1e605f21c20ac26835754915d123f3eed743d765..56e73b38b9e59fdb5712e4b1fc396fd5c8c98cbd 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