はじめに
ZD&Tインスタンス(z/OS)を使用する場合、主にPCOMなどの3270エミュレーターでの操作、および、TCP/IPでの各種通信(SSH, FTP, ミドルウェアの疎通など)を行いたい、ということになると思います。
その際ネットワーク構成を意識する必要がありますが、このネットワーク構成周りが少し分かりにくいので当記事で補足します。
※ちなみにZD&T(zPDT)がエミュレートするOSAではSNAの通信は正式サポートされません(テストされていない)。
関連記事
クラウド上でのメインフレーム開発環境構築 - (1) 仮想サーバー作成
クラウド上でのメインフレーム開発環境構築 - (2) ZD&T管理サーバーのインストール
クラウド上でのメインフレーム開発環境構築 - (3) ライセンス管理
クラウド上でのメインフレーム開発環境構築 - (4) ZD&Tインスタンス作成概要(ADCD)
クラウド上でのメインフレーム開発環境構築 - (5) ZD&Tインスタンス作成詳説(ADCD)
クラウド上でのメインフレーム開発環境構築 - (6) DeviceMapファイル補足
クラウド上でのメインフレーム開発環境構築 - (7) ネットワーク構成補足
クラウド上でのメインフレーム開発環境構築 - (8) ADCD IPL, Shutdown補足
クラウド上でのメインフレーム開発環境構築 - (9) DASD管理補足
クラウド上でのメインフレーム開発環境構築 - (10)既存ZD&Tからイメージ作成
non-SNA端末接続
ZD&Tインスタンスが起動すると、non-SNA端末と呼ばれる端末接続用のポートがLinux上でListenされます。これはデフォルトでは3270番のポート番号が使用されます。
イメージとしては上の通りです。Linuxが持っているアドレスにアクセス可能なPCから、PCOMでLinuxアドレス+ポート番号指定でTN3270接続が行えます。
これは、z/OS側でTCP/IPやTN3270サーバーが起動していないくても3270端末(マスターコンソールやTSO)が使用できますので、環境構築時の問題判別やインフラ管理用に利用可能です。
PCOM接続については以下の箇所をご参照ください。
クラウド上でのメインフレーム開発環境構築 - (4) ZD&Tインスタンス作成概要(ADCD) - PCOMからの接続
以下のTCP/IPの接続が行えるようになったら、一般的にz/OSを利用するのと同じようにz/OS上のTN3270サーバーに対してTCP/IP(TN3270)でPCOM接続することができます。
TCP/IP接続
これ以降は、z/OS上でTCP/IPのアドレススペースを上げて外部とz/OS上のサービス(TN3270サーバー、SSH、CICS、Db2など)をTCP/IPで通信する場合の構成についてです。
外部とz/OS上のサービスをTCP/IPで通信する場合、ネットワークの構成としては主に2パターン考えられます。(1)外部から見た時にz/OSに固有のIPアドレスを持たせない構成と、(2)z/OSにも個別の外部IPアドレスを持たせる構成です。
前者は、外から見た場合ホストOSと同じIPアドレスでアクセスすることになり、後者はLinuxとは別のz/OS固有のIPアドレスでアクセスするイメージとなります。
今回、クラウド上にZD&Tインスタンスを構成することを前提としており、ホストOSのLinuxはZD&T専用で使う想定です。クラウド上だとIPアドレスをLinuxとは別にもう一つ用意するのもハードルがある場合もありますし、汎用性という意味でも(1)の方が扱いやすいです。そのため、ZD&T EEの構成としては基本的には(1)を前提としているようです(先に上げた手順例でも(1)の構成になっています)。それで問題無い場合が多いと思いますが、要件にそぐわない場合もあると思いますので、ここでは(2)についても取り上げます。
(1)z/OSに外部IPアドレスを持たせない構成
この構成は先の手順でZD&Tインスタンス作成を行った場合のネットワーク構成です。IPアドレスはLinux用にアサインされているものをz/OSでも流用するイメージになります。Linuxで使用するポートとz/OSで使用するポートを使い分けして、z/OSで使用するポートに対するリクエストはiptablesでz/OS側にフォワードする、という発想です。
iptablesを使用した細かい動作イメージを図示すると以下のようになります。
上の図の例は、外部からLinuxのSSHに接続する場合とz/OS(ZD&T)上のSSHに接続する場合の接続方法の違いを表しています。いずれもIPアドレスは同一でポート番号で使用するサービスを使い分けていることに注目してください。
この例では、ホストOSとしてのLinuxはZD&Tインスタンスを稼働させるための専用の環境という位置づけなので、ZD&Tで使用するもの+SSH以外は全てz/OS側にフォワードするような設定になっています。
Linuxのサービスとz/OSのサービスでポート番号がバッティングするような場合は別のポートにマッピングするなど工夫が必要になります。
上の例ではSSHを取り上げていますが、セキュリティの観点からLinux上のSSHポートはデフォルトの22から2222に変更しており、z/OS上のSSHについてもデフォルトの22をそのまま使うのではなく2022で受け付けてz/OS上の22番ポートにフォワードするようにしています。
さて、ここで、別のLinuxからz/OS上のSSHに接続した場合のTCP/IPのコネクションの見え方について確認してみましょう。Linux, z/OSではコネクションはこんな感じで表示されます。
逆に、z/OS側から外部のLinuxのサービス(FTP)を利用した場合のコネクションの見え方はこんな感じです。
ここではTCP/IP接続を行うサービスの例としてSSHやFTPを取り上げましたが、CICSやDb2などのミドルウェアでも考え方は同様です。TN3270サーバーを使う場合(ADCDだと自動起動されます)、今回2023ポートをz/OS上の23ポートにフォワードするようにしているので、外部のPCOMからはLinuxのアドレスの2023番ポートに対してTN3270接続構成をすれば接続できます。
今回の設定では、Linux側で必要なポート以外は全てz/OS側にフォワードするような設定にしていますが、セキュリティ対策の観点では、外部連携用に使用するポートをきちんと整理して、不要なポートへのアクセスは弾くようにしておく方がよいでしょう。
参考: 今回の構成で設定されたiptablesの内容は以下の通りです。
iptables
稼働時の状況
[ibmsys1@zdt02 ~]$ sudo iptables -L -n -v -t nat
Chain PREROUTING (policy ACCEPT 3110 packets, 203K bytes)
pkts bytes target prot opt in out source destination
0 0 DNAT tcp -- !tap0 * 0.0.0.0/0 0.0.0.0/0 tcp dpts:0:21 to:172.26.1.2
8 348 DNAT tcp -- !tap0 * 0.0.0.0/0 0.0.0.0/0 tcp dpts:23:2021 to:172.26.1.2
0 0 DNAT tcp -- !tap0 * 0.0.0.0/0 0.0.0.0/0 tcp dpts:2024:2221 to:172.26.1.2
0 0 DNAT tcp -- !tap0 * 0.0.0.0/0 0.0.0.0/0 tcp dpts:2223:3269 to:172.26.1.2
8 328 DNAT tcp -- !tap0 * 0.0.0.0/0 0.0.0.0/0 tcp dpts:3271:9449 to:172.26.1.2
9 364 DNAT tcp -- !tap0 * 0.0.0.0/0 0.0.0.0/0 tcp dpts:9452:65535 to:172.26.1.2
2314 139K DNAT tcp -- !tap0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:2022 to:172.26.1.2:22
1 52 DNAT tcp -- !tap0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:2023 to:172.26.1.2:23
0 0 DNAT udp -- !tap0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:111 to:172.26.1.2
0 0 DNAT udp -- !tap0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:514 to:172.26.1.2
0 0 DNAT udp -- !tap0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:1023 to:172.26.1.2
0 0 DNAT udp -- !tap0 * 0.0.0.0/0 0.0.0.0/0 udp dpts:1044:1049 to:172.26.1.2
0 0 DNAT udp -- !tap0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:2049 to:172.26.1.2
Chain INPUT (policy ACCEPT 2319 packets, 140K bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 2637 packets, 166K bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 2207 packets, 132K bytes)
pkts bytes target prot opt in out source destination
2701 169K MASQUERADE all -- * !tap0 0.0.0.0/0 0.0.0.0/0
[ibmsys1@zdt02 ~]$ sudo iptables -L -n -v -t filter
Chain INPUT (policy ACCEPT 33585 packets, 69M bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 12459 packets, 678K bytes)
pkts bytes target prot opt in out source destination
8188 754K ACCEPT all -- tap0 * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT tcp -- * * 0.0.0.0/0 172.26.1.2 tcp dpts:0:21
364 22292 ACCEPT tcp -- * * 0.0.0.0/0 172.26.1.2 tcp dpts:23:2021
0 0 ACCEPT tcp -- * * 0.0.0.0/0 172.26.1.2 tcp dpts:2024:2221
0 0 ACCEPT tcp -- * * 0.0.0.0/0 172.26.1.2 tcp dpts:2223:3269
8 328 ACCEPT tcp -- * * 0.0.0.0/0 172.26.1.2 tcp dpts:3271:9449
9 364 ACCEPT tcp -- * * 0.0.0.0/0 172.26.1.2 tcp dpts:9452:65535
0 0 ACCEPT tcp -- * * 0.0.0.0/0 172.26.1.2 tcp dpt:2022
0 0 ACCEPT tcp -- * * 0.0.0.0/0 172.26.1.2 tcp dpt:2023
0 0 ACCEPT udp -- * * 0.0.0.0/0 172.26.1.2 udp dpt:111
0 0 ACCEPT udp -- * * 0.0.0.0/0 172.26.1.2 udp dpt:514
0 0 ACCEPT udp -- * * 0.0.0.0/0 172.26.1.2 udp dpt:1023
0 0 ACCEPT udp -- * * 0.0.0.0/0 172.26.1.2 udp dpts:1044:1049
0 0 ACCEPT udp -- * * 0.0.0.0/0 172.26.1.2 udp dpt:2049
Chain OUTPUT (policy ACCEPT 3195 packets, 196K bytes)
pkts bytes target prot opt in out source destination
28575 4101K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
再起動時の設定
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
touch /var/lock/subsys/local
/sbin/iptables-restore < /etc/iptables.rules
# Generated by iptables-save v1.4.21 on Tue Oct 27 19:51:08 2020
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -i tap0 -j ACCEPT
-A FORWARD -d 172.26.1.2/32 -p tcp -m tcp --dport 0:21 -j ACCEPT
-A FORWARD -d 172.26.1.2/32 -p tcp -m tcp --dport 23:2021 -j ACCEPT
-A FORWARD -d 172.26.1.2/32 -p tcp -m tcp --dport 2024:2221 -j ACCEPT
-A FORWARD -d 172.26.1.2/32 -p tcp -m tcp --dport 2223:3269 -j ACCEPT
-A FORWARD -d 172.26.1.2/32 -p tcp -m tcp --dport 3271:9449 -j ACCEPT
-A FORWARD -d 172.26.1.2/32 -p tcp -m tcp --dport 9452:65535 -j ACCEPT
-A FORWARD -d 172.26.1.2/32 -p tcp -m tcp --dport 2022 -j ACCEPT
-A FORWARD -d 172.26.1.2/32 -p tcp -m tcp --dport 2023 -j ACCEPT
-A FORWARD -d 172.26.1.2/32 -p udp -m udp --dport 111 -j ACCEPT
-A FORWARD -d 172.26.1.2/32 -p udp -m udp --dport 514 -j ACCEPT
-A FORWARD -d 172.26.1.2/32 -p udp -m udp --dport 1023 -j ACCEPT
-A FORWARD -d 172.26.1.2/32 -p udp -m udp --dport 1044:1049 -j ACCEPT
-A FORWARD -d 172.26.1.2/32 -p udp -m udp --dport 2049 -j ACCEPT
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Tue Oct 27 19:51:08 2020
# Generated by iptables-save v1.4.21 on Tue Oct 27 19:51:08 2020
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING ! -i tap0 -p tcp -m tcp --dport 0:21 -j DNAT --to-destination 172.26.1.2
-A PREROUTING ! -i tap0 -p tcp -m tcp --dport 23:2021 -j DNAT --to-destination 172.26.1.2
-A PREROUTING ! -i tap0 -p tcp -m tcp --dport 2024:2221 -j DNAT --to-destination 172.26.1.2
-A PREROUTING ! -i tap0 -p tcp -m tcp --dport 2223:3269 -j DNAT --to-destination 172.26.1.2
-A PREROUTING ! -i tap0 -p tcp -m tcp --dport 3271:9449 -j DNAT --to-destination 172.26.1.2
-A PREROUTING ! -i tap0 -p tcp -m tcp --dport 9452:65535 -j DNAT --to-destination 172.26.1.2
-A PREROUTING ! -i tap0 -p tcp -m tcp --dport 2022 -j DNAT --to-destination 172.26.1.2:22
-A PREROUTING ! -i tap0 -p tcp -m tcp --dport 2023 -j DNAT --to-destination 172.26.1.2:23
-A PREROUTING ! -i tap0 -p udp -m udp --dport 111 -j DNAT --to-destination 172.26.1.2
-A PREROUTING ! -i tap0 -p udp -m udp --dport 514 -j DNAT --to-destination 172.26.1.2
-A PREROUTING ! -i tap0 -p udp -m udp --dport 1023 -j DNAT --to-destination 172.26.1.2
-A PREROUTING ! -i tap0 -p udp -m udp --dport 1044:1049 -j DNAT --to-destination 172.26.1.2
-A PREROUTING ! -i tap0 -p udp -m udp --dport 2049 -j DNAT --to-destination 172.26.1.2
-A POSTROUTING ! -o tap0 -j MASQUERADE
COMMIT
# Completed on Tue Oct 27 19:51:08 2020
(2)z/OSに外部IPアドレスを持たせる構成
z/OSと外部とのTCP/IP通信でNAT変換をかませたくない場合など、z/OSに直接外部IPアドレスを持たせたいという場合があるかもしれません。その場合、Linux用のIPアドレスとは別にz/OS用のIPアドレスも用意できればそれをz/OSに割り当てることも可能です。
イメージとしては、ホストOSとの通信のためのtapとの紐づけ用以外に、もう一つ外部接続用のOSAを定義してをれをNICと紐づけます。
イメージとしては以下のようになります。
外部からはLinuxのIPアドレスとは別にz/OS用のIPアドレスでアクセスできますので、物理的に同じOS上に乗っかっているかどうかなどは意識せず、独立したマシンのようにアクセスすることができます。IPアドレスが別なので、Linux上にiptablesによるルーティングは不要ですし、Linuxとz/OSでポートの住み分けを考慮する必要もありません。
ただし、ホストOSのLinuxからだけはz/OS用の外部IPアドレス(上の例だと10.132.233.243)は認識できないので注意が必要です。ホストOSのLinuxからz/OSにアクセスしたい場合は、tap経由で172.26.1.2に対してアクセスする必要があります。
この構成の場合、z/OS(ZD&T)が直接外部IPアドレスで接続できるので使い勝手はよいのですが、外部のIPアドレスでz/OS環境が晒されているという言い方もできます。上の例だとPrivateのネットワークのアドレスを割り当てているイメージですが、パブリックのIPアドレスをz/OSに割り当てる場合、インターネット上から直接アクセスできるような状態になります。z/OSに割り当てられたIPアドレスに対する制御はホストOSのLinux側では制御できませんので、z/OS上、もしくは、Linuxの外のネットワークレイヤーでセキュリティ対策を考える必要がありますのでご注意ください。
また、z/OS側にIPアドレスという環境固有の情報を持ってしまうことで汎用性が損なわれます。例えばどこか1つのZD&Tをメンテナンス用として用意してカスタマイズし、そのDASDイメージを基にクローンの環境を作っていくというようなことを考えると、z/OS側に固有のIPアドレスを持たせているとその部分は個別に変更する必要が出てきます((1)の方式であれば、Linux側のIPアドレスのみを変更するだけでよくz/OS側のカスタマイズは不要)。
このようなメリット/デメリットを考慮してどちらの構成を取るかを選択してください。
構成方法
ADCDを使用する前提で(2)の構成を取る場合の構成変更例を示します。
ここではADCDのLOADPARM:AUで起動した場合に使用される定義をカスタマイズする前提で記載します。
TCP/IPプロファイル
z/OSのTCP/IPプロファイルで外部IPアドレスの設定を行います。TCP/IPのプロファイルとしてはADCD.Z24A.TCPPARMS(PROF2)が使用されますので、そちらを変更します。
このプロファイルには元々2つのIPアドレスが定義されているので、それがそのまま使えます。
...
SACONFIG DISABLED
;This device defines the tunnel
DEVICE PORTA MPCIPA
LINK ETH1 IPAQENET PORTA
HOME 172.26.1.2 ETH1
; This second device is optional
DEVICE PORTB MPCIPA
LINK ETH2 IPAQENET PORTB
;HOME 192.168.0.61 ETH2
HOME 10.132.233.243 ETH2
BEGINRoutes
; Destination SubnetMask FirstHop LinkName Size
;ROUTE 192.168.0.0 255.255.255.0 = ETH2 MTU 1492
ROUTE 10.132.233.192 255.255.255.192 = ETH2 MTU 1492
;ROUTE 10.0.0.0 255.0.0.0 = ETH1 MTU 1492
ROUTE DEFAULT 172.26.1.1 ETH1 MTU 1492
ENDRoutes
ITRACE OFF
IPCONFIG NODATAGRAMFWD
UDPCONFIG RESTRICTLOWPORTS
TCPCONFIG RESTRICTLOWPORTS
TCPCONFIG TTLS
START PORTA
START PORTB
192.168.0.61が元々定義されていた外部IPアドレスですが、これは環境に合わせてホストOSのIPアドレスと同じセグメントのIPアドレスを割り当てます。
上の例だと、以下の行を書き換えています(外部IPアドレスとしてここでは10.132.233.243を指定)。
HOME 10.132.233.243 ETH2
ROUTE 10.132.233.192 255.255.255.192 = ETH2 MTU 1492
VTAM TRL Major Node
上で定義した外部IPアドレスは"PORTB"というポートにマッピングされることになりますが、VTAMのTRL Major NodeでこのPORTBに関する定義を確認します。TRL Majore Nodeの定義としてはADCD.Z24A.VTAMLST(OSATRL2)が使われています。
OSATRL1 VBUILD TYPE=TRL
OSATRL1E TRLE LNCTL=MPC,READ=(0400),WRITE=(0401),DATAPATH=(0402), X
PORTNAME=PORTA, X
MPCLEVEL=QDIO
OSATRL2E TRLE LNCTL=MPC,READ=(0404),WRITE=(0405),DATAPATH=(0406), X
PORTNAME=PORTB, X
MPCLEVEL=QDIO
この定義中にPORTBについてのOSAの定義が含まれていますので、ここは特に変更の必要はありません。READ, WRITE, DATAPATHに指定されているデバイスのアドレスを確認します(0404~0406)。
ちなみに、READとWRITEは連続するアドレス、かつ、READは偶数のアドレスを指定する必要がありますのでご注意ください。
IODF
IODFの定義を確認して0404~0406がOSAとして定義されているか確認します。
I/O Device List Row 1 of 86 More: >
Command ===> ___________________________________________ Scroll ===> CSR
Select one or more devices, then press Enter. To add, use F11.
----------Device------ --#--- --------Control Unit Numbers + --------
/ Number Type + CSS OS 1--- 2--- 3--- 4--- 5--- 6--- 7--- 8---
_ 000C 2540 ____ ____ ____ ____ ____ ____ ____ ____
_ 000C 2540R-1 1 ____ ____ ____ ____ ____ ____ ____ ____
_ 000E,2 1403-N1 1 ____ ____ ____ ____ ____ ____ ____ ____
_ 0120 3380 1 0120 ____ ____ ____ ____ ____ ____ ____
_ 0121 3380 1 0121 ____ ____ ____ ____ ____ ____ ____
_ 0122 3380 1 0122 ____ ____ ____ ____ ____ ____ ____
_ 0123 3380 1 0123 ____ ____ ____ ____ ____ ____ ____
_ 0124 3380 1 0124 ____ ____ ____ ____ ____ ____ ____
_ 0125 3380 1 0125 ____ ____ ____ ____ ____ ____ ____
_ 0126 3380 1 0126 ____ ____ ____ ____ ____ ____ ____
_ 0127 3380 1 0127 ____ ____ ____ ____ ____ ____ ____
_ 0128,56 3380 1 ____ ____ ____ ____ ____ ____ ____ ____
_ 01C0,64 3390 ____ ____ ____ ____ ____ ____ ____ ____
_ 0240,32 3380 ____ ____ ____ ____ ____ ____ ____ ____
_ 0260,32 3390 ____ ____ ____ ____ ____ ____ ____ ____
_ 0300,25 3390 1 0300 ____ ____ ____ ____ ____ ____ ____
_ 0400,16 OSA 1 ____ ____ ____ ____ ____ ____ ____ ____
_ 0550,16 3420-8 1 ____ ____ ____ ____ ____ ____ ____ ____
...
これもDevice TypeがOSAになっているので特に変更の必要はありません。
DeviceMapファイル
Linux上にあるDeviceMapファイルを編集してOSA用のアドレスとNICの紐づけを行う必要があります。その前に、NICの情報をfind_ioコマンドで確認します。
[ibmsys1@zdt02 ~]$ find_io
FIND_IO for "ibmsys1@zdt02.ibmj-cloud-freeusage-p052.cloud"
Interface Current MAC IPv4 IPv6
Path Name State Address Address Address
------ ---------------- ---------------- ----------------- ---------------- --------------
F0 eth0 UP, RUNNING 06:40:83:f5:e3:54 10.132.233.241 fe80::440:83ff:fef5:e354%eth0
.
A0 tap0 UP, RUNNING 0a:60:a1:ca:32:03 172.26.1.1 fe80::860:a1ff:feca:3203%tap0
A1 tap1 DOWN 02:a1:a1:a1:a1:a1 * *
A2 tap2 DOWN 02:a2:a2:a2:a2:a2 * *
A3 tap3 DOWN 02:a3:a3:a3:a3:a3 * *
A4 tap4 DOWN 02:a4:a4:a4:a4:a4 * *
A5 tap5 DOWN 02:a5:a5:a5:a5:a5 * *
A6 tap6 DOWN 02:a6:a6:a6:a6:a6 * *
A7 tap7 DOWN 02:a7:a7:a7:a7:a7 * *
Interface Current Settings
Path Name RxChkSum TSO GSO GRO LRO RX VLAN MTU**
------ ---------------- ---------------- ----------------- ---------------- --------------
F0 eth0 On* On* On* On* Off Off 1500
.
A0 tap0 Off Off On* On* Off Off 1500
* Enabling these functions may lead to poor zPdt Performance,
please refer to your zPdt documentation for details.
** To Enable Jumbo Frame Support, this MTU value and the MTU value for the
Host Operating System must be set to > 1500.
End of FIND_IO
今回、z/OSへのアクセスはPrivateネットワークに繋がっているNIC、つまり、上の例でいうとeth0を介して行わせようとしています。このeth0に相当するPath(CHPID)の値を確認します。この例では"F0"となります。つまりZD&Tとしては"F0"というCHPID(Channel Path ID)でeth0を識別しているということになります。
DeviceMapファイルに以下の定義を追加します。
...
[manager]
name awsosa 0019 --path=F0 --pathtype=OSD
device 404 osa osa --unitadd=0
device 405 osa osa --unitadd=1
device 406 osa osa --unitadd=2
...
awsosaの右隣りのID(上の例だと0019)は他のmanagerの定義とバッティングしない値(HEX)を指定してください。
--path=には、find_ioで確認した、使用したいNICに紐づくCHPIDを指定します(ここでは"F0")。
deviceのアドレスには、TRL Major Nodeで指定されていたREAD, WRITE, DATAPATHのアドレスを指定します。
--unitaddはシーケンシャルに番号をふればOKです。
これで一通り定義は終了なので、ZD&Tインスタンスを再起動すれば外部から指定したIPアドレスで直接z/OSとTCP/IPの通信ができるようになります。
TCP/IP接続構成まとめ
おわりに
今回はIBM CloudのIaaS(Virtual Server for Classic)環境で試しています。使用する環境によってはもしかするとCloud上のネットワークの構成/制約が影響するかもしれないので、その辺りは別途確認が必要かと思います。