Wednesday, April 29, 2009

PPP Configuration

PPP is a Layer2 protocol which provides a standard method for transporting multi protocol over Point to point link. It comprises of LCP and NCP sub layers.

LCP – Establishing, Configuring and testing the link.

NCP – Establish and configure different network layer protocol (Layer3)





Simple PPP Configuration:


Simple PPP Configuration involves enabling the PPP encapsulation on the interface and configuring respective IP address on either side. It can be noted that, a /32 entry of peer’s IP address will be installed in routing table as directly connected interface. This /32 entry is mandatory when the setup is dialup with ip address of the PPP interface configured as “ip unnumbered loopback ”. In such cases, the address on client interface and server will not be in same subnet leading to connectivity issue. This behavior of PPP installing /32 entry in routing table solves the connectivity issue.

In the below mentioned example, R1 is configured with 150.1.13.1/24 address which will be installed in R3’s routing table as directly connected interface.



R1(config-if)#do sh run int s2/2

Building configuration...

Current configuration : 133 bytes

!

interface Serial2/2

ip address 150.1.13.1 255.255.255.0

no ip directed-broadcast

encapsulation ppp

serial restart-delay 0

end

R1(config-if)#

R1#sh ip route 150.1.13.3

Routing entry for 150.1.13.3/32

Known via "connected", distance 0, metric 0 (connected, via interface)

Routing Descriptor Blocks:

* directly connected, via Serial2/2

Route metric is 0, traffic share count is 1

R1#


R3#sh run int s2/2

Building configuration...

Current configuration : 157 bytes

!

interface Serial2/2

ip address 150.1.13.3 255.255.255.0

no ip directed-broadcast

encapsulation ppp

serial restart-delay 0

end

R3#sh ip route 150.1.13.1

Routing entry for 150.1.13.1/32

Known via "connected", distance 0, metric 0 (connected, via interface)

Routing Descriptor Blocks:

* directly connected, via Serial2/2

Route metric is 0, traffic share count is 1

R3#

R3#sh logg

Syslog logging: enabled (1 messages dropped, 0 messages rate-limited, 0 flushes,

0 overruns)

Console logging: disabled

Monitor logging: level debugging, 0 messages logged

Buffer logging: level debugging, 46 messages logged

Logging Exception size (8192 bytes)

Count and timestamp logging messages: disabled

Persistent logging: disabled

Trap logging: level informational, 48 message lines logged

Log Buffer (1000000 bytes):

01:15:00: Se2/2 LCP: Lower layer not up, Fast Starting

01:15:00: Se2/2 PPP: Interface state UP

01:15:00: Se2/2 PPP: Treating connection as a dedicated line

01:15:00: Se2/2 PPP: Phase is ESTABLISHING, Active Open

01:15:00: Se2/2 LCP: O CONFREQ [Closed] id 57 len 10

01:15:00: Se2/2 LCP: MagicNumber 0x024F2320 (0x0506024F2320)

01:15:00: %LINK-3-UPDOWN: Interface Serial2/2, changed state to up

01:15:00: Se2/2 PPP: Interface state UP

01:15:00: Se2/2 IP: LCP not open, discarding packet

01:15:00: Se2/2 LCP: I CONFREQ [REQsent] id 3 len 10

01:15:00: Se2/2 LCP: MagicNumber 0x004F3852 (0x0506004F3852)

01:15:00: Se2/2 LCP: O CONFACK [REQsent] id 3 len 10

01:15:00: Se2/2 LCP: MagicNumber 0x004F3852 (0x0506004F3852)

01:15:00: Se2/2 LCP: I CONFACK [ACKsent] id 57 len 10

01:15:00: Se2/2 LCP: MagicNumber 0x024F2320 (0x0506024F2320)

01:15:00: Se2/2 LCP: State is Open

01:15:00: Se2/2 PPP: Phase is UP

01:15:00: Se2/2 IPCP: O CONFREQ [Closed] id 3 len 10

01:15:00: Se2/2 IPCP: Address 150.1.13.3 (0x030696010D03)

01:15:00: Se2/2 CDPCP: O CONFREQ [Closed] id 2 len 4

01:15:00: Se2/2 IPCP: I CONFREQ [REQsent] id 2 len 10

01:15:00: Se2/2 IPCP: Address 150.1.13.1 (0x030696010D01)

01:15:00: Se2/2 IPCP: O CONFACK [REQsent] id 2 len 10

01:15:00: Se2/2 IPCP: Address 150.1.13.1 (0x030696010D01)

01:15:00: Se2/2 CDPCP: I CONFREQ [REQsent] id 2 len 4

01:15:00: Se2/2 CDPCP: O CONFACK [REQsent] id 2 len 4

01:15:00: Se2/2 IPCP: I CONFACK [ACKsent] id 3 len 10

01:15:00: Se2/2 IPCP: Address 150.1.13.3 (0x030696010D03)

01:15:00: Se2/2 IPCP: State is Open

01:15:00: Se2/2 CDPCP: I CONFACK [ACKsent] id 2 len 4

01:15:00: Se2/2 CDPCP: State is Open

