You are on page 1of 46

INTERNET PROTOCOL

VERSION 6

IPv4 Workarounds

IPv4 is 32 bit address (provide 4.2 billion


address)
In order to extend the lifetime and usefulness
of IPv4 and circumvent address shortage,
several mechanisms were created:

CIDR
NAT
VLSM
DHCP

IPv4 & IPv6 header

IPv6 header
Version

Traffic Class
Payload Length

Flow Label
Next Header

Hop Limit

Source Address

40
octets
Destination Address

Next Header

Extension Header Info

Data Portion

32 bits

Variable
length

Extension Header
Order
Extension headers should be constructed in sequence to
minimize packet handling. Extension headers should be
sequenced in this order:
Hop-by-hop header
Destination options header (when routing header present)
Routing header
Fragment header
Authentication header
ESP header
Mobility header
Destination options header (when routing header not
present)
Upper-layer header

IPv6 overview
IPv6, formerly named IPng (next generation).
128 bit broken down into 32 (4-bit) hex
characters.
IPv6 addresses are represented as a series of
16-bit hexadecimal fields separated by colons
(:) in the format:
x:x:x:x:x:x:x:x
examples of IPv6 addresses:
2001:DB8:7654:3210:FEDC:BA98:7654:3210
2001:DB8:0:0:8:800:200C:417A

Address
Representation
Format:
x:x:x:x:x:x:x:x, where x is a 16-bit hexadecimal field
2001:0DB8:010F:0001:0000:0000:0000:0ACD
Leading zeros in a field are optional.
2001:DB8:10F:1:0:0:0:ACD
Successive fields of 0 are represented as :: but only
once in an address.
2001:DB8:10F:1::ACD

Address
Representation
(Cont.)
Example:
Address:

2001:0DB8:0000:0000:FFFF:0000:0000:0ADC

The following are good representations:


2001:db8::FFFF:0:0:ADC
2001:db8:0:0:FFFF::ADC

The following is an incorrect representation:


2001:db8::FFFF::ADC

In a URL, the address is enclosed in


brackets.
http://[2001:DB8:1003::f]:8080/index.html

Address Representation
(Cont.)
Further examples:

FF02:0:0:0:0:0:0:1
=> FF02::1
FF15:0:0:0:0:0:1:c001 => FF15::1:c001
0:0:0:0:0:0:0:1 => ::1
0:0:0:0:0:0:0:0 => ::

Format:
IPv4-compatible:
0:0:0:0:0:0:192.0.2.100
= ::192.0.2.100
= ::C000:0264

IPv4-mapped:
0:0:0:0:0:FFFF:192.0.2.100
= ::FFFF:C000:0264

Unicast
Unicast addresses are used in a one-to-one
context.
IPv6 unicast addresses:
Global unicast addresses
Link-local addresses
Unique local addresses
Special-purpose unicast
Unspecified
Loopback
IPv4-compatible
IPv4-mapped

Link-Local Addresses
128 Bits
0
1111 1110 10

Interface ID

64 Bits

FE80::/10

10 Bits

Link-local addresses:
Have a scope limited to the link
Are automatically configured with the interface ID

Unique Local Unicast


Addresses

Prefix

Locally Generated

Interface

8 Bits

40 Bits

64 Bits

Global ID

Interface ID

FD00::/
8

Unique local unicast addresses are addresses for


local use only.

Global Unicast
Addresses

global address is an IPv6 address from the aggregatable


global unicast prefix.

Unspecified and Loopback


Addresses

Unspecified address:
0:0:0:0:0:0:0:0
Used as a placeholder when no address is
available
(initial DHCP request, DAD)

Loopback address:
0:0:0:0:0:0:0:1
Same as 127.0.0.1 in IPv4
Identifies self

IPv4-Compatible
Addresses
80 Bits
0

16 bits

32 Bits

FFFF IPv4 Address


0:0:0:0:0:FFFF:192.0.2.100
= ::FFFF:192.0.2.100
= ::FFFF:C000:0246

IPv4-mapped addresses are used to


represent the addresses of IPv4 nodes as
IPv6 addresses.

Multicast
Addresses
112 Bits

Group ID

1111 1111
F
F
8 Bits

Flags

Scope

Flags =

8 Bits
Scope =

4 Bits = 0 if permanent
=1 if temporary
1 = interface-local
2 = link-local
3 = subnet-local
4 = admin-local
5 = site-local
8 = organization
E = global

Multicast is used in the context of one-tomany. A multicast scope is new in IPv6.

Multicast Assigned
Addresses
FF0X:: is reserved (X = 0..F).
Inside this range, the following are assigned
Meaning

Scope

FF02::1

All nodes

Link-local

FF02::2

All routers

Link-local

FF02::9

All RIP routers

Link-local

FF02::1:FFXX:XXXX

Solicited-node

Link-local

FF05::101

All NTP servers

Site-local

Anycast Addresses

n Bits
Prefix

Anycast:

128-n Bits
Interface ID

Used in the context of one-to-nearest


Assigned to more than one interface
Allocated from the unicast address space

Enabling IPv6 on Cisco


Routers

To enable IPv6 on Cisco IOS routers, enable


IPv6 unicast packet forwarding.
router(config)#
ipv6 unicast-routing
Enables IPv6 traffic forwarding

IPv6 Address
Configuration
The ipv6 address command:
Enables IPv6 on the interface
Configures the interface IPv6 addresses

router(config-if)#
ipv6 enable
ipv6 address <ipv6prefix>/<prefix-length> [eui-64]
ipv6 unnumbered <interface>
ipv6 address <fe80:ipv6addr> [link-local]

ICMPv6
Next Header = 58
ICMPv6 Packet

IPv6 Basic Header

ICMPv6 Packet

ICMPv6 Type

ICMPv6 Code

ICMPv6
Packet

Checksum

ICMPv6 Data

ICMPv6 is similar to ICMPv4:


Provides diagnostic and error messages
Used for path MTU discovery

Path MTU Discovery


Source

Destination
MTU =
1500

MTU =
1500

Packet with MTU = 1500


ICMP error: packet too big
Use MTU = 1400
Packet with MTU = 1400
ICMP error: packet too big
Use MTU = 1300
Packet with MTU = 1300

Path MTU = 1300

MTU =
1400

MTU =
1300

IPv6 over Data Link


Layers
IPv6 is defined for most data link layers:
Ethernet
PPP
FDDI
Token Ring
HDLC
Nonbroadcast multiaccess
ATM
Frame Relay
IEEE 1394

IPv6 over Ethernet

Destination
Ethernet
Address

Source
Ethernet
Address

0x86DD

IPv6 Header and Payload

IPv6 has a specific Ethernet protocol ID that


is different from the protocol ID in IPv4.

Neighbor Discovery
Neighbor discovery:

Queries for duplicate address detection


Determines the link layer address of a neighbor on
the same link
Finds neighbor routers on link

Achieved by using ICMPv6 with IPv6 multicast

Solicited-Node Multicast
Address
IPv6 Address
Prefix

Interface ID
24 Bits

Solicited-Node Multicast Address


FF02

0001

FF

Lower 24

128 Bits

Solicited-node address:
Multicast address with a link-local scope
Formed by a prefix and the rightmost 24 bits of
every unicast and anycast address

Multicast Mapping over


Ethernet

IPv6 Address

2001 0DB8 1001 000F 02C0 10FF FE 17 FC0F

IPv6 SolicitedNode Multicast


Address

FF02 0000 0000 0000 0000 0001 FF17 FC0F


Corresponding
Ethernet Address
Multicast Prefix
for Ethernet
Multicast

33

33

FF

17

FC

0F

Duplicate Address
Detection
A

ICMP type = 135


Src = 0 (::)
Dst = solicited-node
multicast of Data = link-layer
address of A
Query = What is your link
address?

DAD uses neighbor solicitation to verify the existence of


an address to be configured.

Neighbor Discovery:
Neighbor Solicitation
A

ICMP type = 135


Src = A
Dst = solicited-node multicast of B
Data = link-layer address of A
Query = What is your
link address?

ICMP type = 136


Src
=B
Dst = A

Data = linkA and B can now exchange


layer
packets on this link.
address of B

Neighbor Discovery:
Autoconfiguration
Autoconfiguration
Stateless
Uses neighbor discovery router advertisements

Stateful
Uses DHCPv6 service

Cisco IOS debug


Commands
debug ipv6 packet

IPv6 packet-level debugging


debug ipv6 icmp

ICMPv6 debugging
debug ipv6 nd

Neighbor discovery debugging


debug ipv6 routing

IPv6 routing table event debugging

RIPng for IPv6


Same as IPv4:

Distance vector
Radius of 15 hops
Split horizon, poison reverse, and so on
UDP port 521
Based on RIPv2

Updated RIPng features for IPv6:

IPv6 prefix, next-hop IPv6 link-local address, next-hop


interface
Uses the all-RIP-routers multicast group, FF02::9,
as the destination address for RIP updates
Uses IPv6 for transport
Enabled per-interface, not per-network

Cisco IOS RIPng


Commands
router(config)#
ipv6 router rip <tag>
Creates and enters RIP router submode
router(config-rtr)#
redistribute static | bgp | rip <tag>
Redistributes routes from other routing processes
router(config-if)#
ipv6 rip <tag> enable
Configures RIP on an interface
router(config-if)#
ipv6 rip <tag> default-information originate
Originates the default route (::/0) from an interface

Cisco IOS RIPng Commands


(Cont.)
router#
show ipv6 rip
Displays status of the various RIP processes
router#
show ipv6 rip database
Displays the RIP database
router#
show ipv6 route rip
Shows RIP routes in the IPv6 route table
router#
debug ipv6 rip
Displays RIP packets sent and received

