|
|
This feature module describes the Calling Address Insertion and Removal feature, an enhancement to the Cisco IOS x25 route command, in the following sections:
This feature module describes a modification to the x25 route command that allows interface-based insertion and removal of the X.121 address in the X.25 routing table. This capability allows Cisco routers running X.25 to conform to the French telco TRANSPAC STUR standard, which specifies that X.25 data circuit-terminating equipment (DCE) should not provide the X.25 calling address, but that instead it should be inserted by X.25 data terminal equipment (DTE) based on interface.
A large number of European X.25 network administrators will be upgrading their current X.25 DTE local devices to Cisco routers. The Calling Address Insertion and Removal feature was designed for all routers performing X.25 switching and requiring that an X.121 address be inserted or removed by X.25 DTE based on interface.
The Calling Address Insertion and Removal feature has been a Cisco IOS supported feature for several releases. This new feature will enhance the current support by adding interface-based insertion and removal of the X.121 address.
This feature does not support X.25 over TCP (XOT) to X.25 routing using the input-interface keyword introduced by the Calling Address Insertion and Removal.
The Calling Address Insertion and Removal feature is related to the existing x25 route command, which is documented in the Wide-Area Networking Configuration Guide and the Wide-Area Networking Command Reference publications.
This feature runs on the following platforms that support Cisco IOS Release 12.0(3)T running a feature set supporting X.25 functionality:
No new or modified MIBs are supported by this feature.
For descriptions of supported MIBs and how to use MIBs, see Cisco's MIB web site on CCO at http://www.cisco.com/public/sw-center/netmgmt/cmtk/mibs.shtml.
None
Perform the following task to configure the Calling Address Insertion and Removal feature:
Use the following command syntax to insert an input interface-based route statement into the routing table, beginning in global configuration command mode:
| Command | Purpose |
|---|---|
Router(config)#x25 route input-interface interface source source-pattern substitute-source rewrite-source continue or | Inserts an input interface-based route statement into the routing table. |
The continue keyword is optional. It performs address substitution without address forwarding. That is, it executes the address substitution instructions in each statement but then stops short of actual call switching, thereby postponing the actual switching process until a matching route statement with a disposition other than continue is reached. The continue keyword is most useful when you switch calls among four or more routes. If your network has three or fewer routes, the continue keyword will not save any steps.
See the "Configuration Examples" section for examples of entering these statements.
To display the routes assigned by the x25 route command, use the show x25 route EXEC command. A sample display follows.
Router# show x25 route
# Match Substitute Route to
1 dest ^01 input-int Serial0 Sub-dest \1 Sub-source 00\0
Serial1
This section provides the following configuration examples:
The following example shows insertions and removals in the X.121address as calls from the X.25 network get routed to X.25 devices. Figure 1 shows the topology for this example.

x25 route ^2(.*) input-interface serial1 substitute-dest \1 interface serial2 x25 route input-interface serial2 source .* substitute-source 2\0 interface serial0
For a call coming from interface serial 1 with a called address starting with 2, the 2 is stripped off the called address and the call forwarded to serial interface 2.
For a call coming from interface serial 2 with any calling address, a 2 will be inserted to its calling address and the call forwarded to serial interface 0.
This section provides two examples of the same configuration. Both examples show how to forward calls among a number of local X.25 devices; however, the second example shows how the continue keyword reduces the number of routing statements. (Keep in mind that the continue keyword is most useful when you will be switching calls among four or more routes.)
Figure 2 illustrates the network topology for both examples.

