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

네트워크 장치 드라이버 모듈은 udev에 의해 자동으로 적재됩니다.
IBM System z의 네트워크 인터페이스를 동적으로 추가하거나, 영구히 추가할 수 있습니다.
  • 동적 추가
    1. 장치 드라이버를 로드하십시오
    2. 네트워크 장치를 무시할 장치 목록에서 제거하십시오.
    3. 그룹 장치를 생성하십시오.
    4. 장치를 설정하십시오.
    5. 장치를 온라인 상태로 설정하십시오.
  • 영구적
    1. 설정 스크립트를 만드십시오.
    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절. “System z 네트워크 장치를 네트워크 부트 파일 시스템에 대해 설정하기”는 어떻게 네트워크를 통해서만 액세스가능한 root 파일 시스템을 사용하는 경우, 네트워크 장치를 활성화하는 방법에 대해 다룹니다.

25.3.1. qeth 장치 추가하기

qeth 장치 디바이스 드라이버는 System z의 OSA-Express 특성을 QDIO모드, HiperSocket, z/VM 게스트 LAN, z/VM VSWITCH에서 지원합니다.
추가된 인터페이스 유형에 알맞게 qeth 드라이버는 다음 중 한가지 기본 인터페이스 이름을 할당합니다:
  • HiperSocket 장치의 경우 hsin
  • Ethernet의 경우 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 명령을 입력 후 모듈이 아직 로딩되지 않았다면, 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 (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. 온라인 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
    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-device와 같은 이름을 사용합니다. 여기서 device는 이전에 만들어진 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 구문에서 ccwgroup의 if_name 파일 내용을 반영하도록 수정하십시오.
  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 설정을 계속 사용하고 싶다면, OPTION 매개변수에 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 파일을 변경하면 시스템을 재부팅한 다음이나, 시스템의 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 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 파일도 적절히 업데이트해야 합니다.