06/06/24

Ativando TCP/IP no z/OS no Hercules no Windows

Introdução

O Hercules oferece seu próprio servidor Telnet, para que possamos ter sessões de TSO e console usando o TCP/IP fornecido pelo próprio Hercules, mas ele possui diversas limitações, e a primeira delas é basicamente que os endereços de sessão são endereços definidos no IODF. (700 o console mestre, 701 sessão TSO, 900, 901, etc.), e dependem inteiramente de essas sessões serem definidas no arquivo HERCULES.CNF.

A outra limitação é que para z/OS essas sessões são sessões diretas não-SNA, assim como seriam definidas em um OSA-ICC, ou em unidades de controle de terminal 2074, ou no antigo IBM 3174 que se conectava via coaxial a cada terminal, e obviamente, cada sessão possui um endereço de HARDWARE para o sistema.

Mas se quisermos ter um pool de terminais que se conectem via TCP/IP, usando um mainframe OSA real, devemos habilitar a pilha TCP/IP dentro do z/OS, definir um IP ou VIPA para o z/OS, etc. , e claro, esses terminais são mais flexíveis de configurar do que os tradicionais não-SNA, então neste documento explicarei como criar do zero um dispositivo que o Hercules emulará como um canal OSA-CTC e suas definições subsequentes em z/SO.

A teoria da operação está muito bem resumida neste diagrama:
+-----------------------------------------------------------------------------------+
|                                                                                   |
|                          E Q U I P E   DO   W I N D O W S                         |
|                                                                                   |
|                                                                                   |
| +-----------------+       00-00-5E-A8-00-04                                       |
| |    Hercules     |     +--------------------+                                    |
| | --------------  |     |        ADAPTADOR   |                 +------------------+
| |           Z/OS  |     |        "virtual"   |   FishPack dll  |         WinPCap  |
| |         TCP/IP  |     |         HERCULES   | <-------------> |     dispositivo  |   (para outros equipamentos,
| | --------------  |     |                    |                 |          driver  |     pós, internet, etc)
| |           CTCA  |     | (192.168.254.2544) |                 + - - - - - - - - -+
| |(192.168.254.254)|     +-----+--------------+                 |       Adaptador  |        +-------------------+
| +------+----------+           |                                |            REAL  +------> |   192.168.254.1   |
|        |                      |       +----------------------> |         Windows  |  LAN   |    Gateway        |
|        +----------------------+       |     Winsock dll        | 192.168.254.118  |        +-------------------+
|           (dll TunTap32)              |                        +------------------+          00-02-48-8B-8D-60
|                                       |                         00-80-B3-E1-DF-69 |
|                             +---------V-------+                                   |
|                           +-|                 |                                   |
|                         +-| | (Aplicativos    |                                   |
|                         | | |  Windows)       |                                   |
|                         | | |                 |                                   |
|                         | | +-----------------+                                   |
|                         | +-----------------+                                     |
|                         +-----------------+                                       |
|                                                                                   |
+-----------------------------------------------------------------------------------+


1.1 Modos de Operação do Terminal

Nosso PC possui o IP 192.168.254.118. A ideia é que o z/OS tenha o IP 192.168.254.254, e conseguimos isso criando uma placa de rede "virtual" que conecte os dois computadores. Para isso será necessário instalar uma série de programas e bibliotecas no Windows para criar a referida interface. Depois que esta instalação for concluída, a interface será criada no z/OS e o TCP/IP do z/OS será configurado posteriormente para que saia com o IP correto.

Portanto, temos vários passos a realizar, e que veremos neste documento.


2 Definindo nosso OSA-CTC no HCD

Uma vez dentro do nosso Hércules, e com as sessões TSO abertas, dentro do ISPF existe uma opção de menu chamada M Mais e ao entrar nos levará a outro menu. A opção 3 nos levará ao HCD (diálogo de configuração de hardware), onde podemos ajustar a configuração de hardware do z/OS.

No nosso caso específico, vamos definir um dispositivo CTC que possui endereços de 2000 a 2001 (o CTC necessita de 2 endereços, um para leitura e outro para escrita).

