Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

17.3. 네트워크 장치 추가하기

네트워크 장치 드라이버 모듈은 udev에 의해 자동으로 적재됩니다.
IBM System z의 네트워크 인터페이스를 동적으로 추가하거나, 영구적으로 추가할 수 있습니다.
  • 동적 추가
    1. 장치 드라이버를 로드하십시오
    2. 네트워크 장치를 무시할 장치 목록에서 제거하십시오.
    3. 그룹 장치를 생성하십시오.
    4. 장치를 설정하십시오.
    5. 장치를 온라인 상태로 설정하십시오.
  • 영구적
    1. 설정 스크립트를 만드십시오.
    2. 장치를 활성화하십시오.
다음 부분에서는 각 IBM System z 네트워크 장치 드라이버의 각 작업에 대한 기본적인 정보에 대해 설명합니다. 17.3.1절. “qeth 장치 추가하기”에서는 기존 Red Hat Enterprise Linux 인스턴스에 qeth 장치를 추가하는 방법을 설명합니다. 17.3.2절. “LCS 장치 추가하기”에서는 기존 Red Hat Enterprise Linux 인스턴스에 lcs 장치를 추가하는 방법을 설명합니다.

17.3.1. qeth 장치 추가하기

qeth 장치 디바이스 드라이버는 System z의 OSA-Express 특성을 QDIO모드, HiperSocket, z/VM 게스트 LAN, z/VM VSWITCH에서 지원합니다.
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_id,write_device_bus_id,data_device_bus_id를 네트워크 장치에 해당하는 3개의 장치 버스 ID로 변경하십시오. 예를 들어, read_device_bus_id0.0.f500, write_device_bus_id0.0.f501, 그리고 data_device_bus_id0.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. 온라인 sysfs 속성에 1을 작성하여 장치를 온라인으로 만듭니다:
    # 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-device와 같은 이름 규칙을 사용합니다. 여기서 device는 이전에 만든 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. ccw 그룹에서 if_name 파일 내용을 반영하도록 DEVICE 구문을 수정하십시오.
  2. IPADDR 구문을 새 인터페이스의 IP 주소를 반영하도록 수정하십시오.
  3. NETMASK 구문을 적절히 수정하십시오.
  4. 새 인터페이스가 부팅시 활성화되기를 바라시면 ONBOOT 옵션값을 yes로 설정하십시오.
  5. SUBCHANNELS 구문이 qeth 장치의 하드웨어 주소와 일치하는지 확인하십시오.
  6. PORTNAME 구문을 변경하거나, 환경에서 불필요하다면 제거하십시오.
  7. OPTIONS 매개변수에 유효한 sysfs 속성 및 값을 추가할 수 있습니다. Red Hat Enterprise Linux 설치 프로그램은 현재 이를 사용하여 레이어 모드 (layer2) 및 qeth 장치에 대한 해당 포트 번호 (portno)를 사용하고 있습니다.
    OSA 장치에 대한 디폴트 qeth 장치 드라이버는 현재 layer 2 모드입니다. layer 3 모드를 디폴트로 하는 것에 의존하는 예전의 ifcfg 설정을 계속 사용하려면, OPTIONS 매개변수에 layer2=0를 추가하십시오.
/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_id,write_device_bus_id,data_device_bus_id 를 네트워크 장치를 나타내는 3가지 장치 버스 ID로 변경하십시오. 예를 들어, read_device_bus_id0.0.0600, write_device_bus_id0.0.0601, 그리고 data_device_bus_id0.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 채널 스테이션(LAN channel station,LCS) 장치 드라이버는 1000Base-T 이더넷을 OSA-Express 2나 OSA-Express 3에서 지원합니다.
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를 네트워크 장치를 표현하는 2개의 장치 버스 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. /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)를 반영하도록 합니다. OPTIONS 옵션 매개 변수에 유효한 lcs sysfs 속성 및 값을 추가할 수 있습니다. 구문은 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장치의 장치 버스 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. System z 네트워크 장치를 네트워크 부트 파일 시스템에 대해 설정하기

root 파일 시스템을 액세스해야 하는 네트워크 장치를 추가하기 위해서, 단지 부트 옵션을 바꾸어야만 합니다. 부트 옵션은 매개변수 파일(18장. IBM System z에서 매개 변수 및 설정 파일 참조)에 있거나, zipl 부트 로더가 들어있는 DASD나 FCP부착 SCSI LUN에 있는 zipl.conf의 일부로 존재할 수 있습니다. initramfs를 다시 생성할 필요가 없습니다.
Dracut(initrd를 대치하는 initramfs 기능을 제공하는 mkinitrd 대치품)는 부팅 과정의 앞부분에서 System z상의 네트워크 장치를 활성화하는 부트 매개변수 rd.znet=를 제공합니다.
입력으로 이 매개변수는 콤마로 분리된 NETTYPE(qeth, lcs, ctc)과 둘(lcs,ctc) 또는 셋(qeth) 장치 버스 ID, 그리고 네트워크 장치 sysfs 특성에 해당하는 추가적인 키-값 쌍으로 구성되어 있습니다. 이러한 매개변수는 System 의 네트워크 하드웨어를 설정하고 활성화합니다. 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