![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Cisco's serial tunnel (STUN) implementation allows Synchronous Data Link Control (SDLC) devices and High-Level Data Link Control (HDLC) devices to connect to one another through a multiprotocol internetwork.
Our block serial tunnel (BSTUN) implementation enhances Cisco 2500 series, Cisco 4000 series, and Cisco 4500 series routers to support devices that use the Binary Synchronous Communication (BSC) data link protocol.
This chapter describes both STUN and BSTUN configurations. The first part of the chapter, beginning with the section "Cisco's Implementation of Serial Tunneling," describes the STUN features and lists the tasks you must perform to configure a STUN network in either passthrough or local acknowledgment mode. The last part of the chapter, beginning with the section "Cisco's Implementation of Block Serial Tunneling (BSTUN)," describes the BSTUN features, and lists the tasks you must perform to configure a BSC network in either passthrough or local acknowledgment mode.
For a complete description of the commands mentioned in this chapter, refer to the "STUN and BSTUN Commands" chapter in the Router Products Command Reference publication.
Our STUN implementation provides the following features:
STUN operates in two modes: passthrough and local acknowledgment. Figure 27-2 shows the difference between passthrough mode and local acknowledgment mode.
The upper half of Figure 27-2 shows STUN configured in passthrough mode. In passthrough mode, the routers act as a wire and the SDLC session remains between the end stations. In this mode, STUN provides a straight pass-through of all SDLC traffic, including control frames.
The lower half of Figure 27-2 shows STUN configured in local acknowledgment mode. In local acknowledgment mode, the routers terminate the SDLC sessions and send only data across the WAN. Control frames no longer travel the WAN backbone networks.
To configure and monitor STUN, or STUN Local Acknowledgment, complete the tasks in the following sections:
The "STUN Configuration Examples" section follows these configuration tasks.
To enable STUN perform the following task in global configuration mode:
Task | Command |
---|---|
Enable STUN for a particular IP address. | stun peer-name ip-address |
When configuring redundant links, ensure that the STUN peer names you choose on each router are the IP addresses of the most stable interfaces on each router, such as a loopback or Ethernet interface. See "STUN Configuration Examples" later in this chapter.
You can enable STUN quick-response, which improves network performance when used with local acknowledgment. When STUN quick-response is used with local acknowledgment, the router responds to an exchange identification (XID) or a Set Normal Response Mode (SNRM) request with a Disconnect Mode (DM) response when the device is not in the CONNECT state. The request is then passed to the remote router and, if the device responds, the reply is cached. The next time the device is sent an XID or SNRM, the router replies with the cached DM response.
To enable STUN quick-response, perform the following task in global configuration mode:
Task | Command |
---|---|
Enable STUN quick-response. | stun quick-response |
The SDLC broadcast feature allows SDLC broadcast address FF to be replicated for each of the STUN peers, so each of the end stations receives the broadcast frame. For example, in Figure 27-3, the FEP views the end stations 1, 2 and 3 as if they are on an SDLC multidrop link. Any broadcast frame sent from FEP to Router A is duplicated and sent to each of the downstream routers (B and C).
To enable SDLC broadcast, perform the following task in interface configuration mode:
Task | Command |
---|---|
Enable SDLC broadcast. |
Only enable SDLC broadcast on the router that is configured to be the secondary station on the SDLC link (Router A in Figure 27-3).
You must also configure SDLC address FF on Router A for each of the STUN peers. To do so, perform the following task in interface configuration mode:
Task | Command |
---|---|
Configure SDLC address FF on Router A for each STUN peer. | stun route address address-number tcp ip-address [local-ack] [priority] [tcp-queue-max] |
Place ach STUN interface in a group that defines the ISO 3309-compliant framed protocol running on that link. Packets will only travel between STUN interfaces that are in the same protocol group.
There are three predefined STUN protocols:
You also can specify a custom STUN protocol.
You must specify either the SDLC protocol or the SDLC transmission group protocol if you want to use the STUN Local Acknowledgment feature.
The basic STUN protocol is not dependent on the details of serial protocol addressing and is used when addressing is unimportant. Use this when your goal is to replace one or more sets of point-to-point (not multidrop) serial links by using a protocol other than SDLC. Perform the following task in global configuration mode:
Task | Command |
---|---|
Specify a basic protocol group and assign a group number. | stun protocol-group group-number basic |
You can specify SDLC protocol groups to associate interfaces with the SDLC protocol. Use the SDLC STUN protocol to place the routers in the midst of either point-to-point or multipoint (multidrop) SDLC links. To define an SDLC protocol group, perform the following task in global configuration mode:
Task | Command |
---|---|
Specify an SDLC protocol group and assign a group number. | stun protocol-group group-number sdlc |
If you specify an SDLC protocol group, you cannot specify the stun route all command on any interface of that group.
For an example of how to configure an SDLC protocol group, see the "Configuring Serial Link Address Prioritization Using STUN TCP/IP Encapsulation Example" later in this chapter.
An SNA transmission group is a set of lines providing parallel links to the same pair of SNA front-end-processor (FEP) devices. This provides redundancy of paths for fault tolerance and load sharing. To define an SDLC transmission group, perform the following task in global configuration mode:
Task | Command |
---|---|
Specify an SDLC protocol group, assign a group number, and create an SNA transmission group. | stun protocol-group group-number sdlc-tg |
All STUN connections in a transmission group must connect to the same IP address and use the SDLC local acknowledgment feature.
To define a custom protocol and tie STUN groups to the new protocol, perform the following tasks in global configuration mode:
Task | Command |
---|---|
Step 1 Create a custom protocol. | stun schema name offset constant-offset length address-length format format-keyword |
Step 2 Specify the custom protocol group and assign a group number. | stun protocol-group group-number schema |
You must enable STUN on serial interfaces and place these interfaces in the protocol groups you have defined. To enable STUN on an interface and to place the interface in a STUN group, perform the following tasks in interface configuration mode:
Task | Command |
---|---|
Step 1 Enable STUN function on a serial interface. | |
Step 2 Place the interface in a previously defined STUN group. | stun group group-number |
Once a given serial link is configured for the STUN function, it is no longer a shared multiprotocol link. All traffic that arrives on the link will be transported to the corresponding peer as determined by the current STUN configuration.
To allow SDLC frames to travel across a multimedia, multiprotocol network, you must encapsulate them using one of the methods in the following sections:
You can encapsulate SDLC or HDLC frames using the HDLC protocol. The outgoing serial link still can be used for other kinds of traffic. The frame is not TCP encapsulated. To configure HDLC encapsulation, perform one of the following tasks in interface configuration mode:
Task | Command |
---|---|
Forward all HDLC or SDLC traffic of the identified interface number. | stun route all interface serial interface-number |
Forward all HDLC or SDLC traffic on a direct STUN link. | stun route all interface serial interface-number direct |
Forward HDLC or SDLC traffic of the identified address. | stun route address address-number interface serial interface-number |
Forward HDLC or SDLC traffic of the identified address across a direct STUN link. | stun route address address-number interface serial interface-number direct |
Use the no forms of these commands to disable HDLC encapsulation.
If you do not want to use SDLC local acknowledgment and only need to forward all SDLC frames encapsulated in TCP, complete the following tasks in interface configuration mode:
Task | Command |
---|---|
Forward all TCP traffic for this IP address. | stun route all tcp ip-address |
Specify TCP encapsulation. | stun route address address-number tcp ip-address [priority] [tcp-queue-max] |
Use the no form of these commands to disable forwarding of all TCP traffic.
This configuration is typically used when the two routers can be connected via an IP network as opposed to a point-to-point link. Otherwise, always use HDLC.
You can only configure SDLC local acknowledgment using TCP encapsulation. When you configure SDLC local acknowledgment, you also have the option to enable support for priority queuing.
SDLC local acknowledgment provides local termination of the SDLC session so that control frames no longer travel the WAN backbone networks. This means that time-outs are less likely to occur.
Figure 27-4 illustrates an SDLC session. IBM 1, using a serial link, can communicate with IBM 2 on a different serial link separated by a wide-area backbone network. Frames are transported between Router A and Router B using STUN. However, the SDLC session between IBM 1 and IBM 2 is still end-to-end. Every frame generated by IBM 1 traverses the backbone network to IBM 2, which, upon receipt of the frame, acknowledges it.
With SDLC local acknowledgment, the SDLC session between the two end nodes is not end-to-end but instead terminates at the two local routers, as shown in Figure 27-5. The SDLC session with IBM 1 ends at Router A, and the SDLC session with IBM 2 ends at Router B. Both Router A and Router B execute the full SDLC protocol as part of SDLC Local Acknowledgment. Router A acknowledges frames received from IBM 1. The node IBM 1 treats the acknowledgments it receives as if they are from IBM 2. Similarly, Router B acknowledges frames received from IBM 2. The node IBM 2 treats the acknowledgments it receives as if they are from IBM 1.
To configure TCP encapsulation with SDLC local acknowledgment and priority queuing, perform the tasks in the following sections:
To establish local acknowledgment, the router must play the role of an SDLC primary or secondary node. Primary nodes poll secondary nodes in a predetermined order. Secondaries then transmit if they have outgoing data.
For example, in the IBM environment, an FEP is the primary station and cluster controllers are secondary stations. If the router is connected to a cluster controller, it should appear as an FEP and must therefore be assigned the role of a primary SDLC node. If the router is connected to an FEP, it should appear as a cluster controller and must therefore be assigned the role of a secondary SDLC node. Routers connected to SDLC primary end-stations must play the role of an SDLC secondary and routers attached to SDLC secondary end stations must play the role of an SDLC primary station.
To assign the router a primary or secondary role, perform one of the following tasks in interface configuration mode:
Task | Command |
---|---|
Assign the STUN-enabled router an SDLC primary role. | |
Assign the STUN-enabled router an SDLC secondary role. |
To enable SDLC local acknowledgment, complete the following task in interface configuration mode:
Task | Command |
---|---|
Establish SDLC local acknowledgment using TCP encapsulation. | stun route address address-number tcp ip-address [local-ack] [priority] [tcp-queue-max] |
The stun route address 1 tcp local-ack priority tcp-queue-max interface configuration command enables local acknowledgment and TCP encapsulation. Both these options are required to use transmission groups. You should specify the SDLC address with the echo bit turned off for transmission group interfaces. The SDLC broadcast address 0xFF is routed automatically for transmission group interfaces. The priority keyword creates multiple TCP sessions for this route. The tcp-queue-max keyword sets the maximum size of the outbound TCP queue for the SDLC. The default TCP queue size is 100. The value for hold-queue in should be greater than the value for tcp-queue-max.
You can use the priority keyword (to set up the four levels of priorities to be used for TCP encapsulated frames) at the same time you enable local acknowledgment. The priority keyword is described in the following section. Use the no form of this command to disable SDLC Local Acknowledgment. For an example of how to enable local acknowledgment, see "Configuring Serial Link Address Prioritization Using STUN TCP/IP Encapsulation Example" later in this chapter.
With SDLC local acknowledgment enabled, you can establish priority levels used in priority queuing for serial interfaces. The priority levels are as follows:
To set the priority queuing level, perform the following task in interface configuration mode:
Task | Command |
---|---|
Establish the four levels of priorities to be used in priority queuing. | stun route address address-number tcp ip-address [local-ack] priority [tcp-queue-max] |
Use the no form of this command to disable priority settings. For an example of how to establish priority queuing levels, see "Configuring Serial Link Address Prioritization Using STUN TCP/IP Encapsulation Example" later in this chapter.
To implement STUN with local acknowledgment using direct Frame Relay encapsulation, perform the following task in interface configuration mode:
Task | Command |
---|---|
Configure Frame Relay encapsulation between STUN peers with local acknowledgment. | stun route address sdlc-addr interface frame-relay-port dlci number localsap local-ack cls |
You can configure multilink SDLC transmission groups across STUN connections between IBM communications controllers such as IBM 37x5s. Multilink transmission group allow you to collapse multiple WAN leased lines into one leased line.
SDLC multilink transmission groups provide the following features:
STUN connections that are part of a transmission group must have local acknowledgment enabled. Local acknowledgment keeps SDLC poll traffic off the WAN and reduces store-and-forward delays through the router. It also might minimize the number of NCP timers that expire due to network delay. Also, these STUN connections must go to the same IP address. This is because SNA transmission groups are parallel links between the same pair of IBM communications controllers.
This section provides some recommendations that are useful in configuring SDLC multilink transmission groups.
The bandwidth of the WAN should be larger than or equal to the aggregate bandwidth of all serial lines to avoid excessive flow control and ensure no degradation in response time. If other protocols also are using the WAN, ensure that the WAN bandwidth is significantly greater than the aggregate SNA serial line bandwidth to ensure that the SNA traffic does not monopolize the WAN.
When you use a combination of routed transmission groups and directly connected NCP transmission groups, you need to plan the configuration carefully to ensure that SNA sessions do not stop unexpectedly. Assuming that hardware reliability is not an issue, from a software point of view, single-link routed transmission group are as reliable as direct NCP-to-NCP single-link transmission groups.This is true because neither the NCP nor the router can reroute I-frames when a transmission group has only one link. Additionally, a multilink transmission group directed between NCPs and a multilink transmission group through router are equally reliable. Both can perform rerouting.
However, you might run into problems if you have a configuration in which two NCPs are directly connected (via one or more transmission group links) and one link in the transmission group is routed. The NCPs will treat this as a multilink transmission group. However, the router views the transmission group as a single-link transmission group.
A problem can arise in the following situation: Assume that an I-frame is being transmitted from NCP A (connected to router A) to NCP B (connected to router B) and that all SDLC links are currently active. Router A acknowledges the I-frame sent from NCP A and sends it over the WAN. If, before the I-frame reaches Router B, the SDLC link between router B and NCP B goes down, Router B attempts to reroute the I-frame on another link in the transmission group when it receives the I-frame. However, because this is a single-link transmission group, there are no other routes, and router B drops the I-frame. NCP B will never receive this I-frame because router A acknowledged its receipt, and NCP A marked it as transmitted and deleted it. NCP B detects a gap in the transmission group sequence numbers and waits to receive the missing I-frame. It will wait forever for this I-frame, and in the meantime will not send or receive any other frames. This means that NCP B is technically inoperational and that all SNA sessions through NCP B will be lost.
One final design recommendation note concerns a configuration in which one or more lines of an NCP transmission group are connected to a router and one or more lines are directly connected between NCPs. If the network delay associated with one line of an NCP transmission group is different from the delay of another line in the same NCP transmission group, the receiving NCP will spend additional time resequencing PIUs.
Use the methods described in the following sections to determine the order in which traffic should be handled on the network:
You can assign queuing priorities by one of the following:
To prioritize traffic, perform one of the following tasks in global configuration mode:
Task | Command |
---|---|
Assign a queuing priority to the address of the STUN serial interface. | priority-list list-number stun queue-keyword address group-number address-number |
Assign a queuing priority to a TCP port. | priority-list list-number protocol ip queue-keyword tcp tcp-port-number |
You must also perform the following task in interface configuration mode:
Task | Command |
---|---|
Assign a priority list to a priority group. | priority-group list-number |
Figure 27-6 illustrates serial link address prioritization. Device A communicates with Device C, and Device B communicates with Device D. With the serial link address prioritization, you can choose to give A-C a higher priority over B-D across the serial tunnel.
To disable priorities, use the no forms of these commands.
For an example of how to prioritize traffic according to serial link address, see "Configuring Serial Link Address Prioritization Using STUN TCP/IP Encapsulation Example" later in this chapter.
Task | Command |
---|---|
Assign a queuing priority based on the logical unit address. | locaddr-priority-list list-number address-number queue-keyword |
In Figure 27-7, LU address prioritization can be set so that particular LUs receive data in preference to others or so that LUs have priority over the printer, for example.
To disable this priority, use the no form of this command.
For an example of how to prioritize traffic according to logical unit address, see "Configuring LOCADDR Priority Groups for STUN Example" later in this chapter.
You can prioritize STUN traffic to be routed first before all other traffic on the network. To give STUN traffic this priority, perform the following task in global configuration mode:
Task | Command |
---|---|
Prioritize STUN traffic in your network over that of other protocols. | priority-list list-number stun queue-keyword address group-number address-number |
To disable this priority, use the no form of this command.
For an example of how to prioritize STUN traffic over all other traffic, see "Configuring Serial Link Address Prioritization Using STUN TCP/IP Encapsulation Example" later in this chapter.
You can list statistics regarding STUN interfaces, protocol groups, number of packets sent and received, local acknowledgment states, and more. To get activity information, perform the following task in EXEC mode:
Task | Command |
---|---|
List the status display fields for STUN interfaces. |
The following sections provide STUN configuration examples:
Assume that the link between Router A and Router B in Figure 27-8 is a serial tunnel that uses the simple serial transport mechanism. Device A communicates with Device C (SDLC address C1) with a high priority. Device B communicates with Device D (SDLC address A7) with a normal priority.
The following configurations set the priority of STUN hosts A, B, C, and D.
stun peer-name 1.0.0.1 stun protocol-group 1 sdlc stun protocol-group 2 sdlc ! interface serial 0 no ip address encapsulation stun stun group 1 stun route address C1 interface serial 2 ! interface serial 1 no ip address encapsulation stun stun group 2 stun route address A7 interface serial 2 ! interface serial 2 ip address 1.0.0.1 255.0.0.0 priority-group 1 ! priority-list 1 stun high address 1 C1 priority-list 1 stun low address 2 A7
stun peer-name 1.0.0.2 stun protocol-group 1 sdlc stun protocol-group 2 sdlc ! interface serial 0 no ip address encapsulation stun stun group 1 stun route address C1 interface serial 1 ! interface serial 1 ip address 1.0.0.2 255.0.0.0 priority-group 1 ! interface serial 2 no ip address encapsulation stun stun group 2 stun route address A7 interface serial 1 ! priority-list 1 stun high address 1 C1 priority-list 1 stun low address 2 A7
In the following example, an FEP views end stations 1, 2, and 3 as if they were on an SDLC multidrop link. Any broadcast frame sent from the FEP to Router A is duplicated and sent to each of the downstream routers (B and C):
stun peer-name xxx.xxx.xxx.xxx stun protocol-group 1 sdlc interface serial 1 encapsulation stun stun group 1 stun sdlc-role secondary sdlc virtual-multidrop sdlc address 1 sdlc address 2 sdlc address 3 stun route address 1 tcp yyy.yyy.yyy.yyy local-ack stun route address 2 tcp zzz.zzz.zzz.zzz local-ack stun route address 3 tcp zzz.zzz.zzz.zzz local-ack stun route address FF tcp yyy.yyy.yyy.yyy stun route address FF tcp zzz.zzz.zzz.zzz
Assume that the link between Router A and Router B is a serial tunnel that uses the TCP/IP encapsulation as shown in Figure 27-9. Device A communicates with Device C (SDLC address C1) with a high priority. Device B communicates with Device D (SDLC address A7) with a normal priority. The configuration file for each router follows the figure.
stun peer-name 1.0.0.1 stun protocol-group 1 sdlc stun protocol-group 2 sdlc ! interface serial 0 no ip address encapsulation stun stun group 1 stun route address C1 tcp 1.0.0.2 local-ack priority priority-group 1 ! interface serial 1 no ip address encapsulation stun stun group 2 stun route address A7 tcp 1.0.0.2 local-ack priority priority-group 2 ! interface ethernet 0 ip address 1.0.0.1 255.0.0.0 ! interface ethernet 1 ip address 1.0.0.3 255.0.0.0 ! priority-list 1 protocol ip high tcp 1994 priority-list 1 protocol ip medium tcp 1990 priority-list 1 protocol ip normal tcp 1991 priority-list 1 protocol ip low tcp 1992 priority-list 1 stun high address 1 C1 ! priority-list 2 protocol ip high tcp 1994 priority-list 2 protocol ip medium tcp 1990 priority-list 2 protocol ip normal tcp 1991 priority-list 2 protocol ip low tcp 1992 priority-list 2 stun normal address 2 A7 ! hostname routerA router igrp network 1.0.0.0
stun peer-name 1.0.0.2 stun protocol-group 1 sdlc stun protocol-group 2 sdlc ! interface serial 0 no ip address encapsulation stun stun group 1 stun route address C1 tcp 1.0.0.1 local-ack priority priority-group 1 ! interface serial 2 no ip address encapsulation stun stun group 2 stun route address A7 tcp 1.0.0.1 local-ack priority priority-group 2 ! interface ethernet 0 ip address 1.0.0.2 255.0.0.0 ! interface ethernet 1 ip address 1.0.0.4 255.0.0.0 ! priority-list 1 protocol ip high tcp 1994 priority-list 1 protocol ip medium tcp 1990 priority-list 1 protocol ip normal tcp 1991 priority-list 1 protocol ip low tcp 1992 priority-list 1 stun high address 1 C1 ! priority-list 2 protocol ip high tcp 1994 priority-list 2 protocol ip medium tcp 1990 priority-list 2 protocol ip normal tcp 1991 priority-list 2 protocol ip low tcp 1992 priority-list 2 stun normal address 2 A7 ! hostname routerB router igrp 109 network 1.0.0.0
In Figure 27-10, four separate PS/2 computers are connected to a line-sharing device off of Router B. Each PS/2 computer has four sessions open on an AS/400 device attached to Router A. Router B functions as the primary station, while Router A functions as the secondary station. Both routers locally acknowledge packets from the IBM PS/2 systems.
The configuration file for the routers shown in Figure 27-10 follows.
! enter the address of the stun peer stun peer-name 150.136.134.86 ! specify that group 4 uses the SDLC protocol stun protocol-group 4 sdlc stun remote-peer-keepalive interface ethernet 1 ! enter the IP address for the Ethernet interface ip address 150.136.134.86 255.255.255.0 ! ! description of IBM AS/400 link interface serial 2 ! description of IBM AS/400 link; disable the IP address on a serial interface no ip address ! enable STUN encapsulation on this interface encapsulation stun ! apply previously defined stun group 4 to serial interface 2 stun group 4 ! establish this router as a secondary station stun sdlc-role secondary ! wait up to 63000 msec for a poll from the primary before timing out sdlc poll-wait-timeout 63000 ! list addresses of secondary stations (PS/2 systems) attached to link sdlc address C1 sdlc address C2 sdlc address C3 sdlc address C4 ! use tcp encapsulation to send frames to SDLC stations C1, C2, C3, or ! C4 and locally terminate sessions with these stations stun route address C1 tcp 150.136.134.58 local-ack stun route address C2 tcp 150.136.134.58 local-ack stun route address C3 tcp 150.136.134.58 local-ack stun route address C4 tcp 150.136.134.58 local-ack
! enter the address of the stun peer
stun peer-name 150.136.134.58
! this router is part of SDLC group 4
stun protocol-group 4 sdlc
stun remote-peer-keepalive
!
interface ethernet 1
! enter the IP address for the Ethernet interface
ip address 150.136.134.58 255.255.255.0
!
! description of PS/2 link
interface serial 4
! disable the IP address on a serial interface
no ip address
! enable STUN encapsulation on this interface
encapsulation stun
! apply previously defined stun group 4 to serial interface 2
stun group 4
! establish this router as a primary station
stun sdlc-role primary
sdlc line-speed 9600
! wait 2000 milliseconds for a reply to a frame before resending it
sdlc t1 2000
! resend a frame up to four times if not acknowledged
sdlc n2 4
! list addresses of secondary stations (PS/2 systems) attached to link
sdlc address C1
sdlc address C2
sdlc address C3
sdlc address C4
! use tcp encapsulation to send frames to SDLC stations C1, C2, C3, or
! C4 and locally terminate sessions with these stations
stun route address C3 tcp 150.136.134.86 local-ack
stun route address C1 tcp 150.136.134.86 local-ack
stun route address C4 tcp 150.136.134.86 local-ack
stun route address C2 tcp 150.136.134.86 local-ack
! set the clockrate on this interface to 9600 bits per second
clockrate 9600
The following example shows a sample configuration for a pair of routers performing SDLC local acknowledgment.
stun peer-name 150.136.64.92 stun protocol-group 1 sdlc stun remote-peer-keepalive ! interface Serial 0 no ip address encapsulation stun stun group 1 stun sdlc-role secondary sdlc address C1 stun route address C1 tcp 150.136.64.93 local-ack clockrate 19200
stun peer-name 150.136.64.93 stun protocol-group 1 sdlc stun remote-peer-keepalive ! interface Serial 0 no ip address encapsulation stun stun group 1 stun sdlc-role primary sdlc line-speed 19200 sdlc address C1 stun route address C1 tcp 150.136.64.92 local-ack clockrate 19200
The following example describes an interface configuration for Frame Relay STUN with local acknowledgment:
stun peer-name 10.1.21.1 cls 4 stun protocol-group 120 sdlc ! interface Serial1 no ip address encapsulation frame-relay frame-relay lmi-type ansi frame-relay map llc2 22 ! interface Serial4 no ip address encapsulation stun clockrate 9600 stun group 120 stun sdlc-role secondary sdlc address C1 sdlc address C2 stun route address C1 interface Serial1 dlci 22 04 local-ack stun route address C2 interface Serial1 dlci 22 08 local-ack !
The following example shows how to establish queuing priorities on a STUN interface based on an LU address:
! sample stun peer-name global command stun peer-name 131.108.254.6 ! sample protocol-group command for reference stun protocol-group 1 sdlc ! interface serial 0 ! disable the ip address for interface serial 0 no ip address ! enable the interface for STUN encapsulation stun ! sample stun group command stun group 2 ! sample stun route command stun route address 10 tcp 131.108.254.8 local-ack priority ! ! assign priority group 1 to the input side of interface serial 0 locaddr-priority 1 priority-group 1 interface Ethernet 0 ! give locaddr-priority-list 1 a high priority for LU 02 locaddr-priority-list 1 02 high ! give locaddr-priority-list 1 a low priority for LU 05 locaddr-priority-list 1 05 low
The following configuration example shows how to assign a priority group to an input interface:
stun peer-name 1.0.0.1 stun protocol-group 1 sdlc ! interface serial 0 no ip address encapsulation stun stun group 1 stun route address C1 tcp 1.0.0.2 local-ack priority clockrate 19200 locaddr-priority 1 priority-group 1 ! interface Ethernet 0 ip address 1.0.0.1 255.255.255.0 ! locaddr-priority-list 1 02 high locaddr-priority-list 1 03 high locaddr-priority-list 1 04 medium locaddr-priority-list 1 05 low ! priority-list 1 protocol ip high tcp 1994 priority-list 1 protocol ip medium tcp 1990 priority-list 1 protocol ip normal tcp 1991 priority-list 1 protocol ip low tcp 1992
stun peer-name 1.0.0.2 stun protocol-group 1 sdlc ! interface serial 0 no ip address encapsulation stun stun group 1 stun route address C1 tcp 1.0.0.1 local-ack priority clockrate 19200 locaddr-priority 1 priority-group 1 ! interface Ethernet 0 ip address 1.0.0.2 255.255.255.0 ! locaddr-priority-list 1 02 high locaddr-priority-list 1 03 high locaddr-priority-list 1 04 medium locaddr-priority-list 1 05 low ! priority-list 1 protocol ip high tcp 1994 priority-list 1 protocol ip medium tcp 1990 priority-list 1 protocol ip normal tcp 1991 priority-list 1 protocol ip low tcp 1992
Our implementation of BSTUN provides the following features:
The BSC feature enables your Cisco 2500 series, Cisco 4000 series, or Cisco 4500 series router to support devices that use the Binary Synchronous Communication (BSC) data link protocol. This protocol enables enterprises to transport BSC traffic over the same network that supports their SNA and multiprotocol traffic, eliminating the need for separate bisync facilities.
At the access router, traffic from the attached BSC device is encapsulated in IP. The BSC traffic can then be routed across arbitrary media to the host site where another router supporting BSC will remove the IP encapsulation headers and present the BSC traffic to the BSC host or controller over a serial connection. HDLC can be used as an alternative encapsulation method for point-to-point links. Figure 27-11 shows how you can reconfigure an existing BSC link between two devices and provide the same logical link without any changes to the existing BSC devices.
The routers transport all BSC blocks between the two devices in passthrough mode using BSTUN as encapsulation. BSTUN uses the same encapsulation architecture as STUN, but is implemented on an independent tunnel.
The BSC feature supports point-to-point, multidrop, and virtual multidrop BSC configurations.
In point-to-point operation the BSC blocks between the two point-to-point devices are received and forwarded transparently by the routers. The contention to acquire the line for transmission is handled by the devices themselves.
Cisco's BSC multipoint operation is provided as a logical multipoint configuration. Figure 27-12 shows how a multipoint BSC link is reconfigured using Cisco routers. Router A is configured as BSC Secondary. It monitors the address field of the polling or selection block and uses this address information to put into the BSTUN frame for BSTUN to deliver to the correct destination router. To simulate the BSC multidrop, an EOT block is sent by the BSC Primary router before a poll or selection block. This ensures that BSC tributary stations are in control mode before being polled or selected.
Multidrop configurations are common in BSC networks where up to eight or ten BSC devices are frequently connected to a BSC controller port over a single low-speed link. Our virtual multidrop support allows BSC devices from different physical locations in the network to appear as a single multidrop line to the BSC host or controller. Figure 27-13 illustrates a multidrop BSC configuration before and after implementing routers.
BSC is a half-duplex protocol. Each block of transmission is acknowledged explicitly. To avoid the problem associated with simultaneous transmission, there is an implicit role of primary and secondary station. The primary resends the last block if there is no response from the secondary within the period of block receive timeout. In the multidropsetup, the BSC control station is the primary and the tributary stations are secondary. In a point-to-point configuration, the primary role is assumed by the BSC device that has successfully acquired the line for transmission through the ENQ bidding sequence. The primary role stays with this station until it sends EOT.
To protect against occasional network latency, which causes the primary station to time out and resend the block before the BSC block sent by the secondary is received, the control byte of the encapsulating frame is used as a sequence number. This sequence number is controlled and monitored by the primary BSC router. This allows the primary BSC router to detect and discard "late" BSC blocks sent by the secondary router and ensure integrity of the BSC link.
The BSC feature is configured similar to SDLC STUN, but it is configured as a protocol within a BSTUN feature. To configure and monitor BSTUN, complete the tasks in the following sections:
The "BSTUN Configuration Examples" section follows these tasks.
To enable BSTUN, perform the following task in global configuration mode:
Task | Command |
---|---|
Enable BSTUN. | bstun peer-name ip-address |
Task | Command |
---|---|
Define the BSC protocol group. | bstun protocol-group group-number protocol [bsc | bsc-local-ack] |
Task | Command |
---|---|
Configure BSTUN on an interface. |
Each BSTUN-enabled interface on a router must be placed in a previously defined BSTUN group. Packets will only travel between BSTUN-enabled interfaces that are in the same group. To assign a serial interface to a BSTUN group, perform the following task in interface configuration mode:
Task | Command |
---|---|
Assign a serial interface to a BSTUN group. | bstun group group-number |
To specify how frames are forwarded when received on a BSTUN interface, perform one of the following tasks in interface configuration mode:
Task | Command |
---|---|
Propagate all BSTUN traffic received on the input interface, regardless of the address contained in the serial frame. TCP encapsulation is used to propagate frames that match the entry. | bstun route all tcp ip-address1 |
Propagate all BSTUN traffic received on the input interface, regardless of the address contained in the serial frame. HDLC encapsulation is used to propagate the serial frames. | bstun route all interface serial interface-number |
Use HDLC encapsulation to propagate the serial frames. The specified interface is also a direct BSTUN link, rather than a serial connection to another peer. | bstun route interface serial interface-number direct |
Propagate the serial frame that contains a specific address. TCP encapsulation is used to propagate frames that match the entry. | bstun route address address-number tcp ip-address |
Propagate the serial frame that contains a specific address. HDLC encapsulation is used to propagate the serial frames. | bstun route address address-number interface serial interface-number |
Propagate the serial frame that contains a specific address. HDLC encapsulation is used to propagate the serial frames. The specified interface is also a direct BSTUN link, rather than a serial connection to another peer. | bstun route address address-number interface serial interface-number direct |
1This command functions in either passthrough or local acknowledgment mode. |
You can assign BSTUN traffic priorities based on either the BSTUN header or the TCP port. To prioritize traffic, perform one of the following tasks in global configuration mode:
Task | Command |
---|---|
Establish BSTUN queuing priorities based on the BSTUN header. | priority-list list-number protocol bstun queue [gt packetsize] [lt packetsize] address bstun-group bsc-addr |
Assign a queuing priority to TCP port. | priority-list list-number protocol ip queue tcp tcp-port-number |
You can customize BSTUN queuing priorities based on either the BSTUN header or TCP port. To customize priorities, perform one of the following tasks in global configuration mode:
Task | Command |
---|---|
Customize BSTUN queuing priorities based on the BSTUN header. | queue-list list-number protocol bstun queue [gt packetsize] [lt packetsize] address bstun-group bsc-addr |
Customize BSTUN queuing priorities based on the TCP port. | queue-list list-number protocol ip queue tcp tcp-port-number |
To configure BSC options on a serial interface, perform one of the following tasks in interface configuration mode:
Task | Command |
---|---|
Specify the character set used by the BSC support feature. | bsc char-set [ascii | ebcdic] |
Specify that the BSC link connected to the seial interface is a point-to-point BSC station. | bsc contention |
Specify that the interface can run BSC in full-duplex mode using non-switched RTS signals. | |
Specify the amount of time between the start of one polling cycle and the next. | |
Specify the timeout for a poll or a select sequence. | |
Specify that the router is acting as the primary end of the BSC link. | |
Specify the number of retries before a device is considered to have failed. | |
Specify that the router is acting as the secondary end of the BSC link. | |
Specify specific polls, rather than general polls, used on the host-to-router connection. | bsc spec-poll |
Specify the number of cycles of the active poll list that are performed between polls to control units in the inactive poll list. |
1This command is documented in the "Interface Commands" chapter of the Router Products Command Reference. |
To list statistics regarding BSTUN interfaces, protocol groups, number of packets sent and received, local acknowledgment states, and other activity information, perform the following task in EXEC mode:
Task | Command |
---|---|
List the status display fields for BSTUN interfaces. | |
Display status of the interfaces on which BSC is configured. | show bsc |
The following sections provide BSTUN configuration examples:
Figure 27-14 shows a simple BSTUN configuration example.
The configuration files for the routers shown in Figure 27-14 follow.
! version 10.2 ! hostname 45ka ! ! no ip domain-lookup ! bstun peer-name 150.10.254.201 bstun protocol-group 1 bsc ! interface Ethernet0 ip address 198.92.0.201 255.255.255.0 media-type 10BaseT ! interface Ethernet1 no ip address shutdown media-type 10BaseT ! interface Serial0 no ip address encapsulation bstun clockrate 19200 bstun group 1 bsc char-set ebcdic bsc secondary bstun route address C9 tcp 150.10.254.210 bstun route address C8 tcp 150.10.254.210 bstun route address C7 tcp 150.10.254.208 bstun route address C6 tcp 150.10.254.208 bstun route address C5 tcp 150.10.254.208 bstun route address C4 tcp 150.10.254.208 bstun route address C3 tcp 150.10.254.207 bstun route address C2 tcp 150.10.254.207 bstun route address C1 tcp 150.10.254.207 bstun route address 40 tcp 150.10.254.207 ! interface Serial1 no ip address shutdown ! interface Serial2 no ip address shutdown ! interface Serial3 no ip address shutdown ! interface TokenRing0 no ip address shutdown ! interface TokenRing1 ip address 150.10.254.201 255.255.255.0 ring-speed 16 ! ! line con 0 line aux 0 line vty 0 4 login ! end
! version 10.2 ! hostname 25ka ! ! no ip domain-lookup ! bstun peer-name 150.10.254.207 bstun protocol-group 1 bsc ! interface Serial0 no ip address shutdown ! interface Serial1 no ip address encapsulation bstun clockrate 19200 bstun group 1 bsc char-set ebcdic bsc primary bstun route address C3 tcp 150.10.254.201 bstun route address C2 tcp 150.10.254.201 bstun route address C1 tcp 150.10.254.201 bstun route address 40 tcp 150.10.254.201 ! interface TokenRing0 ip address 150.10.254.207 255.255.255.0 ring-speed 16 ! interface BRI0 no ip address shutdown ! ! line con 0 line aux 0 line vty 0 4 login ! end
! version 10.2 ! hostname 4kc ! ! no ip domain-lookup ! bstun peer-name 150.10.254.210 bstun protocol-group 1 bsc ! interface Ethernet0 ip address 198.92.0.210 255.255.255.0 media-type 10BaseT ! interface Serial0 no ip address encapsulation bstun clockrate 19200 bstun group 1 bsc char-set ebcdic bsc primary bstun route address C9 tcp 150.10.254.201 bstun route address C8 tcp 150.10.254.201 ! interface Serial1 no ip address shutdown ! interface Serial2 no ip address shutdown ! interface Serial3 no ip address shutdown ! interface TokenRing0 ip address 150.10.254.210 255.255.255.0 ring-speed 16 ! interface TokenRing1 no ip address shutdown ! | line con 0 line aux 0 line vty 0 4 login ! end
! version 10.2 ! hostname 25kb ! ! no ip domain-lookup ! bstun peer-name 150.10.254.208 bstun protocol-group 1 bsc ! interface Serial0 no ip address encapsulation bstun no keepalive clockrate 19200 bstun group 1 bsc char-set ebcdic bsc primary bstun route address C7 tcp 150.10.254.201 bstun route address C6 tcp 150.10.254.201 bstun route address C5 tcp 150.10.254.201 bstun route address C4 tcp 150.10.254.201 ! interface Serial1 no ip address shutdown ! interface TokenRing0 ip address 150.10.254.208 255.255.255.0 ring-speed 16 ! ! line con 0 line aux 0 line vty 0 4 login ! end
In this example, the output interface examines header info and places packets with the BSTUN header on specified output queue.
priority-list <list> protocol bstun <outputQ> int Serial0 priority-group <list> int Serial1 encap bstun bstun group 1 bstun route all interface serial 0 ...or... bstun route address <bsc-addr> interface serial 0
In this example, the output interface examines header information and packet size and places packets with the BSTUN header that match criteria (gt or lt specified packet size) on specified output queue.
priority-list <list> protocol bstun <outputQ> gt <pak-size> priority-list <list> protocol bstun <outputQ> lt <pak-size> int Serial0 priority-group <list> int Serial1 encap bstun bstun group 1 bstun route all interface serial 0 ...or... bstun route address <bsc-addr> interface serial 0
In this example, the output interface examines header information and BSC address and places packets with the BSTUN header that match BSC address on specified output queue.
priority-list <list> protocol bstun <outputQ> address <bstun-group> <bsc-addr> int Serial0 priority-group <list> int Serial1 encap bstun bstun group 1 bstun route address <bsc-addr> interface serial 0
In this example, the output interface examines TCP port number and places packets with the BSTUN port number (1976) on specified output queue.
priority-list <list> protocol ip <outputQ> tcp 1976 int Serial0 priority-group <list> int Serial1 encap bstun bstun group 1 bstun route all tcp <bstun-peer-ip-addr>
In this example, four TCP/IP sessions (high, medium, normal, & low) are established with BSTUN peers using BSTUN port numbers. The input interface examines the BSC address and uses the specified output queue definition to determine which BSTUN TCP session (high, medium, normal, or low) to use for sending the packet to the BSTUN peer.
The output interface examines TCP port number and places packets with the BSTUN port numbers on specified output queue.
priority-list <list> protocol ip high tcp 1976 priority-list <list> protocol ip medium tcp 1977 priority-list <list> protocol ip normal tcp 1978 priority-list <list> protocol ip low tcp 1979 priority-list <list> protocol bstun <outputQ> address <bstun-group> <bsc-addr> int Serial0 priority-group <list> int Serial1 encap bstun bstun group 1 bstun route address <bsc-addr> tcp <bstun-peer-ip-addr> priority priority-group <list>
In this example, the output interface examines header info and places packets with the BSTUN header on specified output queue.
queue-list <list> protocol bstun <outputQ> int Serial0 custom-queue-list <list> int Serial1 encap bstun bstun group 1 bstun route all interface serial 0
In this example, the output interface examines header information and packet size and places packets with the BSTUN header that match criteria (gt or lt specified packet size) on specified output queue.
queue-list <list> protocol bstun <outputQ> gt <pak-size> queue-list <list> protocol bstun <outputQ> lt <pak-size> int Serial0 custom-queue-list <list> int Serial1 encap bstun bstun group 1 bstun route all interface serial 0
In this example the output interface examines header info _and_ BSC address and places packets with the BSTUN header that match BSC address on specified output queue.
queue-list <list> protocol bstun <outputQ> address <bstun-group> <bsc-addr> int Serial0 custom-queue-list <list> int Serial1 encap bstun bstun group 1 bstun route address <bsc-addr> interface serial 0
In this example, the output interface examines TCP port number and places packets with the BSTUN port number (1976) on specified output queue.
queue-list <list> protocol ip <outputQ> tcp 1976 int Serial0 custom-queue-list <list> int Serial1 encap bstun bstun group 1 bstun route all tcp <bstun-peer-ip-addr>
In this example, four TCP/IP sessions (high, medium, normal, & low) are established with BSTUN peers using BSTUN port numbers.
Input interface examines the BSC address and uses the specified output queue definition to determine which BSTUN TCP session (high, medium, normal, or low) to use.
Output interface examines TCP port number and places packets with the BSTUN port numbers on specified output queue.
For BSC addressing, output queues map as follows:
outputQ 1 | Maps to medium BSTUN port (1977) |
outputQ 2 | Maps to normal BSTUN port (1978) |
outputQ 3 | Maps to low BSTUN port (1979 |
outputQ 4-10 | Maps to high BSTUN port (1976) |
queue-list <list> protocol ip <outputQ> tcp 1976 queue-list <list> protocol ip <outputQ> tcp 1977 queue-list <list> protocol ip <outputQ> tcp 1978 queue-list <list> protocol ip <outputQ> tcp 1979 priority-list <list> protocol bstun <outputQ> address <bstun-group> <bsc-addr> int Serial0 custom-queue-list <list> int Serial1 encap bstun bstun group 1 bstun route address <bsc-addr> tcp <bstun-peer-ip-addr> priority custom-queue-list <list>
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |