F.6. Adicionando um Dispositivo de Rede

O processo de adição de um dispositivo de rede foi bastante alterado no Red Hat Enterprise Linux. Isso ocorreu, em parte, devido à migração do kernel 2.4 para o kernel 2.6:

A Seção F.6.1 descreve em detalhes como adicionar um dispositivo qeth numa instância existente do Red Hat Enterprise Linux. A Seção F.6.2 é uma referência rápida para a instalação de outras interfaces de rede no zSeries.

F.6.1. Adicionando um Dispositivo qeth

Primeiro, determine se os módulos do driver do dispositivo qeth foram carregados.

# lsmod | grep qeth
qeth                  135240  0
qdio                   45360  2 qeth
ipv6                  303984  13 qeth
ccwgroup               15104  1 qeth

Se o output do comando lsmod mostra que os módulos não foram carregados, você deve executar o comando modprobe para carregá-los:

# modprobe qeth

Em seguida, crie um dispositivo de grupo qeth.

# echo <read_device_bus_id>,<write_device_bus_id>,<data_device_bus_id>
  > /sys/bus/ccwgroup/drivers/qeth/group

Devido à extensão da linha deste comando, este foi dividido em duas linhas.

No exemplo a seguir, read_device_bus_id é 0.0.0600, write_device_bus_id é 0.0.0601 e data_device_bus_id é 0.0.0602. O dispositivo é um NIC virtual da z/VM e o endereço IP que queremos atribuir a esta interface é 192.168.70.69.

# echo 0.0.0600,0.0.0601,0.0.0602 > /sys/bus/ccwgroup/drivers/qeth/group

Em seguida, verifique se o dispositivo de grupo qeth foi criado apropriadamente:

# ls /sys/bus/ccwgroup/drivers/qeth
0.0.0600  0.0.09a0  group  notifier_register

Opcionalmente, você pode adicionar um nome de porta. Primeiro, verifique se é necessário:

# cat /sys/bus/ccwgroup/drivers/qeth/0.0.0600/portname
no portname required

A resposta indica que você não precisa indicar um nome de porta.

Para adicionar um nome de porta, verifique se os dispositivos estão offline e então use o seguinte comando:

NotaNota
 

O(s) dispositivo(s) deve(m) estar offline quando você adicionar um nome de porta.

# echo <portname> > /sys/bus/ccwgroup/drivers/qeth/0.0.0600/portname

Em seguida, traga o dispositivo de volta online:

# echo 1 /sys/bus/ccwgroup/drivers/qeth/0.0.0600/online

Então verifique o estado do dispositivo:

# cat /sys/bus/ccwgroup/drivers/qeth/0.0.0600/online
1

O valor retornado "1" indica que o dispositivo está online, enquanto o valor "0" indica que o dispositivo está offline.

Verifique qual o nome atribuído ao dispositivo:

# cat /sys/bus/ccwgroup/drivers/qeth/0.0.0600/if_name
eth1

Para alterar o valor de if_name, use o seguinte comando:

# echo <new_if_name> > /sys/bus/ccwgroup/drivers/qeth/0.0.0600/if_name

Você também pode configurar parâmetros e funcionalidades adicionais, dependendo da maneira como configurar seu sistema e das funcionalidades que precisar.

Para obter informações sobre o funcionamento destas funcionalidades, visite http://oss.software.ibm.com/developerworks/opensource/linux390/docu/lx26apr04dd01.pdf (Linux for zSeries and S/390 Device Drivers, Features, and Commands).

Agora você precisa criar o arquivo de configuração para a sua nova interface. Os arquivos de configuração das interfaces de rede estão localizados em /etc/sysconfig/network-scripts/.

Os arquivos de configuração de rede usam a convenção de nomes ifcfg-<dispositivo>, onde dispositivo é o valor encontrado no arquivo if_name no dispositivo de grupo qeth, criado anteriormente. Neste exemplo é eth1.

Se já houver um arquivo de configuração definido para outro dispositivo do mesmo tipo, é mais fácil copiá-lo com o novo nome.

# cd /etc/sysconfig/network-scripts
# cp ifcfg-eth0 ifcfg-eth1

Se você não tem um dispositivo similar definido, deve criar um. Use este exemplo do ifcfg-eth0 como uma template.

/etc/sysconfig/network-scripts/ifcfg-eth0
# IBM QETH
DEVICE=eth0
BOOTPROTO=static
HWADDR=00:06:29:FB:5F:F1
IPADDR=9.12.20.136
NETMASK=255.255.255.0
ONBOOT=yes
NETTYPE=qeth
SUBCHANNELS=0.0.09a0,0.0.09a1,0.0.09a2
TYPE=Ethernet

Edite o novo arquivo ifcfg-eth1.

Remova a linha HWADDR por enquanto.

Modifique as instruções de DEVICE (dispositivo) para refletirem o conteúdo do arquivo if_name de seu grupo ccw.

Modifique as instruções de IPADDR para refletirem o endereço IP da sua nova interface.

Modifique as instruções de NETMASK (máscara de rede) conforme necessário.

Se você deseja que sua nova interface seja ativada no momento da inicialização (boot time), garanta que ONBOOT esteja definido como yes.

Garanta que as instruções de SUBCHANNELS coincidam com os endereços do hardware de seu dispositivo qeth.

/etc/sysconfig/network-scripts/ifcfg-eth1
# IBM QETH
DEVICE=eth1
BOOTPROTO=static
IPADDR=192.168.70.87
NETMASK=255.255.255.0
ONBOOT=yes
NETTYPE=qeth
SUBCHANNELS=0.0.0600,0.0.0601,0.0.0602
TYPE=Ethernet

Um dispositivo qeth requer a definição de um codenome em /etc/modprobe.conf. Edite este arquivo e adicione um codenome para sua interface.

/etc/modprobe.conf
alias eth0 qeth
alias eth1 qeth
options dasd_mod dasd=0.0.0100,0.0.4b19

Agora você pode iniciar a nova interface:

# ifup eth1

Verifique o status da interface:

# ifconfig eth1
eth1      Link encap:Ethernet  HWaddr 02:00:00:00:00:01
          inet addr:192.168.70.87  Bcast:192.168.70.255  Mask:255.255.255.0
          inet6 addr: fe80::ff:fe00:1/64 Scope:Link
          UP BROADCAST RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:23 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:644 (644.0 b)  TX bytes:264 (264.0 b)

Note o campo HWaddr na primeira linha do output do comando ifconfig. O valor seguinte a este precisa ser adicionado ao arquivo ifcfg-eth1. Adicione uma linha como esta ao arquivo:

HWADDR=02:00:00:00:00:01

Agora, ifcfg-eth1 se parece com o seguinte:

# IBM QETH
DEVICE=eth1
HWADDR=02:00:00:00:00:01
BOOTPROTO=static
IPADDR=192.168.70.69
NETMASK=255.255.255.0
ONBOOT=yes
NETTYPE=qeth
SUBCHANNELS=0.0.0600,0.0.0601,0.0.0602
TYPE=Ethernet

Verifique o roteamento para a nova interface:

# route
Kernel IP routing table
Destination     Gateway         Genmask        Flags Metric Ref  Use Iface
192.168.70.0    *               255.255.255.0  U     0      0      0 eth1
9.12.20.0       *               255.255.255.0  U     0      0      0 eth0
169.254.0.0     *               255.255.0.0    U     0      0      0 eth1
default         pdlrouter-if5.p 0.0.0.0        UG    0      0      0 eth0

Verifique suas alterações usando o comando ping na porta de comunicação (gateway):

# ping -c 1 192.168.70.8
PING 192.168.70.8 (192.168.70.8) 56(84) bytes of data.
64 bytes from 192.168.70.8: icmp_seq=0 ttl=63 time=8.07 ms

Se as informações de roteamento default foram alteradas, você também deve atualizar o /etc/sysconfig/network de acordo.

F.6.2. Referências Rápidas para Adicionar Dispositivos de Rede

Há diversas tarefas básicas para adicionar uma interface de rede em sistemas zSeries.

As seções seguintes oferecem informações básicas para cada tarefa de cada driver do dispositivo de rede do zSeries.

F.6.2.1. Trabalhando com o Driver do Dispositivo LCS

