25.3. ネットワークデバイスの追加
ネットワークデバイスドライバーモジュールは udev が自動的に読み込みます。
ネットワークインターフェイスは、IBM System z の動的または永続的に追加できます。
- 動的に追加する方法
- デバイスドライバーを読み込みます。
- 無視するデバイスの一覧からネットワークデバイスを削除します。
- グループデバイスを作成します。
- デバイスを設定します。
- デバイスをオンラインに設定します。
- 永続的に追加する方法
- 設定スクリプトを作成します。
- インターフェイスをアクティベートします。
以下のセクションでは、各 IBM System z ネットワークデバイスドライバーの各タスクの基本情報を提供します。「qeth デバイスの追加」 では、qeth デバイスを Red Hat Enterprise Linux の既存のインスタンスに追加する方法を説明します。「LCS デバイスの追加」 では、lcs デバイスを Red Hat Enterprise Linux の既存のインスタンスに追加する方法を説明します。「サブチャネルとネットワークデバイス名のマッピング」 永続的なネットワークデバイス名の仕組みを記述します。「ネットワークルートファイルシステム用の System z ネットワークデバイスの設定」 では、ネットワークからのみアクセスできる root ファイルシステムで使用するようにネットワークデバイスを設定する方法を説明します。
25.3.1. qeth デバイスの追加
qeth ネットワークデバイスドライバーは、QDIO モード、HiperSockets、z/VM ゲスト LAN、および z/VM VSWITCH で System z OSA-Express 機能をサポートします。
追加するインターフェイスの種類に基づいて、qeth デバイスドライバーはベースインターフェイス名の 1 つを割り当てます。
- HiperSockets デバイスの hsin
- イーサネット機能の場合は ethn
値 n は、デバイスを一意に識別する整数です。n はそのタイプの最初のデバイスの場合は
0
、2 番目のデバイスの場合は 1
です。
25.3.1.1. qeth デバイスの動的な追加
qeth デバイスを動的に追加するには、以下の手順に従います。
- 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
- 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_id が0.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
- 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
- 使用する設定を選択し、znetconf を使用してその設定を適用し、設定したグループデバイスをネットワークデバイスとしてオンラインに設定します。
# znetconf -a f500 Scanning for network devices... Successfully configured device 0.0.f500 (eth1)
- 必要に応じて、オンラインに設定する前に、グループデバイスに設定されている引数を渡すこともできます。
# znetconf -a f500 -o portname=myname Scanning for network devices... Successfully configured device 0.0.f500 (eth1)
これで、ネットワークeth1
インターフェイスの設定を継続できます。
または、sysfs 属性を使用して、以下のようにデバイスをオンラインに設定することもできます。
- 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
- 次に、読み取りチャネルを探して 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 デバイスドライバーの章を参照してください。 - オンライン sysfs 属性に 1 と書き込んでデバイスをオンラインにします。
# echo 1 > /sys/bus/ccwgroup/drivers/qeth/0.0.f500/online
- 次に、デバイスの状態を確認します。
# cat /sys/bus/ccwgroup/drivers/qeth/0.0.f500/online
1
戻り値が1
の場合は、デバイスがオンラインであることを示し、戻り値が0
の場合は、デバイスがオフラインであることを示します。 - デバイスに割り当てられたインターフェイス名を見つけます。
# 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 ツールを使用します。以下に例を示します。
- 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
- 削除するネットワークデバイスを選択し、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)
- 削除の完了を確認します。
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 ファイルを以下のように編集します。
DEVICE
ステートメントを変更し、ccwgroup のif_name
ファイルの内容を反映します。IPADDR
ステートメントを変更し、新しいインターフェイスの IP アドレスを反映させます。- 必要に応じて
NETMASK
ステートメントを変更します。 - 新しいインターフェイスを起動時にアクティブにするには、
ONBOOT
がyes
に設定されていることを確認します。 SUBCHANNELS
ステートメントが qeth デバイスのハードウェアアドレスと一致していることを確認します。PORTNAME
ステートメントを修正するか、または使用環境で不要であれば除外します。- 有効な sysfs 属性とその値を
OPTIONS
パラメーターに追加できます。現在、Red Hat Enterprise Linux インストーラーはこれを使用してレイヤーモード(layer2
)と qeth デバイスの相対ポート番号(portno
)を設定します。OSA デバイス用の qeth デバイスドライバーのデフォルトがレイヤー 2 モードになります。以前のデフォルトであるレイヤー 3 モードに依存する以前の ifcfg 定義を引き続き使用するには、layer2=0 を
OPTION
S パラメーターに追加します。
/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
ファイルのアクティベーションを開始できます。
- 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_id が0.0.0600
の場合は、write_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
- 次に変更をアクティベートする uevent を開始します。
echo add > /sys/bus/ccw/devices/read-channel/uevent
以下に例を示します。echo add > /sys/bus/ccw/devices/0.0.0600/uevent
- ネットワークデバイスのステータスを確認します。
# lsqeth
- ここで新しいインターフェイスを開始します。
# 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)
- 新しいインターフェイスのルーティングを確認します。
# 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
- 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
も更新する必要があります。