diff --git a/data/grid5000/sites/grenoble/grenoble.json b/data/grid5000/sites/grenoble/grenoble.json
index bcc508515f6aa031803709d45c5049bda770059d..95738ac48ade1ffe69c9d320eb8fd44a167e42de 100644
--- a/data/grid5000/sites/grenoble/grenoble.json
+++ b/data/grid5000/sites/grenoble/grenoble.json
@@ -16,47 +16,66 @@
   "kavlans": {
     "1": {
       "gateway": "192.168.207.254",
-      "network": "192.168.192.0/20"
+      "network": "192.168.192.0/20",
+      "network_ipv6": "2001:660:4406:180::/64"
     },
     "11": {
       "gateway": "10.7.255.254",
-      "network": "10.7.192.0/18"
+      "gateway_ipv6": "2001:660:4406:1a0:100:0:ffff:ffff",
+      "network": "10.7.192.0/18",
+      "network_ipv6": "2001:660:4406:1a0::/64"
     },
     "2": {
       "gateway": "192.168.223.254",
-      "network": "192.168.208.0/20"
+      "network": "192.168.208.0/20",
+      "network_ipv6": "2001:660:4406:181::/64"
     },
     "3": {
       "gateway": "192.168.239.254",
-      "network": "192.168.224.0/20"
+      "network": "192.168.224.0/20",
+      "network_ipv6": "2001:660:4406:182::/64"
     },
     "4": {
       "gateway": "10.4.63.254",
-      "network": "10.4.0.0/18"
+      "gateway_ipv6": "2001:660:4406:190::ffff:ffff",
+      "network": "10.4.0.0/18",
+      "network_ipv6": "2001:660:4406:190::/64"
     },
     "5": {
       "gateway": "10.4.127.254",
-      "network": "10.4.64.0/18"
+      "gateway_ipv6": "2001:660:4406:191::ffff:ffff",
+      "network": "10.4.64.0/18",
+      "network_ipv6": "2001:660:4406:191::/64"
     },
     "6": {
       "gateway": "10.4.191.254",
-      "network": "10.4.128.0/18"
+      "gateway_ipv6": "2001:660:4406:192::ffff:ffff",
+      "network": "10.4.128.0/18",
+      "network_ipv6": "2001:660:4406:192::/64"
     },
     "7": {
       "gateway": "10.4.255.254",
-      "network": "10.4.192.0/18"
+      "gateway_ipv6": "2001:660:4406:193::ffff:ffff",
+      "network": "10.4.192.0/18",
+      "network_ipv6": "2001:660:4406:193::/64"
     },
     "8": {
       "gateway": "10.5.63.254",
-      "network": "10.5.0.0/18"
+      "gateway_ipv6": "2001:660:4406:194::ffff:ffff",
+      "network": "10.5.0.0/18",
+      "network_ipv6": "2001:660:4406:194::/64"
     },
     "9": {
       "gateway": "10.5.127.254",
-      "network": "10.5.64.0/18"
+      "gateway_ipv6": "2001:660:4406:195::ffff:ffff",
+      "network": "10.5.64.0/18",
+      "network_ipv6": "2001:660:4406:195::/64"
     },
     "default": {
       "gateway": "172.16.31.254",
-      "network": "172.16.16.0/20"
+      "gateway_ipv6": "2001:660:4406:100::ffff:ffff",
+      "network": "172.16.16.0/20",
+      "network_ipv6": "2001:660:4406:100::/64"
     }
   },
   "latitude": 45.19021,