O driver do dispositivo LAN channel station (LCS) suporta OSA-2 Ethernet/Token Ring, OSA-Express Ethernet Rápida no módulo não-QDIO e OSA-Express Token Ring de Alta Velocidade no módulo não-QDIO. No z990, o driver LCS também suporta Gigabit Ethernet no módulo não-QDIO (incluindo 1000Base-T).

Baseado no tipo de interafce a adicionar, o driver LCS atribui um dos dois nomes de interface básicas: eth<n> para OSA-Express Ethernet Rápida e Ethernet Gigabit tr<n> para Token Ring, onde <n> é um número inteiro que identifica o dispositivo unicamente. <n> é 0 para o primeiro dispositivo desse tipo, 1 para o segundo e assim por diante.

  • Carregue o driver do dispositivo:

    # modprobe lcs
  • Crie o dispositivo de grupo:

    # echo <read_device_bus_id>,<write_device_bus_id> 
    > /sys/bus/ccwgroup/drivers/lcs/group

    Devido à extensão da linha deste comando, este foi dividido em duas linhas.

  • Configurar o dispositivo

    Placas OSA podem oferecer até 16 portas para um único CHPID. Por default, o dispositivo de grupo LCS usa a porta 0. Para usar uma porta diferente, use um comando similar ao seguinte:

    # echo <portno> > /sys/bus/ccwgroup/drivers/lcs/<device_bus_id>/portno

    Para mais informações sobre a configuração do driver LCS, consulte o seguinte:

    http://oss.software.ibm.com/developerworks/opensource/linux390/docu/lx26apr04dd01.pdf (Linux para Drivers de Dispositivos, Funcionalidades e Comandos do zSeries e S/390)

  • Traga o dispositivo online:

    # echo 1 /sys/bus/ccwgroup/drivers/lcs/<read_device_bus_id>/online
  • Defina o codenome.

    Beaseado no tipo da interface a adicionar, adicione uma linha ao /etc/modprobe.conf similar a uma destas:

    eth<n> alias lcs
    tr<n> alias lcs
  • Criar um script de configuração

    Crie um arquivo em /etc/sysconfig/network-scripts/ com um nome parecido com um destes:

    ifcfg-eth<n>
    ifcfg-tr<n>

    O arquivo deve se parecer com o seguinte:

    /etc/sysconfig/network-scripts/ifcfg-eth0
    # IBM LCS
    DEVICE=eth0
    BOOTPROTO=static
    HWADDR=00:06:29:FB:5F:F1
    IPADDR=9.12.20.136
    NETMASK=255.255.255.0
    ONBOOT=yes
    NETTYPE=lcs
    SUBCHANNELS=0.0.09a0,0.0.09a1
    PORTNAME=0
    TYPE=Ethernet

    Baseado no tipo da interface a adicionar, o parâmetro DEVICE deve ser um destes:

    DEVICE=eth<n>
    DEVICE=tr<n>
  • Ativar o dispositivo

    Baseado no tipo da interface a adicionar, submeta um comando ifup:

    # ifup eth<n>
    # ifup tr<n>

F.6.2.2. Trabalhando com o Driver do Dispositivo QETH

O driver do dispositivo de rede QETH suporta HiperSockets do zSeries, OSA-Express Ethernet Rápida, Ethernet Gigabit (incluindo 1000Base-T), Token Ring e Alta Velocidade e funcionalidades ATM (rodando emulação da LAN da Ethernet) no modo QDIO.

Baseado no tipo de interface a adicionar, o driver do QETH atribui um dos três nomes básicos de interface:

  • hsi<n> para dispositivos HiperSocket

  • eth<n> para OSA-Express Ethernet Rápida e Ethernet Gigabit

  • tr<n> para Token Ring

