25.3. 加入網路裝置

網路裝置驅動程式模組會自動地被 udev 載入。
您可手動式或永續性地在 IBM System z 上新增網路介面卡。
  • 動態式
    1. 載入裝置驅動程式
    2. 將網路裝置由忽略裝置清單中移除。
    3. 建立群組裝置:
    4. 設定裝置。
    5. 將裝置設為啟用。
  • 永續性
    1. 建立一個配置 script。
    2. 啟用介面卡。
下列部份提供了各個 IBM System z 網路裝置驅動程式與其任務上的基本資訊。節 25.3.1, “新增 qeth 裝置” 描述了如何將 qeth 裝置新增至一個既有的 Red Hat Enterprise Linux 上。節 25.3.2, “新增一個 LCS 裝置” 描述了如何將一個 lcs 裝置新增至既有的 Red Hat Enterprise Linux 上。節 25.3.3, “對映子頻道和網路裝置名稱” 描述了永續性的網路裝置名稱如何運作。節 25.3.4, “為網路 Root 檔案系統配置 System z 網路裝置” 描述了如何配置網路裝置,以便與一個只能透過網路存取的 root 檔案系統搭配使用。

25.3.1. 新增 qeth 裝置

qeth 網路裝置驅動程式在 QDIO 模式、HiperSockets、z/VM guest LAN,以及 z/VM VSWITCH 中支援 System z OSA-Express 功能。
根據要加入的介面卡類型,qeth 驅動程式會指定其中一組基本介面卡名稱:
  • hsin 代表 HiperSockets 裝置
  • ethn 代表乙太網路
其中 n 這個值,是個獨一無二、用來代表裝置的整數。n 如果為 0,代表第一個該類型的裝置,1 則代表第二個裝置,由此類推。

25.3.1.1. 動態式新增 qeth 裝置

若要動態式新增 qeth 裝置,請依照下列步驟進行:
  1. 判斷 qeth 裝置驅動程式模組是否已載入。下列範例顯示了已載入的 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 指令的輸出顯示 qeth 模組尚未被載入,請執行 modprobe 以載入這些模組:
    # modprobe qeth
  2. 請使用 cio_ignore 指令來將網路頻道由被忽略的裝置清單中移除,並使其能讓 Linux 偵測到:
    # cio_ignore -r read_device_bus_id,write_device_bus_id,data_device_bus_id
    read_device_bus_idwrite_device_bus_iddata_device_bus_id 取代為代表網路裝置的三組裝置 bus ID。比方說,若 read_device_bus_id0.0.f500 的話,write_device_bus_id 便是 0.0.f501,並且 data_device_bus_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 read_device_bus_id,write_device_bus_id,data_device_bus_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
    欲取得更多有關於額外參數上的相關資訊,請參閱 Linux on System z Device Drivers, Features, and Commands on Red Hat Enterprise Linux 6 中的 qeth 裝置驅動程式章節。
  3. 藉由將 1 寫至啟用 sysfs 屬性中來啟用裝置:
    # echo 1 > /sys/bus/ccwgroup/drivers/qeth/0.0.f500/online
  4. 並檢查裝置的狀態:
    # cat /sys/bus/ccwgroup/drivers/qeth/0.0.f500/online
    1
    傳回值 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 指令來顯示所有已配置的網路裝置:
    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,以將裝置設為停用,並將 ccw 群組裝置的群組設定解除。
    # 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 裝置

若要使您的新 qeth 裝置持有永續性,您必須要為您的新介面卡建立配置檔案。網路介面卡配置檔案位於 /etc/sysconfig/network-scripts/ 中。
這些網路配置檔案的命名方式為 ifcfg-裝置,其中的裝置代表位於稍早建立的 qeth 群組裝置中,if_name 檔案裡的值。在此範例中為 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 statement,以反映來自於您 ccwgroup 的 if_name 檔案中的內容。
  2. 修改 IPADDR statement,以反映您新介面卡的 IP 位址。
  3. 視需求修改 NETMASK statement。
  4. 如果您希望開機的時候啟動新的介面卡,那麼請確認 ONBOOT 已設為 yes
  5. 請確認 SUBCHANNELS statement 和您 qeth 裝置的硬體位址符合。
  6. 修改 PORTNAME statement,或若是您無須在您的環境中使用它,請將它保留為空白。
  7. 您可將任何有效的 sysfs 屬性和它的值附加至 OPTIONS 參數。Red Hat Enterprise Linux 的安裝程式目前使用此來配置層級模式(layer2)以及 qeth 裝置的相聯連接埠號(portno)。
    OSA 裝置的 qeth 裝置驅動程式預設值現在是 layer 2 模式。若要繼續使用依賴先前 layer 3 模式預設值的舊 ifcfg 定義,請將 layer2=0 新增至 OPTIONS 參數。
/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 檔案的修改只有在重新啟動系統,或是透過更改系統 I/O 配置來動態式新增網路裝置時(比方說,連至 z/VM 上),才會生效。此外,您亦可透過下列指令來為網路頻道啟用先前尚未啟用的 ifcfg 檔案:
  1. 請使用 cio_ignore 指令來將網路頻道由被忽略的裝置清單中移除,並使其能讓 Linux 偵測到:
    # cio_ignore -r read_device_bus_id,write_device_bus_id,data_device_bus_id
    read_device_bus_idwrite_device_bus_iddata_device_bus_id 取代為代表網路裝置的三組裝置 bus ID。比方說,若是 read_device_bus_id0.0.0600write_device_bus_id 便會是 0.0.0601,而 data_device_bus_id 則會是 0.0.0602
    # cio_ignore -r 0.0.0600,0.0.0601,0.0.0602
  2. 若要啟動將啟用變更的 uevent,請輸入:
    echo add > /sys/bus/ccw/devices/read-channel/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 閘道器,或新裝置子網上的另一部主機,以驗證您的變更:
    # 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