diff --git a/data/grid5000/sites/lille/lille.json b/data/grid5000/sites/lille/lille.json
index 1fb079c6628e603481056f539b6cfcfcf30a87f7..831fc180fcc1d119910ff97ab5216bcd928e5198 100644
--- a/data/grid5000/sites/lille/lille.json
+++ b/data/grid5000/sites/lille/lille.json
@@ -16,47 +16,66 @@
   "kavlans": {
     "1": {
       "gateway": "192.168.207.254",
-      "network": "192.168.192.0/20"
+      "network": "192.168.192.0/20",
+      "network_ipv6": "2001:660:4406:280::/64"
     },
     "12": {
       "gateway": "10.11.255.254",
-      "network": "10.11.192.0/18"
+      "gateway_ipv6": "2001:660:4406:2a0:200:0:ffff:ffff",
+      "network": "10.11.192.0/18",
+      "network_ipv6": "2001:660:4406:2a0::/64"
     },
     "2": {
       "gateway": "192.168.223.254",
-      "network": "192.168.208.0/20"
+      "network": "192.168.208.0/20",
+      "network_ipv6": "2001:660:4406:281::/64"
     },
     "3": {
       "gateway": "192.168.239.254",
-      "network": "192.168.224.0/20"
+      "network": "192.168.224.0/20",
+      "network_ipv6": "2001:660:4406:282::/64"
     },
     "4": {
       "gateway": "10.8.63.254",
-      "network": "10.8.0.0/18"
+      "gateway_ipv6": "2001:660:4406:290::ffff:ffff",
+      "network": "10.8.0.0/18",
+      "network_ipv6": "2001:660:4406:290::/64"
     },
     "5": {
       "gateway": "10.8.127.254",
-      "network": "10.8.64.0/18"
+      "gateway_ipv6": "2001:660:4406:291::ffff:ffff",
+      "network": "10.8.64.0/18",
+      "network_ipv6": "2001:660:4406:291::/64"
     },
     "6": {
       "gateway": "10.8.191.254",
-      "network": "10.8.128.0/18"
+      "gateway_ipv6": "2001:660:4406:292::ffff:ffff",
+      "network": "10.8.128.0/18",
+      "network_ipv6": "2001:660:4406:292::/64"
     },
     "7": {
       "gateway": "10.8.255.254",
-      "network": "10.8.192.0/18"
+      "gateway_ipv6": "2001:660:4406:293::ffff:ffff",
+      "network": "10.8.192.0/18",
+      "network_ipv6": "2001:660:4406:293::/64"
     },
     "8": {
       "gateway": "10.9.63.254",
-      "network": "10.9.0.0/18"
+      "gateway_ipv6": "2001:660:4406:294::ffff:ffff",
+      "network": "10.9.0.0/18",
+      "network_ipv6": "2001:660:4406:294::/64"
     },
     "9": {
       "gateway": "10.9.127.254",
-      "network": "10.9.64.0/18"
+      "gateway_ipv6": "2001:660:4406:295::ffff:ffff",
+      "network": "10.9.64.0/18",
+      "network_ipv6": "2001:660:4406:295::/64"
     },
     "default": {
       "gateway": "172.16.47.254",
-      "network": "172.16.32.0/20"
+      "gateway_ipv6": "2001:660:4406:200::ffff:ffff",
+      "network": "172.16.32.0/20",
+      "network_ipv6": "2001:660:4406:200::/64"
     }
   },
   "latitude": 50.65,
