Posts Tagged ‘inverse-arp’


Can you please help me understand use of Frame-Relay Interface-dlci command. It’s getting mysterious for me day by day as I am studying FR. The reason being is I earlier thought that I should only use this command on FR point to point subinterface. As Point to Point subinterface don’t allow us to put Frame relay map statements. Also in such case Inverse arp should be turned off. But while I was going through Cisco’s FR documentation on website I saw that in almost all examples they used interface dlci command on interface not on sub interface and also without turning off inverse arp. So the question now is if inverse arp is turned on then as per my understanding we need not to put this command as it will discover dlci settings through lmi signals automatically.

Kindly explain Interface Dlci command to me…

When I saw this post, I got to thinking a little bit.  Mostly about the fact that the interface-dlci appears to be a much more misunderstood command than I ever gave it credit for!  (poor thing…)

The quick answer is that the “frame-relay inteface-dlci” command simply says “This DLCI goes here” to the router.

On a physical interface, this command is largely irrelevant (more in a minute) because ALL DLCIs are assigned to the physical interface by default.  If you are ever interested, concerned or otherwise bored, just check out “show frame-relay pvc” and you will see where they are assigned.

So in the case of sub-interfaces, there is no automagical assignment of DLCI numbers.  Even if your subinterface number and DLCI number are the same.  That’s just a sign of being anal-retentive (or as we consultants call it, “good at documentation”) or a little OCD.  But you can technically have DLCI 100 on subinterface Serial 0/0.223.  Kinda strange, but perfectly workable!

So whenever you have a subinterface, you need to do SOMETHING to tell the router “this DLCI goes here”.

So now let’s look at the next portion:  Mapping.  Layer3 to Layer2 mapping in particular.   We can learn about L3-L2 mapping via Inverse ARP.  This is on by default, but frowned upon in the CCIE Realm!  “Show frame-relay map” will let you know if you have learned any addresses dynamically or not.

So if we DID allow Inverse ARP, whether our subinterfaces were point-to-point or multipoint ones, we COULD just use the “frame-relay interface-dlci” command and nothing else.  (Yes, I know inverse ARP requests are not sent by default on subinterfaces, but responses still are.  Watch your debugs!)  :)

So the Interface-DLCI command assigned the PVC to a subinterface.  Inverse ARP then took care of the mapping.  What if we aren’t allowed to use Inverse ARP?  Like for the CCIE lab?  Ok, what are our options?  Well, the “frame-relay map” command is the most obvious and well known.  That works very well.  The “frame-relay map” command both assigned L3-L2 mapping AND says “this DLCI goes here” all in one command!

Unless of course you are on a point-to-point subinterface.  As you pointed out, you can’t use the map command there!  But that’s ok, it’s not needed anyway!  Point-to-point links have a different way of thinking.  They view the world as “If it’s not my address it must be yours” and sends things out.

So that covers our two primary issues with PVC operations in Frame Relay.  #1 is assigning the DLCI to an interface (no magic).  #2 is the L3-L2 mapping to make IP actually work!

The last part I want to add (re: my “more in a minute” above) was that the “frame-relay inteface-dlci” command also serves another purpose which sometimes gets confusing in terms of where we just got through with things!

So where we left things with “frame-relay interface-dlci” commands:

1.  Definitely used on point-to-point subinterfaces
2.  Can be used on multipoint subinterfaces if Inverse ARP works
3.  Not used on physical interfaces because all DLCIs belong there by default.

Now, just to mess with that logic a bit.  When studying frame-relay, and particularly by the time you get into QoS configurations you will become familiar with frame-relay map-classes.  Map classes can be assigned to an interface or subinterface without any problem.  When this occurs, the information in the map-class gets appled to EVERY DLCI on that interface or subinterface.

So what happens if you have different QoS parameters for different PVCs that just happen to be on the same interface/subinterface?  Hmmmm…  Well, in comes the “frame-relay inteface-dlci” command again!  See, it really IS a cool command!

The “frame-relay map” command does not have any parameter for adding a map-class.  After you hit enter on your “frame-relay interface-dlci” command though, you’ll get a new sub-command prompt.  Try using “?” here.  You’ll see that you have the opportunity to specify a separate map-class for each and every DLCI that you have.

So if you see “frame-relay interface-dlci” commands on a physical interface.  Or if you see them AND a “frame-relay map” command under a multipoint subinterface, this is the reason why.  If you use the “frame-relay inteface-dlci” command AND the “frame-relay map” command for the same PVC, you will need to make sure the “frame-relay map” command comes first.  Otherwise the router will express its displeasure!

So there are some very simple, but also some very powerful things the little “frame-relay interface-dlci” command does.  Hopefully that will help you take some of the mystery out of things!

Tags: , , ,


Hi Brian,

I ran into these nasty frame relay mappings during an initial lab set-up and was wondering why they are there, (even with inverse-arp disabled), and what they are actually doing. I was able to remove them only after writing my configuration to memory, and then performing a reload of the router.

Router(config-if)#do show frame map
Serial0/0 (up): ip dlci 113(0x71,0x1C10)
              CISCO, status defined, inactive
Serial0/0 (up): ip dlci 105(0x69,0x1890)
              CISCO, status defined, active
Serial0/0 (up): ip dlci 104(0x68,0x1880)
              CISCO, status defined, active
Serial0/0 (up): ip dlci 103(0x67,0x1870)
              CISCO, status defined, active



Hi Josh,

This is actually an error relating to AutoInstall over Frame Relay. When the router boots up and does not have a configuration file saved in NVRAM, it attempts to run autoinstall to automatically find an IP address and download a config. The first thing the router does is to detect the encapsulation on its WAN interfaces, which in this case is Frame Relay. Once the router finds that it’s running Frame Relay, it attempts to send a config request via TFTP. In order to do this it needs an IP address, so it sends a BOOTP request out all DLCIs. Since the router doesn’t know what the unicast IP addresses are on the other ends of the circuits, it creates IPv4 mappings to for all circuits and includes the “broadcast” keyword on them. This allows the router to encapsulate the BOOTP request out all DLCIs.

If you haven’t actually configured IP helper-address or a BOOTP server, the operation will fail. The result of this that we see is that when Frame Relay is re-enabled on the interfaces the mappings to reappear. In some versions of IOS this can be fixed by removing Frame Relay and re-applying it, for example:

router#config t
router(config)#interface s0/0
router(config-if)#encapsulation ppp
router(config-if)#encapsulation frame-relay

In most versions however this does not work. Therefore the way to fix this is just to have the router not do autoinstall on bootup. Since the router does autoinstall because it doesn’t have a config saved in memory, the only way to 100% fix it is to save your config to NVRAM (wr m), and to reload.

Tags: , , , ,


CCIE Bloggers