01:15:00: Se2/2 IPCP: Install route to 150.1.13.1

01:15:01: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial2/2, changed sta

te to up

R3#


The default behavior of installing the /32 address can be disabled as below,

R1#sh run int s2/2

Building configuration...

Current configuration : 128 bytes

!

interface Serial2/2

ip address 150.1.13.1 255.255.255.0

encapsulation ppp

serial restart-delay 0

no clns route-cache

end

R1#

R1#sh ip route 150.1.13.3

Routing entry for 150.1.13.3/32

Known via "connected", distance 0, metric 0 (connected, via interface)

Routing Descriptor Blocks:

* directly connected, via Serial2/2

Route metric is 0, traffic share count is 1

R1#conf t

Enter configuration commands, one per line. End with CNTL/Z.

R1(config)#int s2/2

R1(config-if)#shut

R1(config-if)#no peer neighbor-route

R1(config-if)#no shut

R1(config-if)#

R1#

R1#sh ip route 150.1.13.3

Routing entry for 150.1.13.0/24

Known via "connected", distance 0, metric 0 (connected, via interface)

Routing Descriptor Blocks:

* directly connected, via Serial2/2

Route metric is 0, traffic share count is 1

R1#ping 150.1.13.3

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 150.1.13.3, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 8/27/72 ms

R1#


Address Negotiation:


In dialup kind of setup, we can have the client negotiate and obtain the IP address from server as part of LCP negotiation (IPCP). It can be done in 3 ways as below,


  • DHCP
  • Local Pool
  • Static address

Address negotiation using Local Pool:


R1#sh run | inc pool

ip local pool POOL 150.1.13.3 150.1.13.4

R1#sh run int s2/2

Building configuration...

Current configuration : 168 bytes

!

interface Serial2/2

ip address 150.1.13.1 255.255.255.0

no ip directed-broadcast

encapsulation ppp

peer default ip address pool POOL

serial restart-delay 0

end

R1#

|------------R3 Configs------------|


R3(config-if)#do sh run int s2/2

Building configuration...

Current configuration : 119 bytes

!

interface Serial2/2

ip address negotiated

no ip directed-broadcast

encapsulation ppp

serial restart-delay 0

end

R3(config-if)#int s2/2

R3(config-if)#no ip addr

R3#

R3#sh run int s2/2

Building configuration...

Current configuration : 111 bytes

!

interface Serial2/2

no ip address

no ip directed-broadcast

encapsulation ppp

serial restart-delay 0

end

R3#

R3#conf t

Enter configuration commands, one per line. End with CNTL/Z.

R3(config)#int s2/2

R3(config-if)#shut

R3(config-if)# ip address negotiated

R3(config-if)#

R3(config-if)#do sh ip int brief

Interface IP-Address OK? Method Status Protocol

Serial2/2 unassigned YES manual administratively down down

R3(config-if)#no shut

R3(config-if)#do sh ip int brief

Interface IP-Address OK? Method Status Protocol

Serial2/2 150.1.13.3 YES IPCP up up

R3(config-if)#

R1#show ip local pool

Pool Begin End Free In use

POOL 150.1.13.3 150.1.13.4 1 1

R1#


Address negotiation using static address:


R1#sh run int s2/2

Building configuration...

Current configuration : 169 bytes

!

interface Serial2/2

ip address 150.1.13.1 255.255.255.0

no ip directed-broadcast

encapsulation ppp

peer default ip address 150.1.13.3

serial restart-delay 0

end

R1#

R3(config-if)#do sh run int s2/2

Building configuration...

Current configuration : 121 bytes

!

interface Serial2/2

no ip address

no ip directed-broadcast

encapsulation ppp

shutdown

serial restart-delay 0

end

R3(config-if)#do sh ip int brief | inc 2/2

Serial2/2 unassigned YES manual administratively down down

R3(config-if)#ip address negotiated

R3(config-if)#no shut

R3(config-if)#do sh ip int brief | inc 2/2

Serial2/2 150.1.13.3 YES IPCP up up

R3(config-if)#


Routing over PPP negotiated link:


RIP

RIP on receiving an update packet, by default will validate the source and check if it is from same subnet. If not, the update packet will be ignored with “RIP: ignored v2 packet from 150.1.3.3 (sourced from one of our addresses)” error message.

This issue can be solved by disabling the source validation in RIP protocol as below,

R3(config)#router rip

R3(config-router)#no auto-summary

R3(config-router)#ver 2

R3(config-router)#no validate-update-source

OSPF

AFAIK, OSPF is not supported on link with /32 subnet mask. OSPF on receiving hello packet from a neighbor will check Area, Subnet Mask, Hello Interval, Dead Interval, Authentication, Options. If the subnet mask is different from the one received in hello packet, the packet will ignored and there is no way to disable the check.

EIGRP

No Special configuration is required with EIGRP

BGP

iBGP doesn’t require any special configuration.

When configuring eBGP, the client with /32 subnet mask will assume the neighbor is not directly connected and will require “neighbor ebgp-multihop ” command.



No comments:

Post a Comment