diff --git a/data/grid5000/sites/luxembourg/luxembourg.json b/data/grid5000/sites/luxembourg/luxembourg.json
index b9cd61e4c52b1840c2b5767374b77e69a8068e40..1191600a5892d54714a33ab283288626b57cac80 100644
--- a/data/grid5000/sites/luxembourg/luxembourg.json
+++ b/data/grid5000/sites/luxembourg/luxembourg.json
@@ -16,47 +16,66 @@
   "kavlans": {
     "1": {
       "gateway": "192.168.207.254",
-      "network": "192.168.192.0/20"
+      "network": "192.168.192.0/20",
+      "network_ipv6": "2001:660:4406:380::/64"
     },
     "2": {
       "gateway": "192.168.223.254",
-      "network": "192.168.208.0/20"
+      "network": "192.168.208.0/20",
+      "network_ipv6": "2001:660:4406:381::/64"
     },
     "20": {
       "gateway": "10.43.255.254",
-      "network": "10.43.192.0/18"
+      "gateway_ipv6": "2001:660:4406:3a0:300:0:ffff:ffff",
+      "network": "10.43.192.0/18",
+      "network_ipv6": "2001:660:4406:3a0::/64"
     },
     "3": {
       "gateway": "192.168.239.254",
-      "network": "192.168.224.0/20"
+      "network": "192.168.224.0/20",
+      "network_ipv6": "2001:660:4406:382::/64"
     },
     "4": {
       "gateway": "10.40.63.254",
-      "network": "10.40.0.0/18"
+      "gateway_ipv6": "2001:660:4406:390::ffff:ffff",
+      "network": "10.40.0.0/18",
+      "network_ipv6": "2001:660:4406:390::/64"
     },
     "5": {
       "gateway": "10.40.127.254",
-      "network": "10.40.64.0/18"
+      "gateway_ipv6": "2001:660:4406:391::ffff:ffff",
+      "network": "10.40.64.0/18",
+      "network_ipv6": "2001:660:4406:391::/64"
     },
     "6": {
       "gateway": "10.40.191.254",
-      "network": "10.40.128.0/18"
+      "gateway_ipv6": "2001:660:4406:392::ffff:ffff",
+      "network": "10.40.128.0/18",
+      "network_ipv6": "2001:660:4406:392::/64"
     },
     "7": {
       "gateway": "10.40.255.254",
-      "network": "10.40.192.0/18"
+      "gateway_ipv6": "2001:660:4406:393::ffff:ffff",
+      "network": "10.40.192.0/18",
+      "network_ipv6": "2001:660:4406:393::/64"
     },
     "8": {
       "gateway": "10.41.63.254",
-      "network": "10.41.0.0/18"
+      "gateway_ipv6": "2001:660:4406:394::ffff:ffff",
+      "network": "10.41.0.0/18",
+      "network_ipv6": "2001:660:4406:394::/64"
     },
     "9": {
       "gateway": "10.41.127.254",
-      "network": "10.41.64.0/18"
+      "gateway_ipv6": "2001:660:4406:395::ffff:ffff",
+      "network": "10.41.64.0/18",
+      "network_ipv6": "2001:660:4406:395::/64"
     },
     "default": {
       "gateway": "172.16.191.254",
-      "network": "172.16.176.0/20"
+      "gateway_ipv6": "2001:660:4406:300::ffff:ffff",
+      "network": "172.16.176.0/20",
+      "network_ipv6": "2001:660:4406:300::/64"
     }
   },
   "latitude": 49.626595,
diff --git a/data/grid5000/sites/lyon/lyon.json b/data/grid5000/sites/lyon/lyon.json
index fa1af2d2a4f011c0dba976924f951cd52185a418..d369e2fab8352e36f0ce565288a71b376aa14c29 100644
--- a/data/grid5000/sites/lyon/lyon.json
+++ b/data/grid5000/sites/lyon/lyon.json
@@ -16,47 +16,66 @@
   "kavlans": {
     "1": {
       "gateway": "192.168.207.254",
-      "network": "192.168.192.0/20"
+      "network": "192.168.192.0/20",
+      "network_ipv6": "2001:660:4406:480::/64"
     },
     "13": {
       "gateway": "10.15.255.254",
-      "network": "10.15.192.0/18"
+      "gateway_ipv6": "2001:660:4406:4a0:400:0:ffff:ffff",
+      "network": "10.15.192.0/18",
+      "network_ipv6": "2001:660:4406:4a0::/64"
     },
     "2": {
       "gateway": "192.168.223.254",
-      "network": "192.168.208.0/20"
+      "network": "192.168.208.0/20",
+      "network_ipv6": "2001:660:4406:481::/64"
     },
     "3": {
       "gateway": "192.168.239.254",
-      "network": "192.168.224.0/20"
+      "network": "192.168.224.0/20",
+      "network_ipv6": "2001:660:4406:482::/64"
     },
     "4": {
       "gateway": "10.12.63.254",
-      "network": "10.12.0.0/18"
+      "gateway_ipv6": "2001:660:4406:490::ffff:ffff",
+      "network": "10.12.0.0/18",
+      "network_ipv6": "2001:660:4406:490::/64"
     },
     "5": {
       "gateway": "10.12.127.254",
-      "network": "10.12.64.0/18"
+      "gateway_ipv6": "2001:660:4406:491::ffff:ffff",
+      "network": "10.12.64.0/18",
+      "network_ipv6": "2001:660:4406:491::/64"
     },
     "6": {
       "gateway": "10.12.191.254",
-      "network": "10.12.128.0/18"
+      "gateway_ipv6": "2001:660:4406:492::ffff:ffff",
+      "network": "10.12.128.0/18",
+      "network_ipv6": "2001:660:4406:492::/64"
     },
     "7": {
       "gateway": "10.12.255.254",
-      "network": "10.12.192.0/18"
+      "gateway_ipv6": "2001:660:4406:493::ffff:ffff",
+      "network": "10.12.192.0/18",
+      "network_ipv6": "2001:660:4406:493::/64"
     },
     "8": {
       "gateway": "10.13.63.254",
-      "network": "10.13.0.0/18"
+      "gateway_ipv6": "2001:660:4406:494::ffff:ffff",
+      "network": "10.13.0.0/18",
+      "network_ipv6": "2001:660:4406:494::/64"
     },
     "9": {
       "gateway": "10.13.127.254",
-      "network": "10.13.64.0/18"
+      "gateway_ipv6": "2001:660:4406:495::ffff:ffff",
+      "network": "10.13.64.0/18",
+      "network_ipv6": "2001:660:4406:495::/64"
     },
     "default": {
       "gateway": "172.16.63.254",
-      "network": "172.16.48.0/20"
+      "gateway_ipv6": "2001:660:4406:400::ffff:ffff",
+      "network": "172.16.48.0/20",
+      "network_ipv6": "2001:660:4406:400::/64"
     }
   },
   "latitude": 45.72971,
