17.3. Adicionando um Dispositivo de Rede

Os módulos de driver de dispositivos de rede são carregados automaticamente por udev.
Você pode adicionar uma interface de rede no IBM System z de forma dinâmica ou de forma persistente.
  • Dinamicamente
    1. Carregar o driver do dispositivo
    2. Remova os dispositivos de rede da lista dos dispositivos ignorados.
    3. Criar o dispositivo de grupo.
    4. Configurar o dispositivo
    5. Trazer o dispositivo online.
  • Persistentemente
    1. Criar um script de configuração
    2. Ativar a interface
As seções a seguir fornecem informações básicas para cada tarefa de cada driver de dispositivo de rede do IBM System z. Seção 17.3.1, “Adicionando um Dispositivo qeth descreve como adicionar o dispositivo qeth para uma instância existente do Red Hat Enterprise Linux. Seção 17.3.2, “Adicionando um Dispositivo de LCS” descreve como adicionar um dispositivo lcs à uma instância existente do Red Hat Enterprise Linux.

17.3.1. Adicionando um Dispositivo qeth

O driver de dispositivo de rede qeth , suporta os recursos System z OSA-Express no modo QDIO, HiperSockets, convidado z/VM LAN, e z/VM VSWITCH.
O driver do dispositivo qeth atribui o mesmo nome de interface para os dispositivos Ethernet e Hipersockets: enccwbus_ID. O ID de barra é composto pelo ID do subsistema do canal, ID do conjunto de subcanal, e número de dispositivo, por exemplo enccw0.0.0a00.

17.3.1.1. Adicionando um Dispositivo qeth Dinamicamente

Para adicionar um dispositivo qeth de forma dinâmica, siga estes passos:
  1. Determine se os módulos de driver de dispositivo de qeth são carregados. O exemplo a seguir mostra os módulos de qeth carregados:
    # lsmod | grep qeth
    qeth_l3                  127056  9
    qeth_l2                   73008  3
    ipv6                  492872  155ip6t_REJECT,nf_conntrack_ipv6,qeth_l3
    qeth                  115808  2 qeth_l3,qeth_l2
    qdio                   68240  1 qeth
    ccwgroup               12112  2 qeth
    Se o output do comando lsmod mostra que os módulos qeth não foram carregados, você deve executar o comando modprobe para carregá-los:
    # modprobe qeth
  2. Use o recurso cio_ignore para remover os canais de rede da lista de dispositivos ignorados e torná-los visíveis ao Linux:
    # cio_ignore -r read_device_bus_id,write_device_bus_id,data_device_bus_id
    Substitua read_device_bus_id,write_device_bus_id,data_device_bus_id pelos três IDs de barramento de dispositivo, representando um dispositivo de rede. Por exemplo, se o read_device_bus_id é 0.0.f500, o write_device_bus_id é 0.0.f501, e o data_device_bus_id é 0.0.f502:
    # cio_ignore -r 0.0.f500,0.0.f501,0.0.f502
  3. Use o znetconf para tocar e listar as configurações de candidato para os dispositivos de rede:
    # znetconf -u
    Scanning for network devices...
    Device IDs                 Type    Card Type      CHPID Drv. 
    ------------------------------------------------------------
    0.0.f500,0.0.f501,0.0.f502 1731/01 OSA (QDIO)        00 qeth 
    0.0.f503,0.0.f504,0.0.f505 1731/01 OSA (QDIO)        01 qeth 
    0.0.0400,0.0.0401,0.0.0402 1731/05 HiperSockets      02 qeth
  4. Selecione a configuração que você deseja trabalhar e usar o znetconf para aplicar a configuração e para colocar o dispositivo de grupo configurado online como o dispositivo de rede.
    # znetconf -a f500
    Scanning for network devices...
    Successfully configured device 0.0.f500 (enccw0.0.f500)
  5. Como forma alternativa, você também pode passar argumentos que são configurados no dispositivo de grupo antes que seja definido online:
    # znetconf -a f500 -o portname=myname
    Scanning for network devices...
    Successfully configured device 0.0.f500 (enccw0.0.f500)
    Agora você pode continuar a configurar a interface de rede enccw0.0.f500.
Como forma alternativa, você pode usar os atributos sysfs para definir o dispositivo online como se segue:
  1. 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
    Por exemplo:
    # echo 0.0.f500,0.0.f501,0.0.f502 > /sys/bus/ccwgroup/drivers/qeth/group
  2. Em seguida, verifique se o dispositivo de grupo qeth foi criado apropriadamente procurando pelo canal de leitura:
    # ls /sys/bus/ccwgroup/drivers/qeth/0.0.f500
    Você também pode configurar parâmetros e funcionalidades adicionais, dependendo da maneira como configurar seu sistema e das funcionalidades que precisar, tais como:
    • portno
    • layer2
    • portname
  3. Coloque o dispositivo online ao gravar 1 para o atributo sysfs online:
    # echo 1 > /sys/bus/ccwgroup/drivers/qeth/0.0.f500/online
  4. Então verifique o estado do dispositivo:
    # cat /sys/bus/ccwgroup/drivers/qeth/0.0.f500/online
    1
    O valor retornado 1 indica que o dispositivo está online, enquanto o valor 0 indica que o dispositivo está offline.
  5. Encontre o nome da interface que foi atribuído ao dispositivo:
    # cat /sys/bus/ccwgroup/drivers/qeth/0.0.f500/if_name
    enccw0.0.f500
    Agora você pode continuar a configurar a interface de rede enccw0.0.f500.
    O comando a seguir do pacote s390utils demonstra as configurações mais importantes de seu dispositivo sysfs:
    # lsqeth enccw0.0.f500
    Device name                     : enccw0.0.f500                
    -------------------------------------------------
            card_type               : OSD_1000
            cdev0                   : 0.0.f500
            cdev1                   : 0.0.f501
            cdev2                   : 0.0.f502
            chpid                   : 76
            online                  : 1
            portname                : OSAPORT
            portno                  : 0
            state                   : UP (LAN ONLINE)
            priority_queueing       : always queue 0
            buffer_count            : 16
            layer2                  : 1
            isolation               : none

17.3.1.2. Removendo um Dispositivo qeth Dinamicamente

Para remover um dispositivo qeth use o utilitário znetconf. Por exemplo:
  1. Use o utilitário znetconf para apresentar-lhe todos os dispositivos de rede configurados:
    znetconf -c
    Device IDs                 Type    Card Type      CHPID Drv. Name        	State  
    --------------------------------------------------------------------------------------
    0.0.8036,0.0.8037,0.0.8038 1731/05 HiperSockets      FB qeth hsi1        	online 
    0.0.f5f0,0.0.f5f1,0.0.f5f2 1731/01 OSD_1000          76 qeth enccw0.0.09a0      online 
    0.0.f500,0.0.f501,0.0.f502 1731/01 GuestLAN QDIO     00 qeth enccw0.0.f500      online
  2. Selecione o dispositivo de rede para ser removido e execute o znetconf para definir o dispositivo offline e desagrupar o dispositivo de grupo ccw> group device.
    # znetconf -r f500
    Remove network device 0.0.f500 (0.0.f500,0.0.f501,0.0.f502)?
    Warning: this may affect network connectivity!
    Do you want to continue (y/n)?y
    Successfully removed device 0.0.f500 (enccw0.0.f500)
  3. Verifique o sucesso da remoção:
    znetconf -c
    Device IDs                 Type    Card Type      CHPID Drv. Name        	State  
    --------------------------------------------------------------------------------------
    0.0.8036,0.0.8037,0.0.8038 1731/05 HiperSockets      FB qeth hsi1        	online 
    0.0.f5f0,0.0.f5f1,0.0.f5f2 1731/01 OSD_1000          76 qeth enccw0.0.09a0      online

17.3.1.3. Adicionando um dispositivo qeth de forma persistente

