Understand IPv6 Subnetting on the FIT IoT-LAB testbed

Difficulty: Medium

Duration: 10 minutes

Description: The goal of this tutorial is to understand the global IPv6 subnetting on the IoT-LAB testbed in order to experiment applications with global IPv6 addresses. Here will be presented available IPv6 prefixes and how to choose them for users experiments

 

M3 Subnets

Dedicated subnets for M3 nodes, listed in the table below, allow you to map a global IPv6 /64 prefix on a M3 node acting as a border router (BR). All M3 subnets can be used on any M3 node. Technically, the IPv6 traffic between the infrastructure and the BR radio interface is routed via a TUN/SLIP interface mounted inside the IoT-LAB server and attached to the serial port of the M3 node. Our tunslip6.py script automatically creates TUN/SLIP interface with the selected IPv6 prefix mapped to the chosen M3 node. Collision or usurpation between users experiments are also taken into account.

The folowing figure shows the infrastructure on the Strasbourg site:

ipv6_m3

Available IPv6 /64 subnets for M3 nodes
Site Number of subnets from to
Grenoble 128 2001:660:5307:3100::/64 2001:660:5307:317f::/64
Lille 128 2001:660:4403:0480::/64 2001:660:4403:04ff::/64
Paris 128 2001:660:330f:a280::/64 2001:660:330f:a2ff::/64
Saclay 64 2001:660:3207:04c0::/64 2001:660:3207:04ff::/64
Strasbourg 32 2001:660:4701:f0a0::/64 2001:660:4701:f0bf::/64

In order to check a prefix availability, please run the ip command on the IoT-LAB servers and look at the already mounted tun interfaces:

<login>@grenoble:~$ ip -6 route
2001:660:5307:30ff::/64 dev eth0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 4294967295
2001:660:5307:3100::/64 dev tun0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 4294967295
2001:660:5307:3102::/64 dev tun1  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 4294967295
2001:660:5307:3107::/64 dev tun36  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 4294967295
fe80::/64 dev eth1  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 4294967295
fe80::/64 dev eth0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 4294967295
fe80::/64 dev tun0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 4294967295
fe80::/64 dev tun1  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 4294967295
fe80::/64 dev tun36  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 4294967295
default via 2001:660:5307:30ff:ff:: dev eth0  metric 1  mtu 1500 advmss 1440 hoplimit 4294967295

Try it! The Public IPv6/6LoWPAN/RPL network with M3 nodes tutorial shows you how to use global IPv6 addresses with M3 nodes with Contiki.

 

A8 Subnets

A8 open nodes running embedded GNU/Linux have 2 interfaces:

  • 1x Ethernet interface
  • 1x Serial interface with M3 node

The A8 open node is configured with:

  • a global IPv6 address on the Ethernet constructed as follows: [ Open A8 Prefixes 64 bits ] + [ node ID 64 bits = hexa(node ID) ] (e.g. node-a8-1 on Strasbourg will have 2001:660:4701:f080::1 as global IPv6 address)
  • an IPv6 /64 subnet for its M3 node, statically routed, and defined as follows: [ A8 prefix range start + hexa(node ID) ]::/64 (e.g. node-a8-1 on Grenoble will have 2001:660:4701:f081::/64 as IPv6 /64 subnet for its M3 node)

The folowing figure shows the infrastructure on the Strasbourg site:

ipv6_a8

A8 IPv6 mapping
Grenoble Global IPv6 on eth0 interface /64 subnet on M3 interface
node-a8-1.grenoble.iot-lab.info 2001:660:5307:3000::1 2001:660:5307:3001::/64
node-a8-2.grenoble.iot-lab.info 2001:660:5307:3000::2 2001:660:5307:3002::/64
node-a8-228.grenoble.iot-lab.info 2001:660:5307:3000::e4 2001:660:5307:30e4::/64
Paris Global IPv6 on eth0 interface /64 subnet on M3 interface
node-a8-1.paris.iot-lab.info 2001:0660:330f:a200::1 2001:0660:330f:a201::/64
node-a8-2.paris.iot-lab.info 2001:0660:330f:a200::2 2001:0660:330f:a202::/64
node-a8-62.paris.iot-lab.info 2001:0660:330f:a200::3e 2001:0660:330f:a23e::/64
Saclay Global IPv6 on eth0 interface /64 subnet on M3 interface
node-a8-1.saclay.iot-lab.info 2001:660:3207:0400::1 2001:660:3207:0401::/64
node-a8-2.saclay.iot-lab.info 2001:660:3207:0400::2 2001:660:3207:0402::/64
node-a8-175.saclay.iot-lab.info 2001:660:3207:0400::af 2001:660:3207:04af::/64
Strasbourg Global IPv6 on eth0 interface /64 subnet on M3 interface
node-a8-1.strasbourg.iot-lab.info 2001:660:4701:f080::1 2001:660:4701:f081::/64
node-a8-1.strasbourg.iot-lab.info 2001:660:4701:f080::2 2001:660:4701:f082::/64
node-a8-14.strasbourg.iot-lab.info 2001:660:4701:f080::e 2001:660:4701:f08e::/64

Try it! The Public IPv6/6LoWPAN/RPL network with A8-M3 nodes tutorial shows you how to use global IPv6 addresses with A8-M3 nodes with Contiki.