F.6. ネットワークデバイスを追加します

ネットワークデバイスの追加の手順が Red Hat Enterprise Linux ではかなり変更されています。これは 2.4 カーネルから 2.6 カーネルへの移行によるものです。

項F.6.1 では qeth デバイスを既存の Red Hat Enterprise Linux のインスタンスに追加する方法について詳細に説明されています。項F.6.2 はその他の zSeries ネットワークインターフェースのインストールに関するクィックリファレンスになります。

F.6.1. qeth デバイスを追加する

まず、qeth デバイスドライバモジュールが読み込まれているかどうか確認します。

# lsmod | grep qeth
qeth                  135240  0
qdio                   45360  2 qeth
ipv6                  303984  13 qeth
ccwgroup               15104  1 qeth

lsmod コマンドの出力がモジュールを読み込んでいないと表示している場合には、modprobe コマンドを実行して読み込む必要があります。

# modprobe qeth

次に、qeth グループデバイスを作成します。

# echo <read_device_bus_id>,<write_device_bus_id>,<data_device_bus_id>
  > /sys/bus/ccwgroup/drivers/qeth/group

このコマンドラインは長いため、記載の都合上、2 行になっています。

次の例では、read_device_bus_id は 0.0.0600 で、write_device_bus_id は 0.0.0601、data_device_bus_id は 0.0.0602 になっています。このデバイスは z/VM 仮想 NIC で、このインターフェースに割り当てられるべき IP アドレスは 192.168.70.69 です。

# echo 0.0.0600,0.0.0601,0.0.0602 > /sys/bus/ccwgroup/drivers/qeth/group

次に、qeth グループデバイスが正しく作成されたか確認します。

# ls /sys/bus/ccwgroup/drivers/qeth
0.0.0600  0.0.09a0  group  notifier_register

オプションでポート名を追加しても構いません。まず、ポート名が必要かどうかを確認する必要があります。

# cat /sys/bus/ccwgroup/drivers/qeth/0.0.0600/portname
no portname required

この応答ではポート名を与える必要がないことを示しています。

ポート名を追加するには、デバイスがオフラインであることを確認してから次のコマンドを実行します。

注記注記
 

ポート名を追加するときはデバイスがオフラインになっていなければなりません。

# echo <portname> > /sys/bus/ccwgroup/drivers/qeth/0.0.0600/portname

次に、デバイスをオンラインに戻します。

# echo 1 /sys/bus/ccwgroup/drivers/qeth/0.0.0600/online

それからデバイスの状態を確認します。

# cat /sys/bus/ccwgroup/drivers/qeth/0.0.0600/online
1

戻り値の「1」はデバイスがオンラインであることを示し、戻り値が '0' はデバイスがオフラインであることを示します。

デバイスに割り当てられたインターフェース名がどうなっているか確認します。

# cat /sys/bus/ccwgroup/drivers/qeth/0.0.0600/if_name
eth1

if_name の値を変更するには、次のコマンドを実行します。

# echo <new_if_name> > /sys/bus/ccwgroup/drivers/qeth/0.0.0600/if_name

必要とされるシステムやその機能を設定する方法によって、オプションで追加のパラメータや機能を設定することができます。

これらの機能がどのように役立つのかについては次を参照してください。http://oss.software.ibm.com/developerworks/opensource/linux390/docu/lx26apr04dd01.pdf (Linux for zSeries and S/390 Device Drivers, Features, and Commands)。

次に、新しいインターフェースの設定ファイルを作成する必要があります。ネットワークインターフェース設定ファイルは /etc/sysconfig/network-scripts/ に格納されています。

ネットワーク設定ファイルは命名規則 ifcfg-<device> を使用し、ここのデバイスは先に作成した qeth グループデバイスにある if_name にその値があります。この例では eth1 になります。

既に定義した同じタイプの別のデバイスの設定ファイルがある場合は、それを新しい名前にコピーするのが一番簡単な方法です。

