The two ways of configuring ADSL on a Cisco router

In this article, I'll cover the two possible ways of configuring a normal ADSL connection for a Cisco router. It'll be long, so let's get to it. The two ways are: with or without an external modem. Most providers are providing ADSL along with PPPoE which is PPP (Point to Point Protocol) over Ethernet. Normally the physical kit consists the RJ-11 telephone wall socket, some sort of a filter and an active device - a router. If the router does not have an RJ-11 connector for POTS (Plain Old Telephone Service) and a built-in modem, you still can configure the service, using an external modem. This external modem than would have to be configured into what is called bridge mode. Basically the modem function would be handled by the external device, and the router would deal with the actual PPPoE session. Both are valid and working scenarios and if you happen to have a decent Cisco router with a built-in modem, you probably want to stick with it and use no external devices. After all, it would only increase the number of boxes on your desk, and you don't really need it. On the other hand though, most Cisco routers do not come with decent modems, or modems at all. Our last client had a request for an ADSL connection and some services provided on it, so we delivered.

We have worked with three routers. The Cisco 877, the Cisco 1801 and the Cisco 1841. Let's see the differences. The first two routers (877 and 1801) are ADSL routers, they were designed for terminating ADSL connections without an external modem - they come with a built-in one. There is no fundamental difference between the two, apart from the fact that the 1801 is more powerful, and has an eight port switch, while the 877 is less powerful and has only a four port switch in it. The 1801 also has an additional FastEthernet port, in case you decide using an external modem.

The details you'll need for configuring the ADSL connection are: VPI/PVC numbers and the login credentials. In this example, I'll be configuring a simple ADSL connection (not VDSL, SHDSL etc). So let's look at the configuration step by step. Not the whole config will be discussed here for volume concerns, but everything that is relevant is here.

Assuming you already have a fully configured internal network (ping works, DHCP or other method of assigning IP addresses work etc.), let's focus on the ATM interface, which is the physical interface handling the ADSL connection - this is the modem where the RJ-11 phone line connects to after the filter. Please pay attention to the dialer pool-member command, where the number will be used in the next step, when configuring the logical interface for the WAN connection.

interface ATM0
 no ip address
 atm vc-per-vp 128
 no atm ilmi-keepalive
 pvc 0/38 
  oam-pvc 0
  encapsulation aal5mux ppp dialer
  dialer pool-member 1
 !
 hold-queue 224 in
! 

As you can tell from above, this is an example configuration for the UK, where VPI/PVC 0/38 is used. VPI stands for Virtual Path Identified, PVC is short for Permanent Virtual Circuit, that represents a logical connection in the network. This takes care of the physical layer, time to set up the connection attributes. For this, you'll need a logical interface, called a Dialer interface. I'll just use Dialer 0, but I could have used any number here. In this section, pay attention to the dialer pool and dialer-group commands where the number ties the logical interface to the physical interface.

interface Dialer0
 ip address negotiated
 no ip redirects
 no ip unreachables
 ip mtu 1492
 ip flow ingress
 ip nat outside
 ip virtual-reassembly
 encapsulation ppp
 dialer pool 1
 dialer-group 1
 no cdp enable
 ppp authentication chap callin
 ppp chap hostname 
 ppp chap password 
 ppp ipcp dns request
 ppp ipcp route default
! 

In the above logical interface, the dialer pool command defines that I'm using pool number 1 here. If you scroll up a bit for the physical interface, ATM 0, you'll see that it is a member of pool number one - this is binding the two interface together. I have also configured the MTU to be 1492 instead of the default 1500 (the PPPoE header takes an additional 8 bytes), and amongst other things, I have configured this interface to participate in NAT. The IP address will be negotiated upon connection. In my case, I happened to have a fixed IP address from the provider, but I'm happy to have it negotiated every time, just in case. This I can use as a form of troubleshooting: if I don't have a valid IP address, or a different one, I know there is a problem at the provider's end.

Let's see what happens when we have an external DSL modem which provides us with an ethernet interface and all we care about is the PPP session? On the router, you'll need to have a dedicated routed interface for this, in my case, I'll use Fa 0/0 as a WAN port. The config looks like:

interface FastEthernet0
 description [wan] with external modem
 ip address 192.168.1.2 255.255.255.0
 duplex auto
 speed auto
 pppoe enable group global
 pppoe-client dial-pool-number 2
 no cdp enable
 service-policy output pm_qos_parent
end

That's the physical WAN interface done, now let's see the logical interface, which again, will be a Dialer interface:

interface Dialer2
 description [wan] with external modem
 ip address negotiated
 ip mtu 1492
 ip flow ingress
 ip flow egress
 ip nat outside
 ip virtual-reassembly in
 encapsulation ppp
 ip tcp adjust-mss 1452
 dialer pool 2
 dialer-group 2
 ppp authentication chap callin
 ppp chap hostname username@provider
 ppp chap password 
 ppp ipcp dns request
 ppp ipcp route default
 no cdp enable
end

So that's that, this is all you need to get basic connectivity. Of course, you'll need to configure NAT, apply some firewall configurations, maybe add IPv6 support, but that's a different story. The above is enough to get you started!