As I’m looking at the Blueprints for the exam, these particular layer 2 WAN protocol is still included. Thus, having some knowledge of PPP is still necessary as I can see this are being ask in the Cisco exams.
For this particular post, I will be exploring the various options on how to enable PPP. As I transitions from using GNS3 to VIRL, I just realised while building my labs in VIRL that Serial interface interface is not supported thus defaulting to GNS3 to check how PPP works.
The scope is only to explore the various options of enabling PPP. Password Authentications will be explored on another post.

As a quick background , PPP have to consider the following phases and a matching parameters on each phases must be agreed in order for PPP sessions to be up.
- Link Control Protocols ( LCP)
- Authentication which is an optional parameter
- Network Control Protocol (NCP)
On LCP negotiations, there were 4 control messages that will be shown when a PPP debug is enable. This control messages includes:
- Configuration request
- Configuration reject
- Configuration-NAK or Negative acknowledgment
- Configuration-Acknowledgement
The various options of enabling PPP includes:
- Manual assigning of IP address on the interface
- Negotiated (meaning the peer will be assigning an IP address for the remote device)
- Using IP pool

Option 1: Manual assignment of IP address
R1 Configurations:

R2 Configurations:

So both R1 and R2 is assigned with the IP address with PPP encapsulations enable on both device. I have disabled the Serial interface in R1 and have enabled debug to check the LCP/NCP negotiations.