Para realizar um novo dispositivo de qeth persistente você precisar criar um arquivo de configuração para sua nova interface Os arquivos de configuração das interfaces de rede estão localizados no diretório /etc/sysconfig/network-scripts/.
Os arquivos de configuração de rede usam o esquema de nomes ifcfg-dispositivo, onde dispositivo é o valor encontrado no arquivo if_name no dispositivo de grupo qeth que foi criado anteriormente, por exemplo, é enccw0.0.09a0. O comandos cio_ignore são manuseados de forma transparente para configurações de dispositivo persistentes e você não precisa liberar dispositivos da lista ignorar manualmente.
Se já houver um arquivo de configuração definido para outro dispositivo do mesmo tipo, é mais fácil copiá-lo com o novo nome e depois editá-lo:
# cd /etc/sysconfig/network-scripts
# cp ifcfg-enccw0.0.09a0 ifcfg-enccw0.0.0600
Para conhecer as IDs de seus dispositivos de rede, use o utilitário lsqeth:
# lsqeth -p
devices                    CHPID interface        cardtype       port chksum prio-q'ing rtr4 rtr6 lay'2 cnt
-------------------------- ----- ---------------- -------------- ---- ------ ---------- ---- ---- ----- -----
0.0.09a0/0.0.09a1/0.0.09a2 x00   enccw0.0.09a0    Virt.NIC QDIO  0    sw     always_q_2 n/a  n/a  1     64  
0.0.0600/0.0.0601/0.0.0602 x00   enccw0.0.0600    Virt.NIC QDIO  0    sw     always_q_2 n/a  n/a  1     64
Se você não tem um dispositivo similar definido, deve criar um novo arquivo. Use este exemplo do /etc/sysconfig/network-scripts/ifcfg-0.0.09a0 como uma template.
# IBM QETH
DEVICE=enccw0.0.09a0
BOOTPROTO=static
IPADDR=10.12.20.136
NETMASK=255.255.255.0
ONBOOT=yes
NETTYPE=qeth
SUBCHANNELS=0.0.09a0,0.0.09a1,0.0.09a2
PORTNAME=OSAPORT
OPTIONS='layer2=1 portno=0'
MACADDR=02:00:00:23:65:1a
TYPE=Ethernet
Edite o novo arquivo ifcfg-0.0.0600 como se segue:
  1. Modifique as instruções de DEVICE (dispositivo) para refletirem o conteúdo do arquivo if_name de seu grupo ccw .
  2. Modifique as instruções de IPADDR para refletirem o endereço IP da sua nova interface.
  3. Modifique as instruções do NETMASK conforme necessário.
  4. Se você deseja que sua nova interface seja ativada no momento da inicialização (boot time), garanta que o ONBOOT esteja definido como yes.
  5. Garanta que as instruções de SUBCHANNELS coincidam com os endereços do hardware de seu dispositivo qeth.
  6. Modifique a instrução PORTNAME ou deixe-o fora se não for necessário em seu ambiente.
  7. Você pode adicionar qualquer atributo sysfs válido e seu valor ao parâmetro OPTIONS. O programa de instalação do Red  Hat Enterprise  Linux atualmente usa isto para configurar o modo de camada (layer2) e o número de porta relativa (portno) dos dispositivos do qeth.
    O driver do dispositivo qeth default para dispositivo ISA é agora o modo layer 2. Para continuar o uso de definições ifcfg antigo que conta com o default anterior do modo de layer 3, adicione o layer2=0ao parâmetro OPTIONS.
