Bridging Ethernet over an IP network using DLSw+

While surfing through the internet, i found a nice feature called DLSw+. I must admit, that i never heard about it before, although it’s a really old feature.
DLSw (Data Link Switching) originally was developed to transport IBM Systems Network Architecture (SNA) and IBM NetBIOS over routed IP networks. But you can also use it for transporting Ethernet frames across an IP network.

DLSw+ is Cisco’s implementation of DLSw with the following extensions:

  • Choice of transport option, including TCP, FST (fast-sequenced transport), and direct encapsulation.
  • Scalability enhancements through: peer groups, on-demand peers, explorer firewalls, and location learning.
  • Media conversion between local and remote LANs and SDLC or Ethernet.

More about Data Link Switching on Cisco routers can be found here.
DLSw protocol itself is described in RFC 1795.

dlsw

This setup is using  c3725-adventerprisek9-mz.124-15.T6.bin running on GNS3.

Configuration

  • Both host’s NICs have IP adresses in the subnet 192.168.222.0/24
  • Working IP connectivity between 172.16.17.1 and 172.16.17.6 must exist
  • Fa0/1 (hilde) and Fa0/0 (maria) have no IP address assigned

Setting up the bridge-group on both routers and assign the respective interface to it.

maria
bridge irb
bridge 1 protocol ieee
!
interface FastEthernet0/0
 description Link to lan 192.168.222.0/24
 no ip address
 bridge-group 1
end
hilde
bridge irb
bridge 1 protocol ieee
!
interface FastEthernet0/1
 description Link to lan 192.168.222.0/24
 no ip address
 bridge-group 1
end

Last but not least, you have to setup Data Link Switching on both routers and add it to the bridge-group.

maria
dlsw local-peer peer-id 172.16.17.1
dlsw remote-peer 0 tcp 172.16.17.6
dlsw bridge-group 1
hilde
dlsw local-peer peer-id 172.16.17.6
dlsw remote-peer 0 tcp 172.16.17.1
dlsw bridge-group 1

You can find a nice configuration guide for DLSw+ in the Cisco Support Wiki.

Verification/Troubleshooting

To verify, if your DLSw+ connection is established, you can consult the show dlsw peers command on both routers.
With it, you get some informations e.g. session-state and -duration, received and transmitted packets and so on…

maria#sh dlsw peers
Peers:                state     pkts_rx   pkts_tx  type  drops ckts TCP   uptime
 TCP 172.16.17.6     CONNECT       6690      2631  conf      0    1   0 02:51:00
Total number of connected peers: 1
Total number of connections:     1

hilde#sh dlsw peers
Peers:                state     pkts_rx   pkts_tx  type  drops ckts TCP   uptime
 TCP 172.16.17.1     CONNECT       2638      6700  conf      0    1   0 02:51:08
Total number of connected peers: 1
Total number of connections:     1

There are further flavors for the show dlsw command and several debug possibilites, but i wouldn’t go more in detail now.

show dlsw ?
  capabilities   Display DLSw capabilities information
  circuits       Display DLSw circuit information
  fastcache      Display DLSw fast cache for FST and Direct
  local-circuit  Display DLSw local circuits
  peers          Display DLSw peer information
  reachability   Display DLSw reachability information
  statistics     Display DLSw statistical information
  transparent    Display MAC address mappings

debug dlsw ?
  border-peers   Debug DLSw border peer events
  core           Debug DLSw core
  local-circuit  Debug DLSw local circuit events
  peers          Debug DLSw peer events
  reachability   Debug DLSw reachability (explorer traffic)
  rsvp           Debug DLSw rsvp
  transparent    Debug DLSw Ethernet redundancy Master-Slave & Circuit events
  <cr>

An extensive troubleshooting guide for DLSw+ can be found on the Cisco website.

To get more information about the bridge, there are some few show commands available.

maria#sh bridge 1
Total of 300 station blocks, 298 free
Codes: P - permanent, S - self
Bridge Group 1:
    Address       Action   Interface       Age   RX count   TX count
000c.29af.4431   forward   FastEthernet0/0   0       1787       1602
000c.2928.27e3   forward   DLSw Port0        0       2752       1598

hilde#sh bridge 1
Total of 300 station blocks, 298 free
Codes: P - permanent, S - self
Bridge Group 1:
    Address       Action   Interface       Age   RX count   TX count
000c.29af.4431   forward   DLSw Port0        0       1799       1597
000c.2928.27e3   forward   FastEthernet0/1   0       2795       1598

I was looking for bridge specific debug commands, but couldn’t find some.
Due to the lack of troubleshooting alternatives, i avoid bridge-groups whenever it’s possible. But in special cases it’s the only way out.

3 comments to Bridging Ethernet over an IP network using DLSw+

  • Excellent site, It was pleasant to me.

  • This feature is exactly what I was looking for. But my tests showed that this requires very powerful Routers. When using Cisco 7204VXR with NPE-400 the maximum download speed via HTTP was about 6 Mbit/s. And this is my problem, because this is absolutely insufficient for me.
    I also tried your suggestion to bridge over a GRE tunnel which didn’t work. Additionally this is an experimental feature so that this also is out of the question for me. Is there another solution which could provide Ethernet bridging over IP?

    Regards,
    Pascal

  • admin

    Hi pascal,
    perhaps L2TPv3 is the solution you are looking for.
    When i have time to spare, i will write an article about that.
    Configuring L2TPv3 with Cisco
    A more complex solution ist MPLS AToM (Any Transport over MPLS) which requires a Label switched path between the endpoint routers.
    Hope this helps.
    Regards,
    Alex

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>