# cd /etc/sysconfig/network-scripts
# cp ifcfg-eth0 ifcfg-eth1

定義されている同じようなデバイスがない場合は作成しなければなりません。テンプレートとしてこの ifcfg-eth0 の例を使用してください。

/etc/sysconfig/network-scripts/ifcfg-eth0
# IBM QETH
DEVICE=eth0
BOOTPROTO=static
HWADDR=00:06:29:FB:5F:F1
IPADDR=9.12.20.136
NETMASK=255.255.255.0
ONBOOT=yes
NETTYPE=qeth
SUBCHANNELS=0.0.09a0,0.0.09a1,0.0.09a2
TYPE=Ethernet

新しいファイル ifcfg-eth1 を編集します。

ここで HWADDR の行を削除します。

DEVICE の記述が ccwgroup からの if_name の内容を反映するよう修正します。

IPADDR の記述が新しいインターフェースの IP アドレスを反映するよう修正します。

必要に応じて NETMASK の記述を修正します。

新しいインターフェースが起動時にアクティブになるようにする場合は、ONBOOT が yes に設定されていることを確認します。

SUBCHANNELS の記述が qeth デバイスのハードウェアアドレスと合致していることを確認します。

/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
TYPE=Ethernet

qeth デバイスには /etc/modprobe.conf でエイリアスの定義が必要です。このファイルを編集してインターフェースのエイリアスを追加します。

/etc/modprobe.conf
alias eth0 qeth
alias eth1 qeth
options dasd_mod dasd=0.0.0100,0.0.4b19

これで新しいインターフェースを開始することができます。

# ifup eth1

インターフェースのステータスを確認します。

# 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)

ifconfig コマンドの最初の行にある HWaddr フィールドの出力に注意してください。この後ろにある値を ifcfg-eth1 ファイルに追加する必要があります。次のような行をそのファイルに追加します。

HWADDR=02:00:00:00:00:01

これで ifcfg-eth1 は次のようになります。

# IBM QETH
DEVICE=eth1
HWADDR=02:00:00:00:00:01
BOOTPROTO=static
IPADDR=192.168.70.69
NETMASK=255.255.255.0
ONBOOT=yes
NETTYPE=qeth
SUBCHANNELS=0.0.0600,0.0.0601,0.0.0602
TYPE=Ethernet

新しいインターフェースのルーティングを確認します。

# 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
9.12.20.0       *               255.255.255.0  U     0      0      0 eth0
169.254.0.0     *               255.255.0.0    U     0      0      0 eth1
default         pdlrouter-if5.p 0.0.0.0        UG    0      0      0 eth0

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

デフォルトのルート情報が変更している場合、それに応じて /etc/sysconfig/network も更新する必要があります。

F.6.2. ネットワークデバイスの追加に関するクィックリファレンス

zSeries のシステムでネットワークインターフェースを追加するための基本的な作業がいくつかあります。

次のセクションでは各 zSeries ネットワークデバイスドライバの基本的な情報を説明しています。

F.6.2.1. LCS デバイスドライバで作業する

LAN チャンネルステーション (LCS) デバイスドライバは OSA-2 Ethernet/Token Ring、non-QDIO モードでの OSA-Express Fast Ethernet、non-QDIO モードでの OSA-Express High Speed Token Ring に対応しています。z990 の場合、LCS ドライバは non-QDIO モードでの Gigabit Ethernet にも対応しています (1000Base-T を含む)。

追加されるインターフェースのタイプに応じて、LCS ドライバは 2 つのベースインターフェース名のどちらかを割り当てます。OSA-Express Fast Ethernet には eth<n>、Token Ring には Gigabit Ethernet tr<n> です。<n> にはデバイスを固有に識別する整数が入ります。<n> はそのタイプの最初のデバイスなら 0、2 番目なら 1 と続きます。

  • デバイスドライバを読み込みます。

    # modprobe lcs
  • グループデバイスを作成します。

    # echo <read_device_bus_id>,<write_device_bus_id> 
    > /sys/bus/ccwgroup/drivers/lcs/group

    このコマンドラインは長いため、記載の都合上、2 行になっています。

  • デバイスを設定します。

    ISA カードは単一の CHPID に対して 16 ポートまで提供することができます。デフォルトでは、LCS グループデバイスはポート 0 を使用します。別のポートを使うには、次のようなコマンドを発行します。

    # echo <portno> > /sys/bus/ccwgroup/drivers/lcs/<device_bus_id>/portno

    LCS ドライバの設定についての詳細は次を参照してください。

    http://oss.software.ibm.com/developerworks/opensource/linux390/docu/lx26apr04dd01.pdf (Linux for zSeries 及び S/390 デバイスドライバ、機能、コマンド)

  • デバイスをオンラインにセットします。

    # echo 1 /sys/bus/ccwgroup/drivers/lcs/<read_device_bus_id>/online
  • エイリアスを定義します。

    追加されるインターフェースのタイプに応じて、次のいずれかになるような行を /etc/modprobe.conf に追加します。

    eth<n> alias lcs
    tr<n> alias lcs
  • 設定スクリプトを作成します。

    次のいずれかのような名前で /etc/sysconfig/network-scripts/ にファイルを作成します。

    ifcfg-eth<n>
    ifcfg-tr<n>

    そのファイルは次のようになるはずです。

    /etc/sysconfig/network-scripts/ifcfg-eth0
    # IBM LCS
    DEVICE=eth0
    BOOTPROTO=static
    HWADDR=00:06:29:FB:5F:F1
    IPADDR=9.12.20.136
    NETMASK=255.255.255.0
    ONBOOT=yes
    NETTYPE=lcs
    SUBCHANNELS=0.0.09a0,0.0.09a1
    PORTNAME=0
    TYPE=Ethernet

    追加されるインターフェースのタイプに応じて、DEVICE パラメータは次のいずれかにする必要があります。

    DEVICE=eth<n>
    DEVICE=tr<n>
  • デバイスをアクティブにします。

    追加されるインターフェースのタイプに応じて、ifup コマンドを発行します。

    # ifup eth<n>
    # ifup tr<n>

F.6.2.2. QETH デバイスドライバで作業する

QETH ネットワークデバイスドライバは zSeries HiperSockets、OSA-Express Fast Ethernet、Gigabit Ethernet (1000Base-T を含む)、High Speed Token Ring、QDIO での ATM 機能 (Ethernet LAN エミュレーションを実行)に対応しています。

追加されるインターフェースのタイプに応じて、QETH ドライバは 3 つのベースインターフェース名のいずれかを割り当てます。

  • HiperSocket デバイスには hsi<n>

  • OSA-Express Fast Ethernet 及び Gigabit Ethernet には eth<n>

  • Token Ring には tr<n>