O valor <n> é um número inteiro que identifica o dispositivo unicamente. <n> é 0 para o primeiro dispositivo desse tipo, 1 para o segundo e assim por diante.

  • Carregue o driver do dispositivo:

    # modprobe qeth
  • Crie o dispositivo de grupo:

    # echo <read_device_bus_id>,<write_device_bus_id>,<data_device_bus_id>
      > /sys/bus/ccwgroup/drivers/qeth/group

    Devido à extensão da linha deste comando, este foi dividido em duas linhas.

  • Configurar o dispositivo

    Para mais informações sobre a configuração do driver do QETH, consulte o seguinte:

    http://oss.software.ibm.com/developerworks/opensource/linux390/docu/lx26apr04dd01.pdf (Linux para Drivers de Dispositivos, Funcionalidades e Comandos do zSeries e S/390)

  • Traga o dispositivo online:

    # echo 1 /sys/bus/ccwgroup/drivers/qeth/<read_device_bus_id>/nline
  • Defina o codenome.

    Baseado no tipo de interface a adicionar, adicione uma linha ao /etc/modprobe.conf similar a uma destas:

    hsi<n> alias qeth
    eth<n> alias qeth
    tr<n> alias qeth
  • Criar um script de configuração

    Crie um arquivo em /etc/sysconfig/network-scripts/ com um nome parecido com um destes:

    ifcfg-hsi<n> 
    ifcfg-eth<n>
    ifcfg-tr<n>

    O arquivo deve se parecer com o seguinte:

    /etc/sysconfig/network-scripts/ifcfg-eth0
    # IBM QETH
    DEVICE=eth0
    BOOTPROTO=static
    HWADDR=00:06:29:FB:5F:F1
    IPADDR=9.12.20.136
    NETMASK=255.255.255.0
    ONBOOT=yes
    NETTYPE=qeth
    SUBCHANNELS=0.0.09a0,0.0.09a1,0.0.09a2
    TYPE=Ethernet

    Baseado no tipo de interface a adicionar, o parâmetro DEVICE deve se parecer com um destes:

    DEVICE=hsi<n>
    DEVICE=eth<n>
    DEVICE=tr<n>
  • Ativar o dispositivo

    Baseado no tipo da interface a adicionar, submeta um comando ifup:

    # ifup hsi<n>
    # ifup eth<n>
    # ifup tr<n>

F.6.2.3. Trabalhando com o Driver do Dispositivo CTC

Uma conexão Canal-to-Canal (CTC) é a conexão rápida típica entre mainframes. O driver do dispositivo CTC pode ser usado para estabelecer uma conexão TCP/IP ou tty ponto-a-ponto entre duas instâncias Linux para zSeries e S/390 ou entre uma instância Linux para zSeries e S/390 e uma outra instância do sistema operacional do mainframe, como z/OS, OS/390, z/VM ou z/VSE.

O driver CTC atribui um nome básico de interface como:

ctc<n>

O valor <n> é um número inteiro que identifica o dispositivo unicamente. <n> é 0 para o primeiro dispositivo desse tipo, 1 para o segundo e assim por diante.

  • Carregue o driver do dispositivo:

    # modprobe ctc
  • Crie o dispositivo de grupo:

    # echo <read_device_bus_id>,<write_device_bus_id> 
    > /sys/bus/ccwgroup/drivers/ctc/group

    Devido à extensão da linha deste comando, este foi dividido em duas linhas.

  • Configurar o dispositivo

    Defina o protocolo:

    # echo <protocol> /sys/bus/ccwgroup/drivers/ctc/<device_bus_id>/protocol

    Onde <protocolo> é 0, 1, 2 ou 3.

    0 — Este protocolo oferece compatibilidade com outros pares além do OS/390 ou z/OS. Por exemplo: uma máquina de serviço TCP VM. Esse é o default.

    1 — Este protocolo oferece a verificação aprimorada de pacotes para pares do Linux.

    2 — Este protocolo oferece uma conexão tty baseada no CTC com um par do Linux.

    3 — Este protocolo oferece compatibilidade com pares do OS/390 ou do z/OS.

    Para mais informações sobre a configuração do driver CTC, consulte o seguinte:

    http://oss.software.ibm.com/developerworks/opensource/linux390/docu/lx26apr04dd01.pdf (Linux para Drivers de Dispositivos, Funcionalidades e Comandos do zSeries e S/390)

  • Traga o dispositivo online:

    # cho 1 /sys/bus/ccwgroup/drivers/lcs/<read_device_bus_id>/online
  • Defina o codenome.

    Baseado no tipo de interface a adicionar, adicione uma linha ao /etc/modprobe.conf parecida com a seguinte:

    ctc<n> alias ctc
  • Criar um script de configuração

    Crie um arquivo em /etc/sysconfig/network-scripts/ com um nome parecido com o seguinte:

    ifcfg-ctc<n>

    Este arquivo deve se parecer com o seguinte:

    /etc/sysconfig/network-scripts/ifcfg-ctc0
    # IBM CTC
    DEVICE=ctc0
    BOOTPROTO=static
    IPADDR=192.168.70.136
    GATEWAY=172.16.70.136
    NETMASK=255.255.255.255
    ONBOOT=yes
    SUBCHANNELS=0.0.1b00,0.0.1b01
    NETTYPE=ctc
    CTCPROT=0
    TYPE=CTC
  • Ativar o dispositivo

    Baseado no tipo da interface a adicionar, submeta um comando ifup:

    # ifup ctc<n>