OSPFv3

OSPFv3 for IPv6 supports the same basic


mechanisms as OSPFv2 for IPv4, including
the use of areas to provide network
segmentation and LSAs to exchange routing
updates.
OSPFv3 for IPv6 supports new multicast
address for routing updates, features two new
LSA types, and uses link-local addresses to
source LSAs.
OSPFv3 is configured per-interface on Cisco
routers.

OSPFv3

AllSPFRouters multicast address is FF02::5


AllDRouters multicast address is FF02::6
Two LSAs have been renamed:
Interarea Prefix LSAs (Type 3)
Interarea Router LSAs (Type 4)

Two new LSAs have been added to OSPFv3:


Link LSAs (Type 8)
Intra-Area Prefix LSAs (Type 9)

OSPFv3 Configuration
Commands
router(config)#
ipv6 router ospf process-id
Creates an OSPFv3 routing process
router(config-rtr)#
Area [area-id] range {ipv6-prefix/ prefix-length}[advertise |
not-advertise] [cost cost]
Consolidates and summarizes routes at an area boundary
router(config-if)#
ipv6 ospf process-id area area-id [instance instance-id]
Enables OSPF for IPv6 on an interface

OSPFv3 Troubleshooting
Commands
router#
show ipv6 ospf [process-id][area-id] interface [int]
Displays OSPF-related interface information
router#
show ipv6 ospf [process-id] [area-id]
Displays general information about OSPF processes
router(config-if)#
clear ipv6 ospf [ process-id] {process |force-spf |
redistribution | counters [neighbor [neighbor-interface]]}
Triggers SPF recalculations

OSPFv3 Advanced
Configuration Commands
router(config-if)#
ipv6 ospf authentication ipsec spi spi md5 [key-encryptiontype] key | null
Configures authentication between OSPF routers
router(config-if)#
ipv6 ospf neighbor [ipv6-address] [priority-number] [pollinterval seconds] [cost number] [database-filter all out]
Manually configures an OSPF neighbor

EIGRP for IPv6

Enhanced IGRP:
Advanced distance vector mechanism with some features
common to link-state protocols
Uses protocol-dependent modules to support multiple
protocols:
IPv4
IPX
Appletalk

Easy to configure
Fast convergence
Supports IPv6 as a separate routing context

EIGRP Components

Neighbor discovery
Reliable transport protocol
DUAL finite-state machine
Protocol-dependent modules
Updates sent to reserved link-local multicast
address FF02::A

Cisco IOS EIGRP for IPv6


Commands
router(config)#
ipv6 router eigrp <as-number>
Creates and enters EIGRP router submode
router(config-rtr)#
no shutdown
Starts EIGRP for IPv6 without changing interface
router(config-if)#
ipv6 eigrp <as-number>
Configures EIGRP for IPv6 on an interface
router(config-if)#
ipv6 bandwidth-percent eigrp <as-number> <percent>
Configures the percentage of bandwidth EIGRP uses

Cisco IOS EIGRP for IPv6


Commands (Cont.)
router#

show ipv6 eigrp topology


Displays entries in the EIGRP IPv6 topology table
router#

show ipv6 eigrp neighbors


Displays the neighbors discovered by EIGRP for IPv6
router#

show ipv6 route eigrp


Shows EIGRP routes in the IPv6 routing table
router#

debug ipv6 eigrp


Displays information about EIGRP for IPv6 protocol

BGP4+

Multiprotocol extensions for BGP4:


Enables other protocols besides IPv4
New identifier for the address family

IPv6-specific extensions:
Scoped addresses: NEXT_HOP contains a global IPv6
address and potentially a link-local address (only
when there is
link-local reachability with the peer).
NEXT_HOP and NLRI are expressed as IPv6 addresses
and prefixes in the multiprotocol attributes.

Cisco IOS Link-Local BGP


Peering Commands
Link-local IPv6 address can be used instead of the sitelocal
or global address.
The following must be configured:

router(config-router)#

neighbor <ipv6-address> update-source <interface>

Identifies interface using update-source command


router(config-route-map)#

set ipv6 next-hop <ipv6-address>

Applies a route map to set the global address in the


NEXT_HOP attribute

Cisco IOS BGP4+


Configuration Example
Router1

Router2

Autonomous
System 65001

Autonomous
System 65002

2001:db8:c18:2:1::F

2001:db8:c18:2:1::1

Router1#
interface Ethernet0
ipv6 address 2001:DB8:C18:2:1::F/64
router bgp 65001
no bgp default ipv4-unicast
bgp router-id 11.12.30.1
neighbor 2001:DB8:C18:2:1::1 remote-as 65002
address-family ipv6
neighbor 2001:DB8:C18:2:1::1 activate
neighbor 2001:DB8:C18:2:1::1 prefix-list peer65002 in
neighbor 2001:DB8:C18:2:1::1 prefix-list peer65002 out
exit-address-family

You might also like