320 likes | 402 Views
Transition Mechanisms for Ipv6 Hosts and Routers RFC2893. By Michael Pfeiffer. Terminology. IP v4 only node IP v6 only node IP v4/IP v6 node IP v4 compatible IP v6 Address High order 96 bits prefix 0:0:0:0:0:0 Low order 32 bits are the IP v4 address. Techniques Used in the Transition.
E N D
Transition Mechanisms for Ipv6 Hosts and Routers RFC2893 By Michael Pfeiffer
Terminology • IP v4 only node • IP v6 only node • IP v4/IP v6 node • IP v4 compatible IP v6 Address • High order 96 bits prefix 0:0:0:0:0:0 • Low order 32 bits are the IP v4 address
Techniques Used in the Transition • IP v6-over-IP v4 tunneling • Configured tunneling • Automatic tunneling • IP v4 multicast tunneling
Dual IP Layer Operation • Modes of Operations for IP v4/v6 nodes • Both stack enabled • Disabling one or the other stacks • Tunneling techniques • None • Configured tunneling only • Both configured and automatic tunneling
Address configuration • IP v4/v6 node an have two addresses • IP v4 address • 32 bit address • Acquired using IP v4 addressing mechanisms • IP v6 address • 128 bit address • Acquired using IP v6 addressing mechanisms
Domain Name System • Ability to map between both IP versions • Example: What happen when IP v6 node requests a record that as been defined with a IP v4 address • The resolver libraries must be capable of handling both IP v6/IP v4 records
DNS • Returning records to IP v4/v6 nodes • Filtered • Return only IP v6 address • Return only IP v4 address • Ordered • Return both addresses • May change the order of addresses two influence the receiving node.
Addressing Addresses in the DNS • Before a IP v4/v6 record is added all of the following should be true: • The address is assigned to the interface on the node • The address is configured on the interface. • The interface is on a link which is connected to the IP v6 infastructure.
Common Tunneling Mechanisms • Will take a while to build up IP v6 infastructure so we need a means of sending packets • Tunneling is a way to use IP v4 infrastructure to send IP v6 packets • This is done by sticking a IP v6 packet into the body of a IP v4 packet.
Automatic Tunneling Host to Host Router to Host Types of tunneling • Configured Tunneling • Router to Router • Host to Router
Tunneling Configuration • 1st The encapsulating node creates an encapsulating IP v4 header and transmits • 2nd The decapsulating node receives the encapsulated packet, reassmebles the packet (if needed) , and removes the IP v4 header. • Note:(The primary diffence in tunneling scheme is how the determine the header packet end address.)
Encapsulation +-------------+ | IP v4 | | Header | +------------+ +-------------+ | IP v6 | | IP v6 | | Header | | Header | +------------+ +------------+ | Transport | ====> | Transport | | Layer | | Layer | | Header | | Header | +------------+ +------------+ | | | | | Data | | Data | | | | | +------------+ +------------+
Handling Fragments • What happens when a IP v6 packet is too big for the payload of IP v4 packet? • IP packet is fragmented and two or more packets are send? • This can be avoided in when the encapsulating node knows about the tunneling.
Fragmentation Problems • Fragmentation in tunneling not sent by the sending node • Resassembling packets at the router.
Reducing Fragmentation • Making packet small enough for additional IP v4 header • Using a IP v4 Path Discovery Protocal. • If you have a large number of tunnels then i might not be able to store all of them. • This will not completely elminate fragmentation but will reduce it.
Hop Limit • IP v6-over-IP v4 tunnels are considered as one hop. • This means the IP v6 hop limit is decremented by one at the end of each tunnel • This hide the existance of tunneling. • IP v6 header only gets used at the beginning and end of the tunnel.
ICMP Errors • Errors are sent to the encapsulating node • ICMP “packet too big” error is handled according to the path dicovery • Which will change the packet along the path • Handling of other errors depend of the size of the “packet in error” field sent back.
IP v4 Header for tunneling • Version field: 4 • IP header length in 32 bit words: 5 • Type of service: 0 • Note (work is underway to redefine the service byte , so this might be different in the future.) • Total Length: (Payload + IP v6 header + IP v4 header)
IP v4 Header Cont. • Identification: Generated uniquely as for any IP v4 packet transmitted by the system. • Flags: • Don't Fragment flag • More Fragmentsd flag • Fragment offset: set if there is a fragmentation • Time to Live: Set in implementation specific manner
IP v4 Header Cont. • Protocal: 41 (Assigned payload type number for IP v6) • Header checksum: calculated checksum for the IP v4 header • Source address: IP v4 address of encapsulating node • Destination address: IP v4 address at end of tunnel.
Decapsulation • Accurs when a node recieves a packet with it's IP v4 address and the protocal field is set to 41 • Reassembles packet if it was fragmented • IP v6 header will be untouched since it had been encapsulated • Hop limit will be decremented by one
Decapsulation • Decapsulating node performs IP v4 reassembly before decapsulating the IP v6 packet • Done to preserve all IP v6 options even if fragmented • Node must not forward on decapsulated packet unless explicitly configured too.
Discarding packets • The IP v4 header should be discarded • Node should silently discard packet with an invalid IP v4 source address (eg. Multicast, broadcast) • The node should also silently discard packets with invalid IP v6 source address
Link-Layer Addresses • Both configured and automatic tunneling must have link-local addresses so routing protocal can operate • The Interface Identifier should be the 32 bit address that is in the IP v4 header. • The IP v6 Link-Local address for IP v4 virtual interface is FE80::IP v4 address
Neighor Discovery • Automatic and unidirectional tunnels are condsider undictional • Neighor discovery is only used for formation of link local addresses • Bidirectional tunnels use Neighbor Unreachability Detection (NUD) Packets to setup a tunnel.
Configured Tunneling • Determination of which tunnel to use is done by routing table • Uses prefix mask and match technique • The Default Route
Configured Tunneling with IP v4 Anycast Address • Uses the Anycast Address to forward the IP v6 packet on • Receiving node treats the address as if it is it's own • After decapsulated transmits it toward the correct address • Could have problem with fragmentation
Automatic Tunneling • Allows IP v6/v4 nodes to communicate without pre-configured tunnels • Nodes using automatic tunneling are assigned IP v4 compatible addresses. • IP v4 address is globally unique as long as address is not for a private network.
Address Configuration • Will serve as both IP v4 and v6 addresses • Will acquire address through IP v4 address configuration protocols and then Map it to IP v6 address • DHCP, BOOTP, RARP, Manual, etc.
Automatic Tunneling Operations • Only used when endpoint address is an IP v4 compatible address • A special static routing table can be setup for automatic tunneling • Must not be sent to IP v4 broadcast or multicast destinations
Source Address cofiguration • Which format: • Native IP v6 • IP v4 compatible • Determines the type of traffic that will be returned.
Work sited • RFC 2893, http://www.faqs.org/rfc/rfc2893.html