F.6.2.4. Trabalhando com o Driver do Dispositivo IUCV

O veículo de comunicação entre usuários (Inter-User Communication Vehicle, IUCV) é um utilitário de comunicação VM que possibilita a um programa rodando num convidado (guest) VM comunicar com outro convidado VM, com um programa de controle ou com ele mesmo. O driver do dispositivo IUCV do Linux para zSeries e S/390 é um driver de dispositivo de rede que usa o IUCV para conectar convidados Linux rodando em IDs de usuário VM diferentes, ou para conectar um convidado Linux a outro convidado VM, como uma máquina de serviço TCP/IP.

O driver IUCV atribui um nome de interface básico como:

iucv<n>

O valor <n> é um número inteiro que identifica o dispositivo unicamente. <n> é 0 para o primeiro dispositivo desse tipo, 1 para o segundo e assim por diante.

  • Carregue o driver do dispositivo:

    # modprobe netiucv
  • Criar o dispositivo IUCV:

    # echo <peer_id> > /sys/bus/iucv/drivers/netiucv/connection

    O valor de <peer_id> é o ID de convidado do convidado VM ao qual você deseja conectar. O driver do dispositivo IUCV interpreta o ID como caixa alta (maiúscula). Isso é, geralmente, TCP/IP.

    Isso cria uma estrutura sysfs como esta:

    cat /sys/bus/iucv/drivers/netiucv/netiucv<n>

    O valor <n> é um número inteiro que identifica o dispositivo unicamente. <n> é 0 para o primeiro dispositivo desse tipo, 1 para o segundo e assim por diante.

  • Configurar o dispositivo

    Determine o tamanho máximo do buffer, se necessário:

    # echo <value> > /sys/bus/iucv/drivers/netiucv/netiucv<n>/buffer
      

    O <valor> é o número de bytes que você deseja determinar. Se você especificar um valor fora do intervalo válido, o comando é ignorado.

    O intervalo permissível de valores do tamanho máximo do buffer depende da configuração do MTU. Deve estar no intervalo < MTU mínimo + tamanho do cabeçalho> a <MTU máximo + tamanho do cabeçalho>. O espaço do cabeçalho é tipicamente 4 bytes. O tamanho máximo default do buffer é 32768 bytes (32 KB).

    Para mais informações sobre a configuração do driver IUCV, consulte o seguinte:

    http://oss.software.ibm.com/developerworks/opensource/linux390/docu/lx26apr04dd01.pdf (Linux para Drivers de Dispositivos, Funcionalidades e Comandos do zSeries e S/390)

  • Defina o codenome.

    Baseado no tipo de interface a adicionar, adicione uma linha ao /etc/modprobe.conf parecida com a seguinte:

    iucv<n> alias netiucv
  • Criar um script de configuração

    Crie um arquivo em /etc/sysconfig/network-scripts/ com um nome parecido com o seguinte:

    ifcfg-iucv<n>

    O arquivo deve se parecer com o seguinte:

    /etc/sysconfig/network-scripts/ifcfg-iucv0
    # IBM IUCV
    DEVICE=iucv0
    BOOTPROTO=static
    IPADDR=192.168.70.136
    GATEWAY=172.16.70.136
    NETMASK=255.255.255.255
    ONBOOT=yes
    NETTYPE=iucv
    PEERID=TCPIP
    TYPE=IUCV
  • Ativar o dispositivo

    Baseado no tipo de interface a adicionar, invoque o comando ifup conforme segue:

    # ifup iucv<n>