diff --git a/data/grid5000/sites/nancy/nancy.json b/data/grid5000/sites/nancy/nancy.json
index 0bba36f65ad7f43ce98ab585617685458a4de872..1b2ef3377bf2f5d2c9df40b882fc3e3bba4267c0 100644
--- a/data/grid5000/sites/nancy/nancy.json
+++ b/data/grid5000/sites/nancy/nancy.json
@@ -16,47 +16,66 @@
   "kavlans": {
     "1": {
       "gateway": "192.168.207.254",
-      "network": "192.168.192.0/20"
+      "network": "192.168.192.0/20",
+      "network_ipv6": "2001:660:4406:580::/64"
     },
     "14": {
       "gateway": "10.19.255.254",
-      "network": "10.19.192.0/18"
+      "gateway_ipv6": "2001:660:4406:5a0:500:0:ffff:ffff",
+      "network": "10.19.192.0/18",
+      "network_ipv6": "2001:660:4406:5a0::/64"
     },
     "2": {
       "gateway": "192.168.223.254",
-      "network": "192.168.208.0/20"
+      "network": "192.168.208.0/20",
+      "network_ipv6": "2001:660:4406:581::/64"
     },
     "3": {
       "gateway": "192.168.239.254",
-      "network": "192.168.224.0/20"
+      "network": "192.168.224.0/20",
+      "network_ipv6": "2001:660:4406:582::/64"
     },
     "4": {
       "gateway": "10.16.63.254",
-      "network": "10.16.0.0/18"
+      "gateway_ipv6": "2001:660:4406:590::ffff:ffff",
+      "network": "10.16.0.0/18",
+      "network_ipv6": "2001:660:4406:590::/64"
     },
     "5": {
       "gateway": "10.16.127.254",
-      "network": "10.16.64.0/18"
+      "gateway_ipv6": "2001:660:4406:591::ffff:ffff",
+      "network": "10.16.64.0/18",
+      "network_ipv6": "2001:660:4406:591::/64"
     },
     "6": {
       "gateway": "10.16.191.254",
-      "network": "10.16.128.0/18"
+      "gateway_ipv6": "2001:660:4406:592::ffff:ffff",
+      "network": "10.16.128.0/18",
+      "network_ipv6": "2001:660:4406:592::/64"
     },
     "7": {
       "gateway": "10.16.255.254",
-      "network": "10.16.192.0/18"
+      "gateway_ipv6": "2001:660:4406:593::ffff:ffff",
+      "network": "10.16.192.0/18",
+      "network_ipv6": "2001:660:4406:593::/64"
     },
     "8": {
       "gateway": "10.17.63.254",
-      "network": "10.17.0.0/18"
+      "gateway_ipv6": "2001:660:4406:594::ffff:ffff",
+      "network": "10.17.0.0/18",
+      "network_ipv6": "2001:660:4406:594::/64"
     },
     "9": {
       "gateway": "10.17.127.254",
-      "network": "10.17.64.0/18"
+      "gateway_ipv6": "2001:660:4406:595::ffff:ffff",
+      "network": "10.17.64.0/18",
+      "network_ipv6": "2001:660:4406:595::/64"
     },
     "default": {
       "gateway": "172.16.79.254",
-      "network": "172.16.64.0/20"
+      "gateway_ipv6": "2001:660:4406:500::ffff:ffff",
+      "network": "172.16.64.0/20",
+      "network_ipv6": "2001:660:4406:500::/64"
     },
     "topo": "1501..1601"
   },
