25.3. Добавление сетевого устройства

Модули драйверов сетевых устройств загружаются автоматически с помощью udev.
В IBM System z сетевой интерфейс можно добавить динамически и с сохранением постоянства.
  • Динамически
    1. загрузите драйвер устройства;
    2. удалите интерфейсы из списка игнорируемых устройств;
    3. создайте устройство группы;
    4. настройте устройство;
    5. включите устройство.
  • С сохранением постоянства
    1. создайте сценарий настройки;
    2. активируйте интерфейс.
В следующих далее секциях приведена описываются основные задачи драйверов сетевых устройств в IBM System z, а именно рассматривается добавление устройств qeth (см. Раздел 25.3.1, «Добавление устройства qeth») и lcs (см. Раздел 25.3.2, «Добавление устройства LCS») в установленную систему Red Hat Enterprise Linux. Раздел 25.3.3, «Сопоставление имен сетевых устройств каналам» содержит информацию о сохранении постоянства имен устройств, а Раздел 25.3.4, «Доступ сетевых устройств к корневой файловой системе в сети» включает инструкции по настройке использования сетевых устройств в корневой файловой системе, доступной только по сети.

25.3.1. Добавление устройства qeth

Драйвер qeth поддерживает функции OSA-Express c QDIO в System z, а также HiperSockets, LAN гостей z/VM и VSWITCH в z/VM.
В зависимости от типа добавляемого интерфейса драйвер qeth назначит одно из трех основных имен интерфейса:
  • hsin для устройств HiperSocket;
  • ethn для Ethernet.
n является целым числом, уникальным для каждого устройства, и равно 0 для первого устройства данного типа, 1 — для второго и т.п.

25.3.1.1. Динамическое добавление устройства z/VM

Ниже рассматривается последовательность действий при динамическом добавлении устройств.
  1. Убедитесь, что модули драйверов устройств qeth загружены. Ниже приведен пример списка загруженных модулей:
    # 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
    Если вывод команды lsmod подтверждает, что модули не были загружены, загрузите их с помощью modprobe:
    # modprobe qeth
  2. С помощью команды cio_ignore удалите сетевые каналы из списка игнорируемых устройств и откройте их для Linux:
    # cio_ignore -r ID_шины_устройства_чтения,ID_шины_устройства_записи,ID_шины_устройства_данных
    Замените ID_шины_устройства_чтения, ID_шины_устройства_записи и ID_шины_устройства_данных идентификаторами шины сетевого устройства. Так, например, если ID_шины_устройства_чтения0.0.f500, ID_шины_устройства_записи0.0.f501, а ID_шины_устройства_данных0.0.f502, команда будет выглядеть так:
    # cio_ignore -r 0.0.f500,0.0.f501,0.0.f502
  3. Команда znetconf покажет список предлагаемых конфигураций сетевых устройств:
    # 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. znetconf также используется для выбора конфигурации и активации устройства с новыми настройками:
    # znetconf -a f500
    Scanning for network devices...
    Successfully configured device 0.0.f500 (eth1)
  5. Настроенному устройству можно передать дополнительные параметры:
    # znetconf -a f500 -o portname=myname
    Scanning for network devices...
    Successfully configured device 0.0.f500 (eth1)
    После этого можно продолжить настройку интерфейса eth1.
Активацию устройства также можно осуществить с помощью установки атрибутов sysfs.
  1. Создайте устройство qeth:
    # echo ID_шины_устройства_чтения,ID_шины_устройства_записи,ID_шины_устройства_данных > /sys/bus/ccwgroup/drivers/qeth/group
    Пример:
    # echo 0.0.f500,0.0.f501,0.0.f502 > /sys/bus/ccwgroup/drivers/qeth/group
  2. Убедитесь, что устройство qeth было создано успешно:
    # ls /sys/bus/ccwgroup/drivers/qeth/0.0.f500
    Можно установить дополнительные параметры в зависимости от конфигурации системы и необходимых функций:
    • portno
    • layer2
    • portname
    Подробную информацию можно найти в главе, посвященной qeth, в документе Linux в System z. Драйверы устройств, функции и команды в Red Hat Enterprise Linux 6.
  3. Включите устройство, присвоив соответствующему атрибуту значение 1:
    # echo 1 > /sys/bus/ccwgroup/drivers/qeth/0.0.f500/online
  4. Проверьте состояние устройства:
    # cat /sys/bus/ccwgroup/drivers/qeth/0.0.f500/online
    1
    Значение означает, что устройство подключено, 0 — отключено.
  5. Проверьте, какое имя интерфейса было назначено устройству:
    # cat /sys/bus/ccwgroup/drivers/qeth/0.0.f500/if_name
    eth1
    После этого можно продолжить настройку интерфейса eth1.
    Следующая команда из пакета s390utils вернет наиболее важные настройки устройства qeth:
    # lsqeth eth1
    Device name                     : eth1                
    ---------------------------------------------
            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

