{"id":857,"date":"2021-08-20T03:07:44","date_gmt":"2021-08-20T03:07:44","guid":{"rendered":"http:\/\/feralpacket.org\/?p=857"},"modified":"2021-08-20T03:07:44","modified_gmt":"2021-08-20T03:07:44","slug":"ipv6-notes","status":"publish","type":"post","link":"https:\/\/feralpacket.org\/?p=857","title":{"rendered":"IPv6 Notes"},"content":{"rendered":"<p><span style=\"font-weight: bold;\">IPv6<\/span><\/p>\n<p>&nbsp;&#8211; 128 bit address represented in HEX format<\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt; 1 hex = 4 bits<\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt; 32 HEX numbers = 1 IPv6 address<\/p>\n<p>&nbsp;&#8211; 8 quartets (16-bit blocks) or 4 HEX numbers each<\/p>\n<p>12CD:0000:0000:0000:0635:0000:0000:0001 \/64<\/p>\n<p>If a quartet has all zeros, it can be replaced with a single zero<\/p>\n<p>12CD:0:0:0:0635:0:0:001 \/64<\/p>\n<p>Leading zeros in a quartet can be dropped<\/p>\n<p>12CD:0:0:0:635:0:0:1 \/64<\/p>\n<p>Consecutive quartets of zeros can be replaced with a double colon (::) once<\/p>\n<p>12CD::635:0:0:1 \/64<\/p>\n<p><span style=\"font-weight: bold;\">Unicast<\/span><\/p>\n<p>&nbsp;&#8211; Globally unique (public IPs<\/p>\n<p>&nbsp;&#8211; Range &#8211; 2000:: \/3<\/p>\n<p>&nbsp;&#8211; 001x -&gt; first 3 bits will always be the same<\/p>\n<p>&nbsp;&#8211; Will always start with 2 or 3<\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt; 0010 &#8211; 2<\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt; 0011 &#8211; 3<\/p>\n<p><span style=\"font-weight: bold;\">local-link addresses<\/span><\/p>\n<p>&nbsp;&#8211; Automatically assigned<\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt; scope is link-local<\/p>\n<p>&nbsp;&#8211; Any interface that has IPv6 activated will have a link-local address<\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt; Can be changed<\/p>\n<p>&nbsp;&#8211; Range &#8211; FE80:: \/10<\/p>\n<p><span style=\"font-weight: bold;\">Multicast<\/span><\/p>\n<p>&nbsp;&#8211; Range &#8211; FF00:: \/8<\/p>\n<p>&nbsp;&#8211; The fourth HEX character in the first quartet is called the scope field<\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt; 2 &#8211; scope is link-local<\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt; 5 &#8211; scope is site-local<\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt; E &#8211; scope is global<\/p>\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -&gt; FF0E:: \/16 &#8211; used on the Internet<\/p>\n<p><span style=\"font-weight: bold;\">Well known multicast addresses<\/span><\/p>\n<p>&nbsp;&#8211; FF02::1 -&gt; all nodes in the segment<\/p>\n<p>&nbsp;&#8211; FF02::2 -&gt; all routers in the segment<\/p>\n<p>&nbsp;&#8211; FF02::5 -&gt; OSPF all routers<\/p>\n<p>&nbsp;&#8211; FF02::6 -&gt; OSPF all DRs<\/p>\n<p>&nbsp;&#8211; FF02::9 -&gt; RIPng<\/p>\n<p>&nbsp;&#8211; FF02::A -&gt; EIGRPv6<\/p>\n<p>&nbsp;&#8211; FF05::1:2 -&gt; DHCPv6<\/p>\n<p>&nbsp;&#8211; FF02::1:FF00:0000 \/104 -&gt; Solicit Node Multicast Address<\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt; first 104 bits stay the same<\/p>\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -&gt; FF02::1:FF<\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt; last 24 bits can change<\/p>\n<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -&gt; 00:0000<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/feralpacket.org\/wp-content\/uploads\/2018\/10\/69aeac9c4490cec5421524830ffe559f.jpeg\" style=\"\" width=\"2094\" height=\"\"><\/p>\n<p><span style=\"font-weight: bold;\">Anycast<\/span><\/p>\n<p>&nbsp;&#8211; One &#8211; to &#8211; one of many<\/p>\n<p>&nbsp;&#8211; Any IPv6 address can be flagged as Anycast<\/p>\n<p><span style=\"font-weight: bold;\">IPv6 Address Assignment<\/span><\/p>\n<p><span style=\"background-color: rgb(255, 250, 165);-evernote-highlight:true;\">int fa0\/0<\/span><\/p>\n<p>&nbsp;<span style=\"background-color: rgb(255, 250, 165);-evernote-highlight:true;\">ipv6 enable<\/span><\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt; Causes a link-local address to be generated<\/p>\n<p>&nbsp;<span style=\"background-color: rgb(255, 250, 165);-evernote-highlight:true;\">ipv6 address &lt;ipv6 add&gt;\/&lt;network mask&gt;<\/span><\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt; Manual addressing<\/p>\n<p>&nbsp;<span style=\"background-color: rgb(255, 250, 165);-evernote-highlight:true;\">ipv6 address dhcp<\/span><\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt; Receive address from DHCPv6 server<\/p>\n<p>&nbsp;<span style=\"background-color: rgb(255, 250, 165);-evernote-highlight:true;\">ipv6 address <\/span><a href=\"file:\/\/\/x:x:x:x::\">x:x:x:x::<\/a><span style=\"background-color: rgb(255, 250, 165);-evernote-highlight:true;\">&nbsp;\/64 eui-64<\/span><\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt; EUI-64 method<\/p>\n<p>&nbsp;<span style=\"background-color: rgb(255, 250, 165);-evernote-highlight:true;\">ipv6 address autoconfig<\/span><\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt; Autoconfiguration<\/p>\n<p>EUI-64 Method<\/p>\n<p>&nbsp;&#8211; last 64 bits (host part) id derived from the MAC address of the interface<\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt; MAC address -&gt; 48 bits<\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt; FFFE -&gt; inserted in the middle of the MAC address<\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt; The 7th bit is then flipped<\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt; The 7th bit is called the global \/ local bit<\/p>\n<p>0001.0002.0003 plus FFEE<\/p>\n<p>&nbsp;&#8211; Becomes<\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt; 0001.00FF.FE02.0003<\/p>\n<p>0001 in HEX<\/p>\n<p>&nbsp;&#8211; 0000000000000001 in decimal<\/p>\n<p>7th bit flipped<\/p>\n<p>&nbsp;&#8211; 0000001000000001 in decimal<\/p>\n<p>&nbsp;&#8211; 0201 in HEX<\/p>\n<p>So, 0001.0002.0003 plus FFFE plus 7th bit flipped becomes<\/p>\n<p>&nbsp;&#8211; 0201.00FF.FE02.0003<\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt; host part of the EUI-64 address<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/feralpacket.org\/wp-content\/uploads\/2018\/10\/a494e7ca8d673672f4aca114a425ec1b.jpeg\" style=\"\" width=\"2266\" height=\"\"><\/p>\n<p><span style=\"font-weight: bold;\">Autoconfiguration<\/span><\/p>\n<p>R2(config)# <span style=\"background-color: rgb(255, 250, 165);-evernote-highlight:true;\">int fa0\/0<\/span><\/p>\n<p>&nbsp;<span style=\"background-color: rgb(255, 250, 165);-evernote-highlight:true;\">ipv6 enable<\/span><\/p>\n<p>&nbsp;<span style=\"background-color: rgb(255, 250, 165);-evernote-highlight:true;\">ipv6 address autoconfig<\/span><\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt; Receiving side<\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt; Uses EUI-64<\/p>\n<p>R1 sends periodic Router Advertisement (RA) messages<\/p>\n<p>&nbsp;&#8211; Clients can also request an address by sending Router Solicitaion (RS) messages<\/p>\n<p>&nbsp;&#8211; RA contains the first 64 bits of router&#8217;s address<\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt; FC01:2:3:4 in this case<\/p>\n<p>&nbsp;&#8211; When the client receives the RA message, it uses the 64 bits in the message as the network part and calculates the host 64 bits by using the EUI-64 method<\/p>\n<p>RA \/ RS messages<\/p>\n<p>&nbsp;&#8211; Part of the family of ICMPv6<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/feralpacket.org\/wp-content\/uploads\/2018\/10\/3e40799168d218d2a8f6a31d292dd0e0.jpeg\" style=\"\" width=\"1953\" height=\"\"><\/p>\n<p>By default, RA messages are suppressed on serial interfaces<\/p>\n<p>R1(config)# <span style=\"background-color: rgb(255, 250, 165);-evernote-highlight:true;\">int s0\/0<\/span><\/p>\n<p>&nbsp;<span style=\"background-color: rgb(255, 250, 165);-evernote-highlight:true;\">no ipv6 nd ra suppress<\/span><\/p>\n<p>R2(config)# <span style=\"background-color: rgb(255, 250, 165);-evernote-highlight:true;\">int s0\/0<\/span><\/p>\n<p>&nbsp;<span style=\"background-color: rgb(255, 250, 165);-evernote-highlight:true;\">ipv6 enable<\/span><\/p>\n<p>&nbsp;<span style=\"background-color: rgb(255, 250, 165);-evernote-highlight:true;\">ipv6 address autoconfig<\/span><\/p>\n<p>Serial interfaces don&#8217;t have MAC addresses<\/p>\n<p>&nbsp;&#8211; Autoconfig on a serial interface will use (borrow) the MAC address of an ethernet interface on the router<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/feralpacket.org\/wp-content\/uploads\/2018\/10\/2ea72b6571e6502fe28ce725b6e2656d.jpeg\" style=\"\" width=\"2683\" height=\"\"><\/p>\n<p><span style=\"font-weight: bold;\">IPv6 Neighbor Discovery (ARP)<\/span><\/p>\n<p>&nbsp;&#8211; NS -&gt; Neighbor Solicitation<\/p>\n<p>&nbsp;&#8211; NA -&gt; Neighbor Advertisement<\/p>\n<p>FF02::1 -&gt; all nodes<\/p>\n<p>Solicite Node Multicast group is joined by every IPv6 enabled device<\/p>\n<p>FF02::1:FF00:0000 \/104<\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt; Last 24 bits are taken from IPv6 address of the device<\/p>\n<p>2000:0:0:0:0:0:0:1<\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt; Last 24 bits &#8211; 00:0001<\/p>\n<p>The multicast group the computer will join<\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt; FF02::1:FF:00:001 &#8211; Computer A<\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt;&nbsp;FF02::1:FF:00:002 &#8211; Computer B<\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt;&nbsp;FF02::1:FF:00:003 &#8211; Computer C<\/p>\n<p>&nbsp; &nbsp; &nbsp;-&gt;&nbsp;FF02::1:FF:00:004 &#8211; Computer D<\/p>\n<p>Computer1&gt; ping 2001::3<\/p>\n<p>&nbsp;&#8211; Computer sends a NS message to the Solicit Node Multicast addressed generated by the last 24 bits of the destinations IP address<\/p>\n<p>&nbsp;&#8211; The receiving computer responds back with a unicast NA message which contains the MAC address<\/p>\n<p><span style=\"font-weight: bold;\">Duplicate Address Detection (DAD)<\/span><\/p>\n<p>&nbsp;&#8211; Devices send NS to the multicast group that itself has joined asking for it&#8217;s own IPv6 address<\/p>\n<p>&nbsp;&#8211; If anyone else replies, then there is a conflict<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00a0&#8211; 128 bit address represented in HEX format<\/p>\n","protected":false},"author":1,"featured_media":853,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[40,31],"class_list":["post-857","post","type-post","status-publish","format-standard","hentry","category-ccie","tag-ipv6","tag-published"],"_links":{"self":[{"href":"https:\/\/feralpacket.org\/index.php?rest_route=\/wp\/v2\/posts\/857","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/feralpacket.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/feralpacket.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/feralpacket.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/feralpacket.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=857"}],"version-history":[{"count":1,"href":"https:\/\/feralpacket.org\/index.php?rest_route=\/wp\/v2\/posts\/857\/revisions"}],"predecessor-version":[{"id":966,"href":"https:\/\/feralpacket.org\/index.php?rest_route=\/wp\/v2\/posts\/857\/revisions\/966"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/feralpacket.org\/index.php?rest_route=\/wp\/v2\/media\/853"}],"wp:attachment":[{"href":"https:\/\/feralpacket.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=857"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/feralpacket.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=857"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/feralpacket.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=857"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}