$wgDBname<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.cablefree.net/support/radio/software/index.php?action=history&amp;feed=atom&amp;title=Manual%3AIPv6%2FDHCP_Client</id>
	<title>Manual:IPv6/DHCP Client - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.cablefree.net/support/radio/software/index.php?action=history&amp;feed=atom&amp;title=Manual%3AIPv6%2FDHCP_Client"/>
	<link rel="alternate" type="text/html" href="https://www.cablefree.net/support/radio/software/index.php?title=Manual:IPv6/DHCP_Client&amp;action=history"/>
	<updated>2026-05-05T08:21:51Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.37.3</generator>
	<entry>
		<id>https://www.cablefree.net/support/radio/software/index.php?title=Manual:IPv6/DHCP_Client&amp;diff=339&amp;oldid=prev</id>
		<title>Administrator: Created page with &quot;{{Versions|v5.9 +}}  ==Summary==  Currently DHCPv6 client can receive only delegated prefix from DHCPv6-PD server.  ==Quick setup example==  This simple example demonstrates h...&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.cablefree.net/support/radio/software/index.php?title=Manual:IPv6/DHCP_Client&amp;diff=339&amp;oldid=prev"/>
		<updated>2015-01-29T18:13:18Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{Versions|v5.9 +}}  ==Summary==  Currently DHCPv6 client can receive only delegated prefix from DHCPv6-PD server.  ==Quick setup example==  This simple example demonstrates h...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Versions|v5.9 +}}&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
&lt;br /&gt;
Currently DHCPv6 client can receive only delegated prefix from DHCPv6-PD server.&lt;br /&gt;
&lt;br /&gt;
==Quick setup example==&lt;br /&gt;
&lt;br /&gt;
This simple example demonstrates how to enable dhcp client to receive IPv6 prefix and add it to the pool.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/ipv6 dhcp-client add pool-name=test-ipv6 pool-prefix-length=64 interface=ether13&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Detailed print should show status of the client and we can verify if prefix is received&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[admin@x86-test] /ipv6 dhcp-client&amp;gt; print detail &lt;br /&gt;
Flags: D - dynamic, X - disabled, I - invalid &lt;br /&gt;
 0    interface=bypass pool-name=&amp;quot;test-ipv6&amp;quot; pool-prefix-length=64 status=bound &lt;br /&gt;
      prefix=2001:db8:7501:ff04::/62  expires-after=2d23h11m53s &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice that server gave us prefix 2a02:610:7501:ff04::/62 . And it should be also added to ipv6 pools&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[admin@CableFree] /ipv6 pool&amp;gt; print &lt;br /&gt;
Flags: D - dynamic &lt;br /&gt;
 #   NAME                         PREFIX                                      PREFIX-LENGTH&lt;br /&gt;
 0 D test-ipv6                    2001:db8:7501:ff04::/62                                64&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
It works!&lt;br /&gt;
Now you can use this pool, for example, for pppoe clients.&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
&amp;lt;p id=&amp;quot;shbox&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Sub-menu:&amp;lt;/b&amp;gt; &amp;lt;code&amp;gt;/ipv6 dhcp-client&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Mr-arg-table-h&lt;br /&gt;
|prop=Property&lt;br /&gt;
|desc=Description&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mr-arg-table&lt;br /&gt;
|arg=add-default-route&lt;br /&gt;
|type=yes {{!}} no&lt;br /&gt;
|default=no&lt;br /&gt;
|desc=Whether to add default IPv6 route after client connects.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Mr-arg-table&lt;br /&gt;
|arg=comment&lt;br /&gt;
|type=string&lt;br /&gt;
|default=&lt;br /&gt;
|desc=Short description of the client&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mr-arg-table&lt;br /&gt;
|arg=disabled&lt;br /&gt;
|type=yes {{!}} no&lt;br /&gt;
|default=no&lt;br /&gt;
|desc=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mr-arg-table&lt;br /&gt;
|arg=interface&lt;br /&gt;
|type=string&lt;br /&gt;
|default=&lt;br /&gt;
|desc=Interface on which DHCPv6 client will be running.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mr-arg-table&lt;br /&gt;
|arg=pool-name&lt;br /&gt;
|type=string&lt;br /&gt;
|default=&lt;br /&gt;
|desc=Name of the [[M:IPv6/Pool | IPv6 pool]] in which received IPv6 prefix will be added&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mr-arg-table-end&lt;br /&gt;
|arg=pool-prefix-length&lt;br /&gt;
|type=string&lt;br /&gt;
|default=&lt;br /&gt;
|desc=Prefix length parameter that will be set for [[M:IPv6/Pool | IPv6 pool]] in which received IPv6 prefix is added. Prefix length must be greater than the length of received prefix, otherwise prefix-length will be set to received prefix length + 8 bits.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
&lt;br /&gt;
Command &amp;lt;code&amp;gt;/ipv6 dhcp-client print detail&amp;lt;/code&amp;gt; will show current status of dhcp client and &amp;lt;b&amp;gt;read-only&amp;lt;/b&amp;gt; properties listed in table below:&lt;br /&gt;
&lt;br /&gt;
{{Mr-arg-table-h&lt;br /&gt;
|prop=Property&lt;br /&gt;
|desc=Description&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mr-arg-ro-table&lt;br /&gt;
|arg=duid&lt;br /&gt;
|type=string&lt;br /&gt;
|desc=Auto generated DUID that is sent to the server. DUID is generated using one of the MAC addresses available on the router.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mr-arg-ro-table&lt;br /&gt;
|arg=dynamic&lt;br /&gt;
|type=yes {{!}} no&lt;br /&gt;
|desc=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mr-arg-ro-table&lt;br /&gt;
|arg=expires-after&lt;br /&gt;
|type=time&lt;br /&gt;
|desc=Time when the IPv6 prefix expires (specified by the DHCPv6 server).&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mr-arg-ro-table&lt;br /&gt;
|arg=invalid&lt;br /&gt;
|type=yes {{!}} no&lt;br /&gt;
|desc=Shows whether configuration is invalid.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mr-arg-ro-table&lt;br /&gt;
|arg=prefix&lt;br /&gt;
|type=IPv6 prefix&lt;br /&gt;
|desc=Shows received IPv6 prefix from DHCPv6-PD server&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mr-arg-ro-table-end&lt;br /&gt;
|arg=status&lt;br /&gt;
|type=stopped {{!}} searching {{!}} requesting... {{!}} bound {{!}} renewing {{!}} rebinding {{!}} error {{!}} stopping&lt;br /&gt;
|desc=Shows the status of DHCPv6 Client:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;stopped&amp;#039;&amp;#039;&amp;#039; - dhcpv6 client is stopped&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;searching&amp;#039;&amp;#039;&amp;#039; - sending &amp;quot;solicit&amp;quot; and trying to get &amp;quot;advertise&amp;quot;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;requesting&amp;#039;&amp;#039;&amp;#039; - sent &amp;quot;request&amp;quot; waiting for &amp;quot;reply&amp;quot;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;bound&amp;#039;&amp;#039;&amp;#039; - received &amp;quot;reply&amp;quot;. Prefix assigned.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;renewing&amp;#039;&amp;#039;&amp;#039; - sent &amp;quot;renew&amp;quot;, waiting for &amp;quot;reply&amp;quot;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;rebinding&amp;#039;&amp;#039;&amp;#039; - sent &amp;quot;rebind&amp;quot;, waiting for &amp;quot;reply&amp;quot;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;error&amp;#039;&amp;#039;&amp;#039; - reply was not received in time or some other error ocurred.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;stopping&amp;#039;&amp;#039;&amp;#039; - sent &amp;quot;release&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To determine what IAID will be used, convert internal ID of an interface on which DHCP client is running from hex to decimal.&lt;br /&gt;
&lt;br /&gt;
For example, DHCP client is running on interface pppoe-out1.&lt;br /&gt;
To get internal ID use following command&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[admin@t36] /interface&amp;gt; :put [find name=&amp;quot;pppoe-out1&amp;quot;]&lt;br /&gt;
*15&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now convert hex value 15 to decimal and you get IAID=21&lt;br /&gt;
&lt;br /&gt;
==Menu specific commands==&lt;br /&gt;
&lt;br /&gt;
{{Mr-arg-table-h&lt;br /&gt;
|prop=Property&lt;br /&gt;
|desc=Description&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mr-arg-ro-table&lt;br /&gt;
|arg=release&lt;br /&gt;
|type=numbers&lt;br /&gt;
|desc=Release current binding and restart DHCPv6 client&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Mr-arg-ro-table-end&lt;br /&gt;
|arg=renew&lt;br /&gt;
|type=numbers&lt;br /&gt;
|desc=Renew current leases. If the renew operation was not successful, client tries to reinitialize lease (i.e. it starts lease request procedure (rebind) as if it had not received an IP address yet)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Application Examples==&lt;br /&gt;
&lt;br /&gt;
===Use received prefix for local RA===&lt;br /&gt;
&lt;br /&gt;
Consider following setup:&lt;br /&gt;
&lt;br /&gt;
[[File:dhcpv6-pd-example.png]]&lt;br /&gt;
&lt;br /&gt;
* ISP is routing prefix 2001:DB8::/62 to the router R1&lt;br /&gt;
* Router R1 runs DHCPv6 server to delegate /64 prefixes to the customer routers CE1 CE2&lt;br /&gt;
* DHCP client on routers CE1 and CE2 receives delegated /64 prefix from the DHCP server (R1).&lt;br /&gt;
* Client routers uses received prefix to set up RA on the local interface&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Configuration&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;R1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/ipv6 route &lt;br /&gt;
add gateway=fe80::1:1%to-ISP&lt;br /&gt;
&lt;br /&gt;
/ipv6 pool&lt;br /&gt;
add name=myPool prefix=2001:db8::/62 prefix-length=64&lt;br /&gt;
&lt;br /&gt;
/ipv6 dhcp-server&lt;br /&gt;
add address-pool=myPool disabled=no interface=to-CE-routers lease-time=3m name=server1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;CE1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/ipv6 dhcp-client&lt;br /&gt;
add interface=to-R1 pool-name=my-ipv6&lt;br /&gt;
&lt;br /&gt;
/ipv6 address&lt;br /&gt;
add address=::1/64 from-pool=my-ipv6 interface=to-clients advertise=yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;CE2&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/ipv6 dhcp-client&lt;br /&gt;
add interface=to-R1 pool-name=my-ipv6&lt;br /&gt;
&lt;br /&gt;
/ipv6 address&lt;br /&gt;
add address=::1/64 from-pool=my-ipv6 interface=to-clients advertise=yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Check the status&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
After configuration is complete we can verify that each CE router received its own prefix&lt;br /&gt;
&lt;br /&gt;
On server:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[admin@R1] /ipv6 dhcp-server binding&amp;gt; print &lt;br /&gt;
Flags: X - disabled, D - dynamic &lt;br /&gt;
 #   ADDRESS                                     DUID               IAID SERVER         STATUS &lt;br /&gt;
 1 D 2001:db8:1::/64                             0019d1393536        566 server1        bound&lt;br /&gt;
 2 D 2001:db8:2::/64                             0019d1393535        565 server1        bound &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On client:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[admin@CE1] /ipv6 dhcp-client&amp;gt; print &lt;br /&gt;
Flags: D - dynamic, X - disabled, I - invalid &lt;br /&gt;
 #    INTERFACE           STATUS        PREFIX                                     &lt;br /&gt;
 0    to-R1               bound         2001:db8:1::/64  &lt;br /&gt;
&lt;br /&gt;
[admin@CE1] /ipv6 dhcp-client&amp;gt; /ipv6 pool print &lt;br /&gt;
Flags: D - dynamic &lt;br /&gt;
 #   NAME                 PREFIX                              PREFIX-LENGTH&lt;br /&gt;
 0 D my-ipv6              2001:db8:1::/64                                64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can also see that IPv6 address was automatically added from the prefix pool:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[admin@CE1] /ipv6 address&amp;gt; print &lt;br /&gt;
Flags: X - disabled, I - invalid, D - dynamic, G - global, L - link-local &lt;br /&gt;
 #    ADDRESS                                     FROM-POOL INTERFACE     ADVERTISE&lt;br /&gt;
 0  G 2001:db8:1::1/64                                      to-clients         yes      &lt;br /&gt;
..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And pool usage shows that &amp;#039;Address&amp;#039; is allocating the pool&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[admin@CE1] /ipv6 pool used&amp;gt; print &lt;br /&gt;
POOL         PREFIX                                      OWNER         INFO        &lt;br /&gt;
my-ipv6      2001:db8:1::/64                             Address       to-clients   &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{cont}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Manual|DHCP]]&lt;br /&gt;
[[Category:DHCP|Client]]&lt;br /&gt;
[[Category:IPv6|DHCP]]&lt;/div&gt;</summary>
		<author><name>Administrator</name></author>
	</entry>
</feed>