x25 route ^02 input-interface serial 1 substitute-source 01\0 substitute-dest \1 interface serial 2 x25 route ^03 input-interface serial 1 substitute-source 01\0 substitute-dest \1 interface serial 3 x25 route ^04 input-interface serial 1 substitute-source 01\0 substitute-dest \1 interface serial 4 x25 route ^05 input-interface serial 1 substitute-source 01\0 substitute-dest \1 interface serial 5 ! x25 route ^01 input-interface serial 2 substitute-source 02\0 substitute-dest \1 interface serial 1 x25 route ^03 input-interface serial 2 substitute-source 02\0 substitute-dest \1 interface serial 3 x25 route ^04 input-interface serial 2 substitute-source 02\0 substitute-dest \1 interface serial 4 x25 route ^05 input-interface serial 2 substitute-source 02\0 substitute-dest \1 interface serial 5 ! x25 route ^02 input-interface serial 3 substitute-source 03\0 substitute-dest \1 interface serial 2 x25 route ^01 input-interface serial 3 substitute-source 03\0 substitute-dest \1 interface serial 1 x25 route ^04 input-interface serial 3 substitute-source 03\0 substitute-dest \1 interface serial 4 x25 route ^05 input-interface serial 3 substitute-source 03\0 substitute-dest \1 interface serial 5 ! x25 route ^02 input-interface serial 4 substitute-source 04\0 substitute-dest \1 interface serial 2 x25 route ^03 input-interface serial 4 substitute-source 04\0 substitute-dest \1 interface serial 3 x25 route ^01 input-interface serial 4 substitute-source 04\0 substitute-dest \1 interface serial 1 x25 route ^05 input-interface serial 4 substitute-source 04\0 substitute-dest \1 interface serial 5 ! x25 route ^02 input-interface serial 5 substitute-source 05\0 substitute-dest \1 interface serial 2 x25 route ^03 input-interface serial 5 substitute-source 05\0 substitute-dest \1 interface serial 3 x25 route ^04 input-interface serial 5 substitute-source 05\0 substitute-dest \1 interface serial 4 x25 route ^01 input-interface serial 5 substitute-source 05\0 substitute-dest \1 interface serial 1
x25 route input-interface serial 1 source .* substitute-source 01\0 continue x25 route input-interface serial 2 source .* substitute-source 02\0 continue x25 route input-interface serial 3 source .* substitute-source 03\0 continue x25 route input-interface serial 4 source .* substitute-source 04\0 continue x25 route input-interface serial 5 source .* substitute-source 05\0 continue x25 route ^01(.*) substitute-dest \1 interface serial 1 x25 route ^02(.*) substitute-dest \1 interface serial 2 x25 route ^03(.*) substitute-dest \1 interface serial 3 x25 route ^04(.*) substitute-dest \1 interface serial 4 x25 route ^05(.*) substitute-dest \1 interface serial 5
This section documents the modified x25 route command. All other commands used with this feature are documented in the Cisco IOS Release 12.0 command references.
To create an entry in the X.25 routing table (to be consulted for forwarding incoming calls and for placing outgoing packet assembler/disassembler (PAD) or protocol translation calls), use an appropriate form of the x25 route global configuration command. To remove an entry from the table, use the no form of the command.
x25 route [#position] [selection] [modification] disposition [xot-keepalive]
#position | (Optional) A pound sign (#) followed by a number designates the position in the routing table at which to insert the new entry. If no value for the position argument is given, the entry is appended to the end of the routing table. |
selection | (Optional) The selection options identify when the subsequent modification and disposition options apply to an X.25 call; any or all variables may be specified for a route. See Table 1 in the "Usage Guidelines" section for the valid selection keyword and argument options. Although each individual selection criterion is optional, at least one selection or modification element must be specified in the x25 route command. |
modification | (Optional) The modification options modify the source or destination addresses of the selected calls. The standard regular expression substitution rules are used, where a match pattern and rewrite string direct the construction of a new string. See Table 2 in the "Usage Guidelines" section for the valid modification keyword and argument options. Although each individual modification is optional, at least one selection or modification element must be specified in the x25 route command. |
disposition | The disposition options specify the disposition of a call matching the specified selection pattern. See Table 6 in the "Usage Guidelines" section for the valid disposition keyword and argument options. |
xot-keepalive | (Optional) Specifies an XOT keepalive period and number of XOT keepalive retries. XOT relies on Transmission Control Protocol (TCP) to detect when the underlying connection is dead. TCP detects a dead connection when sent data goes unacknowledged for a given number of attempts over a period of time. See Table 7 in the "Usage Guidelines" section for keepalive options. |
No entry is created in the X.25 routing table.
Global configuration
| Release | Modification |
|---|---|
11.2 F | The selection criteria source and dest-ext was introduced. The interface disposition to a CMNS destination first appeared. In prior releases, CMNS routing information was implied by maps defining an NSAP prefix for the MAC address of a CMNS host. The clear disposition first appeared; in prior releases, the disposition was implicit in a route to the Null 0 interface. The modification elements are long-standing but newly applicable to all dispositions in Cisco IOS Release 11.2 F. |
12.0(3)T | The interface-based calling address insertion and removal feature was introduced. |
12.0(5)T | For the DNS-Based X.25 Routing feature, the keyword dns followed by pattern (see Table 5) was introduced, to be used after the xot keyword in the x25 route destination-pattern xot command. |
The enhanced x25 route command replaces the x25 map cmns command. The x25 route alias form of this command (supported in earlier releases) has been replaced by the x25 alias command.
The modification options are long-standing but newly applicable to all dispositions in Cisco IOS Release 11.3 and later.
Selection arguments specify match criteria. When a call matches all selection criteria in an X.25 route, then the specified modification and disposition are used for the call.
As many as four of the following selection options can be used to determine the route:
Table 1 lists the selection options for the x25 route command. At least one selection or modification option must be specified.
| Selection Options | Description |
|---|---|
destination-pattern | Destination address pattern, which is a regular expression that can represent either one X.121 address (such as ^1111000$) or any address in a group of X.121 addresses (such as ^1111.*). |
source source-pattern | Source address pattern, which is a regular expression that can represent either one X.121 source address (such as ^2222000$) or any address in a group of X.121 addresses (such as ^2222.*). |
dest-ext nsap-destination-pattern | NSAP destination address pattern, which is a regular expression that can represent either an NSAP destination address (such as ^11.1111.0000$) or an NSAP prefix (such as ^11.1111.*). Note: A period (.) in the pattern is interpreted as a character wildcard, which will not interfere with a match to the actual period in the NSAP; if desired, an explicit character match may be used (such as ^11\.1111\..*). |
cud user-data-pattern | |
input-interface interface-number | Specifies the interface number on which the call will be received. |
The X.121 and NSAP addresses are specified as regular expressions. A common error is to specify the address digits without anchoring them to the beginning and end of the address. For example, the regular expression 1111 will match an X.121 address that has four successive 1s somewhere in the address; to specify the single X.121 address, the form ^1111$ must be used.
Regular expressions are used to allow pattern-matching operations on the addresses and user data. A common operation is to perform prefix matching on the X.121 DNIC field and route accordingly. The caret (^) is a special regular expression character that anchors the match at the beginning of the pattern. For example, the pattern ^3306 will match all X.121 addresses with a DNIC of 3306.
Addresses typically need to be modified when traffic from a private network that uses arbitrary X.121 addresses must transit a public data network, which must use its own X.121 addresses. The easiest way to meet the requirement is to specify in the x25 route command a way to modify the private address into a network X.121 address, or to modify a network X.121 address into a private address. The addresses are modified so that no change to the private addressing scheme is required.
The modification options use the standard UNIX regular expression substitution operations to change an X.25 field. A pattern match is applied to an address field, which is rewritten as directed by a rewrite pattern.
Table 2 lists the modification options for the x25 route command. At least one selection or modification option must be specified.
| Modification Option | Description |
|---|---|
substitute-source rewrite-source | Calling X.121 address rewrite pattern. The source address, source-pattern, and this rewrite-source pattern are used to form a new source address. If no source-pattern is specified, any destination-pattern match pattern is used. If neither match pattern is specified, a default match pattern of .* is used. See Table 3 and Table 4 for summaries of pattern and character matching, respectively. See Table 5 for a summary of pattern rewrite elements. |
substitute-dest rewrite-dest | Called X.121 address rewrite pattern. The destination address, destination-pattern, and this rewrite-dest pattern are used to form a new destination address. If no destination-pattern is specified, a default match pattern of .* is used. See Table 3 and Table 4 for summaries of pattern and character matching, respectively. See Table 5 for a summary of pattern rewrite elements. |
| Pattern | Description |
|---|---|
* | Matches 0 or more occurrences of the preceding character. |
+ | Matches 1 or more occurrences of the preceding character. |
? | Matches 0 or 1 occurrences of the preceding character.1 |
| 1Precede the question mark with Ctrl-V to prevent the question mark from being interpreted as a help command. |
| Character | Description |
|---|---|
^ | Matches the beginning of the input string. |
$ | Matches the end of the input string. |
\char | Matches the single character char specified. |
. | Matches any single character. |
| Pattern | Description |
|---|---|
\0 | The pattern is replaced by the entire original address. |
\1...9 | The pattern is replaced by strings that match the first through ninth parenthetical part of the X.121 address. |
The xot-source disposition option can improve the resilience of the TCP connection if, for instance, a loopback interface is specified. By default, the source IP address of a TCP connection is that of the interface used to initiate the connection; a TCP connection will fail if either the source or destination IP address is no longer valid. Because a loopback interface never goes down, its IP address is always valid. Any TCP connections originated using a loopback interface can be maintained as long as a path exists to the destination IP address, which may also be the IP address of a loopback interface.
Using the continue keyword provides flexibility by reducing the number of X.25 route configurations necessary in the route table by breaking them into separate, simpler, and more manageable tasks. It allows the x25 route command to cumulatively hold specified route entries and to carry whatever selection or modification options you may have just specified on the cumulatively held route entries. The route table lookup terminates when a matching route is found among the remaining entries in the routing table. The continue disposition must be the last option on the x25 route command line.
Table 6 lists the disposition options for the x25 route command. You must select one of these options.
| Disposition Option | Description |
|---|---|
continue | Combines sequential route table lookups, holding onto any "selections" and "modifications" specified on the x25 route statement. |
interface interface number | Routes the selected call to the specified X.25 serial interface. |
interface interface number dlci number | Routes the X.25 call to the specified Annex G link. You must include the interface number and enter the DLCI number if you want the router to accept switched calls and to originate them. |
interface cmns-interface mac mac-address | Routes the selected call out the specified broadcast interface via CMNS to the LAN destination station. The broadcast interface type can be Ethernet, Token Ring, or FDDI. The interface numbering scheme depends on the router interface hardware. |
xot ip-address [ip2-address [...[ip6-address]]] [xot-source interface] | Routes the selected call to the XOT host at the specified IP address. Subsequent IP addresses are tried, in sequence, only if XOT is unable to establish a TCP connection with a prior address. |
xot dns pattern | (For DNS for X.25) Consults the DNS to get up to six destination IP addresses using whatever lookup pattern you choose (see Table 5). |
hunt-group name | Routes the selected call to the X.25 hunt group. The chosen route may vary depending on the hunt group configuration. |
clear | Ends the call. |
TCP maintains each connection using a keepalive mechanism that starts with a default time period and number of retry attempts. If a received XOT connection is dispatched using a route with explicit keepalive parameters, those values will be used for the TCP connection. If an XOT connection is sent using a route with explicit keepalive parameters, those values will be used for the TCP connection.
Table 7 lists and describes the xot-keepalive options for the x25 route command.
| XOT-Keepalive Option | Description |
|---|---|
xot-keepalive-period seconds | Number of seconds between keepalives for XOT connections. The default is 60 seconds. |
xot-keepalive-tries count | Number of times TCP keepalives should be sent before the connection is dropped. The default value is 4 times. |
If a matching route is found, the incoming call is forwarded to the next hop depending on the routing entry. If no match is found, the call is cleared. If the route specifies a serial interface running X.25 or a broadcast interface running CMNS, the router attempts to forward the call to that host. If the interface is not operational, the subsequent routes are checked for forwarding to an operational interface. If the interface is operational but out of available virtual circuits, the call is cleared. Otherwise, the expected Clear Request or Call Accepted message is transmitted toward the originator. A call cannot be forwarded out the interface on which it arrived.
If the matching route specifies an XOT disposition, a TCP connection is established to port 1998 at the specified IP address, which must be an XOT host. The Call Request packet is forwarded to the remote host, which applies its own criteria to handle the call. If, when the remote host receives an XOT call, a routing table entry is not present, or the destination is unavailable, a Clear Request is sent back and the TCP connection is closed. Otherwise, the call is handled and the expected Clear Request or Call Accepted packet is returned. Incoming calls received via XOT connections that match a routing entry specifying an XOT destination are cleared. This restriction prevents Cisco routers from establishing an XOT connection to another router that would establish yet another XOT connection.
The following example uses regular expression pattern matching characters to match just the initial portion of the complete X.25 address. Any call with a destination address beginning with 3107 that is received on an interface other than serial 0 is forwarded to serial 0.
x25 route ^3107 interface serial 0
The following Annex G example routes the X.25 call to the specified Annex G DLCI link. You must include both interface number and DLCI number. It is this combination of both these numbers that indicates the logical X.25 interface over Frame Relay.
x25 route ^2222 interface serial 1 dlci 20
The following example prevents X.25 routing for calls that do not specify a source address:
x25 route source ^$ clear
The following example configures alternate XOT hosts for the routing entry. If the first address listed is not available, subsequent addresses are tried until a connection is made. If no connection can be formed, the call is cleared.
x25 route ^3106$ xot 172.20.2.5 172.20.7.10 172.10.7.9
The following example clears calls that contain a 3 in the source address. The disposition keyword clear is new:
x25 route source 3 clear
The following example clears calls that contain two consecutive 3s in the source address:
x25 route source 33 clear
The following example clears a call to the destination address 9999:
x25 route ^9999$ clear
The following example specifies a route for specific source and destination addresses. (This example illustrates the ability to combine source and destination patterns.)
x25 route ^9999$ source ^333$ interface serial 0
The following example routes the call to the XOT host at the specified IP address. The disposition keyword xot is new. In prior releases the keyword ip was used.
x25 route ^3333$ xot 172.21.53.61
The following DNS-Based X.25 Routing example shows an X.25 request to the DNS. The \0 pattern indicates that the entire incoming X.121 address is being used as the index into the DNS which will return the required IP address.
x25 route ^.* xot dns \0
The following example routes calls containing the destination extension address preamble 11.1234:
x25 route dest-ext ^11.1234.* interface serial 0
The following example rewrites the destination address as 9999. There must be a minimum of four 8s in the address. (8888888 will change to 9999.)
x25 route 8888 substitute-dest 9999 interface serial 0
The following example substitutes only part of the destination address. "^88" specifies the original destination string must begin with 88. "(.*)" indicates the string can end with any number, 0-9, and can be more than one digit. "99\1" changes the destination address to 99 plus whatever matches ".*" in the original destination address. For example, 8881 will change to 9981.
x25 route ^88(.*) substitute-dest 99\1 interface serial 0
The following example substitutes only part of the destination address and also removes a specified number of digits from the address. "^88" specifies the original destination string must begin with 88. "(..)" matches any two digits. "(.*)" specifies the string can end with any number, 0-9, and can occur zero or more times. Thus any address that starts with 88 and has four or more digits will be rewritten to start with 99 and omit the third and fourth digits. For example, 881234 will change to 9934.
x25 route ^88(..)(.*) substitute-dest 99\2 interface serial 0
The following example looks for a specified destination address and changes the source address. "9999" is the destination address. The original source address changes to "2222" because the call is made to the destination 9999.
x25 route ^9999$ substitute-source 2222 interface serial 0
The following example shows insertions and removals in the X.121 address as calls from the X.25 network get routed to X.25 devices. For a call coming from interface serial 0 with a called address starting with 2, the 2 is stripped off the called address and the call forwarded to serial interface 2. For a call coming from interface serial 2 with any calling address, a 2 will be inserted to its calling address and the call forwarded to serial interface 0.
x25 route ^02(.*) input-interface serial0 substitute-dest \1 interface serial2 x25 route input-interface serial2 source .* substitute-source 2\0 interface serial0
The following example shows how to insert the X.121 address to forward calls among local X.25 devices. For a call on interface 1 with a called address of 0255 and any calling address, the call is forwarded to serial interface 2 with a called address of 55 and a calling address inserted with 01. The continue keyword continues address substitution without address forwarding.
x25 route input-interface serial1 source .* substitute-source 01\0 continue x25 route input-interface serial2 source .* substitute-source 02\0 continue x25 route ^01(.*) substitute-dest \1 interface serial1 x25 route ^02(.*) substitute-dest \1 interface serial2
The following example rewrites the source address based on the source address. "9999" matches any destination address with four consecutive 9s. "^...(.*)" matches any source address with at least three digits; the command removes the first three digits and rewrites any digits after the first three as the new source address. For example, a call to 9999 from the source address 77721 will be forwarded using the calling address 21 and the called address 9999.
x25 route 9999 source ^...(.*) substitute-source \1 interface serial 0
The following example adds a digit to the source and destination addresses patterns. "09990" is the destination address pattern. The source can be any address. "9\0" specifies to add a leading 9 to the destination address pattern. "3\0" specifies to add a leading 3 to the source address pattern. For example, a call using source 03330 and destination 09990 will change to 303330 and 909990, respectively.
x25 route 09990 source .* substitute-dest 9\0 substitute-source 3\0 interface serial 0
| Command | Description |
show x25 route | Displays the X.25 routing table. |
called address---X.25 address field that contains the identity and the location of the addressee. The address fields, present in the call packet, are used to identify two communicating parties. They are connected when the X.25 virtual circuit is established.
calling address---X.25 address field that identifies the originator of the call. The address fields, present in the call packet, are used to identify two communicating parties. They are connected when the X.25 virtual circuit is established.
data circuit-terminating equipment---See DCE.
data terminal equipment---See DTE.
DCE---data circuit-terminating equipment (ITU-T expansion). Devices and connections of a communications network that comprise the network end of the user-to-network interface. The DCE provides a physical connection to the network, forwards traffic, and provides a clocking signal used to synchronize data transmission between DCE and DTE devices.
DTE---data terminal equipment. Device at the user end of a user-network interface that serves as a data source, destination, or both. DTE connects to a data network through a DCE device and typically uses clocking signals generated by the DCE.
International Telecommunication Union Telecommunication Standardization Sector---See ITU-T.
ITU-T---International Telecommunication Union Telecommunication Standardization Sector. International body that develops worldwide standards for telecommunications technologies. The ITU-T carries out the functions of the former CCITT.
STUR---French standard: Technical specification and utilization of networks.
telco---Abbreviation for telephone company.
TRANSPAC---Major packet data network run by France Telecom.
X.121---ITU-T standard describing an addressing scheme used in X.25 networks. X.121 addresses are sometimes called International Data Numbers (IDNs).
X.25---ITU-T standard that defines how connections between DTE and DCE are maintained for remote terminal access and computer communications in public data networks (PDNs). X.25 specifies Link Access Procedure, Balanced (LAPB), a data link layer protocol, and packet level protocol (PLP), a network layer protocol.
XOT---Abbreviation for X.25 over TCP.
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Posted: Mon Jul 26 15:38:49 PDT 1999
Copyright 1989-1999©Cisco Systems Inc.