diff --git a/data/grid5000/sites/nantes/nantes.json b/data/grid5000/sites/nantes/nantes.json
index 11a83bcf38dd6eab52874894422760e4d8cb1aa3..d710b77404e4bef50edb0f4f9ff7bce02e485c17 100644
--- a/data/grid5000/sites/nantes/nantes.json
+++ b/data/grid5000/sites/nantes/nantes.json
@@ -16,47 +16,66 @@
   "kavlans": {
     "1": {
       "gateway": "192.168.207.254",
-      "network": "192.168.192.0/20"
+      "network": "192.168.192.0/20",
+      "network_ipv6": "2001:660:4406:680::/64"
     },
     "2": {
       "gateway": "192.168.223.254",
-      "network": "192.168.208.0/20"
+      "network": "192.168.208.0/20",
+      "network_ipv6": "2001:660:4406:681::/64"
     },
     "21": {
       "gateway": "10.47.255.254",
-      "network": "10.47.192.0/18"
+      "gateway_ipv6": "2001:660:4406:6a0:600:0:ffff:ffff",
+      "network": "10.47.192.0/18",
+      "network_ipv6": "2001:660:4406:6a0::/64"
     },
     "3": {
       "gateway": "192.168.239.254",
-      "network": "192.168.224.0/20"
+      "network": "192.168.224.0/20",
+      "network_ipv6": "2001:660:4406:682::/64"
     },
     "4": {
       "gateway": "10.44.63.254",
-      "network": "10.44.0.0/18"
+      "gateway_ipv6": "2001:660:4406:690::ffff:ffff",
+      "network": "10.44.0.0/18",
+      "network_ipv6": "2001:660:4406:690::/64"
     },
     "5": {
       "gateway": "10.44.127.254",
-      "network": "10.44.64.0/18"
+      "gateway_ipv6": "2001:660:4406:691::ffff:ffff",
+      "network": "10.44.64.0/18",
+      "network_ipv6": "2001:660:4406:691::/64"
     },
     "6": {
       "gateway": "10.44.191.254",
-      "network": "10.44.128.0/18"
+      "gateway_ipv6": "2001:660:4406:692::ffff:ffff",
+      "network": "10.44.128.0/18",
+      "network_ipv6": "2001:660:4406:692::/64"
     },
     "7": {
       "gateway": "10.44.255.254",
-      "network": "10.44.192.0/18"
+      "gateway_ipv6": "2001:660:4406:693::ffff:ffff",
+      "network": "10.44.192.0/18",
+      "network_ipv6": "2001:660:4406:693::/64"
     },
     "8": {
       "gateway": "10.45.63.254",
-      "network": "10.45.0.0/18"
+      "gateway_ipv6": "2001:660:4406:694::ffff:ffff",
+      "network": "10.45.0.0/18",
+      "network_ipv6": "2001:660:4406:694::/64"
     },
     "9": {
       "gateway": "10.45.127.254",
-      "network": "10.45.64.0/18"
+      "gateway_ipv6": "2001:660:4406:695::ffff:ffff",
+      "network": "10.45.64.0/18",
+      "network_ipv6": "2001:660:4406:695::/64"
     },
     "default": {
       "gateway": "172.16.207.254",
-      "network": "172.16.192.0/20"
+      "gateway_ipv6": "2001:660:4406:600::ffff:ffff",
+      "network": "172.16.192.0/20",
+      "network_ipv6": "2001:660:4406:600::/64"
     }
   },
   "latitude": 47.282332,
diff --git a/data/grid5000/sites/rennes/rennes.json b/data/grid5000/sites/rennes/rennes.json
index 2cfd346d62ddec17a17995c9f2230744f9b7dfce..2989fbcf59908f2c5121c9e00c70b1526868d248 100644
--- a/data/grid5000/sites/rennes/rennes.json
+++ b/data/grid5000/sites/rennes/rennes.json
@@ -16,47 +16,66 @@
   "kavlans": {
     "1": {
       "gateway": "192.168.207.254",
-      "network": "192.168.192.0/20"
+      "network": "192.168.192.0/20",
+      "network_ipv6": "2001:660:4406:780::/64"
     },
     "16": {
       "gateway": "10.27.255.254",
-      "network": "10.27.192.0/18"
+      "gateway_ipv6": "2001:660:4406:7a0:700:0:ffff:ffff",
+      "network": "10.27.192.0/18",
+      "network_ipv6": "2001:660:4406:7a0::/64"
     },
     "2": {
       "gateway": "192.168.223.254",
-      "network": "192.168.208.0/20"
+      "network": "192.168.208.0/20",
+      "network_ipv6": "2001:660:4406:781::/64"
     },
     "3": {
       "gateway": "192.168.239.254",
-      "network": "192.168.224.0/20"
+      "network": "192.168.224.0/20",
+      "network_ipv6": "2001:660:4406:782::/64"
     },
     "4": {
       "gateway": "10.24.63.254",
-      "network": "10.24.0.0/18"
+      "gateway_ipv6": "2001:660:4406:790::ffff:ffff",
+      "network": "10.24.0.0/18",
+      "network_ipv6": "2001:660:4406:790::/64"
     },
     "5": {
       "gateway": "10.24.127.254",
-      "network": "10.24.64.0/18"
+      "gateway_ipv6": "2001:660:4406:791::ffff:ffff",
+      "network": "10.24.64.0/18",
+      "network_ipv6": "2001:660:4406:791::/64"
     },
     "6": {
       "gateway": "10.24.191.254",
-      "network": "10.24.128.0/18"
+      "gateway_ipv6": "2001:660:4406:792::ffff:ffff",
+      "network": "10.24.128.0/18",
+      "network_ipv6": "2001:660:4406:792::/64"
     },
     "7": {
       "gateway": "10.24.255.254",
-      "network": "10.24.192.0/18"
+      "gateway_ipv6": "2001:660:4406:793::ffff:ffff",
+      "network": "10.24.192.0/18",
+      "network_ipv6": "2001:660:4406:793::/64"
     },
     "8": {
       "gateway": "10.25.63.254",
-      "network": "10.25.0.0/18"
+      "gateway_ipv6": "2001:660:4406:794::ffff:ffff",
+      "network": "10.25.0.0/18",
+      "network_ipv6": "2001:660:4406:794::/64"
     },
     "9": {
       "gateway": "10.25.127.254",
-      "network": "10.25.64.0/18"
+      "gateway_ipv6": "2001:660:4406:795::ffff:ffff",
+      "network": "10.25.64.0/18",
+      "network_ipv6": "2001:660:4406:795::/64"
     },
     "default": {
       "gateway": "172.16.111.254",
-      "network": "172.16.96.0/20"
+      "gateway_ipv6": "2001:660:4406:700::ffff:ffff",
+      "network": "172.16.96.0/20",
+      "network_ipv6": "2001:660:4406:700::/64"
     }
   },
   "latitude": 48.1,