<n> の値はデバイスを固有に識別する整数になります。<n> はそのタイプの最初のデバイスなら 0、2 番目なら 1 と続きます。

  • デバイスドライバを読み込みます。

    # modprobe qeth
  • グループデバイスを作成します。

    # echo <read_device_bus_id>,<write_device_bus_id>,<data_device_bus_id>
      > /sys/bus/ccwgroup/drivers/qeth/group

    このコマンドラインは長いため、記載の都合上、2 行になっています。

  • デバイスを設定します。

    QETH ドライバの設定についての詳細は次を参照してください。

    http://oss.software.ibm.com/developerworks/opensource/linux390/docu/lx26apr04dd01.pdf (Linux for zSeries 及び S/390 デバイスドライバ、機能、コマンド)

  • デバイスをオンラインにセットします。

    # echo 1 /sys/bus/ccwgroup/drivers/qeth/<read_device_bus_id>/nline
  • エイリアスを定義します。

    追加されるインターフェースのタイプに応じて、次のいずれかのような行を /etc/modprobe.conf に追加します。

    hsi<n> alias qeth
    eth<n> alias qeth
    tr<n> alias qeth
  • 設定スクリプトを作成します。

    次のいずれかのような名前で /etc/sysconfig/network-scripts/ にファイルを作成します。

    ifcfg-hsi<n> 
    ifcfg-eth<n>
    ifcfg-tr<n>

    このファイルは次のようになるはずです。

    /etc/sysconfig/network-scripts/ifcfg-eth0
    # IBM QETH
    DEVICE=eth0
    BOOTPROTO=static
    HWADDR=00:06:29:FB:5F:F1
    IPADDR=9.12.20.136
    NETMASK=255.255.255.0
    ONBOOT=yes
    NETTYPE=qeth
    SUBCHANNELS=0.0.09a0,0.0.09a1,0.0.09a2
    TYPE=Ethernet

    追加されるインターフェースのタイプに応じて、DEVICE パラメータは次のいずれかのようになります。

    DEVICE=hsi<n>
    DEVICE=eth<n>
    DEVICE=tr<n>
  • デバイスをアクティブにします。

    追加されるインターフェースのタイプに応じて、ifup コマンドを発行します。

    # ifup hsi<n>
    # ifup eth<n>
    # ifup tr<n>

F.6.2.3. CTC デバイスドライバで作業する

チャンネル・ツー・チャンネル (CTC) 接続はメインフレーム間での一般的な高速接続のことです。CTC デバイスドライバは 2 台の Linux for zSeries 及び S/390 のインスタンス間、または 1台の Linux for zSeries 及び S/390 インスタンスと z/OS、OS/390、z/VM、z/VSE などの別のメインフレームのオペレーティングシステムのインスタンス間でのポイント・ツゥー・ポイント TCP/IP や tty 接続を確率するのに使用できます。

CTC ドライバは次のようなベースインターフェース名を割り当てます。

ctc<n>

<n> の値はデバイスを固有に識別する整数になります。<n> はそのタイプの最初のデバイスなら 0、2 番目なら 1 と続きます。

  • デバイスドライバを読み込みます。

    # modprobe ctc
  • グループデバイスを作成します。

    # echo <read_device_bus_id>,<write_device_bus_id> 
    > /sys/bus/ccwgroup/drivers/ctc/group

    このコマンドラインは長いため、記載の都合上、2 行になっています。

  • デバイスを設定します。

    プロトコルを設定します。

    # echo <protocol> /sys/bus/ccwgroup/drivers/ctc/<device_bus_id>/protocol

    <protocol> には 0、1、2、3 のいずれかが入ります。

    0 — このプロトコルは OS/390 または z/OS 以外の複数のピアとの互換性を提供します、例えば VM TCP サービスマシンなど。これがデフォルトです。

    1 — このプロトコルは 複数の Linux ピアに拡張パッケージチェックを提供します。

    2 — このプロトコルは 1 台の Linux ピアとの CTC ベースの tty 接続を提供します。

    3 — このプロトコルは複数の OS/390 または z/OS ピアとの互換性を提供します。

    CTC ドライバの設定についての詳細は次を参照してください。

    http://oss.software.ibm.com/developerworks/opensource/linux390/docu/lx26apr04dd01.pdf (Linux for zSeries 及び S/390 デバイスドライバ、機能、コマンド)

  • デバイスをオンラインにセットします。

    # cho 1 /sys/bus/ccwgroup/drivers/lcs/<read_device_bus_id>/online
  • エイリアスを定義します。

    追加されるインターフェースのタイプに応じて、次のような行を /etc/modprobe.conf に追加します。

    ctc<n> alias ctc
  • 設定スクリプトを作成します。

    次のような名前で /etc/sysconfig/network-scripts/ にファイルを作成します。

    ifcfg-ctc<n>

    このファイルは次のようになるはずです。

    /etc/sysconfig/network-scripts/ifcfg-ctc0
    # IBM CTC
    DEVICE=ctc0
    BOOTPROTO=static
    IPADDR=192.168.70.136
    GATEWAY=172.16.70.136
    NETMASK=255.255.255.255
    ONBOOT=yes
    SUBCHANNELS=0.0.1b00,0.0.1b01
    NETTYPE=ctc
    CTCPROT=0
    TYPE=CTC
  • デバイスをアクティブにします。

    追加されるインターフェースのタイプに応じて、ifup コマンドを発行します。

    # ifup ctc<n>

