Default routing with PPP

Creating a default route within a standard PPP link is not complex, but it is not obvious either. We are not running an IGP, so we cannot redistribute a static default route, nor can we do, say, “default-information originate”. However, it is just a one-line command, you just need to know what you are looking for!

We start with a couple of routers.

PPP default routing

The goal will be for R1 to have a default route in it’s routing table, pointing to R2. We start with a basic config:

R1(config)#int s3/0
R1(config-if)#no shut
R1(config-if)#encapsulation ppp
R1(config-if)#ip add

R2(config)#int s3/0
R2(config-if)#encap ppp
R2(config-if)#ip add
R2(config-if)#no shut

Now we need R1 to have a default route. We do not have an IGP running between the two, so we cannot do any redistribution or anything like that. We need to look at R1 and see what options we have.

R1(config-if)#ppp ?
  accm              Set initial Async Control Character Map
  accounting        Set PPP network accounting method
  acfc              Options for HDLC Address & Control Field Compression
  authentication    Set PPP link authentication method
  authorization     Set PPP network authorization method
  bcp               Set BCP negotiation options
  bridge            Enable PPP bridge translation
  caller            Caller option when no CLID is available
  chap              Set CHAP authentication parameters
  direction         Override default PPP direction
  disconnect-cause  Set disconnect-cause code
  dnis              Authentication via DNIS before LCP
  eap               Set EAP authentication parameters
  encrypt           Enable PPP encryption
  ipcp              Set IPCP negotiation options
  iphc              Set IPCP Header Compression control options
  ipv6cp            Set IPV6CP negotiation options
  lcp               PPP LCP configuration
  link              Set miscellaneous link parameters
  loopback          PPP loopback options
  max-bad-auth      Allow multiple authentication failures
  max-configure     Number of conf-reqs sent before assuming peer is unable to


We have one called “ipcp”. This stands for Internet Protocol Control Protocol. IPCP looks after IP addressing on a PPP link. Within the options for “ppp ipcp” we have:

R1(config-if)#ppp ipcp ?
  accept-address      Accept any non zero IP address from our peer
  address             Additional ipcp address options
  dns                 Specify DNS negotiation options
  header-compression  IPCP header compression option
  ignore-map          Ignore dialer map when negotiating peer IP address
  mask                Specify subnet mask negotiation options
  no-renegotiation    Do not allow client to renegotiate IPCP
  predictive          Predict peers IPCP requests/replies
  route               Install default route thru negotiated peer IP address
  username            Configure how usernames are handled
  wins                Specify WINS negotiation options


So, “ppp ipcp¬†route” looks like a winner!

R1(config-if)#ppp ipcp route ?
  default  Install default route thru negotiated peer IP address


So the complete command will be:

R1(config-if)#ppp ipcp route default


Let’s see what this gets us!

R1(config-if)#do sh ip route | b Gateway
Gateway of last resort is to network

S* [1/0] via is variably subnetted, 2 subnets, 2 masks
C is directly connected, Serial3/0
L is directly connected, Serial3/0 is subnetted, 1 subnets
C is directly connected, Serial3/0

Let’s add a loopback interface to R2 and check that we have connectivity:

R2(config-if)#int lo0
R2(config-if)#ip add

R1(config-if)#do ping
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to, timeout is 2 seconds:
Success rate is 100 percent (5/5), round-trip min/avg/max = 92/113/148 ms

Nice. A little one-liner and we have a default route between two disparate networks.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.