Networking, Security & Cloud Knowledge

Saturday, August 25, 2012

Understanding IPv6 Address

Introduction:


RIR (Regional Internet Registries)

1. RIPE NCC

2. AfriNIC

3. APNIC

4. ARIN

5. LACNAC





Time line:

• 3rd FEB 2011 last remaining /8 pools were allocated amongest the five Regional Internet Registries

• 15th APR 2011 APNIC pool consist of the final /8 block



Why to move to IPv6

• ipv4 address pool exhausted

• NGN capabilities to defence

• Govt. mandates

• cable market address scaling

• population densities in APAC

• 4G deployments

• connects people and things not only computer



When enterprise will deploy Ipv6

• They have an application requirement to drive it

• Their presence on the Internet is compromised by lack of IPv6 access

• The price of an IPv4 address exceeds the hardware cost to route it





Ipv6 Introduction

• IPv6 addresses are 128 bits long

o Segmented into 8 groups of four HEX characters (called HEXtets) Separated by a colon (:)



• Default is 50% for network ID, 50% for interface ID

o Network portion is allocated by Internet registries 2^64 (1.8 x 1019),Still leaves us with ~ 3 billion network prefixes for each person on earth



340,282,366,920,938,463,374,607,432,768,211,456

(IPv6 Address Space - 340 Trillion Trillion Trillion)

vs

4,294,967,296

(IPv4 Address Space - 4 Billion)

• Abbreviations are possible

Only Leading zeros in contiguous block could be represented by (::)

2001:0db8:0000:130F:0000:0000:087C:140B

2001:0db8:0:130F::87C:140B

Double colon can only appear once in the address



• IPv6 uses CIDR representation

IPv4 address looks like 98.10.0.0/16

IPv6 address is represented the same way 2001:db8:12::/48

Notation must be represented in 16 bit blocks irrespective of the mask e.g. FE80::/10, or FF00::/8



• Addresses are assigned to interfaces



• An IPv6 interface is “expected” to have multiple addresses and multiple scopes



• Addresses have scope

o Link Local

o Unique Local

o Global



• Addresses have lifetime

o Valid and preferred lifetime





IPv6 Address

•Loopback address representation

0:0:0:0:0:0:0:1 == ::1 Same as 127.0.0.1 in IPv4 Identifies self



•Unspecified address representation

0:0:0:0:0:0:0:0 == ::

Used as a placeholder when no address available (Initial DHCP request, Duplicate Address Detection DAD)

NOT the default route



•Default Route representation

::/0







IPv6 Address Types

Three types of unicast address scopes

• Link-Local – Non routable exists on single layer 2 domain (FE80::/64)

o FE80:0000:0000:0000:xxxx:xxxx:xxxx:xxxx



• Unique-Local – Routable within administrative domain (FC00::/7)

o FCgg:gggg:gggg:ssss:xxxx:xxxx:xxxx:xxxx

o FDgg:gggg:gggg:ssss:xxxx:xxxx:xxxx:xxxx



• Global – Routable across the Internet (2000::/3)

o 2ggg:gggg:gggg:ssss:xxxx:xxxx:xxxx:xxxx

o 3ggg:gggg:gggg:ssss:xxxx:xxxx:xxxx:xxxx







Multicast addresses (FF00::/8)

• FFzs: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx

o Flags (z) in 3rd nibble (4 bits) Scope (s) into 4th nibble







IPv6 Addressing Types Summary: (Represented in Binary and Hex)

Type Binary Hex

Global Unicast Address 001 2 or 3

Link Local Unicast Address 1111 1110 10 FE80::/10

Unique Local Unicast Address 1111 1100 1111 1101 FC00::/7 FC00::/8(registry) FD00::/8 (no registry)

Multicast Address 1111 1111 FF00::/16

Solicited Node Multicast FF02::1:FF00/104





Allocation Process

IANA 2000::/3

Registries 2000::/12

ISP 2000:/32

Enterprise 2000:/48



Global Unicast Address Interface ID

• Interface ID unicast address may be assigned in different ways

o Auto-configured from a 64-bit EUI-64 or expanded from a 48-bit MAC

o Auto-generated pseudo-random number (to address privacy concerns)

o Assigned via DHCP

o Manually configured



• EUI-64 format to do stateless auto-configuration

o Expands the 48 bit MAC address to 64 bits by inserting FFFE into the middle

o To ensure chosen address is from a unique Ethernet MAC address

o The universal/local ( “u” bit) is set to 1 for global scope and 0 for local scope





• IPv6 Interface Identifier (EUI-64 format)

o Cisco uses the EUI-64 format to do stateless auto-configuration

o This format expands the 48 bit MAC address to 64 bits by inserting FFFE into the middle 16 bits

o To make sure that the chosen address is from a unique Ethernet MAC address, the universal/local (“u” bit) is set to 1 for global scope and 0 for local scope

o Cisco devices ‘bit-flip’ the 7th bit







• Link-Local Address

1111 1110 10

FE80::/10

o Mandatory for communication between two IPv6 devices

o Automatically assigned by device using EUI-64

