IPv6 & IPv4 over PPP
In order to establish communication over a point-to-point link, each end of the point-to-point link first sends LCP packet to configure and test the data-link. After the link has been established and optional facilities are negotiated for LCP, PPP sends NCP packets to choose and configure one or more Network Layer protocols. Once each of the chosen network layer protocols have been configured, datagrams from each network layer protocol can be forwarded over the point-to-point link.
Network topology:
Here, IPv6 and IPv4 are running on a single point-to-point link between routers R1 & R2.
LCP Phase:
LCP phase is common for both IPv4 & IPv6. As soon as PPP is notified that physical-layer is UP, it sends and receives CONFREQ and CONFACK packets.
LCP Phase
00:40:37.887: Se0/0 LCP: Timeout: State REQsent00:40:37.887: Se0/0 LCP: O CONFREQ [REQsent] id 113 len 1000:40:37.887: Se0/0 LCP: MagicNumber 0x00351056 (0x050600351056)00:40:37.927: Se0/0 LCP: I CONFREQ [REQsent] id 5 len 1000:40:37.927: Se0/0 LCP: MagicNumber 0x013549D2 (0x0506013549D2)00:40:37.927: Se0/0 LCP: O CONFACK [REQsent] id 5 len 1000:40:37.931: Se0/0 LCP: MagicNumber 0x013549D2 (0x0506013549D2)00:40:37.951: Se0/0 LCP: I CONFACK [ACKsent] id 113 len 1000:40:37.951: Se0/0 LCP: MagicNumber 0x00351056 (0x050600351056)00:40:37.951: Se0/0 LCP: State is Open00:40:37.955: Se0/0 PPP: Phase is FORWARDING, Attempting Forward00:40:37.955: Se0/0 PPP: Phase is ESTABLISHING, Finish LCP00:40:37.959: Se0/0 PPP: Phase is UPNCP Phase:
RFC 2472 discusses IPv6 over PPP. Since IPv4 & IPv6 are configured on the link, PPP sends NCP packets for both network-layer protocols once LCP state is OPEN. For IPv4, the routers exchange IPCP (IP Control Packets) to negotiate options specific to IPv4. For IPv6, the routers exchange IPv6CP (IPv6 Control Packets) to negotiate options specific to IPv6. IPCP negotiates IPv4 address and IPv4 Compression protocol.
IPv4 NCP Phase
00:40:37.975: Se0/0 IPCP: I CONFREQ [REQsent] id 1 len 1000:40:37.979: Se0/0 IPCP: Address 10.1.1.2 (0x03060A010102)00:40:37.979: Se0/0 IPCP: O CONFACK [REQsent] id 1 len 1000:40:37.979: Se0/0 IPCP: Address 10.1.1.2 (0x03060A010102)00:40:38.023: Se0/0 CDPCP: I CONFACK [ACKsent] id 1 len 400:40:38.023: Se0/0 CDPCP: State is Open00:40:38.047: Se0/0 IPCP: I CONFACK [ACKsent] id 1 len 1000:40:38.047: Se0/0 IPCP: Address 10.1.1.1 (0x03060A010101)00:40:38.047: Se0/0 IPCP: State is OpenIPv6CP negotiates Interface-Identifier and IPv6 Compression protocol. An Interface-identifier is a unique 64-bit address obtained from the 48-bit MAC address of the interface by inserting FFFE in the middle. A Configure-Request packet (CONFREQ) contains exactly one instance of the interface-identifier. The interface-identifier must be unique for a PPP link.
IPv6 NCP Phase
00:40:37.971: Se0/0 IPV6CP: I CONFREQ [REQsent] id 1 len 1400:40:37.971: Se0/0 IPV6CP: Interface-Id C001:10FF:FE24:0000 (0x010AC00110FFFE240000)00:40:37.971: Se0/0 IPV6CP: O CONFACK [REQsent] id 1 len 1400:40:37.975: Se0/0 IPV6CP: Interface-Id C001:10FF:FE24:0000 (0x010AC00110FFFE240000)00:40:38.071: Se0/0 IPV6CP: I CONFACK [ACKsent] id 1 len 1400:40:38.071: Se0/0 IPV6CP: Interface-Id C000:10FF:FE24:0000 (0x010AC00010FFFE240000)00:40:38.071: Se0/0 IPV6CP: State is OpenUnlike IPv4, no IPv6 route is created for the PPP peer.
IPv4 & IPv6 routing table
R1# show ip route | begin GatewayGateway of last resort is not set 10.0.0.0/8 is variably subnetted, 2 subnets, 2 masksC 10.1.1.2/32 is directly connected, Serial0/0C 10.1.1.0/24 is directly connected, Serial0/0R1# show ipv6 routeIPv6 Routing Table - 4 entriesCodes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2C CAFE::/124 [0/0] via ::, Serial0/0L CAFE::1/128 [0/0] via ::, Serial0/0L FE80::/10 [0/0] via ::, Null0L FF00::/8 [0/0] via ::, Null0IPv6 Neighbor Discovery (ND) over PPP:
IPv6 router sends Neighbor Solicitation (NS) message to obtain link-layer address of the neighbor as well to provide its own link-layer address and to verify reachability to the neighbor. NS messages are multicast to all nodes multicast address FF02::1 to resolve an address and unicast to verify reachability.
Neighbor Advertisement (NA) messages are sent in response to NS messages to propogate immediate node changes like link-layer address.
Duplicate Address Detection (DAD) is performed for all IPv6 addresses.
IPv6 ND over PPP
00:40:38.075: ICMPv6-ND: DELETE -> INCMP: FE80::C001:10FF:FE24:000:40:38.075: ICMPv6-ND: INCMP -> REACH: FE80::C001:10FF:FE24:000:40:38.079: ICMPv6-ND: Sending NA for FE80::C000:10FF:FE24:0 on Serial0/000:40:38.083: ICMPv6-ND: Address FE80::C000:10FF:FE24:0/10 is up on Serial0/000:40:38.091: ICMPv6-ND: Sending NS for CAFE::1 on Serial0/000:40:38.095: ICMPv6-ND: Received NA for FE80::C001:10FF:FE24:0 on Serial0/0 from FE80::C001:10FF:FE24:000:40:38.959: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/0, changed state to up00:40:39.091: ICMPv6-ND: DAD: CAFE::1 is unique.00:40:39.091: ICMPv6-ND: Sending NA for CAFE::1 on Serial0/000:40:39.095: ICMPv6-ND: Address CAFE::1/124 is up on Serial0/000:40:39.103: ICMPv6-ND: Received NA for CAFE::2 on Serial0/0 from CAFE::2The following output shows IPv6 neighbor of R1 router after neighbor discovery.
IPv6 neighbor for R1
R1# show ipv6 neighborsIPv6 Address Age Link-layer Addr State InterfaceFE80::C001:10FF:FE24:0 - - REACH Se0/0