08/12/15

Configurando a Rede sobre o Hercules z/OS - LCS

Este artigo encontrei explicando como se faz a conexão do z/OS com o seu micro, porque há certos comportamentos estranhos dentro do driver no Windows CTCI-W32, eu tenho experimentado outros módulos de comunicação.

Um dos mais raros driver comportamentos CTCI-W32 foi quando você queria fazer o ping do z/OS de sua Hércules de uma sub-rede diferente. O ping é adiada em 3 segundos, exatamente 3, sem entender o porquê. Portanto, era literalmente impossível para abrir uma sessão TSO pela lentidão das comunicações. O engraçado é que, enquanto você estava na mesma sub-rede de Hércules, as comunicações eram muito boas, como se você estivesse acessando um verdadeiro Mainframe.

Outro ponto curioso foi que todas as equipes poderiam dar ping no seu Hércules z/OS, mas em sua mesma máquina rodando Hercules não podia fazer ping do seu z/OS, dependendo do tipo de placa de rede que você teve ou o driver rede do Windows. Curioso, não posso acessar a minha própria máquina, uma vez que é o que eu estou rodando o Hercules z/OS. Eles abrem uma pergunta na lista de Hércules, que é alcançado a partir de Hercules-390 dot com yahoogroups em grupos de usuários Yahoogroups, solventaron me a pergunta, como eles mudaram os drivers do Windows NDIS; CTCI-W32 falar com eles por protocolo NDIS 5.x Windows 7 e Windows 2008 mudaram o protocolo NDIS para 6.x, por isso há problemas com o "descarregamento de checksum" ou a forma como o sistema calcula a soma de verificação de pacotes de rede enviados aa. Portanto, a fim de executar ping o Hercules se você está neste caso, você deve instalar a versão mais recente dos drivers para sua placa de rede, e se isso não funcionar, insira as propriedades avançadas da sua placa (Via o Windows Device Manager) e desabilitar as seguintes linhas:

-Downloading IPv4 verificação checksum,
-Downloading da soma de verificação TCP (IPv4) e
-Downloading UDP soma de verificação (IPv4)

Nova placa de rede emulada Hercules: LCS ou do canal da estação LAN

Portanto, da mesma lista, vendo o conjunto de comportamento estranho que estava no sistema, eles sugeriram mudar o tipo de CTCI emulado um LCS ou link do canal da estação LAN, ou seja, um dispositivo IBM 3088 ou IBM 3172 Controlador de interconexão, que são os primeiros modelos de placas de rede que atingiu o mercado de mainframes antes de o dispositivo Adaptador Sistema aberto ou OSA criado.

LCS é um melhor sistema de comunicações CTCI como CTCI só funciona com o tráfego TCP / IP. No entanto, LCS suporta tráfego nativo SNA TCP / IP e, se quiséssemos, e, portanto, sua configuração é também mais complexo em termos de as características que queremos ter. De fato, como acontece com o OSA / SF, devemos gerar um arquivo de TAO e definir direções, LUs e caminhos que queremos manipular. Para mais informações, leia o arquivo de configuração web de Hércules no no LCS.

No nosso caso, como nós só será configurado para o tráfego IP, ele não precisa entrar em rolos e outros aveia, mudando assim a nossa Hercules e configurações TCPIP z/OS é mais simples do que parece.

Alterações HERCULES.CNF

O Hercules para emular nosso LCS, devemos editar a configuração e mudar a nossa hercules.cnf. Se antes tínhamos CTCI, gostaríamos de alterar esta linha:
0E20.2    CTCI  192.168.1.100  192.168.1.3

(*) É 192.168.1.100 IP do nosso z/OS e 192.168.1.3 é o IP da nossa máquina física, por:
0E20.2  LCS  -n 192.168.1.3  192.168.1.100

Sendo 192.168.1.3 IP do nosso hardware e 192.168.1.100 IP z/OS (da ordem de alterações de definição, e atenta para o parâmetro -n).

Arrumando a Profile do TCPIP do z/OS