o Also used for next-hop calculation in routing protocols

o Only link specific scope

o Remaining 54 bits could be zero or any manually configured





• Unique Local Address (RFC 4193)

o 1111 110L

o FC00::/7

o ULA are “like” RFC 1918 – not routable on Internet

o ULA uses include

 Local communications

 Inter-site VPNs (Mergers and Acquisitions)

o FC00::/8 is Registry Assigned (L bit = 0), FD00::/8 is self generated (L bit = 1)

 Registries not yet assigning ULA space, http://www.sixxs.net/tools/grh/ula/

o Global ID can be generated using an algorithm

 Low order 40 bits result of SHA-1 Digest {EUI-64 && Time}





• IPv6 Multicast Address (RFC 4291)

o An IPv6 multicast address has the prefix FF00::/8 (1111 1111)







Well Known Multicast Addresses





Address Scope Meaning

FF01::1 Node-Local All Nodes

FF01::2 Node-Local All Routers

FF02::1 Link-Local All Nodes

FF02::2 Link-Local All Routers

FF02::5 Link-Local OSPFv3 Routers

FF02::6 Link-Local OSPFv3 DR Routers

FF02::1:FFXX:XXXX Link-Local Solicited-Node





• Solicited-Node Multicast Address

o For each Unicast and Anycast address configured there is a corresponding solicited-node multicast (Layer 3 address)

o Used in neighbor solicitation (NS) messages

o Multicast address with a link-local scope

o Solicited-node multicast consists of

o FF02::1:FF & {lower 24 bits from IPv6 Unicast interface ID}



IPv6 Interface example





Header comparison



IPv6 unique local address


Site-Local Addresses

• First stab at having a private address space range for our internal organizations

• Similar to RFC 1918 for IPv4.

• This address space was defined in RFC 3513

• Being in the range FEC0::/10.

• Basically what this means is that the first 12 bits of the address had to look something like this:

o 1111 1110 11xx

o [ F ] [ E ] [C-F]

The site-local address was the first attempt at letting network admins assign their own private addressing for their “sites.” The issues with it were that the term “site” was somewhat ambiguous. Nobody could really agree on what a “site” was. Secondly, there was no guarantee that no two sites within the same organization would not end up using overlapping site addressing due to carelessness or whatever else. Site-Local addresses went to sleep permanently when deprecated officially in RFC 3879.

Unique-Local Addresses (Replaces Site local address)

• Unique-Local addresses have officially replaced site-local addresses.

• There are really two different “flavors.” Unique-Local Addresses (ULA) are defined in RFC 4193

• They are given the range FC00::/7.

• Basically your first 8 bits will look like this:

o 1111 110x

o [F ] [C-D]

• Overall, your unique-local address will look something like this:

o F[C-D]xx:xxxx:xxxx:yyyy:zzzz:zzzz:zzzz:zzzz

 It starts with either FC or FD in hexadecimal.

 The string of ‘x’s there represents what we call our “global-id” which would describe your company and is 40 bits long.

 The string of ‘y’s represent what we call the “subnet-id” which describes the sites within your company and is 16 bits long.

 The string of ‘z’s is the remaining 64 bits that represent a host.

 So essentially you have a 40-bit value that represents your company and 16 bits to play with for subnetting (which gives you up to 65,535 /64 subnets).

We have this FC00::/7 range. Basically some people thought the 40-bit global-id should be something centrally assigned by a registrar of sorts (similar to ARIN). The addresses would still not be routable on the public internet, but would be controlled by a trusted third party registrar. The reasoning was so that it was guaranteed that no two sites within an organization would ever get overlapping ranges.

On the other hand, other people didn’t like the idea of having private addresses allocated to them. Therefore, what they did was a compromise.

They took this massive FC00::/7 range and broke it up into two individual /8’s – FC00::/8 and FD00::/8 and each one works a bit differently.

Unique-Local Locally-Assigned Addresses (FD00::/8)

The people that do not want their private addresses assigned to them by a third party get this range. The kicker is that in the RFC the way that 40-bit global-id get’s picked is still not really Supposed to be up to you. It is a randomly generated number (at least “pseudo-random”). So, with FD00::/8 you get something like this

FDxx:xxxx:xxxx:yyyy:zzzz:zzzz:zzzz:zzzz

Where string of ‘x’s is still the global-id and is 40-bits long…it is just randomly generated, or at least SHOULD be. The rest is the same…we still have 16 bits for subnetting and a /64 host address

Unique-Local Centrally-Assigned Addresses (FD00::/8)

The people that were for the private addresses being centrally assigned by some sort of registrar get the FC00::/8 range. Now, as of right now this organization that is supposed to hand out the addresses really doesn’t exist yet, the concept is similar except now you have something like this:

FCxx:xxxx:xxxx:yyyy:zzzz:zzzz:zzzz:zzzz

Where string of ‘x’s is still the global-id and is 40-bits long. The rest is the same…we still have 16 bits for subnetting and a /64 host address





IPv6 Lab in GNS3

