Chapter 2. The Resolver 39
Example 2-5 Ping command results
CS03 @ SC32:/u/cs03>ping router1
CS V1R7: Pinging host router1 (10.10.2.1)
Ping #1 response took 0.000 seconds.
It is also possible to verify where the resolver is looking by using the TRACE RESOLVER
parameter in the stack’s or application’s TCPIP.DATA data set. How this is done and the
contents of this trace will be explained in “Diagnosing the Resolver address space
environment” on page 43.
2.4.3 Implementing local settings in the Resolver environment
Once our Resolver address space is activated, all our global TCPIP.DATA statements will be
in place and cannot be overrided unless we change the setup data set and execute a
MODIFY command to use a new set of statements.
The TCP/IP stack or application is still able to use some local TCPIP.DATA statements to suit
its own requirements, such as the HOSTNAME and TCPIPJOBNAME. In this section we start
an FTP server (FTPDA), which establishes affinity with stack TCPIPA, and uses the
TCPIP.DATA data set (DATAA32) to create its own statements. We also create a user local
IPNODES data set for TSO user CS03, which will take precedence over the stack’s
IPNODES data set and over the default IPNODES data set pointed to by the Resolver
address space setup data set, as shown in Figure 2-17 on page 40.
40 Communications Server for z/OS V1R7 TCP/IP Implementation, Volume 1 - Base Functions, Connectivity, and Routing
Figure 2-17 Local Resolver configuration
Implementation tasks
To implement these local changes in our Resolver environment we did the following:
򐂰 Created a TCPIP.DATA data set named DATAA32 with the TCPIPA stack’s statements,
as shown in Example 2-6.
Example 2-6 TCPIP.DATA data set DATAA32
;OPTIONS DEBUG
TCPIPJOBNAME TCPIPA
HOSTNAME WTSC32A
DOMAINORIGIN ITSO.IBM.COM
DATASETPREFIX TCPIPA
MESSAGECASE MIXED
򐂰 Customized the TCPIPA stack procedure (RESOLVER_CONFIG) to point to DATAA32,
using the &sysclone variable to simplify our implementation to allow for a single procedure
to be used by any z/OS image in our sysplex environment, as shown in Example 2-7.
Example 2-7 TCPIPA procedure
//TCPIPA PROC PARMS='CTRACE(CTIEZB00),IDS=00',
// PROFILE=PROFA&SYSCLONE.,TCPDATA=DATAA&SYSCLONE
System Resolver
TCPIPA Stack
LPAR32
TCPIPA.TCPPARMS(GLOBAL):
Nameserver 9.12.6.7
Domain itso.ibm.com
Resolvevia UDP
...
TCPIPA.TCPPARMS(IPNODES):
9.12.6.7 OURDNS
10.10.1.230 WTSC30A
10.10.1.221 WTSC32A
10.10.1.241 WTSC31A...
TCPIPA.TCPPARMS(DEFAULT):
Hostname SC32
TCPIPJobname TCPIPA
//FTPDA PROC MODULE='FTPD',PARMS='',
//
TCPDATA=DATAA&SYSCLONE.,FTPDATA=FTPDA&SYSCLONE
//FTPD EXEC PGM=&MODULE,REGION=0M,TIME=NOLIMIT,
// PARM=('POSIX(ON) ALL31(ON)',
// 'ENVAR("_BPXK_SETIBMOPT_TRANSPORT=TCPIPA"',
// '"TX=EST")/&PARMS')
//CEEDUMP DD SYSOUT=*
//SYSFTPD DD DISP=SHR,DSN=TCPIPA.TCPPARMS(&FTPDATA)
//SYSTCPD DD DISP=SHR,DSN=TCPIPA.TCPPARMS(&TCPDATA)
//*
SETUP
GLOBALTCPIPDATA('TCPIPA.TCPPARMS(GLOBAL)')
DEFAULTTCPIPDATA('TCPIPA.TCPPARMS(DEFAULT)')
DEFAULTIPNODES (’TCPIPA.TCPPARMS(IPNODES)’)
COMMONSEARCH
FTPDA32 TSO user CS03
CS03.ETC.IPNODES:
9.12.4.221 tot177
10.10.1.230 tcpip30
10.10.1.241 tcpip31
10.10.2.1 router1
10.10.3.2 router2
TCPIPA.TCPPARMS(DATAA32):
Hostname wtsc32a
TCPIPJobname TCPIPA
DATASETPREFIX TCPIPA
Chapter 2. The Resolver 41
//TCPIPA EXEC PGM=EZBTCPIP,REGION=0M,TIME=1440,
// PARM=('&PARMS',
// 'ENVAR("RESOLVER_CONFIG=//''TCPIPA.TCPPARMS(&TCPDATA)''")')
//SYSPRINT DD SYSOUT=*,DCB=(RECFM=VB,LRECL=132,BLKSIZE=136)
//ALGPRINT DD SYSOUT=*,DCB=(RECFM=VB,LRECL=132,BLKSIZE=136)
//CFGPRINT DD SYSOUT=*,DCB=(RECFM=VB,LRECL=132,BLKSIZE=136)
//SYSOUT DD SYSOUT=*,DCB=(RECFM=VB,LRECL=132,BLKSIZE=136)
//CEEDUMP DD SYSOUT=*,DCB=(RECFM=VB,LRECL=132,BLKSIZE=136)
//SYSERROR DD SYSOUT=*
//PROFILE DD DISP=SHR,DSN=TCPIPA.TCPPARMS(&PROFILE.)
򐂰 Customized a FTPDA procedure to establish affinity with the TCPIPA stack and to use the
TCPIPDATA data set (DATAA32), as shown Example 2-8.
Example 2-8 FTPDA procedure
//FTPDA PROC MODULE='FTPD',PARMS='',
// TCPDATA=DATAA&SYSCLONE.,FTPDATA=FTPDA&SYSCLONE
//FTPD EXEC PGM=&MODULE,REGION=0M,TIME=NOLIMIT,
// PARM=('POSIX(ON) ALL31(ON)',
// 'ENVAR("_BPXK_SETIBMOPT_TRANSPORT=TCPIPA"',
// '"TX=EST")/&PARMS')
//CEEDUMP DD SYSOUT=*
//SYSFTPD DD DISP=SHR,DSN=TCPIPA.TCPPARMS(&FTPDATA)
//SYSTCPD DD DISP=SHR,DSN=TCPIPA.TCPPARMS(&TCPDATA)
//*
򐂰 After establishing the affinity of FTPDA to work only with stack TCPIPA, we reserved ports
21 and 20 for the FTP server in PROFILE.TCPIP, as shown in Example 2-9.
Example 2-9 Reserving ports 20 and 21 to FTPDA
20 TCP omvs NOAUTOLOG ; FTP Server
21 TCP ftpda1 BIND 10.10.1.221; control port
򐂰 Created a TCPIPA.ETC.IPNODES data set to define the host names for stack TCPIPA,
which takes precedence over the default IPNODES data set when using this stack, as
shown in Example 2-10.
Example 2-10 TCPIPA.IPNODES data set
; Entries in the hosts file have the following format:
; Address HostName
; Address HostName1 HostName2 HostName3 ..... HostName35
; Address: is an IP address, it can be IPV4 or IPV6 address.
; Note: IPv4-mapped IPv6 address is not allowed.
; HostName: the length of the hostname is up to 128 characters,
; and each IP address can have up to 35 hostnames.
10.12.4.221 wscs01
10.10.1.230 tcpipa30
10.10.1.221 tcpipa32
10.10.1.241 tcpipa31
10.10.2.1 router1
10.10.3.2 router2
1::2 TESTIPV6ADDRESS1
1:2:3:4:5:6:7:8 TESTIPV6ADDRESS2
򐂰 Created a CS03.ETC.IPNODES data set to define host names to be used by TSOUSER
CS03 taking precedence over any other IPNODES data sets in our environment when
using this TSO user (see Example 2-11 on page 42).

Get Communications Server for z/OS V1R7 TCP/IP Implementation, Volume 1: Base Functions, Connectivity, and Routing now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.