No nosso z/OS vamos configurar este CTCI, vamos editar a proc do TCPIP, vamos repetir a linha ADCD.Z110.TCPPARMS(PROF1) e colocar PROF99 e comentar a linha do PROF1; Como vamos ter que mexer no membro PROF99, se alguma coisa der errado temos um original
   File  Edit  Edit_Settings  Menu  Utilities  Compilers  Test  Help

 EDIT       ADCD.Z110.PROCLIB(TCPIP) - 01.03                Columns 00001 00072
 Command ===>                                                  Scroll ===> CSR
 000016 //ALGPRINT DD SYSOUT=*,DCB=(RECFM=VB,LRECL=132,BLKSIZE=136)
 000017 //CFGPRINT DD SYSOUT=*,DCB=(RECFM=VB,LRECL=132,BLKSIZE=136)
 000018 //SYSOUT   DD SYSOUT=H,DCB=(RECFM=VB,LRECL=132,BLKSIZE=136)
 000019 //CEEDUMP  DD SYSOUT=*,DCB=(RECFM=VB,LRECL=132,BLKSIZE=136)
 000020 //SYSERROR DD SYSOUT=*
 000021 //* PROFILE  DD DISP=SHR,DSN=ADCD.Z110.TCPPARMS(PROF1)
 000022 //PROFILE  DD DISP=SHR,DSN=ADCD.Z110.TCPPARMS(PROF99)
 000023 //* PROFILE  DD DISP=SHR,DSN=TCPIP.PROFILE.TCPIP
 000024 //SYSTCPD  DD DSN=ADCD.Z110.TCPPARMS(TCPDATA),DISP=SHR
 ****** **************************** Bottom of Data ****************************

Na biblioteca ADCD.Z110.TCPPARMS vamos copiar o membro PROF1 para um novo membro;
   Menu  Functions  Confirm  Utilities  Help

 BROWSE            ADCD.Z110.TCPPARMS                        Row 00001 of 00006
 Command ===>                                                  Scroll ===> PAGE
            Name     Prompt       Size   Created          Changed          ID
 _________ PROFILE                 396  2008/11/06  2008/11/06 15:51:30  IBMUSER
 c________ PROF1                   392  2008/11/06  2008/11/06 15:51:30  IBMUSER
 _________ PROF2                   385  2008/11/06  2008/11/06 15:51:30  IBMUSER
 _________ TCPDATA                 280  2008/11/06  2008/11/06 15:51:30  IBMUSER
 _________ TN3270                  266  2008/11/06  2008/11/06 15:51:30  IBMUSER
           **End**












Vamos chamar esta copia de PROF99;
   RefList  Help

                                COPY Entry Panel
 Command ===>
                                                                    More:     +
 CURRENT from data set: 'ADCD.Z110.TCPPARMS(PROF1)'

 To Library                       Options:
    Project . . .                    Enter "/" to select option
    Group . . . .                       Replace like-named members
    Type  . . . .                    /  Process member aliases

 To Other Data Set Name
    Name  . . . . . . . 'ADCD.Z110.TCPPARMS'
    Volume Serial . . .           (If not cataloged)

 NEW member name  . . . prof99    (Blank unless member to be renamed)

 Options
    Sequential Disposition        Pack Option         SCLM Setting
    2  1. Mod                     1  1. Default       3  1. SCLM
       2. Old                        2. Pack             2. Non-SCLM
                                                         3. As is

Editando;
   Menu  Functions  Confirm  Utilities  Help

 BROWSE            ADCD.Z110.TCPPARMS                        Row 00001 of 00007
 Command ===>                                                  Scroll ===> PAGE
            Name     Prompt       Size   Created          Changed          ID
 _________ PROFILE                 396  2008/11/06  2008/11/06 15:51:30  IBMUSER
 _________ PROF1                   392  2008/11/06  2008/11/06 15:51:30  IBMUSER
 _________ PROF2                   385  2008/11/06  2008/11/06 15:51:30  IBMUSER
 e________ PROF99                  392  2008/11/06  2008/11/06 15:51:30  IBMUSER
 _________ TCPDATA                 280  2008/11/06  2008/11/06 15:51:30  IBMUSER
 _________ TN3270                  266  2008/11/06  2008/11/06 15:51:30  IBMUSER
           **End**