/etc/sysconfig/network-scripts/ifcfg-0.0.0600
# IBM QETH
DEVICE=enccw0.0.0600
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
PORTNAME=OSAPORT
OPTIONS='layer2=1 portno=0'
MACADDR=02:00:00:b3:84:ef
TYPE=Ethernet
Mudanças ao arquivo ifcfg se tornam efetiva somente após a reinicialização do sistema ou após a adição dinâmica dos novos canais de dispositivo de rede novo, mudando a configuração de E/S do sistema (por exemplo, ao anexar sob o z/VM). Como forma alternativa, você pode disparar a ativação de um arquivo ifcfg para canais de rede que não estavam ativos ainda, executando os seguintes comandos:
  1. Use o recurso cio_ignore para remover os canais de rede da lista de dispositivos ignorados e torná-los visíveis ao Linux:
    # cio_ignore -r read_device_bus_id,write_device_bus_id,data_device_bus_id
    Substitua read_device_bus_id,write_device_bus_id,data_device_bus_idpelos três IDs de barramento de dispositivo, representando um dispositivo de rede. Por exemplo, se o read_device_bus_id é 0.0.0600, o write_device_bus_id é 0.0.0601, e o data_device_bus_id é 0.0.0602:
    # cio_ignore -r 0.0.0600,0.0.0601,0.0.0602
  2. Para disparar o evento que ativa a mudança, emita:
    echo add > /sys/bus/ccw/devices/read-channel/uevent
    Por exemplo:
    echo add > /sys/bus/ccw/devices/0.0.0600/uevent
  3. Verifique o status do dispositivo de rede:
    # lsqeth
  4. Agora você pode iniciar a nova interface:
    # ifup enccw0.0.0600
  5. Verifique o status da interface:
    # ifconfig enccw0.0.0600
    enccw0.0.0600     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)
  6. 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 enccw0.0.0600
    10.1.20.0       *               255.255.255.0  U     0      0      0 enccw0.0.09a0
    default         10.1.20.1       0.0.0.0        UG    0      0      0 enccw0.0.09a0
  7. Verifique suas alterações usando o comando ping na porta de comunicação (gateway) ou outro host na subrede do novo dipositivo:
    # 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
  8. Se as informações de roteamento default foram alteradas, você também deve atualizar o /etc/sysconfig/network de acordo.

17.3.2. Adicionando um Dispositivo de LCS

O driver de dispositivo LAN channel station (LCS) suporta os recursos de 1000Base-T Ethernet no OSA-Express2 e OSA-Express 3
O driver do dispositivo LCS atribui o seguinte nome de interface para os dispositivos OSA-Express Fast Ethernet e Gigabit Ethernet: enccwbus_ID. O ID de barra é composto pelo ID do subsistema do canal, ID do conjunto de subcanal, e número de dispositivo, por exemplo enccw0.0.0a00.

17.3.2.1. Adicionando o Dispositivo LCS de forma Dinâmica

  1. Carregue o driver do dispositivo:
    # modprobe lcs
  2. Use o recurso cio_ignore para remover os canais de rede da lista de dispositivos ignorados e torná-los visíveis ao Linux:
    # cio_ignore -r read_device_bus_id,write_device_bus_id
    Replace read_device_bus_id and write_device_bus_id with the two device bus IDs representing a network device. For example:
    # cio_ignore -r 0.0.09a0,0.0.09a1
  3. Crie o dispositivo de grupo:
    # echo read_device_bus_id,write_device_bus_id > /sys/bus/ccwgroup/drivers/lcs/group
  4. Configure 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
    Substitua portno pelo número de porta que você deseja usar.
  5. Traga o dispositivo online:
    # echo 1 > /sys/bus/ccwgroup/drivers/lcs/read_device_bus_id/online
  6. Para descobrir qual o nome do dispostivo de rede que foi atribuído, insira o comando:
    # ls -l /sys/bus/ccwgroup/drivers/lcs/read_device_bus_ID/net/
    drwxr-xr-x 4 root root 0 2010-04-22 16:54 enccw0.0.0600

17.3.2.2. Adicionando um Dispositivo LCS de forma Persistente.

