In questo documento vengono descritte alcune configurazioni di host e router di esempio per eseguire la procedura OMPROUTE sul mainframe e scambiare gli aggiornamenti del routing con il resto della rete TCP/IP. OMPROUTE viene spesso utilizzato, come in questo esempio, insieme a un indirizzo IP virtuale (VIPA), che consente all'indirizzo IP del mainframe configurato nei client di essere indipendente da qualsiasi interfaccia a un canale. Ciò fornisce ridondanza per il canale. In origine, l'implementazione TCP/IP mainframe di IBM supportava solo il protocollo RIP (Routing Information Protocol) come protocollo di routing, con l'uso della procedura OROUTED. La versione più recente di OMPROUTE supporta RIP V1 o V2 e Open Shortest Path First (OSPF). IBM consiglia di utilizzare OMPROUTE invece di OROUTED e alla fine IBM rimuoverà il supporto per OROUTED.
Nessun requisito specifico previsto per questo documento.
La versione software Cisco IOS® utilizzata per questa configurazione è la 12.1(3a)T2 con microcodice xCPA 27-9, la più recente al momento del test. Se si utilizza CLAW, tuttavia, questa procedura dovrebbe essere compatibile con qualsiasi versione del software Cisco IOS. L'uso di CMPC+ richiede almeno la versione 12.1T del software Cisco IOS.
Il router era un Cisco 7206 con un adattatore di porta xCPA. In alternativa, è possibile usare un router Cisco 7500 con una scheda CIP con modifiche minori alla configurazione, come indicato più avanti in questo documento.
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Per ulteriori informazioni sulle convenzioni usate, consultare il documento Cisco sulle convenzioni nei suggerimenti tecnici.
La configurazione di OMPROUTE sul mainframe è molto simile a quella di OROUTED. OMPROUTE utilizza anche almeno due file di configurazione. È necessario puntare alla posizione di questi file di configurazione, nello spazio degli indirizzi di OMVS, con queste due variabili di ambiente:
export resolver_conf=/etc/resolv.conf
export moproute_file=/etc/omproute.conf
Questo è un esempio del contenuto di resolver_conf:
TCPJobName TCPIP DomainOrigin cisco.com domain cisco.com Datasetprefix TCPIP HostName P390 Messagecase mixed
Il valore di omproute_file dipenderà dal fatto che RIP o OSPF sia in uso. Questa è una configurazione di esempio per 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 ;
Per OSPF sono disponibili più opzioni di configurazione, tra cui la possibilità di fare in modo che il mainframe agisca come un'area di stub. In questo modo è possibile ridurre in modo significativo gli aggiornamenti del routing di carico che vengono inseriti nel canale quando molte partizioni logiche (LPAR) si connettono sullo stesso canale. Questo è un esempio:
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
Il set di dati del profilo TCP/IP non richiede alcuna configurazione speciale per OMPROUTE, a parte il fatto che è necessario impostare come commento tutta la configurazione della route statica e predefinita e la sezione BSDROUTINGPARMS (utilizzata solo da ROUTED). In questo estratto vengono mostrati solo gli elementi che devono essere commentati e i parametri a cui fanno riferimento i file di configurazione OMPROUTE:
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.
Gli aggiornamenti del routing possono essere scambiati tramite connessioni CLAW o CMPC+. Se si utilizza CLAW, non è necessaria alcuna configurazione aggiuntiva sul mainframe. In questo esempio viene utilizzato CMPC, che richiede una voce TRL (Transport Resource List) VTAM. Membro VTAM:
DIPTGTRL VBUILD TYPE=TRL * * DIPTG TRLE LNCTL=MPC,MAXBFRU=16,READ=(E24),WRITE=(E25) *
È necessario attivare TRL prima di avviare l'attività TCPIP. Ad esempio:
V NET,ACT,ID=DIPTRL1,UPDATE=ALL IST097I VARY ACCEPTED ISTTRL ACTIVE
Quindi, attivare l'operazione TCP/IP avviata con il comando S TCPIP MVS console. Una volta avviata l'operazione TCP/IP, è possibile avviare la procedura OMPROUTE utilizzando il linguaggio JCL (Job Control Language) come operazione avviata o dallo spazio degli indirizzi di OMVS. Per iniziare all'interno di OMVS, utilizzare i seguenti comandi:
cd /usr/lpp/tcpip/sbin omproute &
Per verificare che OMPROUTE sia in esecuzione, usare questo comando della console, dove p390 è l'ID utente con cui è stato avviato il demo OMPROUTE:
d omvs,u=p390
Sia CLAW che CMPC devono essere configurati in modo specifico per l'invio di trasmissioni sul canale, con la parola chiave broadcast. Ad esempio, per CLAW:
claw 0100 20 10.101.1.10 P390D C7000D TCPIP TCPIP broadcast
Nell'esempio, il protocollo CMPC+ è in uso, quindi queste sono le parti rilevanti della configurazione del router:
! 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 !
Se questo fosse stato un router Cisco 7500 con una scheda CIP anziché un router 7200 con una scheda di porta xCPA, l'istruzione tg sarebbe stata configurata nell'interfaccia virtuale /2. Notare il comando ip ospf network point-to-multipoint, necessario per il corretto funzionamento di OSPF. L'interfaccia del canale è considerata un'interfaccia multipunto come Frame Relay. Se non si desidera eseguire OSPF in tutta la rete, è possibile eseguirlo solo sull'interfaccia del canale e utilizzare la ridistribuzione tra altri protocolli di routing. Ad esempio:
! 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 visualizza la tabella di routing. Ad esempio:
===> 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
dispositivo netstat visualizza lo stato e così via di tutti i dispositivi o collegamenti collegati. Ad esempio:
===> 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
netstat offre molte altre opzioni. Puoi usare il netstat? per visualizzarli tutti.