Dynamic Address Assignment

About IP addresses

An Internet Protocol (IP) address is a unique number assigned to every device on a network. Just as a street address determines where a letter should be delivered, an IP address identifies computers on the Internet. Network devices use IP addresses to communicate with each other.

The Internet uses DNS (Domain Name System) to enable people to use words instead of numbers for Internet addresses. You can think of DNS as an Internet address book, mapping domain names to IP addresses.

When you type a URL into your browser, your browser looks up that domain name in DNS. For example, if you type into your browser, your browser would ask DNS for Google’s IP address. DNS would return the IP address assigned to Google’s domain name (). Your browser then connects to that IP address.

Difference between static and dynamic IPs

When a device is assigned a static IP address, the address does not change. Most devices use dynamic IP addresses, which are assigned by the network when they connect and change over time.

When static IPs are needed

Most users don't need static IP addresses. Static IP addresses normally matter more when external devices or websites need to remember your IP address. One example is VPN or other remote access solutions that trust (whitelists) certain IPs for security purposes. A static IP address is not required if you are hosting a server, although it can simplify the setup process. Google Fiber provides two options:

  • Use advanced settings for your network to configure dynamic DNS. When your IP address changes, the DNS entry for your server is automatically updated with its new IP address, so outside users can use the same domain name. You can choose the Dynamic DNS provider and don't have to install additional software on your computer.

  • Use advanced settings to reserve an IP address for a device on your local network. Your device keeps the same IP address until you cancel the reservation or remove the device from your network, even if the device is disconnected.

If you're interested in Google Fiber for Small Business, you can read more information about static IP addresses.

If you are hosting your own server, review our accepted use policy.

 

Dynamic Address Assignment

IPv6 prides itself as a protocol that supports many dynamic plug and play functionalities. As a result, there are multiple ways to assign IP addresses in IPv6. This guide will go over two methods of IPv6 address assignment: stateless and stateful

 

Stateful Address Assignment

Similar to IPv4, IPv6 can use DHCP to statefully assign IP addresses to any clients. Cisco IOS routers can be configured to be Stateful DHCP servers. Stateful DHCP means that the DHCP server is responsible for assigning the IP address to and client. The DHCP server keeps a record of all clients and the IPv6 address assigned to them. Below is a configuration example of a server and client using stateful DHCP.

 

Server configuration:

 

ipv6 dhcp pool IPV6_DHCPPOOL

     address prefix 2001:DB8:1000::/64 lifetime infinite infinite

     link-address 2001:DB8:1000::1/64

     dns-server 2001:DB8:1000::1

     domain-name cisco.com

!

interface Ethernet0/0

     ipv6 address 2001:DB8:1000::1/64

     ipv6 enable

     ipv6 nd ra suppress

     ipv6 dhcp server IPV6_DHCPPOOL

 

Notice how the server can disable RA on its interface facing the client. This is because the DHCP process is completely responsible for assigning IP address to all clients on that Layer 3 segment.

 

Client configuration:

 

interface Ethernet0/0

     ipv6 address dhcp

     ipv6 enable

 

The client configuration is the same in IPv6 as it is for IPv4.

 

Stateless Address Assignment

This is a unique feature only to IPv6. Stateless address configuration means that the client picks their own address based on the prefix being advertised on their connected interface. All Cisco devices have the ability to participate in Stateless Autoconfiguration (SLAAC). By default, SLAAC does not provide anything to the client outside of an IPv6 address and a default gateway. Additional configuration on the server is necessary before the same information can be provided to the client as Stateful DHCP.

 

Moreover, it is important to note that SLAAC most commonly uses eui-64 format for address assignment. This means that IPv6 addresses will be built from a combination of the Layer 3 subnet prefix and the MAC address of the client. The requirement for SLAAC is that the LAN segment must use a /64 mask.

 

Cisco IOS routers support both Stateful DHCP and Stateless DHCP. Stateless DHCP does not track IPv6 address bindings per client. Rather, it uses DHCP only to hand out domain-names, DNS servers and other client relevant information. Below is a server and client configuration example for Stateless address assignment.

 

Server configuration:

 

ipv6 dhcp pool IPV6_DHCPPOOL

     dns-server 2001:DB8:1000::1

     domain-name cisco.com

!

interface Ethernet0/0

     ipv6 address 2001:DB8:1000::1/64

     ipv6 enable

     ipv6 nd other-config-flag

     ipv6 dhcp server IPV6_DHCPPOOL

 

Notice that the DHCP pool configured on the sever has no address pool assigned. This is because the client will select their own IP address since this is a stateless address assignment solution. The router is acting as a stateless DHCP server. Its only role is to provide DNS server and domain name information to clients on this segment.

 

Client configuration:

 

interface Ethernet0/0

     ipv6 address auto-config

     ipv6 enable

 

The client is configured to use SLAAC by setting the "auto-config" option. This command is unique to IPv6 and is the most common way to obtain IP addresses via IPv6.

 

Relevant Outputs

DHCP debugs can be used to verify the information passed from the server to the cilent. Below are two examples of the output of debug ipv6 dhcp detail. If stateful address assignment is configured, the following debugs should seen on the server:

 

 

 

*Apr 17 18:23:52.286: IPv6 DHCP: Received RELEASE from FE80::A8BB:CCFF:FE01:F500 on Ethernet0/0

*Apr 17 18:23:52.286: IPv6 DHCP: detailed packet contents