25.3.1.2. Динамическое удаление устройства qeth

Для удаления устройства qeth используется утилита znetconf.
  1. Команда просмотра списка настроенных сетевых устройств:
    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 eth0        online 
    0.0.f500,0.0.f501,0.0.f502 1731/01 GuestLAN QDIO     00 qeth eth1        online
  2. Выберите устройство для удаления, отключите его и удалите из группы.
    # 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 (eth1)
  3. Убедитесь, что устройство удалено успешно:
    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 eth0        online

25.3.1.3. Добавление устройства qeth с сохранением постоянства

Для сохранения постоянства потребуется создать файл конфигурации нового интерфейса. Файлы конфигурации сетевых интерфейсов хранятся в /etc/sysconfig/network-scripts/.
Имена файлов следуют формату ifcfg-устройство, где устройство — значение из файла if_name устройства qeth (например, eth1). cio_ignore обрабатывается как обычно, поэтому нет необходимости в отдельном удалении устройства из списка игнорируемых устройств.
Если уже существует файл конфигурации другого устройства того же типа, можно его скопировать и переименовать.
# cd /etc/sysconfig/network-scripts
# cp ifcfg-eth0 ifcfg-eth1
Если подобное устройство отсутствует, необходимо его создать. Используйте пример ifcfg-eth0 в качестве образца.
/etc/sysconfig/network-scripts/ifcfg-eth0
# IBM QETH
DEVICE=eth0
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
Отредактируйте файл ifcfg-eth1:
  1. Измените значение DEVICE в зависимости от содержимого файла if_name группы ccwgroup.
  2. Измените IPADDR в соответствии с IP-адресом нового интерфейса.
  3. Измените NETMASK при необходимости.
  4. Можно настроить активацию интерфейса при загрузке, присвоив ONBOOT значение yes.
  5. Убедитесь, что выражение SUBCHANNELS содержит аппаратные адреса устройства qeth.
  6. При необходимости измените значение PORTNAME.
  7. Параметр OPTIONS может содержать атрибуты sysfs и их значения. С его помощью программа установки Red Hat Enterprise Linux выполняет настройку режима layer2 и номер порта portno для устройств qeth.
    По умолчанию для устройств OSA используется драйвер qeth второго уровня. Если необходимо использовать старые настройки ifcfg, в параметр OPTIONS добавьте выражение layer2=0.
/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
PORTNAME=OSAPORT
OPTIONS='layer2=1 portno=0'
MACADDR=02:00:00:b3:84:ef
TYPE=Ethernet
Изменения в ifcfg вступят в силу после перезагрузки системы или после динамического добавления новых каналов сетевых устройств и соответствующего изменения системных настроек ввода и вывода (то есть при подключении в z/VM). Как вариант, активацию файла ifcfg можно выполнить следующим образом:
  1. С помощью команды cio_ignore удалите сетевые каналы из списка игнорируемых устройств и откройте их для Linux:
    # cio_ignore -r ID_шины_устройства_чтения,ID_шины_устройства_записи,ID_шины_устройства_данных
    Замените ID_шины_устройства_чтения, ID_шины_устройства_записи и ID_шины_устройства_данных идентификаторами шины сетевого устройства. Так, например, если ID_шины_устройства_чтения0.0.0600, ID_шины_устройства_записи0.0.0601, а ID_шины_устройства_данных0.0.0602, команда будет выглядеть так:
    # cio_ignore -r 0.0.0600,0.0.0601,0.0.0602
  2. Разрешите активацию устройства, изменив его атрибут uevent:
    echo add > /sys/bus/ccw/devices/канал_чтения/uevent
    Пример:
    echo add > /sys/bus/ccw/devices/0.0.0600/uevent
  3. Проверьте состояние устройства:
    # lsqeth
  4. Запустите интерфейс:
    # ifup eth1
  5. Проверьте его статус:
    # 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)
  6. Проверьте его маршрутизацию:
    # 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
    10.1.20.0       *               255.255.255.0  U     0      0      0 eth0
    default         10.1.20.1       0.0.0.0        UG    0      0      0 eth0
  7. Выполните команду ping для проверки соединения со шлюзом или другим компьютером в той же подсети:
    # 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. Если информация о маршрутизации была изменена, соответственно обновите файл /etc/sysconfig/network.