Jun 4 02:22:28.815: %LINK-3-UPDOWN: Interface Serial0/0, changed state to up
Jun 4 02:22:28.815: Se0/0 PPP: Using default call direction
Jun 4 02:22:28.819: Se0/0 PPP: Treating connection as a dedicated line
Jun 4 02:22:28.819: Se0/0 PPP: Session handle[9A000006] Session id[6]
Jun 4 02:22:28.819: Se0/0 PPP: Phase is ESTABLISHING, Active Open
Jun 4 02:22:28.819: Se0/0 LCP: O CONFREQ [Closed] id 6 len 10
Jun 4 02:22:28.823: Se0/0 LCP: MagicNumber 0x013B3A52 (0x0506013B3A52)
Jun 4 02:22:28.863: Se0/0 LCP: I CONFREQ [REQsent] id 22 len 10
Jun 4 02:22:28.863: Se0/0 LCP: MagicNumber 0x023A82E6 (0x0506023A82E6)
Jun 4 02:22:28.863: Se0/0 LCP: O CONFACK [REQsent] id 22 len 10
Jun 4 02:22:28.863: Se0/0 LCP: MagicNumber 0x023A82E6 (0x0506023A82E6)
Jun 4 02:22:28.867: Se0/0 LCP: I CONFACK [ACKsent] id 6 len 10
Jun 4 02:22:28.867: Se0/0 LCP: MagicNumber 0x013B3A52 (0x0506013B3A52)
Jun 4 02:22:28.867: Se0/0 LCP: State is Open
Jun 4 02:22:28.871: Se0/0 PPP: Phase is FORWARDING, Attempting Forward
Jun 4 02:22:28.871: Se0/0 PPP: Discarded CDPCP code[1] id[1]
Jun 4 02:22:28.871: Se0/0 PPP: Queue IPCP code[1] id[1]
Jun 4 02:22:28.871: Se0/0 PPP: Phase is ESTABLISHING, Finish LCP
Jun 4 02:22:28.875: Se0/0 PPP: Phase is UP
Jun 4 02:22:28.875: Se0/0 IPCP: O CONFREQ [Closed] id 1 len 10
Jun 4 02:22:28.875: Se0/0 IPCP: Address 192.168.12.1 (0x0306C0A80C01)
Jun 4 02:22:28.879: Se0/0 CDPCP: O CONFREQ [Closed] id 1 len 4
Jun 4 02:22:28.879: Se0/0 PPP: Process pending ncp packets
Jun 4 02:22:28.879: Se0/0 IPCP: Redirect packet to Se0/0
Jun 4 02:22:28.879: Se0/0 IPCP: I CONFREQ [REQsent] id 1 len 10
Jun 4 02:22:28.879: Se0/0 IPCP: Address 192.168.12.2 (0x0306C0A80C02)
Jun 4 02:22:28.883: Se0/0 IPCP: O CONFACK [REQsent] id 1 len 10
Jun 4 02:22:28.883: Se0/0 IPCP: Address 192.168.12.2 (0x0306C0A80C02)
Jun 4 02:22:28.883: Se0/0 CDPCP: I CONFACK [REQsent] id 1 len 4
Jun 4 02:22:28.883: Se0/0 IPCP: I CONFACK [ACKsent] id 1 len 10
Jun 4 02:22:28.883: Se0/0 IPCP: Address 192.168.12.1 (0x0306C0A80C01)
Jun 4 02:22:28.883: Se0/0 IPCP: State is Open
Jun 4 02:22:28.887: Se0/0 IPCP: Install route to 192.168.12.2
Jun 4 02:22:29.875: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/0, changed state to up
Jun 4 02:22:30.871: Se0/0 CDPCP: Timeout: State ACKrcvd
Jun 4 02:22:30.871: Se0/0 CDPCP: O CONFREQ [ACKrcvd] id 2 len 4
Jun 4 02:22:30.883: Se0/0 CDPCP: I CONFACK [REQsent] id 2 len 4
Jun 4 02:22:30.907: Se0/0 CDPCP: I CONFREQ [ACKrcvd] id 2 len 4
Jun 4 02:22:30.907: Se0/0 CDPCP: O CONFACK [ACKrcvd] id 2 len 4
Jun 4 02:22:30.907: Se0/0 CDPCP: State is Open
Dissecting the PPP Negotiations as follows:
LCP Phase
- The moment I enabled the interface on R1, we could see the first Phase – ESTABLISHMENT PHASE
- R1 is sending an outgoing Configuration Request (O means outgoing) which is tracked with an id 6 and it also received an incoming ( I means Incoming) Configuration Request from R2 with an id 22.
- R1 have sent out a Configuration ACK to R2 in response to the Configurations Request (id 22)
- R1 has also received an Incoming Configuration ACK from R2.
- As both have matching parameters ( simple because we did not set any password authentications) , LCP state is OPEN
NCP PHASE
- Thus PPP have moved to the second phase is the FORWARDING PHASE.
- Network Control Protocol (NCP) uses CDP ( in PPP it shows as CDPCP) to learned about the neighboring devices and it uses another protocol called IPCP to negotiates or learned about the IP address.


OPTION 2. Using “ip address negotiated”
R2 configurations.
The peer default ip address is used to set the IP address of the peer router.


Configuring R1:
So basically, in order for R1 to obtain an IP address, the “ip address negotiated” is configure under interface mode. As notice there is no IP address assigned on Serial interface.

Upon assigning the statement “ip address negotiated on R1”, PPP negotiations started with IPCP messages .
I’m running a “debug ppp negotiation ” on R1 to observed the negotiations.

From the output above, the IP address 192.168.12.1 is installed on the serial interface of R1 and PPP encapsulations is enabled.


OPTIONS 3. USING IP POOL
High level steps:
- Configure an IP pool from which the interface IP address will be allocated. In my example, I’m going to configure this on R2.
- On R2, Set the peer default ip address to the ip pool created
- On R1, keep the ip address negotiated

For R1, I have set “ip address negotiated”

In order to assigned the address on R1, I have to bounce the links between R1 and R2 …What I notice is that when I only shutdown the serial link on R1, it still inherits the previous IP address assigned. This could be observed on this debug output,


Upon unshutting the serial interface in R1, I could start observing PPP negotiations again and the IP pool address which I have set up in R2 were assigned on R1.



###############END OF LAB ###############################
Leave a comment