*Apr 17 18:23:52.286:   src FE80::A8BB:CCFF:FE01:F500 (Ethernet0/0)

*Apr 17 18:23:52.286:   dst FF02::1:2

*Apr 17 18:23:52.286:   type RELEASE(8), xid 13734454

*Apr 17 18:23:52.286:   option ELAPSED-TIME(8), len 2

*Apr 17 18:23:52.286:     elapsed-time 0

*Apr 17 18:23:52.286:   option CLIENTID(1), len 10

*Apr 17 18:23:52.286:     00030001AABBCC01F500

*Apr 17 18:23:52.286:   option SERVERID(2), len 10

*Apr 17 18:23:52.286:     00030001AABBCC01F600

*Apr 17 18:23:52.286:   option IA-NA(3), len 40

*Apr 17 18:23:52.286:     IAID 0x00030001, T1 0, T2 0

*Apr 17 18:23:52.286:     option IAADDR(5), len 24

*Apr 17 18:23:52.286:       IPv6 address 2001:DB8:1000:0:F5AA:93AF:F2F:3243

*Apr 17 18:23:52.286:       preferred INFINITY, valid INFINITY

*Apr 17 18:23:52.290: IPv6 DHCP: Using interface pool IPV6_DHCPPOOL

*Apr 17 18:23:52.290: IPv6 DHCP: Found address 2001:DB8:1000:0:F5AA:93AF:F2F:3243 in binding for FE80::A8BB:CCFF:FE01:F500, IAID 00030001

*Apr 17 18:23:52.290: IPv6 DHCP: Freeing address 2001:DB8:1000:0:F5AA:93AF:F2F:3243 to internal pool 2001:DB8:1000::/64

*Apr 17 18:23:52.290: IPv6 DHCP: Freeing IA_NA 00030001 from binding for FE80::A8BB:CCFF:FE01:F500

*Apr 17 18:23:52.290: IPv6 DHCP: Freeing binding for FE80::A8BB:CCFF:FE01:F500 from pool IPV6_DHCPPOOL

*Apr 17 18:23:52.290: IPv6 DHCP: Sending REPLY to FE80::A8BB:CCFF:FE01:F500 on Ethernet0/0

*Apr 17 18:23:52.290: IPv6 DHCP: detailed packet contents

*Apr 17 18:23:52.290:   src FE80::A8BB:CCFF:FE01:F600

*Apr 17 18:23:52.290:   dst FE80::A8BB:CCFF:FE01:F500 (Ethernet0/0)

*Apr 17 18:23:52.290:   type REPLY(7), xid 13734454

*Apr 17 18:23:52.290:   option SERVERID(2), len 10

*Apr 17 18:23:52.290:     00030001AABBCC01F600

*Apr 17 18:23:52.290:   option CLIENTID(1), len 10

*Apr 17 18:23:52.290:     00030001AABBCC01F500

*Apr 17 18:23:52.290:   option STATUS-CODE(13), len 9

*Apr 17 18:23:52.290:     status code SUCCESS(0)

*Apr 17 18:23:52.290:     status message: SUCCESS

 

Below are the debugs for stateless address assignment:

 

*Apr 17 18:32:36.866: IPv6 DHCP: Received INFORMATION-REQUEST from FE80::A8BB:CCFF:FE01:F500 on Ethernet0/0

*Apr 17 18:32:36.866: IPv6 DHCP: detailed packet contents

*Apr 17 18:32:36.866:   src FE80::A8BB:CCFF:FE01:F500 (Ethernet0/0)

*Apr 17 18:32:36.866:   dst FF02::1:2

*Apr 17 18:32:36.866:   type INFORMATION-REQUEST(11), xid 14259361

*Apr 17 18:32:36.866:   option ELAPSED-TIME(8), len 2

*Apr 17 18:32:36.866:     elapsed-time 0

*Apr 17 18:32:36.866:   option CLIENTID(1), len 10

*Apr 17 18:32:36.866:     00030001AABBCC01F500

*Apr 17 18:32:36.866:   option ORO(6), len 6

*Apr 17 18:32:36.866:     DNS-SERVERS,DOMAIN-LIST,INFO-REFRESH

*Apr 17 18:32:36.870: IPv6 DHCP: Using interface pool IPV6_DHCPPOOL

*Apr 17 18:32:36.870: IPv6 DHCP: Sending REPLY to FE80::A8BB:CCFF:FE01:F500 on Ethernet0/0

*Apr 17 18:32:36.870: IPv6 DHCP: detailed packet contents

*Apr 17 18:32:36.870:   src FE80::A8BB:CCFF:FE01:F600

*Apr 17 18:32:36.870:   dst FE80::A8BB:CCFF:FE01:F500 (Ethernet0/0)

*Apr 17 18:32:36.870:   type REPLY(7), xid 14259361

*Apr 17 18:32:36.870:   option SERVERID(2), len 10

*Apr 17 18:32:36.870:     00030001AABBCC01F600

*Apr 17 18:32:36.870:   option CLIENTID(1), len 10

*Apr 17 18:32:36.870:     00030001AABBCC01F500

*Apr 17 18:32:36.870:   option DNS-SERVERS(23), len 16

*Apr 17 18:32:36.870:     2001:DB8:1000::1

*Apr 17 18:32:36.870:   option DOMAIN-LIST(24), len 11

*Apr 17 18:32:36.870:     cisco.com

Categories: 1

0 Replies to “Dynamic Address Assignment”

Leave a comment

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *