Printer FriendlyEmail Article Link

Spirent TestCenter: How to get the DHCPv6 server to assign IPv6 addresses based on the link address

Environment/Versions
 
  • DHCPv6
  • link address
  • Address assign strategy
Let's take the following scenario:
 
Having configured a DHCPv6 server, with 32 pools, starting with pool prefix 1700:a:b:1000:: and step as 0.0.0.1, the customer wants each pool to have 64 addresses, starting with 1700:a:b:1000::2. Prefix length is 64.
 
The expectation is the server (DHCPv6) should assign from:
  • 1700:a:b:1000:: , if the link address 1700:a:b:1000::1
  • From 1700:a:b:1001:: if the link address 1700:a:b:1001::1
  • From 1700:a:b:1002:: if the link address 1700:a:b:1002::1
  • and so on
  • Untill 1700:a:b:103f::, if the link address 1700:a:b:103f::1
So the question is:

Is it possible to have the DHCPv6 server to assign IPv6 address based on link address, same as DCHP (IPv4) does using Gateway Address?
 
Answer

Be aware that currently, the only two options (Address Assign Strategies) that STC DCHPv6 server has to assign addresses are Interface ID and Remote ID (You can find this option under DCHPv6/PD Server tab, all the way to the right, 5 columns before the last one)



Other than that particular "Address Assign Strategy" field in STC, there is no other way we can tell the STC DHCPv6 server to specifically assign an IP address from a particular pool. Hence, Spirent TestCenter doesn't have the ability to use the link-address as a pool "distinguisher". I tried to look at the spec to see if his link-address is used for this purpose but didn't find anything related, if you have that information I would like you to share it with me so I can take a look on it.
 
Investigating more on this, I found that the link-address definition is as follows:
 
Link-address: A global or unique local address that will be used by the server to identify the link on which the client is located. 

So at this point, I guess you may want to use the Address Assign Strategy = Relay Agent Interface ID, since using this option, under each STC Client Devices you can specify an interface ID on each (Relay Agent Interface ID column to act as the link-address identifier) so the DHCPv6 server would assign an IP address from a particular pool based on that Interface-ID.
  • The Interface-ID would act as a pool distinguisher. 

Please take a look at the 7 min video included under the following KB, that explains very detailed this Assign Address Strategy:

Basically what you need to do is as follows:
 
  1. Under DHCPv6/PD tab, activate "Enable Lightweight DHCP Relay Agent" and "Enable Relay Agent Interface ID" checkbox for all the DHCPv6 clients.
    • This will do the next column called "Relay Agent Interface ID" editable.
  2. Set the Relay Agent Interface ID as desired (Here you can specify each device particular link-address, like 1700:a:b:1000::1, 1700:a:b:1001::1, and so on
  3. Under DHCPv6/PD Server tab, go all the way to the right and under Address Assign Strategy activate "Relay Agent Interface ID"
  4. Hit "Edit Additonal Pools" 
 
  1. Go to DHCPv6 Address Pools tab, and create the 32 pools you want to have in the server and configure each to have:
 
  • Address Pool Start = 1700:a:b:1000::2, 1700:a:b:1001::2, 1700:a:b:1002::2 and so on until 1700:a:b:101f::2.
  • Addresses Per Server = 64
  • Relay Agent Interface ID (These Interfaces ID are the same you configured for your devices) 
 
  1. Hit Apply
  2. Start your DCHPv6 server
  3. Bind your DHCPv6 devices. 
Find a capture attached where I bound the 2048 devices and based on the Interface ID I got each one configured as the example provided above:

From Pool 1700:a:b:1000::, if the link address 1700:a:b:1000::1
From Pool 1700:a:b:1001::, if the link address 1700:a:b:1001::1
From Pool 1700:a:b:1002::, if the link address 1700:a:b:1002::1
and so on…. 
 
Find also attached the .tcc configuration I used for this demonstration.
 

Product : Data Center,Spirent TestCenter,IPv6,DHCPv6