Red Hat Training

A Red Hat training course is available for Red Hat Linux

17.3. 加入網路裝置

網路裝置驅動程式模組會自動地被 udev 載入。
您可手動式或永續性地在 IBM System z 上新增網路介面卡。
  • 動態式
    1. 載入裝置驅動程式
    2. 將網路裝置由忽略裝置清單中移除。
    3. 建立群組裝置:
    4. 設定裝置。
    5. 將裝置設為啟用。
  • 永續性
    1. 建立一個配置 script。
    2. 啟用介面卡。
下列部份提供了各個 IBM System z 網路裝置驅動程式與其任務上的基本資訊。節 17.3.1, “新增一項 qeth 裝置” 描述了如何將 qeth 裝置新增至一個既有的 Red Hat Enterprise Linux 上。節 17.3.2, “新增一個 LCS 裝置” 描述了如何將一個 lcs 裝置新增至既有的 Red Hat Enterprise Linux 上。

17.3.1. 新增一項 qeth 裝置

qeth 網路裝置驅動程式在 QDIO 模式、HiperSockets、z/VM guest LAN,以及 z/VM VSWITCH 中支援 System z OSA-Express 功能。
qeth 裝置的驅動程式會為乙太網路和 Hipersockets 裝置指定相同的介面卡名稱:enccwbus_ID。匯流排 ID 是以頻道的子系統 ID、子頻道集 ID,以及裝置號碼所組成的,例如 enccw0.0.0a00

17.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 (enccw0.0.f500)
  5. 您亦可選用性地在群組裝置啟用前,傳送在該群組裝置上所配置的引數:
    # znetconf -a f500 -o portname=myname
    Scanning for network devices...
    Successfully configured device 0.0.f500 (enccw0.0.f500)
    現在,您可繼續配置 enccw0.0.f500 網路介面卡。
此外,您亦可使用 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
  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
    enccw0.0.f500
    現在,您可繼續配置 enccw0.0.f500 網路介面卡。
    下列來自於 s390utils 套件的指令顯示了您 qeth 裝置最重要的設定:
    # 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. 動態式移除 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 enccw0.0.09a0      online 
    0.0.f500,0.0.f501,0.0.f502 1731/01 GuestLAN QDIO     00 qeth enccw0.0.f500      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 (enccw0.0.f500)
  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 enccw0.0.09a0      online

17.3.1.3. 永續性地新增 qeth 裝置

若要使您的新 qeth 裝置持有永續性,您必須要為您的新介面卡建立配置檔案。網路介面卡配置檔案位於 /etc/sysconfig/network-scripts/ 目錄中。
這些網路配置檔案的命名方式為 ifcfg-裝置,其中的裝置代表位於稍早建立的 qeth 群組裝置中,if_name 檔案裡的值,例如 enccw0.0.09a0。若使用了永續性的裝置配置,cio_ignore 將會被自動處理,並且您無須手動式將裝置由忽略清單中移除。
如果另一個同類型裝置的配置檔案已存在,那麼最簡單的解決方法,就是以一組新的名稱來複製它,並進行編輯:
# cd /etc/sysconfig/network-scripts
# cp ifcfg-enccw0.0.09a0 ifcfg-enccw0.0.0600
若要得知您網路裝置的 ID,請使用 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
如果您未定義相似的裝置,您就必須建立一個新檔案。請使用此 /etc/sysconfig/network-scripts/ifcfg-0.0.09a0 範例來作為範本:
# 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
如下編輯新的 ifcfg-0.0.0600 檔案:
  1. 修改 DEVICE statement,以反映來自於您 ccw群組的 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-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
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 enccw0.0.0600
  5. 檢查介面卡的狀態:
    # 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. 檢查新介面卡的路由資訊:
    # 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. 請使用 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

17.3.2. 新增一個 LCS 裝置

LAN channel station(LCS)裝置驅動程式支援 OSA-Express2 和 OSA-Express 3 功能上的 1000Base-T Ethernet。
LCS 裝置的驅動程式會為 OSA-Express Fast Ethernet 和 Gigabit Ethernet 裝置指定下列介面卡名稱:enccwbus_ID。匯流排 ID 是以頻道的子系統 ID、子頻道集 ID,以及裝置號碼所組成的,例如 enccw0.0.0a00

17.3.2.1. 動態式新增 LCS 裝置

  1. 載入裝置的驅動程式:
    # modprobe lcs
  2. 請使用 cio_ignore 工具程式來將網路頻道由被忽略的裝置清單中移除,並使其能讓 Linux 偵測到:
    # cio_ignore -r read_device_bus_id,write_device_bus_id
    read_device_bus_idwrite_device_bus_id 取代為表示網路裝置的兩組裝置 bus ID。例如:
    # cio_ignore -r 0.0.09a0,0.0.09a1
  3. 建立群組裝置:
    # echo read_device_bus_id,write_device_bus_id > /sys/bus/ccwgroup/drivers/lcs/group
  4. 配置裝置。OSA 卡能為單一 CHPID 提供多達 16 組連接埠。就預設值,LCS 群組裝置會使用第 0 號連接埠。若要採用其它連接埠,請使用類似以下的指令:
    # echo portno > /sys/bus/ccwgroup/drivers/lcs/device_bus_id/portno
    portno 替換為您希望使用的連接埠號。
  5. 將裝置設為啟用:
    # echo 1 > /sys/bus/ccwgroup/drivers/lcs/read_device_bus_id/online
  6. 若要找出被指定的網路名稱為何,請輸入下列指令:
    # 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. 永續性地新增一個 LCS 裝置

當使用永續性裝置配置時,Cio_ignore 指令會自動被處理,並且您無須手動式地將裝置由忽略清單中移除。
若要永續性地新增一個 LCS 裝置,請依照下列步驟進行:
  1. 建立一個配置 script 於 /etc/sysconfig/network-scripts/ 中,並將其命名為類似 ifcfg-device 的名稱,device 代表在先前所建立之 qeth 群組裝置中的 if_name 檔案裡的值,例如 enccw0.0.09a0。此檔案應看似:
    /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. 請修改 PORTNAME 的值,以反應您所希望使用的 LCS 連接埠號(portno)。您可將任何有效的 lcs sysfs 屬性以及它的值附加至選用性的 OPTIONS 參數。欲取得語法上的相關資訊,請參閱〈節 17.3.1.3, “永續性地新增 qeth 裝置”〉。
  3. 請如下設置 DEVICE 參數:
    DEVICE=enccwbus_ID
  4. 輸入 ifup 指令,以啟用裝置:
    # ifup enccwbus_ID
對於 ifcfg 檔案所進行的變更,僅有在重新啟動系統後才會生效。您可藉由執行下列指令來啟用網路頻道的 ifcfg 檔案:
  1. 請使用 cio_ignore 工具程式來將 LCS 由被忽略的裝置清單中移除,並使其能讓 Linux 偵測到:
    # cio_ignore -r read_device_bus_id,write_device_bus_id
    read_device_bus_idwrite_device_bus_id 取代為 LCS 裝置的裝置 bus ID。例如:
    # cio_ignore -r 0.0.09a0,0.0.09a1
  2. 若要啟動將啟用變更的 uevent,請輸入:
    echo add > /sys/bus/ccw/devices/read-channel/uevent
    舉例來說:
    echo add > /sys/bus/ccw/devices/0.0.09a0/uevent 

17.3.3. 為網路 Root 檔案系統配置 System z 網路裝置

若要新增一個存取 root 檔案系統時必要的網路裝置,您只需要更改開機選項即可。開機選項可位於參數檔案中(請參閱 章 18, IBM System z 的參數和配置檔案)或是位於透過 zipl 開機載入程式準備的 DASD 或連接了 FCP 的 SCSI LUN 上的 zipl.conf 中。您無須重新建立 initramfs。
Dracut(繼承了 mkinitrd 並提供 initramfs 功能而取代了 initrd)提供了在 System z 上,開機程序起始時啟用網路裝置的開機參數:rd.znet=
此參數接受以逗號區隔開的一列 NETTYPE(qeth、lcs、ctc)、兩組(lcs、ctc)或三組(qeth)裝置 bus ID,以及選用性的額外參數,這些參數包含了與網路裝置 sysfs 屬性相應的金鑰值配對。此參數可配置和啟用 System z 網路硬體。IP 位址的配置與其它網路特屬工作的運作方式與在其它平台上相同。欲取得更多詳細資訊,請參閱 dracut 的文件。
網路頻道的 cio_ignore 指令會在開機時被自動處理。
透過 NFS 藉由網路存取的 root 檔案系統的開機選項範例:
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