IPv6 test lab on GNS to Demontrate following
  1. Dual Stack
  2. MP BGP to enabel IPv6 routing
  3. HSRPv2
  4. IPv6 Autoconfiguration


IOS used: c3745-advipservicesk9-mz.124-15.T7



Setup description:

IP address / subnet details

• IPv4

o 192.168.1.0 /24 R1-R2-R3 LAN

o 192.168.3.0/24 between R1 & R4

o 192.168.5.0/24 between R2 & R4

o 192.168.4.0/24 R4 loopback

o R1 & R2 running hsrp group 2 with virtual ip 192.168.1.1



• IPv6

o 2001::/64 R1-R2-R3 LAN

o 2003::/64 between R1 & R4

o 2005::/64 between R2 & R4

o 2004::/64 R4 loopback

o R1 & R2 running hsrp v2 group 1 with auto-configured virtual ip





• BGP detail

o R1 & R2 running ibgp within AS 10

o R4 is AS 40 is running eBGP with R1 & R2 in AS 10 respectively

o R3 is used like end host with default route.



-----------------------------------------------------------------------------------------------------------


R3 Configuration

Hostname R1

!

ipv6 unicast-routing

!

interface FastEthernet0/0

ip address 192.168.1.3 255.255.255.0

duplex auto

speed auto

ipv6 address autoconfig default

end

!

ip route 0.0.0.0 0.0.0.0 192.168.1.1

!

-----------------------------------------------------------------------------------------------------------

R1 configuration

Hostname R2

!

ipv6 unicast-routing



!

interface FastEthernet0/0

ip address 192.168.1.2 255.255.255.0

duplex auto

speed auto

ipv6 address 2001::1/64

standby version 2

standby 1 ipv6 autoconfig

standby 1 priority 110

standby 1 preempt

standby 1 track FastEthernet0/1 20

standby 2 ip 192.168.1.1

standby 2 priority 110

standby 2 preempt

standby 2 track FastEthernet0/1 20

end

!



interface FastEthernet0/1

ip address 192.168.3.2 255.255.255.0

duplex auto

speed auto

ipv6 address 2003::2/64

end



!

router bgp 10

no synchronization

bgp router-id 1.1.1.1

bgp log-neighbor-changes

network 192.168.1.0

neighbor 2001::2 remote-as 10

neighbor 2003::1 remote-as 40

neighbor 192.168.1.3 remote-as 10

neighbor 192.168.3.1 remote-as 40

no auto-summary



!

address-family ipv6

neighbor 2001::2 activate

neighbor 2003::1 activate

network 2001::/64

exit-address-family

!

------------------------------------------------------------------------------------------------------------

R2 Configuration



Hostname R2

!

ipv6 unicast-routing

!

interface FastEthernet0/0

ip address 192.168.1.3 255.255.255.0

duplex auto

speed auto

ipv6 address 2001::2/64

standby version 2

standby 1 ipv6 autoconfig

standby 1 preempt

standby 2 ip 192.168.1.1

standby 2 preempt

!

interface FastEthernet0/1

ip address 192.168.5.2 255.255.255.0

duplex auto

speed auto

ipv6 address 2005::2/64

!

router bgp 10

no synchronization

bgp router-id 2.2.2.2

bgp log-neighbor-changes

network 192.168.1.0

neighbor 2001::1 remote-as 10

neighbor 2005::1 remote-as 40

neighbor 192.168.1.2 remote-as 10

neighbor 192.168.5.1 remote-as 40

no auto-summary

!

address-family ipv6

neighbor 2001::1 activate

neighbor 2005::1 activate

exit-address-family

!

------------------------------------------------------------------------------------------------------------

R4 configuration

!

Hostname R4

!

ipv6 unicast-routing

!

interface Loopback0

ip address 192.168.4.1 255.255.255.0

ipv6 address 2004::1/64

!

interface FastEthernet0/0

ip address 192.168.3.1 255.255.255.0

duplex auto

speed auto

ipv6 address 2003::1/64

!

interface FastEthernet0/1

ip address 192.168.5.1 255.255.255.0

duplex auto

speed auto

ipv6 address 2005::1/64

!

router bgp 40

no synchronization

bgp router-id 4.4.4.4

bgp log-neighbor-changes

network 192.168.3.0

network 192.168.4.0

network 192.168.5.0

neighbor 2003::2 remote-as 10

neighbor 2005::2 remote-as 10

neighbor 192.168.3.2 remote-as 10

neighbor 192.168.5.2 remote-as 10

neighbor 192.168.5.2 route-map PREPEND out

no auto-summary

!

address-family ipv6

neighbor 2003::2 activate

neighbor 2005::2 activate

neighbor 2005::2 route-map PREPEND out

network 2003::/64

network 2004::/64

network 2005::/64

exit-address-family

!

route-map PREPEND permit 10

set as-path prepend 40 40 40

------------------------------------------------------------------------------------------------------------


Show commands:



R1 output







R2 output


R4 output


------------------------------------------------------------------------------------------------------------

Commands:

1 To clear ipv6 bgp neighbor

clear bgp ipv6 unicast x:x:x:x::x