Seguiremos os seguintes passos:

1 - Iremos ao menu 1 Definir, e a partir daí, à opção 4 (Unidades de Controle).
Fig. 1: Caixa de diálogo de configuração de hardware

2: Definição de configuração

Fig. 2 - Se pressionarmos PF11 (Adicionar), aparecerá uma caixa de diálogo na qual nos pede para criar um arquivo temporário de definição de hardware, então o criamos e informaremos em qual disco salvá-lo –ZASYS1 no nosso caso-.
Fig. 3: Criação do arquivo de definição
Fig. 4: Criação da Unidade de Controle - Criaremos a central com endereço 2000 e diremos que é um CTC (Channel To Channel), e iremos atribuí-la à nossa configuração atual
Fig. 5: Atribuição da Unidade de Controle ao nosso processador
Fig. 6: Unidade de controle criada - Se colocarmos um “/” podemos acessar suas opções, entre outras para trabalhar com seus dispositivos, portanto escolheremos esta opção para criar os dois dispositivos necessários, 2000 e 2001.
Fig. 7: Trabalhando com dispositivos
Fig . 8: Lista de dispositivos - Se pressionarmos a tecla PF11 podemos somar os dois dispositivos, com o endereço 2000, o número de dispositivos diremos que é 2 e do tipo CTC.
Fig. 9: Definição dos dois dispositivos.
Figura 10: Conexão com z/OS - E vamos conectá-los ao z/OS para definir seu comportamento e se eles possuem nomes esotéricos – no nosso caso, o CTC não possui nomes esotéricos de nenhum tipo.
Fig. 11: Seleção de conexão para z/OS
Fig. 12: Valores padrão de conexão
Fig. 13: Atribuição esotérica (não possui)
Fig. 14: Dispositivo criado - 6.- Neste ponto criaremos um novo IODF refletindo a nova configuração, selecionando a opção 2 Ativar ou processar dados de configuração e a seguir 1 Construir arquivo de definição de E/S de produção
Fig. 15: Ativar configurações
Figura 16: Criamos o IODF - 7.- Escolheremos SYS1.IODF02 como nome , já que o que iniciamos foi SYS1.IODF01 e esse é o IODF atual que não temos interesse em mexer.
Figura 17: Novo IODF

Uma vez criado SYS1.IODF02, criaremos um NOVO membro em SYS1.IPLPARM , para iniciá-lo na próxima vez. Fazemos desta forma caso haja erros de IPL, desta forma podemos retornar ao IODF anterior sem maiores problemas. Para isso, copiaremos o membro atual, LOADCS e o chamaremos de LOADTC (TCP de TCP/IP) e terá o seguinte conteúdo:

IODF 02 SYS1
SYSCAT ZASYS1113CCATALOG.Z110.MASTER
SYSPARM CS
IEASYM 00
PARMLIB USER.PARMLIB ZASYS1
PARMLIB ADCD.Z110.PARMLIB ZARES1
PARMLIB SYS1.PARMLIB ZARES1
NUCLEUS 1
SYSPLEX ADCDPL

O sistema continuará inicializando em CS (Cold Start) mas teremos que alterar o LOADPARM do Hercules para 0A82TCM1 , ao invés do atual, que é 0A82CSM1

1.3 Configurando TCP/IP em nosso z/OS

Os passos a seguir nos ajudarão a configurar corretamente o TCP/IP de nossa instalação.

Nesse sentido, no início do documento deixamos claro que o endereço do z/OS será 192.168.254.254 e que, obviamente, deve ser diferente do do nosso PC (192.168.254.118), já que o z/OS é Ele se comportará como se fosse uma máquina virtual dentro do nosso PC. Com isso em mente, a partir do ISPF navegaremos pelos membros da configuração TCP/IP e realizaremos os seguintes passos:

1.- No z/OS versão 1.10, os membros da configuração TCP/IP residem em um conjunto de dados particionado chamado ADCD.Z110.TCPARMS. Eu vi isso porque o processo que inicia o TCP/IP no z/OS está no PROCLIB e é chamado TCPIP. Se virmos o seu conteúdo, verifica-se que as configurações apontam para esse conjunto de dados, portanto não há mais nada: Vemos que os membros a “retocar” são PROF1 e TCPDATA. Então nós os retocamos, editando esses membros.
Fig. 18: Membro TCPIP do PROCLIB

2.- Dentro de PROF1, na parte DEVICE, vamos comentar todos os que existem (colocando um ; na frente da coluna 1) e vamos definir o dispositivo que o sistema irá utilizar. Nos pontos anteriores vimos que o dispositivo foi definido no endereço 2000, portanto editaremos o seguinte:

DEVICE CTCA1 CTC 2000
LINK CTC1 CTC 1 CTCA1

Abaixo iremos para a área HOME e comentaremos tudo o que existe, e adicionaremos esta linha:

HOME

 192.168.254.254 CTC1 

4.- Na área GATEWAY editaremos as rotas para que encontre nosso gateway e tenhamos comunicação externa:
 
GATEWAY
;
; Direct Routes - Routes that are directly connected to my interfaces.
;
; Network First Hop Link Name Packet Size Subnet Mask Subnet Value

; 192.168.252 = OSDL 1500 0
 192.168.254 = CTC1 576 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 

defaultnet 192.168.254.254 CTC1 576 0

Finalmente, na área inferior, está a parte START. Portanto, comentaremos todo o resto e inseriremos a seguinte linha:
 
START CTCA1 

Isso iniciará o driver CTCA1 quando o TCP/IP for iniciado.

Se abrirmos o membro TCPDATA , devemos nos preocupar apenas com o HOSTNAME , que por enquanto deixaremos como está (ADCD).

Com esta edição, podemos fechar o z/OS e o Hercules.

1.4 Configuração OSA-CTC no Hercules

Para que o Hercules, e portanto o z/OS, inicialize nosso novo dispositivo CTC com endereço 2000, devemos adicioná-lo à configuração do Hercules. Portanto, editaremos o arquivo HERCULES.CNF e adicionaremos a seguinte linha:
 
2000-2001 CTCI 192.168.254.254 192.168.254.118

Sendo, como já explicamos, 192.168.254.254 é o IP que o z/OS irá levar e 192.168.254.118 é o IP da nossa máquina. Desta forma o CTC saberá para onde direcionar o tráfego.

NOTA: Lembremos também de alterar o valor de LOADPARM para 0A82TCM1 , caso contrário nosso IODF com a nova configuração não entrará em ação.

1.5 Instalação das bibliotecas Windows FISHPACK e WinPcap

Para criar o driver de rede virtual específico, usaremos uma ferramenta chamada WinPcap. Para isso, iremos ao site http://www.winpcap.org e baixaremos a ferramenta:
Figura 19: Download do WinPcap
Depois de baixado, procederemos à instalação da ferramenta, iniciando o assistente.
Fig. 20: Assistente de instalação do WinPcap
Fig. 21: Bem-vindo ao assistente
Fig. 22: Contrato de licença
Fig. 23: Executaremos o driver na inicialização do Windows
Fig. 24: Instalação concluída

Com este simples passo, agora temos o driver de rede virtual no Windows.

A próxima coisa agora é instalar as bibliotecas Fish DLL. Para fazer isso, vamos ao site http://www.softdevlabs.com/Hercules/hercgui-index.html e baixamos dois ZIPs: O FishLib (somente executáveis), que pode ser baixado de http://www.softdevlabs. com/Hercules/FishLib-2.7.1.564-bin.zip
Fig, 25: Download do FishLib
E então o CTCI-W32, que está em http://www.softdevlabs.com/Hercules/ctci-w32-index.html e baixado de http://www.softdevlabs.com/Hercules/CTCI-W32_3.2.1 . 160_bin.zip
Figura 26: Download do CTCI-W32
Depois de baixado, descompactaremos a pasta BIN de ambos os ZIPs na MESMA PASTA que o Hercules está instalado, ou seja, em C:Program FilesHerculesHercules 3.07 (32 Bit). Você também pode descompactar em outro lugar e adicionar um PATH do Windows, mas esta é a opção mais simples e menos problemática.