Dando o comando res para tirar este Warning;
   File  Edit  Edit_Settings  Menu  Utilities  Compilers  Test  Help

 EDIT       ADCD.Z110.TCPPARMS(PROF99) - 01.01              Columns 00001 00072
 Command ===> res                                              Scroll ===> CSR
 ****** ***************************** Top of Data ******************************
 ==MSG> -Warning- The UNDO command is not available until you change
 ==MSG>           your edit profile using the command RECOVERY ON.
 000001 ;
 000002 ; TCPIP.PROFILE.TCPIP
 000003 ; ===================
 000004 ;
 000005 ; COPYRIGHT = NONE.
 000006 ;
 000007 ; NOTES:
 000008 ;
 000009 ;    The device configuration statements MUST be changed to match your
 000010 ;    hardware and software configuration.
 000011 ;
 000012 ;    The BEGINVTAM section must be changed to match your VTAM
 000013 ;    configuration.
 000014 ;
 000015 ;
 000016 ; For more information about this file, see "Configuring the TCPIP
 000017 ; Address Space" and "Configuring the Telnet Server" in the

Dando um FIND link para procurar esta palavra;
   File  Edit  Edit_Settings  Menu  Utilities  Compilers  Test  Help

 EDIT       ADCD.Z110.TCPPARMS(PROF99) - 01.01               CHARS 'link' found
 Command ===> find link                                        Scroll ===> CSR
 000166 ;
 000167 ; NOTE: To use these device and link statements, update the statements
 000168 ; to reflect your installation configuration and remove the semicolon
 000169 ;
 000170
 000171 ;
 000172 ; LCS1 is a 3172 Model 1 with a Token-Ring and Ethernet adapter.
 000173 ;
 000174
 000175 ;
 000176 ;DEVICE CTCA1  CTC           E22
 000177 ;LINK CTC1  CTC      1 CTCA1
 000178
 000179
 000180 ; To use these device and link statements, update the statements to
 000181 ; reflect your installation configuration and remove the semicolon
 000182
 000183 ;DEVICE LCS1   LCS           E20
 000184 ;LINK TR1   IBMTR    1 LCS1
 000185 ;LINK ETH1  ETHERNET  0  LCS1

1. Vamos procurar as linhas abaixo (observação ponto e virgula é comentário):
;DEVICE CTCA1  CTC    E20
;LINK CTC1  CTC    0 CTCA1

2. Adicione as duas linhas de nosso novo driver:
DEVICE  LCS1  LCS       E20  AUTORESTART
LINK    ETH1  ETHERNET  0    LCS1

3. Altere os dados restantes Home Gateway, etc, de CTC1 -antiguo- para ETH1 -NEW-.
HOME
192.168.1.100  ETH1

GATEWAY
192.168.1.1  =         ETH1    1492     HOST
defaultnet 192.168.1.1       ETH1  1492  0

BEGINROUTES
ROUTE  192.168.1.0  255.255.255.0  =            ETH1  MTU 1492
ROUTE  DEFAULT                     192.168.1.1  ETH1  MTU 1492
ENDROUTES

4. E, finalmente, mudar o driver antigo de início para o novo, comentando:
;START CTCA1

e acrescentando:
START LCS1

Com isso, eu ficaria. Pilha TCPIP iria parar o z/OS com TCPIP P do console master e iria lançar um TCPIP S, e voila, o novo driver assumir, período.

NOTA: driver LCS não requer alterações IODF. O driver CTC que criamos para CTCI, serve perfeitamente para LCS. 

11 comentários:

  1. Ola Claudemir, muito boas dicas! Parabens!. Eu estava fazendo um teste e tentar acessar o hercules externamente fora da minha rede, voce já fez isso ?

    ResponderEliminar
  2. Tem que configurar o TCP/IP - tentei fazer isso e não consegui, vou passar alguns sites que ensinam a fazer isso:

    http://www.sigt.net/software/montando-un-equipo-hercules-y-zos-para-emulacion-de-un-entorno-real-y-iii.html
    http://mainframecorner.com/?p=670
    http://www.mainframechina.com/2011/09/hercules-zos-1-11-customize-step-by-step-s8-tcpip/
    http://www.bsp-gmbh.com/hercules/os390/ctctun/os390_ctc.html
    http://www.bsp-gmbh.com/hercules/wingui/ctci-w32-readme.html
    http://www.bsp-gmbh.com/turnkey/cookbook/hercules/herctcp.html

    ResponderEliminar
  3. Pelo que observei parece que o TCP/IP do mainframe não esta configurando o IP da maquina real, fiz várias alterações e não consegui colocar na rede, dai larguei mão.

    ResponderEliminar
  4. Não consegui configurar, já fiz varias mudanças mais nada.

    ResponderEliminar
  5. Encontrei um site que o cara ensina mais sobre isso:

    http://emuframe.com/index.php/32-configurando-tcpip-en-zos

    ResponderEliminar
    Respostas
    1. Olá,
      Eu acho que consegui deixar "redondo", ao menos para conectar o 3270 via rede (porta 23).
      Fiz a configuração no CentOS 7

      Em resumo eu segui os passos de http://emuframe.com/index.php/32-configurando-tcpip-en-zos.

      Minha rede é 192.168.1.0/24
      Configurei a inteface tun0 em 192.168.5.0/24

      Então ficou assim:

      hercules.cnf

      0E20 3088 CTCI 192.168.5.1 192.168.5.2
      0E21 3088 CTCI 192.168.5.1 192.168.5.2

      Agora inicie o Hercules, mas não faça o IPL ainda
      veja se a tabela rotas e as interfaces estão parecidas
      com isso:

      ifconfig tun0
      tun0: flags=81 mtu 1500
      inet 192.168.5.2 netmask 255.255.255.255 destination 192.168.5.1
      unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 500 (Não Especificado)
      RX packets 240 bytes 50890 (49.6 KiB)
      RX errors 0 dropped 0 overruns 0 frame 0
      TX packets 256 bytes 27324 (26.6 KiB)
      TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

      route -n

      Tabela de Roteamento IP do Kernel
      Destino Roteador MáscaraGen. Opções Métrica Ref Uso Iface
      default 192.168.1.XXX 0.0.0.0 UG 0 0 0 eth0
      link-local 0.0.0.0 255.255.0.0 U 1004 0 0 eth0
      192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
      192.168.5.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
      192.168.5.1 0.0.0.0 255.255.255.255 UH 0 0 0 tun0

      Nota: caso não apareça a linha iniciada por 192.168.5.0 faça assim:

      route add -net 192.168.5.0 netmask 255.255.255.0 dev tun0

      z/os

      ADCD.Z110.TCPPARMS(PROF1) -- no meu caso


      DEVICE CTCA1 CTC E20
      LINK CTC1L CTC 0 CTCA1

      HOME
      192.168.5.2 CTC1L

      GATEWAY
      192.168.5.1 = CTC1L 1500 HOST
      DEFAULTNET 192.168.5.1 CTC1L 1500 0

      No final do dataset, nao esquecer de comentar
      todos os START que tiver e colocar este:

      START CTC1


      Na console então proceder com STOP/START do TCPIP

      STOP TCPIP
      START TCPIP

      Bem para terminar, eu executei o x3270 com o seguinte endereço: 192.168.5.1:23
      e o acesso funcionou.

      Agora vou passar para o z/OS unix e tentar usá-lo como servidor.

      Exemplo de conexão FTP

      ftp 192.168.5.1
      Connected to 192.168.5.1 (192.168.5.1).
      220-FTPD1 IBM FTP CS V1R10 at ADCD.SVO.DFW.IBM.COM, 01:19:08 on 2017-06-10.
      220 Connection will close if idle for more than 5 minutes.
      Name (192.168.5.1:root): IBMUSER
      331 Send password please.
      Password:
      230 IBMUSER is logged on. Working directory is "IBMUSER.".
      Remote system type is MVS.
      ftp> ls
      227 Entering Passive Mode (192,168,5,1,4,5)
      125 List started OK
      Volume Unit Referred Ext Used Recfm Lrecl BlkSz Dsorg Dsname
      ZASYS1 3390 2017/06/09 2 6 FB 80 3120 PO ISPF.ISPPROF
      250 List completed successfully.
      ftp>



      Eliminar
    2. Fantástico isso Volnei Puttini, vou tentar seguir esta sua dica pra ver se consigo fazer no meu Hercules.

      Eliminar
  6. Também consegui obter exito com o windows, mas fui tentar fazer, fazer o mesmo, com o LINUX, não obtive exito. Claudemar, voce sabe como resolver isso mas com o LINUX.

    ResponderEliminar
  7. Segui os mesmos passos no windows e depois que faço o S TCPIP aparece as msgs abaixo:

    EZZ4308I ERROR: CODE=8010302F DURING ACTIVATION OF DEVICE CTCMVS1. DIAGNOSTIC CODE: 02 EZZ4308I ERROR: CODE=8010302F DURING ACTIVATION OF DEVICE CTCMVS2. DIAGNOSTIC CODE: 02

    Alguém sabe o que pode ser?

    ResponderEliminar
    Respostas
    1. Esse esso aconteceu comigo e não consegui resolver, parece que você fez as alterações mais por algum motivo não aceitou.

      Eliminar