This document outlines sample host and router configurations to run the OMPROUTE procedure on the mainframe to exchange routing updates with the rest of the TCP/IP network. OMPROUTE is often used, as in this example, in conjunction with a Virtual IP Address (VIPA), which allows the IP address of the mainframe configured in the clients to be independent of any one channel interface. This provides redundancy for the channel. Originally, IBM's mainframe TCP/IP implementation only supported Routing Information Protocol (RIP) as a routing protocol, with the use of the OROUTED procedure. The newer OMPROUTE supports either RIP V1 or V2 and Open Shortest Path First (OSPF). IBM recommends that OMPROUTE be used rather than OROUTED, and IBM will eventually remove support for OROUTED.
There are no specific requirements for this document.
The Cisco IOSĀ® Software Release that was used for this configuration was 12.1(3a)T2 with xCPA microcode 27-9, which was the latest at the time this was tested. If you are using CLAW, however, this should work with any version of Cisco IOS Software. The use of CMPC+ requires a minimum of Cisco IOS Software Release 12.1T.
The router was a Cisco 7206 with an xCPA port adapter. Alternatively, a Cisco 7500 router with a CIP card could be used with minor changes in the configuration, as noted later in this document.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
For more information on document conventions, refer to the Cisco Technical Tips Conventions.
The configuration of OMPROUTE on the mainframe is very similar to the configuration of OROUTED. OMPROUTE also uses a minimum of two configuration files. You must point to the location of these configuration files, in the OMVS address space, with these two environment variables:
export resolver_conf=/etc/resolv.conf
export omproute_file=/etc/omproute.conf
This is an example of the contents of resolver_conf:
TCPJobName TCPIP DomainOrigin cisco.com domain cisco.com Datasetprefix TCPIP HostName P390 Messagecase mixed
The omproute_file will depend on whether RIP or OSPF is being used. This is an example configuration for RIP:
; Originate_RIP_Default Condition=Always Cost=1 ; RIP_Interface IP_Address=10.64.3.34 Name=LDIPTG Subnet_Mask=255.255.255.240 Receive_Dynamic_Nets=YES Receive_Dynamic_Subnets=YES MTU=1470 Destination_Addr=10.64.3.33 ; RIP_Interface IP_Address=10.64.3.17 Name=VIPALINK Subnet_Mask=255.255.255.240 MTU=1470 ;
For OSPF, there are more configuration options available, which include the ability to make the mainframe act as a stub area. This can significantly reduce the load routing updates that are placed on the channel when many logical partitions (LPARs) are connecting over the same channel. This is an example:
Area Area_Number=0.0.0.0 Authentication_Type=None Stub_Area=NO ; Comparison=Type2 ; AS_Boundary_Routing Import_Subnet_Routes=YES Import_Direct_Routes=YES ; OSPF_Interface IP_Address=10.64.3.34 Name=LDIPTG Subnet_Mask=255.255.255.240 Attaches_To_Area=0.0.0.0 MTU=1470 Destination_Addr=10.64.3.33 Hello_Interval=30 Dead_Router_Interval=120 ; OSPF_Interface IP_Address=10.64.3.17 Name=VIPALINK Subnet_Mask=255.255.255.240
The TCP/IP profile dataset does not require any special configuration for OMPROUTE, other than the fact that you must comment out all of the static and default route configuration and the BSDROUTINGPARMS section (which is only used by OROUTED). This extract shows only what must be commented out and the parameters to which the OMPROUTE configuration files refer:
TCPIP Profile dataset --------------------- ----------------------------------------------------------------------- ; Hardware definitions: ----------------------------------------------------------------------- ; NOTE: To use these device and link statements, update the statements ; to reflect your installation configuration and remove the semicolon ; DEVICE DIPTG MPCPTP LINK LDIPTG MPCPTP DIPTG DEVICE VIPADEV VIRTUAL 0 LINK VIPALINK VIRTUAL 0 VIPADEV ; ; ; ----------------------------------------------------------------------- ; ; HOME Internet (IP) addresses of each link in the host. ; ; NOTE: To use this home statement, update the ipaddress and linknames ; to reflect your installation configuration and remove the semicolon ; HOME 10.64.3.17 VIPALINK 10.64.3.34 LDIPTG ; ----------------------------------------------------------------------- ; ; IP routing information for the host. All static IP routes should ; be added here. ; ; NOTE: To use this GATEWAY statement, update the addresses and links ; to reflect your installation configuration and remove the semicolon ; ; GATEWAY ; ; Direct Routes - Routes that are directly connected to my interfaces. ; ; Network First Hop Link Name Packet Size Subnet Mask Subnet Value ; 10 = CIS1 1500 0.255.255.0 0.101.1 ; 10 = LDIPTG 1500 0.255.255.240 0.64.3.32 ; 9 = LIS1 1500 0.255.255.0 0.117.56.0 ; 130.50 = TR1 2000 0.0.255.0 0.0.10.0 ; 193.5.2 = ETH1 1500 0 ; 9 = FDDI1 4000 0.255.255.0 0.67.43.0 ; 193.7.2.2 = SNA1 2000 HOST ; ; Indirect Routes - Routes that are reachable through routers on my ; network. ; ; Network First Hop Link Name Packet Size Subnet Mask Subnet Value ; DEFAULTNET 10.64.3.33 LDIPTG DEFAULTSIZE 0 ; 193.12.2 130.50.10.1 TR1 2000 0 ; 10.5.6.4 193.5.2.10 ETH1 1500 HOST ; ; Default Route - All packets to an unknown destination are routed ; through this route. ; ; Network First Hop Link Name Packet Size Subnet Mask Subnet Value ; DEFAULTNET 9.67.43.1 FDDI1 DEFAULTSIZE 0 ; ; ----------------------------------------------------------------------- ; ; orouted Routing Information ; ; if you are using orouted, comment out the GATEWAY statement and ; update the BSDROUTINGPARMS statement to reflect your installation ; configuration and remove the semicolon ; ; Link Maxmtu Metric Subnet Mask Dest Addr ; BSDROUTINGPARMS false ; LDIPTG 1500 0 255.255.255.240 10.64.3.33 ; VIPALINK 1500 0 255.255.255.240 0 ; TR1 2000 0 255.255.255.0 0 ; ETH1 1500 0 255.255.255.0 0 ; FDDI1 DEFAULTSIZE 0 255.255.255.0 0 ; ENDBSDROUTINGPARMS !--- Note that all of the last two sections have been commented out.
Routing updates can be exchanged over either CLAW or CMPC+ connections. If you are using CLAW, no additional configuration is required on the mainframe. This example uses CMPC, which requires a VTAM transport resource list (TRL) entry. This is the VTAM member:
DIPTGTRL VBUILD TYPE=TRL * * DIPTG TRLE LNCTL=MPC,MAXBFRU=16,READ=(E24),WRITE=(E25) *
The TRL must be activated before the TCPIP started task is started. For example:
V NET,ACT,ID=DIPTRL1,UPDATE=ALL IST097I VARY ACCEPTED ISTTRL ACTIVE
Then, activate the TCP/IP started task with the S TCPIP MVS console command. Once the TCP/IP started task is running, the OMPROUTE procedure can be started, either with the use of job control language (JCL) as a started task or from within the OMVS address space. To start within OMVS, issue these commands:
cd /usr/lpp/tcpip/sbin omproute &
To check that OMPROUTE is running, issue this console command, where p390 is the user ID under which the OMPROUTE demon was started:
d omvs,u=p390
Both CLAW and CMPC must be specifically configured to send broadcasts over the channel, with the broadcast keyword. For example, for CLAW:
claw 0100 20 10.101.1.10 P390D C7000D TCPIP TCPIP broadcast
In this example, CMPC+ is in use, so these are the relevant parts of the router configuration:
! interface Channel2/0 ip address 10.64.3.33 255.255.255.240 ip ospf network point-to-multipoint no keepalive cmpc 0100 24 DIPTG READ cmpc 0100 25 DIPTG WRITE tg DIPTG ip 10.64.3.34 10.64.3.33 broadcast router ospf 1 network 10.0.0.0 0.255.255.255 area 0 !
If this had been a Cisco 7500 router with a CIP card instead of a 7200 with an xCPA port adapter, the tg statement would have been configured under the virtual /2 interface. Note the ip ospf network point-to-multipoint command, which is required for OSPF to function correctly. The channel interface is considered a multipoint interface much like Frame Relay. If you do not wish to run OSPF throughout your network, you can run it only on the channel interface itself and use redistribution between other routing protocols. For example:
! router eigrp 1 redistribute ospf 1 passive-interface Channel2/0 network 10.0.0.0 no eigrp log-neighbor-changes ! router ospf 1 log-adjacency-changes redistribute eigrp 1 network 10.64.3.33 0.0.0.0 area 0 !
diplodocus# show extended channel 2/0 status Path: 0100 -- ESTABLISHED Command Selective System Device CU Dev Connects Retries Cancels Reset Reset Errors Busy 24 30 21 1 0 0 0 0 25 29 0 1 0 0 0 0 Blocks Bytes Dropped Blk Memd Dev-Lnk Read Write Read Write Read Write wait Con 24-00 29 6 3484 789 0 0 0 Y 25-00 9 29 801 3920 0 0 0 Y Path 0100 Total: 38 35 4285 4709 0 0 0 Last statistics 0 seconds old, next in 10 seconds diplodocus# show extended channel 2/0 cmpc Path Dv TGName Dir Bfrs Status CMPC 0100 24 DIPTG READ 16 Active+ CMPC 0100 25 DIPTG WRITE 16 Active+ diplodocus# show ip ospf i Channel2/0 is up, line protocol is up Internet Address 10.64.3.33/28, Area 0 Process ID 1, Router ID 200.100.100.9, Network Type POINT_TO_MULTIPOINT, Cost: 4 Transmit Delay is 1 sec, State POINT_TO_MULTIPOINT, Timer intervals configured, Hello 30, Dead 120, Wait 120, Retransmit 5 Hello due in 00:00:10 Index 1/1, flood queue length 0 Next 0x0(0)/0x0(0) Last flood scan length is 1, maximum is 1 Last flood scan time is 0 msec, maximum is 0 msec Neighbor Count is 1, Adjacent neighbor count is 1 Adjacent with neighbor 10.64.3.17 Suppress hello for 0 neighbor(s) diplodocus# show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface 10.64.3.17 1 FULL/ - 00:01:35 Neighbor is up for 00:04:01 10.64.3.34 Channel2/0 diplodocus# show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area * - candidate default, U - per-user static route, o - ODR P - periodic downloaded static route Gateway of last resort is 10.64.3.1 to network 0.0.0.0 1.0.0.0/27 is subnetted, 1 subnets C 1.1.1.0 is directly connected, Loopback1 200.100.100.0/29 is subnetted, 1 subnets C 200.100.100.8 is directly connected, Loopback0 10.0.0.0/8 is variably subnetted, 9 subnets, 3 masks D 10.0.0.0/8 is a summary, 00:06:40, Null0 C 10.64.3.0/28 is directly connected, Ethernet6/0 O E2 10.64.3.17/32 [110/1] via 10.64.3.34, 00:03:57, Channel2/0 O 10.64.3.16/28 [110/5] via 10.64.3.34, 00:03:57, Channel2/0 C 10.64.3.32/28 is directly connected, Channel2/0 S 10.64.3.34/32 [1/0] via 10.64.3.34, Channel2/0 S 10.64.3.37/32 [1/0] via 10.64.3.37, Channel2/0 C 10.64.3.48/28 is directly connected, Serial1/3.1 C 10.64.3.128/28 is directly connected, Serial1/3.2 S* 0.0.0.0/0 [1/0] via 10.64.3.1
D NET,TRL IST097I DISPLAY ACCEPTED ST350I DISPLAY TYPE = TRL 042 IST1314I TRLE = DIPTG STATUS = ACTIV CONTROL = MPC IST1454I 1 TRLE(S) DISPLAYED IST314I END D NET,TRL,TRLE=DIPTG IST097I DISPLAY ACCEPTED IST075I NAME = DIPTG, TYPE = TRLE 045 IST486I STATUS= ACTIV, DESIRED STATE= ACTIV IST087I TYPE = LEASED , CONTROL = MPC , HPDT = YES IST1715I MPCLEVEL = HPDT MPCUSAGE = SHARE IST1577I HEADER SIZE = 4092 DATA SIZE = 60 STORAGE = ***NA*** IST1221I WRITE DEV = 0E25 STATUS = ACTIVE STATE = ONLINE IST1577I HEADER SIZE = 4092 DATA SIZE = 60 STORAGE = DATASPACE IST1221I READ DEV = 0E24 STATUS = ACTIVE STATE = ONLINE IST314I END
netstat route displays the routing table. For example:
===> netstat route EZZ2350I MVS TCP/IP NETSTAT CS V2R7 TCPIP NAME: TCPIP 15:56:33 EZZ2755I Destination Gateway Flags Refcnt Interface EZZ2756I ----------- ------- ----- ------ --------- EZZ2757I 10.0.0.0 10.64.3.33 UG 000000 LDIPTG EZZ2757I 10.64.3.32 0.0.0.0 U 000000 LDIPTG EZZ2757I 10.64.3.33 0.0.0.0 UH 000000 LDIPTG
netstat device displays the status and so forth of all of the connected devices or links. For example:
===> netstat device EZZ2350I MVS TCP/IP NETSTAT CS V2R7 TCPIP NAME: TCPIP 15:58:04 EZZ2760I DevName: LOOPBACK DevType: LOOPBACK DevNum: 0000 EZZ2761I LnkName: LOOPBACK LnkType: LOOPBACK Status: Ready EZZ2762I NetNum: 0 QueSize: 0 ByteIn: 0000004278 ByteOut: 0000004278 EZZ2768I BSD Routing Parameters: EZZ2769I MTU Size: 00000 Metric: 00 EZZ2770I DestAddr: 0.0.0.0 SubnetMask: 0.0.0.0 EZZ2810I Multicast Specific: EZZ2811I Multicast Capability: No EZZ2760I DevName: DIPTG DevType: MPC DevNum: 0000 EZZ2761I LnkName: LDIPTG LnkType: MPC Status: Ready EZZ2762I NetNum: 0 QueSize: 0 ByteIn: 0000001848 ByteOut: 0000001936 EZZ2768I BSD Routing Parameters: EZZ2769I MTU Size: 01470 Metric: 01 EZZ2770I DestAddr: 0.0.0.0 SubnetMask: 255.255.255.240 EZZ2810I Multicast Specific: EZZ2811I Multicast Capability: Yes EZZ2812I Group RefCnt EZZ2813I ----- ------ EZZ2814I 224.0.0.5 0000000001 EZZ2814I 224.0.0.1 0000000001 EZZ2760I DevName: VIPADEV DevType: VIPA DevNum: 0000 EZZ2761I LnkName: VIPALINK LnkType: VIPA Status: Ready EZZ2762I NetNum: 0 QueSize: 0 ByteIn: 0000000000 ByteOut: 0000000000 EZZ2768I BSD Routing Parameters: EZZ2769I MTU Size: 01470 Metric: 01 EZZ2770I DestAddr: 0.0.0.0 SubnetMask: 255.255.255.240 EZZ2810I Multicast Specific: EZZ2811I Multicast Capability: No
There are many more options available with netstat. You can issue the netstat ? command to display them all.