diff --git a/data/grid5000/sites/sophia/sophia.json b/data/grid5000/sites/sophia/sophia.json
index 0bef1b64e56d6a1d63d1826c93d809e45e312e16..ee91978cef38292998a4fab24c7a1588dd53b8fc 100644
--- a/data/grid5000/sites/sophia/sophia.json
+++ b/data/grid5000/sites/sophia/sophia.json
@@ -17,47 +17,66 @@
   "kavlans": {
     "1": {
       "gateway": "192.168.207.254",
-      "network": "192.168.192.0/20"
+      "network": "192.168.192.0/20",
+      "network_ipv6": "2001:660:4406:880::/64"
     },
     "18": {
       "gateway": "10.35.255.254",
-      "network": "10.35.192.0/18"
+      "gateway_ipv6": "2001:660:4406:8a0:800:0:ffff:ffff",
+      "network": "10.35.192.0/18",
+      "network_ipv6": "2001:660:4406:8a0::/64"
     },
     "2": {
       "gateway": "192.168.223.254",
-      "network": "192.168.208.0/20"
+      "network": "192.168.208.0/20",
+      "network_ipv6": "2001:660:4406:881::/64"
     },
     "3": {
       "gateway": "192.168.239.254",
-      "network": "192.168.224.0/20"
+      "network": "192.168.224.0/20",
+      "network_ipv6": "2001:660:4406:882::/64"
     },
     "4": {
       "gateway": "10.32.63.254",
-      "network": "10.32.0.0/18"
+      "gateway_ipv6": "2001:660:4406:890::ffff:ffff",
+      "network": "10.32.0.0/18",
+      "network_ipv6": "2001:660:4406:890::/64"
     },
     "5": {
       "gateway": "10.32.127.254",
-      "network": "10.32.64.0/18"
+      "gateway_ipv6": "2001:660:4406:891::ffff:ffff",
+      "network": "10.32.64.0/18",
+      "network_ipv6": "2001:660:4406:891::/64"
     },
     "6": {
       "gateway": "10.32.191.254",
-      "network": "10.32.128.0/18"
+      "gateway_ipv6": "2001:660:4406:892::ffff:ffff",
+      "network": "10.32.128.0/18",
+      "network_ipv6": "2001:660:4406:892::/64"
     },
     "7": {
       "gateway": "10.32.255.254",
-      "network": "10.32.192.0/18"
+      "gateway_ipv6": "2001:660:4406:893::ffff:ffff",
+      "network": "10.32.192.0/18",
+      "network_ipv6": "2001:660:4406:893::/64"
     },
     "8": {
       "gateway": "10.33.63.254",
-      "network": "10.33.0.0/18"
+      "gateway_ipv6": "2001:660:4406:894::ffff:ffff",
+      "network": "10.33.0.0/18",
+      "network_ipv6": "2001:660:4406:894::/64"
     },
     "9": {
       "gateway": "10.33.127.254",
-      "network": "10.33.64.0/18"
+      "gateway_ipv6": "2001:660:4406:895::ffff:ffff",
+      "network": "10.33.64.0/18",
+      "network_ipv6": "2001:660:4406:895::/64"
     },
     "default": {
       "gateway": "172.16.143.254",
-      "network": "172.16.128.0/20"
+      "gateway_ipv6": "2001:660:4406:800::ffff:ffff",
+      "network": "172.16.128.0/20",
+      "network_ipv6": "2001:660:4406:800::/64"
     }
   },
   "latitude": 43.6161,
diff --git a/lib/refrepo/input_loader.rb b/lib/refrepo/input_loader.rb
index 23a9a229b6b5e22b9c4e798c9c25c01abb8ee603..9c55d075e5f5d0476cda705d3082eab617df8d11 100644
--- a/lib/refrepo/input_loader.rb
+++ b/lib/refrepo/input_loader.rb
@@ -183,6 +183,44 @@ end
 def add_kavlan_ipv6s(h)
   global_vlan_site = {}
   h['ipv6']['site_global_kavlans'].each { |key, value| global_vlan_site[value] = key }
+  # Set kavlan ipv6 informations at site level
+  h['sites'].each_pair do |site_uid, hs|
+    site_prefix = IPAddress hs['ipv6']['prefix']
+    kavlan_ids = h['vlans']['base'].map{ |k,v| k if v["type"] =~ /local|routed/ }.compact + [h['ipv6']['site_global_kavlans'][site_uid]]
+    kavlan_ids.each do |kvl_id|
+      kavlan_prefix = IPAddress site_prefix.to_string
+      kavlan_prefix.prefix = 64
+      case kvl_id
+      when 1..3 # local non-routed
+        kavlan_prefix[3] |= (kvl_id + 0x80 - 1)
+        has_gateway = false
+      when 4..9 # local routed
+        kavlan_prefix[3] |= (kvl_id + 0x90 - 4)
+        has_gateway = true
+      else      # global
+        kavlan_prefix[3] |= 0xA0
+        has_gateway = true
+      end
+      hs['kavlans'][kvl_id]['network_ipv6'] = kavlan_prefix.to_string
+      if has_gateway
+        gateway = IPAddress kavlan_prefix.to_string
+        if kvl_id > 9 # global kavlan gateway encodes site at an additional place
+          gateway[4] = h['ipv6']['site_indexes'][site_uid] << 8
+        end
+        gateway[6] = 0xFFFF
+        gateway[7] = 0xFFFF
+        hs['kavlans'][kvl_id]['gateway_ipv6'] = gateway.compressed
+      end
+    end
+    prod_prefix = IPAddress site_prefix.to_string
+    prod_prefix.prefix = 64
+    gateway = IPAddress prod_prefix.to_string
+    gateway[6] = 0xFFFF
+    gateway[7] = 0xFFFF
+    hs['kavlans']['default']['network_ipv6'] = prod_prefix.to_string
+    hs['kavlans']['default']['gateway_ipv6'] = gateway.compressed
+  end
+  # Set kavlan ipv6 informations at node level
   h['sites'].each_pair do |site_uid, hs|
     hs['clusters'].each_pair do |_cluster_uid, hc|
       next if !hc['kavlan'] # skip clusters where kavlan is globally set to false (used for initial cluster installation)
@@ -201,16 +239,11 @@ def add_kavlan_ipv6s(h)
             hn['kavlan6'][iface] = {}
             hn['kavlan'][iface].each_key do |kvl|
               kvl_id = kvl.split('-')[1].to_i
-              ip6 = IPAddress hs['ipv6']['prefix']
-              case kvl_id
-              when 1..3 # local non-routed
-                ip6[3] |= (kvl_id + 0x80 - 1)
-              when 4..9 # local routed
-                ip6[3] |= (kvl_id + 0x90 - 4)
-              else      # global
+              if kvl_id <= 9
+                ip6 = IPAddress hs['kavlans'][kvl_id]['network_ipv6']
+              else
                 # The prefix is based on the site of the global kavlan, not the site of the node
-                ip6[3] = h['ipv6']['site_indexes'][global_vlan_site[kvl_id]] << 8
-                ip6[3] |= 0xA0
+                ip6 = IPAddress h['sites'][global_vlan_site[kvl_id]]['kavlans'][kvl_id]['network_ipv6']
                 # global kavlan: set most signicant octet of interface part to site index
                 ip6[4] = h['ipv6']['site_indexes'][site_uid] << 8
               end
diff --git a/lib/refrepo/valid/input/schemas/schema-site.yaml b/lib/refrepo/valid/input/schemas/schema-site.yaml
index 2cafc7c077fd6e216b33c6d639c774a0b257336a..75ca7cc088dfdcc2ebd30d1cbc01dfbaab7c14e8 100644
--- a/lib/refrepo/valid/input/schemas/schema-site.yaml
+++ b/lib/refrepo/valid/input/schemas/schema-site.yaml
@@ -67,6 +67,8 @@ kavlans:
   <multi>:
     network: string
     gateway: string
+    network_ipv6: string
+    gateway_ipv6: optional_string
 kavlan_ip_range: string
 kavlan_topo: optional_string
 kavlan_nef: optional_integer