Configuring PPP Callback

For the following scenario, we set up a spoke router that needs to call into a hub router. The
configuration must also allow the hub router to call the spoke router back on a predefined
phone number after authentication. This situation has two benefits: One is added security,
because the hub router calls Spoke1 back on a predefined number. The other benefit is that it
is cheaper for the hub router to call Spoke1 because of discounts negotiated by the company
for long-distance calls from the hub site.
As a backup, we configured a callback from a spoke router to the hub router, where each router
is a Cisco 2600 series router and has a USR (US Robotics) modem attached to the aux port.
We’ll allow the Spoke1 router to call into the hub router, authenticate, and let the hub router call
the Spoke1 router back on a predefined number.
Here are the relevant commands we used to get things started:
Hub#config title
Hub(config)#username Spoke1 password sybex
Hub(config)#chat script Dialout

➥ABORT ERROR ABORT BUSY "" "AT" OK "ATDT \T" TIMEOUT 45 CONNECT \c

Hub(config)#modemcap entry USR_MODEM:MSC=&F1S0=1
Hub(config)#dialer-list 1 protocol ip permit
Hub(config)#line aux 0
Hub(config-line)#modem inout
Hub(config-line)#modem autoconfigure type USR_MODEM
Hub(config-line)#script dialer Dialout
Hub(config-line)#speed 115200
Hub(config-line)#transport input all
Hub(config-line)#stopbits 1
Hub(config-line)#flowcontrol hardware
Hub(config-line)#exec-timeout 0 0
Hub(config-line)#exit
Hub(config)#interface async65
Hub(config-if)#ip address 192.168.190.1 255.255.255.0
Hub(config-if)#encapsulation ppp
Hub(config-if)#dialer in-band
Hub(config-if)#dialer-group 1
Hub(config-if)#async default routing
Hub(config-if)#async mode dedicated
Hub(config-if)#ppp authentication chap
Hub(config-if)#^Z
Hub#
Spoke1#config title
Spoke1(config)#username Hub password sybex
Spoke1(config)#chat script Dialout
➥ABORT ERROR ABORT BUSY "" "AT" OK "ATDT \T" TIMEOUT 45 CONNECT \c
Spoke1(config)#modemcap entry USR_MODEM:MSC=&F1S0=1
Spoke1(config)#dialer-list 1 protocol ip permit
Spoke1(config)#line aux 0
Spoke1(config-line)#modem inout
Spoke1(config-line)#modem autoconfigure type USR_MODEM
Spoke1(config-line)#script dialer Dialout
Spoke1(config-line)#speed 115200
Spoke1(config-line)#transport input all
Spoke1(config-line)#stopbits 1
Spoke1(config-line)#flowcontrol hardware
Spoke1(config-line)#exec-timeout 0 0
Spoke1(config-line)#exit
Spoke1(config)#interface async65
Spoke1(config-if)#ip address 192.168.190.2 255.255.255.0
Spoke1(config-if)#encapsulation ppp
Spoke1(config-if)#dialer in-band
Spoke1(config-if)#dialer-group 1
Spoke1(config-if)#async default routing
Spoke1(config-if)#async mode dedicated
Spoke1(config-if)#ppp authentication chap
Spoke1(config-if)#^Z
Spoke1#

There are some things we need to point out before continuing. We created a custom modemcap
entry for our USR modem instead of using the built-in modemcap entry. We also omitted
the dialer map statements, which we will discuss in greater detail later. Finally, because both
sides need to dial out, we configured a chat script required to successfully dial out.
Next, we configured the routers—one as the client and one as the server—for callback. The configuration
is slightly different between the client and server callback routers. The Spoke1 router
will be the callback client, and the Hub router will be the callback server. We will use the dialer
map command on the spoke router just as you might expect, but on the Hub router we need to
add a class parameter to the dialer map command for callback purposes.


Please note that map-class configurations are beyond the scope of the exam and this book, and
you need not be too concerned at this point about the minutia. However, the syntax is fairly
straightforward. We recommend that you focus on the material for the exam at this point, and,
after you’ve passed, refer to the Cisco website or practice in your lab environment with the following
commands. Here is the configuration for each router:


Spoke1#config t
Spoke1(config)#interface async65
Spoke1(config-if)#dialer map ip 192.168.190.1 name Hub broadcast 5551211
Spoke1(config-if)#ppp callback request
Spoke1(config-if)#^Z
Spoke1#
Hub#config t
Hub(config)#map-class dialer Spoke1_Auth
Hub(config-map-class)#dialer callback username
Hub(config-map-class)#exit
Hub(config)#interface async65
Hub(config-if)#dialer map ip 192.168.190.2
➥name Spoke1 broadcast 5551212 class Spoke1_Auth
Hub(config-if)#ppp callback accept
Hub(config-if)#^Z
Hub#

When the spoke initiates a call to the hub router, the hub router will authenticate the spoke
router, and the spoke router will tell the hub router it would like to use callback. Then, the hub
router will drop the line and call back the spoke router on the number specified in the dialer
map command. When the spoke router gets the call, it will authenticate again before starting the
PPP negotiation process.
Notice that we did not specify any dynamic routing protocols over this link. Doing so would
make this configuration complex and is beyond the scope of this Study Guide. As noted before,
map-class and chat scripts are also beyond the scope of this book, but we want to give you a
taste of the possibilities when configuring Cisco IOS.