Os comandos Cio_ignore são manuseados de forma transparente para configurações de dispositivo persistentes e você não precisa liberar os dispositivos de ignorar a lista manualmente.
Para adicionar um dispositivo LCS de forma persistente, siga estes passos:
  1. Crie um script de configuração como arquivo em /etc/sysconfig/network-scripts/ com um nome como o ifcfg-device, onde device é o valor encontrado no arquivo if_name no dispositivo de grupo qeth que foi criado anteriormente, por exemplo enccw0.0.09a0. O arquivo deve se parecer com o seguinte:
    /etc/sysconfig/network-scripts/ifcfg-enccw0.0.09a0
    # IBM LCS
    DEVICE=enccw0.0.09a0
    BOOTPROTO=static
    IPADDR=10.12.20.136
    NETMASK=255.255.255.0
    ONBOOT=yes
    NETTYPE=lcs
    SUBCHANNELS=0.0.09a0,0.0.09a1
    PORTNAME=0
    OPTIONS=''
    TYPE=Ethernet
  2. Modifique o valor de PORTNAME para refletir o número da porta do LCS (portno) que você deseja usar. Você pode adicionar qualquer atributo do sysfs do lcs válido e seu valor ao parâmetro OPTIONS opcional. Consulte o Seção 17.3.1.3, “Adicionando um dispositivo qeth de forma persistente”.
  3. Defina o parâmetro DEVICE como se segue:
    DEVICE=enccwbus_ID
  4. Emita um comando ifup para ativar o dispostivo:
    # ifup enccwbus_ID
Muda para um arquivo ifcfg se torna efetivo somente após a reinicialização do sistema. Você pode disparar a ativação de um arquivo ifcfg para canais de rede, executando os seguintes comandos:
  1. Use o comando cio_ignore para remover o adaptador do dispositivo LCS da lista dos dispositivos ignorados e torná-los visíveis ao Linux.
    # cio_ignore -r read_device_bus_id,write_device_bus_id
    Substitua read_device_bus_id e write_device_bus_id pelos IDs de barramento de dispositivo do dispositivo LCS. Por exemplo:
    # cio_ignore -r 0.0.09a0,0.0.09a1
  2. Para disparar o evento que ativa a mudança, emita:
    echo add > /sys/bus/ccw/devices/read-channel/uevent
    Por exemplo:
    echo add > /sys/bus/ccw/devices/0.0.09a0/uevent 

17.3.3. Configurando um dispositivo de rede System z para um sistema de arquivos root de rede

Para adicionar um dispositivo de rede que é necessário para acessar o sistema de arquivo do root, você precisa mudar somente as opções de inicialização. As opções do boot podem estar em um arquivo de parâmetro (consulte o Capítulo 18, Arquivos de Parâmetro e Configuração no IBM System z) ou parte de um zipl.conf em um DASD ou FCP-anexado SCSI LUN preparado com o carregador de inciialização do zipl. Não há necessidade de recriar o initramfs.
Dracut, o sucessor do mkinitrd que fornece a funcionalidade no initramfs que por sua vez substitui initrd, fornece um parâmetro de inicialização para ativar os dispositivos de rede em System z no início do processo de inicialização: rd_znet=.
Como entrada, este parâmetro leva uma lista separado por vírgula, do NETTYPE (qeth, lcs, ctc), dois (lcs, ctc) ou três (qeth) IDs de barramento de dispositivo, e parâmetros opcionais adicionais consistindo de pares de valor de chave, correspondendo aos atributos do sysfs do dispositivo de rede. Este parâmetro configura e ativa o hardware de rede do System z. Os endereços de IP da configuração e outras redes específicas funcionam como outras plataformas. Consulte a documentação do dracut para mais detalhes.
Os comandos cio_ignore para canais de rede são manuseados de forma transparente na inicialização.
Exemplo de opções de boot para um sistema de arquivo do root acessado pela rede através do NFS:
root=10.16.105.196:/nfs/nfs_root cio_ignore=all,!condev rd.znet=qeth,0.0.0a00,0.0.0a01,0.0.0a02,layer2=1,portno=0,portname=OSAPORT ip=10.16.105.197:10.16.105.196:10.16.111.254:255.255.248.0:nfs‑server.subdomain.domain:enccw0.0.09a0:none rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=us