NOTA: Se nossa instalação for de 64 bits, devemos descompactar a pasta x64.

1.6 Inicialização final do Hercules e z/OS

Neste momento, devemos ter certeza de que o Hercules pegou os drivers e DLLs do FISH, então assim que iniciarmos o Hercules, devemos ver as seguintes linhas quando ele detectar o carregamento do CTCI no endereço 2000:

D:\MAINFRAME\HERCULES\TunTap32.dll version 3.2.1.160 initiated
HHCCT073I 1400: TUN device tun0 opened

Se parecer que o dispositivo tun0 está aberto, significa que o WinPcap já está funcionando. Portanto, neste ponto podemos IPL Hercules, seguindo o procedimento usual.

Depois que tudo estiver iniciado, se fizermos um PING do nosso PC para o endereço do nosso z/OS (192.168.254.254), e ele responder, então tudo funciona, parabéns!!!
Figura 27: Ping bem-sucedido para z/OS

Portanto, e como toque final, definiremos uma nova sessão em nosso emulador, para a qual configuraremos o IP do z/OS

Fig. 28: Configuração IP do emulador 3270

Fig. 29: Entrada no TSO via TCP/IP –número de sessão SC0TCP01-
De qualquer forma, espero ter explicado bem. Neste exato momento, temos 2 sistemas IP em execução: o próprio Hercules - sessões locais VTAM - e o próprio z/OS - sessões IP -. Portanto, neste momento o z/OS é apenas mais uma máquina em nossa rede e, portanto, podemos. configurar todos os serviços que desejamos no futuro (DB2, CICS-Sockets, FTP, WAS, MQ, etc.).

Até mais veja!! Retirado
Leia Mais

Ferramentas TCP/IP no z/OS com TSO

Se você veio do Linux, UNIX ou Windows e quer aprender a lidar com redes TCP/IP no z/OS? O z/OS possui todas as ferramentas essenciais para diagnosticar e testar problemas de conectividade com redes TCP/IP. O TSO/E facilita o acesso a esses comandos. Para utilizá-los, saia do ISPF e entre em uma sessão do TSO/E.

Os exemplos a seguir são básicos, mas para obter mais informações sobre as opções de comando, digite o comando primário do TSO/E seguido de um ponto de interrogação, como “PING?”.

Teste de conectividade com Ping

Para testar se você tem conectividade com um host, use o comando TSO “PING” especificando o endereço IP e outras opções, como o número de tentativas (COUNT #) ou comprimento da mensagem (LENGTH #).

Tabelas de roteamento

Para visualizar a tabela de roteamento TCP/IP, utilize o comando TSO “NETSTAT ROUTE”, conforme mostrado abaixo em fonte verde.
A saída é muito semelhante ao que seria de esperar em um sistema UNIX, Linux ou Windows.

Rastreando fluxo de pacotes

O equivalente ao comando traceroute também está disponível, mas, infelizmente, não é “tracert” como no Windows ou “traceroute” no UNIX, mas sim “tracerte”, como mostrado abaixo.

Visualizar as conexões

O comando “NETSTAT ALLCON” pode ser usado para visualizar o estado das conexões TCP/IP.
Observe o formato: 192.86.32.178..23, onde 23 é a porta local e o IP local é 192.86.32.178. A conexão externa é para IP 115.135.9.72 na porta 54977.

Adaptadores de rede

Informações sobre adaptadores de rede podem ser recuperadas com “NETSTAT DEV”. Observe que o adaptador “ DevName ” é o que vemos na saída da tabela de roteamento na área de saída da Interface.

Conclusão

Todas as ferramentas TCP/IP necessárias para solucionar problemas de TCP/IP estão prontamente disponíveis e facilmente acessíveis com o TSO/E. Além disso, os comandos são semelhantes aos encontrados em outras plataformas, tornando fácil trabalhar nesta plataforma.

Comandos

Esses são os comandos que podemos dar no TCPIP
Leia Mais