{"id":123,"date":"2014-02-25T21:34:46","date_gmt":"2014-02-25T21:34:46","guid":{"rendered":"https:\/\/learncisco.net\/index.php\/how-it-works-2\/"},"modified":"2023-01-10T05:50:20","modified_gmt":"2023-01-09T22:50:20","slug":"how-it-works-2","status":"publish","type":"page","link":"https:\/\/www.learncisco.net\/courses\/cisco-ccna\/part-8-internet-protocol-version-6\/how-it-works-2.html","title":{"rendered":"How IPv6 Works"},"content":{"rendered":"

Autoconfiguration is an incredibly useful solution because it allows devices on a network to address themselves with a link-local unicast address. This process happens through first learning the prefix information from the router and then appending the device’s own interface address as the interface ID. Every device on an Ethernet network has a physical MAC address, and that’s exactly what’s used for the interface ID. Since the interface ID in an IPv6 address is 64 bits in length and a MAC address is only 48 bits, the MAC address is padded in the middle with the extra bits-it’s padded with FFFE. For example, let’s say I have a device with a MAC address that looks like this: 0017.a4d2.27fc. After it’s been padded, it would look like this:<\/p>\n

Result: 0017.a4FF.FEd2.27fc<\/code><\/p><\/blockquote>\n

Part of the process of padding (called modified eui-64 format<\/a>) changes a bit to specify if the address is locally unique or globally unique. And the bit that gets changed is the seventh bit in the address. A bit value of 1 means globally unique, and a bit value of 0 means locally unique. Then, it is necessary to invert the universal bit (“u” bit) in the 6th position of the first octet.<\/p>\n

Final result: 0217.a4FF.FEd2.27fc<\/code><\/p><\/blockquote>\n

To perform autoconfiguration, a host goes through a basic two-step process:<\/p>\n

    \n
  1. The host needs the prefix information (similar to the network portion of an IPv4 address) to configure its interface, so it sends a router solicitation (RS) request for it. This RS is then sent out as a multicast to each router’s multicast address. The actual information being sent is a type of ICMP message, and like everything in networking, this ICMP message has a number that identifies it. The RS message is ICMP type 133.<\/li>\n
  2. The router answers back with the required prefix information via a router advertisement (RA). An RA message also happens to be a multicast packet that’s sent to each node’s multicast address and is ICMP type 134. RA messages are sent on a periodic basis, but the host sends the RS for an immediate response so it doesn’t have to wait until the next scheduled RA to get what it needs.<\/li>\n<\/ol>\n

    \"IPv6<\/p>\n

    In order to enable IPv6 on a router, you have to use the\u00a0ipv6 unicast-routing<\/b>\u00a0global configuration command. By default, IPv6 traffic forwarding is disabled, so using this command enables it. Also, IPv6 isn’t enabled by default on any interfaces either, so we have to go to each interface individually and enable it. There are a few different ways to do this, but a really easy way is to just add an address to the interface.<\/p>\n

    Router#
    \nRouter#conf t
    \nEnter configuration commands, one per line. End with CNTL\/Z.
    \nRouter(config)#
    \nRouter(config)#ipv6 unicast-routing
    \nRouter(config)#int fa 0\/0
    \nRouter(config-if)#
    \nRouter(config-if)#ipv6 address 2001:db8:3c4d:15::\/64 ?
    \neui-64 Use eui-64 interface identifier
    \n<cr><\/code><\/p>\n

    Router(config-if)#ipv6 address 2001:db8:3c4d:15::\/64 eui-64 ?
    \n<cr><\/p>\n

    Router(config-if)#ipv6 address 2001:db8:3c4d:15::\/64 eui-64
    \nRouter(config-if)#
    \nRouter(config-if)#end
    \nRouter#
    \nRouter#
    \nRouter#sh ipv6 int fa 0\/0
    \nFastEthernet0\/0 is up, line protocol is up
    \nIPv6 is enabled, link-local address is FE80::C600:2FF:FEF4:0
    \nGlobal unicast address(es):
    \n2001:DB8:3C4D:15:C600:2FF:FEF4:0, subnet is 2001:DB8:3C4D:15::\/64
    \nJoined group address(es):
    \nFF02::1
    \nFF02::2
    \nFF02::1:FFF4:0
    \nMTU is 1500 bytes
    \nICMP error messages limited to one every 100 milliseconds
    \nICMP redirects are enabled
    \nND DAD is enabled, number of DAD attempts: 1
    \nND reachable time is 30000 milliseconds
    \nND advertised reachable time is 0 milliseconds
    \nND advertised retransmit interval is 0 milliseconds
    \nND router advertisements are sent every 200 seconds
    \nND router advertisements live for 1800 seconds
    \nHosts use stateless autoconfig for addresses.
    \nRouter#<\/p><\/blockquote>\n

    DHCPv6<\/h2>\n

    DHCPv6 works pretty much the same way DHCP does in v4, with the obvious difference that it supports the new addressing scheme for IPv6. And it might come as a surprise, but there are a couple of other options that DHCP still provides for us that autoconfiguration doesn’t – DNS servers, domain names, or many of the other options that DHCP has always provided for us via IPv4 with autoconfiguration.<\/p>\n

    Upon booting up in IPv4, a client sent out a DHCP discover message looking for a server to give it the information it needs. In IPv6, the RS and RA process happens first. If there’s a DHCPv6 server on the network, the RA that comes back to the client will tell it if DHCP is available for use. If a router isn’t found, the client will respond by sending out a DHCP solicit message-a solicit message that’s actually a multicast message addressed with a source of ff02::1:2, meaning all DHCP agents, both servers and relays.<\/p>\n

    It’s good to know that there’s some support for DHCPv6 in the Cisco IOS. But it’s limited to a stateless DHCP server, meaning it doesn’t offer any address management of the pool, plus the options available for configuring that address pool are limited to the DNS, domain name, and SIP servers only. Here is the example of configuration of DHCPv6 on Cisco IOS:<\/p>\n

    Router(config)#ipv6 dhcp pool ?
    \nWORD DHCP pool name
    \nRouter(config)#ipv6 dhcp pool local
    \nRouter(config-dhcp)#?
    \nIPv6 DHCP configuration commands:
    \ndefault\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Set a command to its defaults
    \ndns-server\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0DNS servers
    \ndomain-name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Domain name to complete unqualified host names
    \nexit\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Exit from DHCPv6 configuration mode
    \nno\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Negate a command or set its defaults
    \nprefix-delegation\u00a0\u00a0IPv6 prefix delegation
    \nsip\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0SIP Servers options
    \nRouter(config-dhcp)#dns-server ?
    \nHostname or X:X:X:X::X Server's name or IPv6 address
    \nRouter(config-dhcp)#domain-name ciscotests.org
    \nRouter(config-dhcp)#prefix-delegation ?
    \nX:X:X:X::X\/<0-128>\u00a0\u00a0IPv6 x:x::y\/
    \naaa\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Acquire prefix from AAA
    \npool\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0IPv6 prefix pool
    \nRouter(config-dhcp)#prefix-delegation pool ?
    \nWORD IPv6 prefix pool
    \nRouter(config-dhcp)#prefix-delegation pool test ?
    \nlifetime\u00a0\u00a0Configure prefix lifetimes
    \n<cr>
    \nRouter(config-dhcp)#prefix-delegation pool test lifetime ?
    \n<60-4294967295>\u00a0\u00a0Valid lifetime (seconds)
    \nat\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Expire prefix at a specific time\/date
    \ninfinite\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Infinite valid lifetime
    \nRouter(config-dhcp)#prefix-delegation pool test lifetime 3600 ?
    \n<60-4294967295>\u00a0\u00a0Preferred lifetime (seconds)
    \ninfinite\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Infinite preferred lifetime
    \nRouter(config-dhcp)#prefix-delegation pool test lifetime 3600 3600 ?
    \n<cr>
    \nRouter(config-dhcp)#prefix-delegation pool test lifetime 3600 3600
    \nRouter(config-dhcp)#<\/code><\/p><\/blockquote>\n

    Now when we have the pool, the only thing that we need is to assign that pool to the interface:<\/p>\n

    Router#conf t
    \nEnter configuration commands, one per line. End with CNTL\/Z.
    \nRouter(config)#int fa 0\/0
    \nRouter(config-if)#ipv6 dhcp server local
    \nRouter(config-if)#<\/code><\/p><\/blockquote>\n

    ICMPv6<\/h2>\n

    IPv4 used ICMP for many things, such as error messages like destination unreachable, and troubleshooting functions like Ping and Traceroute. ICMPv6 still does those things for us, but unlike its predecessor, the v6 flavor isn’t implemented as a separate layer 4 protocol. It’s an integrated part of IPv6 and is carried after the basic IPv6 header information as an extension header. And ICMPv6 adds another cool feature-it prevents IPv6 from doing any fragmentation through an ICMPv6 process called path MTU discovery. The source node of a connection will send a packet that’s equal to the MTU size of its local link’s MTU. As this packet traverses the path toward its destination, any link that has an MTU smaller than the size of the current packet will force the intermediate router to send a “packet too big” message back to the source machine. This message tells the source node what the maximum size is that the restrictive link will allow and asks the source to send a new scaled-down packet that can pass through. This process will continue until the destination is finally reached, with the source node now sporting the new path’s MTU. So now, when the rest of the data packets are transmitted, they’ll be protected from fragmentation.<\/p>\n

    ICMPv6 now takes over the task of finding the address of other devices on the local link. Address Resolution Protocol used to perform this function for IPv4, but that’s been renamed Neighbor Discovery in ICMPv6<\/a>. This process is accomplished by using a multicast address called the solicited node address, and all hosts join this multicast group when they connect to the network. Part of their IPv6 address (the 24 bits farthest to the right) is added to the end of the multicast address FF02:0:0:0:0:1:FF\/104. When this address is queried, the corresponding host will send back its layer 2 address. Devices can find and keep track of other neighbor devices on the network in pretty much the same way.<\/p>\n

    In IPv4, the protocol IGMP was used to allow a host device to tell its local router that it was joining a multicast group and would like to receive the traffic for that group. This IGMP function has been replaced by ICMPv6, and the process has been renamed multicast listener discovery.<\/p>\n","protected":false},"excerpt":{"rendered":"Autoconfiguration is an incredibly useful solution because it allows devices on a network to address themselves with a link-local unicast address. This process happens through first learning the prefix information from the router and then appending the device’s own interface address as the interface ID. Every device on an Ethernet network has a physical MAC … Read more<\/a>","protected":false},"author":5,"featured_media":0,"parent":121,"menu_order":141,"comment_status":"closed","ping_status":"closed","template":"cisco-page.php","meta":{"_acf_changed":false,"footnotes":""},"acf":[],"yoast_head":"\nHow IPv6 Works - learncisco.net<\/title>\n<meta name=\"description\" content=\"This article explains how ipv6 works, which is autoconfiguration allows devices on a network to address themselves.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.learncisco.net\/courses\/cisco-ccna\/part-8-internet-protocol-version-6\/how-it-works-2.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How IPv6 Works - learncisco.net\" \/>\n<meta property=\"og:description\" content=\"This article explains how ipv6 works, which is autoconfiguration allows devices on a network to address themselves.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.learncisco.net\/courses\/cisco-ccna\/part-8-internet-protocol-version-6\/how-it-works-2.html\" \/>\n<meta property=\"og:site_name\" content=\"learncisco.net\" \/>\n<meta property=\"article:modified_time\" content=\"2023-01-09T22:50:20+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.learncisco.net\/courses\/cisco-ccna\/part-8-internet-protocol-version-6\/how-it-works-2.html\",\"url\":\"https:\/\/www.learncisco.net\/courses\/cisco-ccna\/part-8-internet-protocol-version-6\/how-it-works-2.html\",\"name\":\"How IPv6 Works - learncisco.net\",\"isPartOf\":{\"@id\":\"https:\/\/www.learncisco.net\/#website\"},\"datePublished\":\"2014-02-25T21:34:46+00:00\",\"dateModified\":\"2023-01-09T22:50:20+00:00\",\"description\":\"This article explains how ipv6 works, which is autoconfiguration allows devices on a network to address themselves.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.learncisco.net\/courses\/cisco-ccna\/part-8-internet-protocol-version-6\/how-it-works-2.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.learncisco.net\/courses\/cisco-ccna\/part-8-internet-protocol-version-6\/how-it-works-2.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.learncisco.net\/courses\/cisco-ccna\/part-8-internet-protocol-version-6\/how-it-works-2.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.learncisco.net\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cisco Certification Courses\",\"item\":\"https:\/\/www.learncisco.net\/courses.html\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"CCNA 200-301\",\"item\":\"https:\/\/www.learncisco.net\/courses\/cisco-ccna.html\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"IPv6\",\"item\":\"https:\/\/www.learncisco.net\/courses\/cisco-ccna\/part-8-internet-protocol-version-6.html\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"How IPv6 Works\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.learncisco.net\/#website\",\"url\":\"https:\/\/www.learncisco.net\/\",\"name\":\"learncisco.net\",\"description\":\"Free online tests for the Cisco CCNA and CCNP exams. Test yourself with more than 4300 different questions.\",\"publisher\":{\"@id\":\"https:\/\/www.learncisco.net\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.learncisco.net\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.learncisco.net\/#organization\",\"name\":\"learncisco.net\",\"url\":\"https:\/\/www.learncisco.net\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.learncisco.net\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.learncisco.net\/wp-content\/uploads\/2021\/12\/logo-1.png\",\"contentUrl\":\"https:\/\/www.learncisco.net\/wp-content\/uploads\/2021\/12\/logo-1.png\",\"width\":154,\"height\":24,\"caption\":\"learncisco.net\"},\"image\":{\"@id\":\"https:\/\/www.learncisco.net\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How IPv6 Works - learncisco.net","description":"This article explains how ipv6 works, which is autoconfiguration allows devices on a network to address themselves.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.learncisco.net\/courses\/cisco-ccna\/part-8-internet-protocol-version-6\/how-it-works-2.html","og_locale":"en_US","og_type":"article","og_title":"How IPv6 Works - learncisco.net","og_description":"This article explains how ipv6 works, which is autoconfiguration allows devices on a network to address themselves.","og_url":"https:\/\/www.learncisco.net\/courses\/cisco-ccna\/part-8-internet-protocol-version-6\/how-it-works-2.html","og_site_name":"learncisco.net","article_modified_time":"2023-01-09T22:50:20+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.learncisco.net\/courses\/cisco-ccna\/part-8-internet-protocol-version-6\/how-it-works-2.html","url":"https:\/\/www.learncisco.net\/courses\/cisco-ccna\/part-8-internet-protocol-version-6\/how-it-works-2.html","name":"How IPv6 Works - learncisco.net","isPartOf":{"@id":"https:\/\/www.learncisco.net\/#website"},"datePublished":"2014-02-25T21:34:46+00:00","dateModified":"2023-01-09T22:50:20+00:00","description":"This article explains how ipv6 works, which is autoconfiguration allows devices on a network to address themselves.","breadcrumb":{"@id":"https:\/\/www.learncisco.net\/courses\/cisco-ccna\/part-8-internet-protocol-version-6\/how-it-works-2.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.learncisco.net\/courses\/cisco-ccna\/part-8-internet-protocol-version-6\/how-it-works-2.html"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.learncisco.net\/courses\/cisco-ccna\/part-8-internet-protocol-version-6\/how-it-works-2.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.learncisco.net\/"},{"@type":"ListItem","position":2,"name":"Cisco Certification Courses","item":"https:\/\/www.learncisco.net\/courses.html"},{"@type":"ListItem","position":3,"name":"CCNA 200-301","item":"https:\/\/www.learncisco.net\/courses\/cisco-ccna.html"},{"@type":"ListItem","position":4,"name":"IPv6","item":"https:\/\/www.learncisco.net\/courses\/cisco-ccna\/part-8-internet-protocol-version-6.html"},{"@type":"ListItem","position":5,"name":"How IPv6 Works"}]},{"@type":"WebSite","@id":"https:\/\/www.learncisco.net\/#website","url":"https:\/\/www.learncisco.net\/","name":"learncisco.net","description":"Free online tests for the Cisco CCNA and CCNP exams. Test yourself with more than 4300 different questions.","publisher":{"@id":"https:\/\/www.learncisco.net\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.learncisco.net\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.learncisco.net\/#organization","name":"learncisco.net","url":"https:\/\/www.learncisco.net\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.learncisco.net\/#\/schema\/logo\/image\/","url":"https:\/\/www.learncisco.net\/wp-content\/uploads\/2021\/12\/logo-1.png","contentUrl":"https:\/\/www.learncisco.net\/wp-content\/uploads\/2021\/12\/logo-1.png","width":154,"height":24,"caption":"learncisco.net"},"image":{"@id":"https:\/\/www.learncisco.net\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.learncisco.net\/wp-json\/wp\/v2\/pages\/123"}],"collection":[{"href":"https:\/\/www.learncisco.net\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.learncisco.net\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.learncisco.net\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.learncisco.net\/wp-json\/wp\/v2\/comments?post=123"}],"version-history":[{"count":2,"href":"https:\/\/www.learncisco.net\/wp-json\/wp\/v2\/pages\/123\/revisions"}],"predecessor-version":[{"id":1108,"href":"https:\/\/www.learncisco.net\/wp-json\/wp\/v2\/pages\/123\/revisions\/1108"}],"up":[{"embeddable":true,"href":"https:\/\/www.learncisco.net\/wp-json\/wp\/v2\/pages\/121"}],"wp:attachment":[{"href":"https:\/\/www.learncisco.net\/wp-json\/wp\/v2\/media?parent=123"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}