F.6.2.4. IUCV デバイスドライバで作業する

IUCV (Inter-User Communication Vehicle) は VM 通信機能であり、制御プログラムまたは自身を利用してある VM ゲスト上で実行中のプログラムが別の VM ゲストと通信できるようにします。Linux for zSeries 及び S/390 IUCV デバイスドライバはネットワークデバイスドライバであり、IUCV を使用して別の VM ユーザー ID 上で実行している Linux ゲストに接続、または Linux ゲストを TCP/IP サービスマシンなどの別の VM ゲストに接続します。

IUCV ドライバは次のようなベースインターフェース名を割り当てます。

iucv<n>

<n> の値はデバイスを固有に識別する整数になります。<n> はそのタイプの最初のデバイスなら 0、2 番目なら 1 と続きます。

  • デバイスドライバを読み込みます。

    # modprobe netiucv
  • IUCV デバイスを作成します。

    # echo <peer_id> > /sys/bus/iucv/drivers/netiucv/connection

    <peer_id> の値は接続先の VM ゲストのゲスト ID になります。IUCV デバイスドライバは大文字で ID を解釈します。通常、TCPIP になります。

    これにより次のように sysfs 構造を作成します。

    cat /sys/bus/iucv/drivers/netiucv/netiucv<n>

    <n> の値はデバイスを固有に識別する整数になります。<n> はそのタイプの最初のデバイスなら 0、2 番目なら 1 と続きます。

  • デバイスを設定します。

    必要であれば最大バッファサイズを設定します。

    # echo <value> > /sys/bus/iucv/drivers/netiucv/netiucv<n>/buffer
      

    <value> は設定するバイト数になります。有効範囲外の値を指定すると、そのコマンドは無視されます。

    最大バッファサイズの許容範囲の値は MTU 設定により異なります。<最小 MTU + ヘッダサイズ> から <最大 MTU + ヘッダサイズ> の範囲内でなければなりません。ヘッダスペースは一般的には 4 バイトです。最大バッファサイズのデフォルトは 32768 バイト (32 KB) です。

    IUCV ドライバの設定についての詳細は次を参照してください。

    http://oss.software.ibm.com/developerworks/opensource/linux390/docu/lx26apr04dd01.pdf (Linux for zSeries 及び S/390 デバイスドライバ、機能、コマンド)

  • エイリアスを定義します。

    追加されるインターフェースのタイプに応じて、次のような行を /etc/modprobe.conf に追加します。

    iucv<n> alias netiucv
  • 設定スクリプトを作成します。

    次のような名前で /etc/sysconfig/network-scripts/ にファイルを作成します。

    ifcfg-iucv<n>

    このファイルは次のようになるはずです。

    /etc/sysconfig/network-scripts/ifcfg-iucv0
    # IBM IUCV
    DEVICE=iucv0
    BOOTPROTO=static
    IPADDR=192.168.70.136
    GATEWAY=172.16.70.136
    NETMASK=255.255.255.255
    ONBOOT=yes
    NETTYPE=iucv
    PEERID=TCPIP
    TYPE=IUCV
  • デバイスをアクティブにします。

    追加されるインターフェースのタイプに応じて、次のような ifup コマンドを発行します。

    # ifup iucv<n>