コンテンツコンテンツ
管理ガイド
  1. このガイドについて
  2. I サポートと共通タスク
    1. 1 YaSTオンラインアップデート
    2. 2 サポート用システム情報の収集
    3. 3 テキストモードのYaST
    4. 4 Snapperを使用したシステムの回復とスナップショット管理
    5. 5 VNCによるリモートアクセス
    6. 6 コマンドラインツールによるソフトウェアの管理
    7. 7 BashとBashスクリプト
  3. II システム
    1. 8 64ビットシステム環境での32ビットと64ビットのアプリケーション
    2. 9 Linuxシステムのブート
    3. 10 systemdデーモン
    4. 11 journalctl:systemdジャーナルのクエリ
    5. 12 ブートローダGRUB 2
    6. 13 UEFI (Unified Extensible Firmware Interface)
    7. 14 特別なシステム機能
    8. 15 プリンタの運用
    9. 16 udevによる動的カーネルデバイス管理
    10. 17 X Windowシステム
    11. 18 FUSEによるファイルシステムへのアクセス
  4. III サービス
    1. 19 ネットワークの基礎
    2. 20 SLP
    3. 21 NTPによる時刻の同期
    4. 22 ドメインネームシステム
    5. 23 DHCP
    6. 24 NetworkManagerの使用
    7. 25 Samba
    8. 26 NFS共有ファイルシステム
    9. 27 Autofsによるオンデマンドマウント
    10. 28 ファイルの同期
    11. 29 Apache HTTPサーバ
    12. 30 YaSTを使用したFTPサーバの設定
    13. 31 Squidプロキシサーバ
    14. 32 SFCBを使用したWebベースの企業管理
  5. IV モバイルコンピュータ
    1. 33 Linuxでのモバイルコンピューティング
    2. 34 電源管理
  6. V トラブルシューティング
    1. 35 ヘルプとドキュメント
    2. 36 最も頻繁に起こる問題およびその解決方法
  7. A マニュアルの更新
  8. B サンプルネットワーク
  9. C GNU Licenses
ナビゲーション
適用先 SUSE Linux Enterprise Server 12

19 ネットワークの基礎

Linuxには、あらゆるタイプのネットワークストラクチャに統合するために必要なネットワークツールと機能が用意されています。ネットワークカードを使用したネットワークアクセスは、YaSTによって設定できます。手動による環境設定も可能です。この章では、基本的メカニズムと関連のネットワーク設定ファイルのみを解説します。

Linuxおよび他のUnix系オペレーティングシステムは、TCP/IPプロトコルを使用します。これは1つのネットワークプロトコルではなく、さまざまなサービスを提供する複数のネットワークプロトコルのファミリです。TCP/IPを使用して2台のコンピュータ間でデータをやり取りするために、TCP/IPプロトコルファミリを構成する主要なプロトコルに示した各プロトコルが提供されています。TCP/IPによって結合された世界規模のネットワークをインターネットと呼びます。

RFCは、Request for Commentsの略です。RFCは、さまざまなインターネットプロトコルとそれをオペレーティングシステムとそのアプリケーションに実装する手順を定めています。RFC文書ではインターネットプロトコルのセットアップについて説明しています。RFCの詳細については、http://www.ietf.org/rfc.htmlを参照してください。

TCP/IPプロトコルファミリを構成する主要なプロトコル
TCP

TCP(Transmission Control Protocol): 接続指向型の安全なプロトコルです。転送データは、まず、アプリケーションによってデータストリームとして送信され、オペレーティングシステム.によって適切なフォーマットに変換されます。データは、送信当初のデータストリーム形式で、宛先ホストのアプリケーションに着信します。TCPは転送中に損失したデータや順序が正しくないデータがないか、判定します。データの順序が意味を持つ場合は常にTCP/IPが実装されます。

UDP

UDP(User Datagram Protocol): コネクションレスで安全でないプロトコルです。転送されるデータは、アプリケーションで生成されたパケットの形で送信されます。データが受信側に到着する順序は保証されず、データの損失の可能性があります。UDPはレコード指向のアプリケーションに適しています。TCPよりも遅延時間が小さいことが特徴です。

ICMP

ICMP (Internet Control Message Protocol):基本的にはエンドユーザ向けのプロトコルではありませんが、エラーレポートを発行し、TCP/IPデータ転送にかかわるマシンの動作を制御できる特別な制御プロトコルです。またICMPには特別なエコーモードがあります。エコーモードは、pingで使用されています。

IGMP

IGMP (Internet Group Management Protocol): このプロトコルは、IPマルチキャストを実装した場合のマシンの動作を制御します。

に示したように、データのやり取りはさまざまなレイヤで実行されます。図19.1「TCP/IPの簡易階層モデル」実際のネットワークレイヤは、IP (インターネットプロトコル)によって実現される確実性のないデータ転送です。IPの上で動作するTCP (転送制御プロトコル)によって、ある程度の確実性のあるデータ転送が保証されます。IP層の下層には、Ethernetなどのハードウェア依存プロトコルがあります。

TCP/IPの簡易階層モデル
図 19.1 TCP/IPの簡易階層モデル

図では、各レイヤに対応する例を1つまたは2つ示しています。レイヤは抽象化レベルに従って並べられています。最下位レイヤは最もハードウェアに近い部分です。一方、最上位レイヤは、ハードウェアがまったく見えないほぼ完全な抽象化になります。各レイヤにはそれぞれの固有の機能があります。各レイヤ固有の機能は、上記の主要プロトコルの説明を読めば大体わかります。データリンク層と物理層は、Ethernetなどの使用される物理ネットワークを表します。

ほとんどすべてのハードウェアプロトコルは、パケット単位で動作します。転送されるデータは、パケットにまとめられます(一度に全部を送信できません)。TCP/IPパケットの最大サイズは約64KBです。パケットサイズは通常、かなり小さな値になります。これは、ネットワークハードウェアでサポートされているパケットサイズに制限があるからです。Ethernetの最大パケットサイズは、約1500バイトです。Ethernet上に送出されるTCP/IPパケットは、このサイズに制限されます。転送するデータ量が大きくなると、それだけ多くのパケットがオペレーティングシステムによって送信されます。

すべてのレイヤがそれぞれの機能を果たすためには、各レイヤに対応する情報を各データパケットに追加する必要があります。この情報はパケットのヘッダとして追加されます。各レイヤでは、プロトコルヘッダと呼ばれる小さなデータブロックが、作成されたパケットに付加されます。図19.2「TCP/IPイーサネットパケット」に、Ethernetケーブル上に送出されるTCP/IPデータパケットの例を示します。誤り検出のためのチェックサムは、パケットの先頭ではなく最後に付加されます。これによりネットワークハードウェアの処理が簡素化されます。

TCP/IPイーサネットパケット
図 19.2 TCP/IPイーサネットパケット

アプリケーションがデータをネットワーク経由で送信すると、データは各層を通過します。これらの層は、物理層を除き、すべてLinuxカーネルに実装されています。各レイヤは、隣接する下位レイヤに渡せるようにデータを処理します。最下位レイヤは、最終的にデータを送信する責任を負います。データを受信したときには、この手順全体が逆の順序で実行されます。重なり合ったたまねぎの皮のように、各レイヤで伝送データからプロトコルヘッダが除去されていきます。最後に、トランスポートレイヤが、着信側のアプリケーションがデータを利用できるように処理します。この方法では、1つのレイヤが直接やり取りを行うのは隣接する上下のレイヤのみです。データが伝送される物理的なネットワークは、100MBit/sのFDDIかもしれませんし、56Kbit/sのモデム回線かもしれませんが、アプリケーションがその違いを意識することはありません。同様に、物理ネットワークは、パケットの形式さえ正しければよく、伝送されるデータの種類を意識することはありません。

19.1 IPアドレスとルーティング

ここでは、IPv4ネットワークについてのみ説明しています。IPv4の後継バージョンであるIPv6については、19.2項 「IPv6—次世代インターネット」を参照してください。

19.1.1 IPアドレス

インターネット上のすべてのコンピュータは、固有の32ビットアドレスを持っています。この32ビット(4バイト)は、通常、例19.1「IPアドレスの表記」の2行目に示すような形式で表記されます。

例 19.1 IPアドレスの表記
IP Address (binary):  11000000 10101000 00000000 00010100
IP Address (decimal):      192.     168.       0.      20

10進表記では、4つの各バイトが10進数で表記され、ピリオドで区切られます。IPアドレスは、ホストまたはネットワークインタフェースに割り当てられます。使用できるのは1回のみです。このルールには例外もありますが、次の説明には直接関係していません。

IPアドレスにあるピリオドは、階層構造を表しています。1990年代まで、IPアドレスは、各クラスに固定的に分類されていました。しかし、このシステムがあまりに柔軟性に乏しいことがわかったので、今日、そのような分類は行われていません。現在採用されているのは、クラスレスルーティング(CIDR: classless inter domain routing)です。

19.1.2 ネットマスクとルーティング

ネットマスクは、サブネットのアドレス範囲を定義するために用いられます。2台のホストが同じサブネットに存在する場合、相互に直接アクセスできます。同じサブネットにない場合は、サブネットのすべてのトラフィックを処理するゲートウェイのアドレスが必要です。2つのIPアドレスが同じサブネットワークに属しているかどうかを確認するには、両方のアドレスとネットマスクのANDを求めます。結果が同一であれば、両方のIPアドレスは同じローカルネットワークに属しています。相違があれば、それらのIPアドレス、そしてそれらに対応するインタフェースが連絡するには、ゲートウェイを通過する必要があります。

ネットマスクの役割を理解するには、例19.2「IPアドレスとネットマスクの論理積(AND)」を参照してください。ネットマスクは、そのネットワークにいくつのIPアドレスが属しているかを示す、32ビットの値から成っています。1になっているビットは、IPアドレスのうち、特定のネットワークに属することを示すビットに対応します。0になっているビットは、サブネット内での識別に使われるビットに対応します。これは、1になっているビット数が多いほど、サブネットが小さいことを意味します。ネットマスクは常に連続する1のビットから構成されているので、その数だけでネットマスクを指定することができます。例19.2「IPアドレスとネットマスクの論理積(AND)」の、24ビットからなる第1のネットワークは、192.168.0.0/24と書くこともできます。

例 19.2 IPアドレスとネットマスクの論理積(AND)
IP address (192.168.0.20):  11000000 10101000 00000000 00010100
Netmask   (255.255.255.0):  11111111 11111111 11111111 00000000
---------------------------------------------------------------
Result of the link:         11000000 10101000 00000000 00000000
In the decimal system:           192.     168.       0.       0

IP address (213.95.15.200): 11010101 10111111 00001111 11001000
Netmask    (255.255.255.0): 11111111 11111111 11111111 00000000
---------------------------------------------------------------
Result of the link:         11010101 10111111 00001111 00000000
In the decimal system:           213.      95.      15.       0

また、たとえば同じEthernetケーブルに接続しているすべてのマシンは、普通同じサブネットに属し、直接アクセスできます。サブネットがスイッチまたはブリッジで物理的に分割されていても、これらのホストは直接アクセス可能です。

ローカルサブネットの外部のIPアドレスには、ターゲットネットワーク用のゲートウェイが設定されている場合にのみ、連絡できます。最も一般的には、外部からのすべてのトラフィックを扱うゲートウェイを1台だけ設置します。ただし、異なるサブネット用に、複数のゲートウェイを設定することも可能です。

ゲートウェイを設定すると、外部からのすべてのIPパケットは適切なゲートウェイに送信されます。このゲートウェイは、パケットを複数のホストを経由して転送し、それは最終的に宛先ホストに到着します。ただし、途中でTTL (存続期間)に達した場合は破棄されます。

特殊なアドレス
基本ネットワークアドレス

ネットマスクとネットワーク内の任意のアドレスの論理積をとったもの。例19.2「IPアドレスとネットマスクの論理積(AND)」のANDをとった結果を参照。このアドレスは、どのホストにも割り当てることができません。

ブロードキャストアドレス

これは、「このサブネット上のすべてのホストにアクセスする」と言い換えることができます。このアドレスを生成するには、2進数形式のネットマスクを反転させ、基本ネットワークアドレスと論理和をとります。そのため上記の例では、192.168.0.255になります。このアドレスをホストに割り当てることはできません。

ローカルホスト

アドレス127.0.0.1は、各ホストの「ループバックデバイス」に割り当てられます。このアドレスと、IPv4で定義された完全な127.0.0.0/8ループバックネットワークからのすべてのアドレスで、自分のマシンへの接続を設定できます。IPv6では、ループバックアドレスは1つだけです(::1)。

IPアドレスは、世界中で固有でなければならないので、自分勝手にアドレスを選択して使うことはできません。IPベースのプライベートネットワークをセットアップする場合のために、3つのアドレスドメインが用意されています。これらは、外部のインターネットに直接接続することはできません。インターネット上で転送されることがないからです。このようなアドレスドメインは、RFC  1597で、表19.1「プライベートIPアドレスドメイン」に示すとおりに定められています。

表 19.1 プライベートIPアドレスドメイン

ネットワーク/ネットマスク

ドメイン

10.0.0.0/255.0.0.0

10.x.x.x

172.16.0.0/255.240.0.0

172.16.x.x172.31.x.x

192.168.0.0/255.255.0.0

192.168.x.x

19.2 IPv6—次世代インターネット

重要
重要: IBM System z: IPv6のサポート

IPv6は、IBM System zハードウェアのCTCおよびIUCVネットワーク接続ではサポートされていません。

WWW (ワールドワイドウェブ)の出現により、ここ15年間でTCP/IP経由で通信を行うコンピュータの数が増大し、インターネットは爆発的に拡大しました。CERN (http://public.web.cern.ch)のTim Berners-Leeが1990年にWWWを発明して以来、インターネットホストは、数千から約1億まで増加しました。

前述のように、IPv4のアドレスはわずか32ビットで構成されています。しかも、多くのIPアドレスが失われています。というのは、ネットワークの編成方法のせいで、使われないIPアドレスが無駄に割り当てられてしまうからです。サブネットで利用できるアドレスの数は、(2のビット数乗 - 2)で与えられます。たとえば、1つのサブネットでは、2、6、または14個のアドレスが使用可能です。たとえば128台のホストをインターネットに接続するには、256個のIPアドレスを持つサブネットが必要ですが、そのうち2つのIPアドレスは、サブネット自体を構成するのに必要なブロードキャストアドレスと基本ネットワークアドレスになるので、実際に使用できるのは254個だけです。

現在のIPv4プロトコルでは、アドレスの不足を避けるために、DHCPとNAT (ネットワークアドレス変換)の2つのメカニズムが使用されています。これらの方法をパブリックアドレスとプライベートアドレスを分離するという慣習と組み合わせて使用することで、確かにアドレス不足の問題を緩和することができます。問題は、セットアップが面倒で保守しにくいその環境設定方法にあります。IPv4ネットワークでホストをセットアップするには、ホスト自体のIPアドレス、サブネットマスク、ゲートウェイアドレス、そして場合によってはネームサーバアドレスなど、相当数のアドレス項目が必要になります。管理者は、これらをすべて自分で設定しなければなりません。これらのアドレスをどこかから取得することはできません。

IPv6では、アドレス不足と複雑な環境設定方法はもはや過去のものです。ここでは、IPv6がもたらした進歩と恩恵について説明し、古いプロトコルから新しいプロトコルへの移行について述べます。

19.2.1 長所

この新しいプロトコルがもたらした最大かつ最もわかりやすい進歩は、利用可能なアドレス空間の飛躍的な増加です。IPv6アドレスは、従来の32ビットではなく、128ビットで構成されています。これにより、2の128乗、つまり、約3.4×1038個のIPアドレスが得られます。

しかしながら、IPv6アドレスがその先行プロトコルと異なるのはアドレス長だけではありません。IPv6アドレスは内部構造も異なっており、それが属するシステムやネットワークに関してより具体的な情報を有しています。詳細については、19.2.2項 「アドレスのタイプと構造」を参照してください。

以下に、この新しいプロトコルの利点をいくつか紹介します。

自動環境設定機能

IPv6を使用すると、ネットワークがプラグアンドプレイ対応になります。つまり、新しくシステムをセットアップすると、手動で環境設定しなくても、(ローカル)ネットワークに統合されます。新しいホストは自動環境設定メカニズムを使用して、ネイバーディスカバリ (ND)と呼ばれるプロトコルにより、近隣のルータから得られる情報を元に自身のアドレスを生成します。この方法は、管理者の介入が不要なだけでなく、アドレス割り当てを1台のサーバで一元的に管理する必要もありません。これもIPv4より優れている点の1つです。IPv4では、自動アドレス割り当てを行うために、DHCPサーバを実行する必要があります。

それでもルータがスイッチに接続されていれば、ルータは、ネットワークのホストに相互に通信する方法を通知するフラグ付きの通知を定期的に送信します。詳細については、RFC 2462、radvd.conf(5)のマニュアルページ、およびRFC 3315を参照してください。

モバイル性

IPv6を使用すると、複数のアドレスを1つのネットワークインタフェースに同時に割り当てることができます。これにより、ユーザは複数ネットワークに簡単にアクセスできます。このことは、携帯電話会社が提供する国際ローミングサービスにたとえられます。携帯電話を海外に持って行った場合、現地会社のサービス提供エリアに入ると自動的に携帯電話はそのサービスにログインし、同じ番号で普段と同じように電話をかけることができます。

安全な通信

IPv4では、ネットワークセキュリティは追加機能です。IPv6にはIPSecが中核的機能の1つとして含まれているので、システムが安全なトンネル経由で通信でき、インターネット上での部外者による通信傍受を防止します。

後方互換性

現実的に考えて、インターネット全体を一気にIPv4からIPv6に切り替えるのは不可能です。したがって、両方のプロトコルが、インターネット上だけでなく1つのシステム上でも共存できることが不可欠です。これは、一方ではアドレスの互換性によって(IPv4アドレスは容易にIPv6アドレスに変換できます)、他方ではトンネルの使用によって保証されています。参照先 19.2.3項 「IPv4とIPv6の共存」. また、システムはデュアルスタックIPテクニックによって、両方のプロトコルを同時にサポートできるので、2つのプロトコルバージョン間に相互干渉のない、完全に分離された2つのネットワークスタックが作成されます。

マルチキャストによるサービスの詳細なカスタマイズ

IPv4では、いくつかのサービス(SMBなど)が、ローカルネットワークのすべてのホストにパケットをブロードキャストする必要があります。IPv6では、これよりはるかにきめ細かいアプローチが取られ、サーバが「マルチキャスト」という、複数のホストをグループの一部として扱う技術によって、ホストにデータを送信します(これは、すべてのホストにデータを送信する「ブロードキャスト」とも、各ホストに個別に送信する「ユニキャスト」とも異なります)。どのホストを対象グループに含めるかは、個々のアプリケーションによって異なります。事前定義のグループには、たとえば、すべてのネームサーバを対象とするグループ(全ネームサーバマルチキャストグループ)やすべてのルータを対象とするグループ(全ルータマルチキャストグループ)があります。

19.2.2 アドレスのタイプと構造

これまでに述べたように、現在のIPプロトコルには、IPアドレス数が急激に不足し始めているということと、ネットワーク設定とルーティングテーブルの管理がより複雑で煩雑な作業になっているという、2つの重要な問題があります。IPv6では、1つ目の問題を、アドレス空間を128ビットに拡張することによって解決しています。2番目の問題には、階層的なアドレス構造を導入し、ネットワークアドレスを割り当てる高度なテクニックとマルチホーミング (1つのデバイスに複数のアドレスを割り当てることによって、複数のネットワークへのアクセスを可能にします)を組み合わせて対応しています。

IPv6を扱う場合は、次の3種類のアドレスについて知っておくと役に立ちます。

ユニキャスト

このタイプのアドレスは、1つのネットワークインタフェースだけに関連付けられます。このようなアドレスを持つパケットは、1つの宛先にのみ配信されます。したがって、ユニキャストアドレスは、パケットをローカルネットワークまたはインターネット上の個々のホストに転送する場合に使用します。

マルチキャスト

このタイプのアドレスは、ネットワークインタフェースのグループに関連します。このようなアドレスを持つパケットは、そのグループに属するすべての宛先に配信されます。マルチキャストアドレスは、主に、特定のネットワークサービスが、相手を特定のグループに属するホストに絞って通信を行う場合に使用されます。

エニーキャスト

このタイプのアドレスは、インタフェースのグループに関連します。このようなアドレスを持つパケットは、基盤となるルーティングプロトコルの原則に従い、送信側に最も近いグループのメンバに配信されます。エニーキャストアドレスは、特定のネットワーク領域で特定のサービスを提供するサーバについて、ホストが情報を得られるようにするために使用します。同じタイプのすべてのサーバは、エニキャストアドレスが同じになります。ホストがサービスを要求すると、ルーティングプロトコルによって最も近い場所にあるサーバが判断され、そのサーバが応答します。何らかの理由でこのサーバが応答できない場合、プロトコルが自動的に2番目のサーバを選択し、それが失敗した場合は3番目、4番目が選択されます。

IPv6アドレスは、4桁の英数字が入った8つのフィールドで構成され、それぞれのフィールドが16進数表記の16ビットを表します。各フィールドは、コロン(:)で区切られます。各フィールドで先頭の0は省略できますが、数字の間にある0や末尾の0は省略できません。もう1つの規則として、0のバイトが5つ以上連続する場合は、まとめて2つのコロン(::)で表すことができます。ただし、アドレスごとに::は1回しか使用できません。この省略表記の例については、例19.3「IPv6アドレスの例」を参照してください。この3行はすべて同じアドレスを表します。

例 19.3 IPv6アドレスの例
fe80 : 0000 : 0000 : 0000 : 0000 : 10 : 1000 : 1a4
fe80 :    0 :    0 :    0 :    0 : 10 : 1000 : 1a4
fe80 :                           : 10 : 1000 : 1a4

IPv6アドレスの各部の機能は個別に定められています。最初の4バイトはプレフィクスを形成し、アドレスのタイプを指定します。中間部分はアドレスのネットワーク部分ですが、使用しなくてもかまいません。アドレスの最後の4桁はホスト部分です。IPv6でのネットマスクは、アドレスの末尾のスラッシュの後にプレフィクスの長さを指定して定義します。に示すアドレスには、最初の 64ビットがアドレスのネットワーク部分を構成する情報、最後の 64ビットにホスト部分を構成する情報が入っています。例19.4「プレフィクスの長さを指定したIPv6アドレス」言い換えると、64は、ネットマスクに 64個の 1ビット値が左から埋められていることを意味します。IPv4と同様、IPアドレスとネットマスクのANDをとることにより、ホストが同じサブネットにあるかそうでないかを判定します。

例 19.4 プレフィクスの長さを指定したIPv6アドレス
fe80::10:1000:1a4/64

IPv6は、事前に定義された複数タイプのプレフィクスを認識します。に、一部のプレフィクスタイプを示します。IPv6のプレフィクス

IPv6のプレフィクス
00

IPv4アドレスおよびIPv4 over IPv6互換性アドレス。これらは、IPv4との互換性を保つために使用します。これらを使用した場合でも、IPv6パケットをIPv4パケットに変換できるルータが必要です。いくつかの特殊なアドレス(たとえばループバックデバイスのアドレス)もこのプレフィクスを持ちます。

先頭桁が2または3

集約可能なグローバルユニキャストアドレス。IPv4と同様、インタフェースを割り当てて特定のサブネットの一部を構成することができます。現在、2001::/16 (実稼動品質のアドレス空間)と2002::/16 (6to4アドレス空間)の2つのアドレス空間があります。

fe80::/10

リンクローカルアドレス。このプレフィクスを持つアドレスは、ルーティングしてはなりません。したがって、同じサブネット内からのみ到達可能です。

fec0::/10

サイトローカルアドレス。ルーティングはできますが、それが属する組織のネットワーク内に限られます。要するに、IPv6版のプライベートネットワークアドレス空間です(たとえば、10.x.x.x)。

ff

マルチキャストアドレス。

ユニキャストアドレスは、以下の3つの基本構成要素からなります。

パブリックトポロジ

最初の部分(前述のいずれかのプレフィクスが含まれる部分)は、パブリックインターネット内でパケットをルーティングするために使用します。ここには、インターネットアクセスを提供する企業または団体に関する情報が入っています。

サイトトポロジ

2番目の部分には、パケットの配信先のサブネットに関するルーティング情報が入っています。

インタフェースID

3番目の部分は、パケットの配信先のインタフェースを示します。これを使用して、MACをアドレスの一部に含めることができます。MACは、世界中で重複がない固定の識別子であり、ハードウェアメーカによってデバイスにコーディングされるので、環境設定手順が大幅に簡素化されます。実際には、最初の 64アドレスビットが統合されてEUI-64トークンを構成します。このうち、最後の 48ビットにはMACアドレス、残りの 24ビットにはトークンタイプに関する特別な情報が入ります。これにより、PPPのインタフェースのようにMACを持たないインタフェースにEUI-64トークンを割り当てられるようになります。

IPv6は、この基本構造の上で、以下の5種類のユニキャストアドレスを区別します。

:: (未指定)

このアドレスは、インタフェースが初めて初期化されるとき、すなわち、アドレスが他の方法で判定できないときに、ホストがそのソースアドレスとして使用します。

::1 (ループバック)

ループバックデバイスのアドレス。

IPv4互換アドレス

IPv6アドレスが、IPv4アドレスおよび96個の0ビットからなるプレフィクスで作成されます。このタイプの互換アドレスは、IPv4とIPv6のホストが、純粋なIPv4環境で動作している他のホストと通信するためのトンネリング(19.2.3項 「IPv4とIPv6の共存」を参照)として使用されます。

IPv6にマッピングされたIPv4アドレス

このタイプのアドレスは、IPv6表記で純粋なIPv4アドレスを指定します。

ローカルアドレス

ローカルで使用するアドレスのタイプには、以下の2種類があります。

リンクローカル

このタイプのアドレスは、ローカルのサブネットでのみ使用できます。このタイプのソースまたは宛先アドレスを持つパケットをインターネットまたは他のサブネットにルーティングしてはなりません。これらのアドレスは、特別なプレフィクス(fe80::/10)とネットワークカードのインタフェースID、およびゼロバイトからなる中間部分からなります。このタイプのアドレスは、自動環境設定のとき、同じサブネットに属する他のホストと通信するために使用されます。

サイトローカル

このタイプのアドレスを持つパケットは、他のサブネットにはルーティングできますが、それより広いインターネットにはルーティングしてはなりません。つまり、組織自体のネットワークの内側だけで使用するように制限する必要があります。このようなアドレスはイントラネット用に使用され、IPv4によって定義されているプライベートアドレス空間に相当します。これらのアドレスは、特殊なプレフィクス(fec0::/10)とインタフェースID、およびサブネットIDを指定する16ビットのフィールドからなります。ここでも、残りはゼロバイトで埋められます。

IPv6では、各ネットワークインタフェースが複数のIPアドレスを持つことができるというたまったく新しい機能が導入されました。これにより、同じインタフェースで複数のネットワークにアクセスできます。これらのネットワークは、MACと既知のプレフィクスを使用して完全に自動設定できるので、IPv6を有効にすると すぐに、(リンクローカルアドレスを使用して)ローカルネットワーク上のすべてのホストに接続できるようになります。IPアドレスにMACが組み込まれているので、使用されるIPアドレスは世界中で唯一のアドレスになります。アドレスの唯一の可変部分は、ホストが現在動作している実際のネットワークによって、サイトトポロジパブリックトポロジを指定する部分になります。

複数のネットワークに接続するホストの場合、少なくとも2つのアドレスが必要です。1つはホームアドレスです。ホームアドレスには、インタフェースIDだけでなく、それが通常属するホームネットワークの識別子(および対応するプレフィクス)も含まれています。ホームアドレスは静的アドレスなので、通常は変更されません。しかし、モバイルホスト宛てのパケットは、それがホームネットワーク内にあるかどうかにかかわらず、すべてそのホストに配信できます。これは、IPv6で導入されたステートレス自動環境設定ネイバーディスカバリのようなまったく新しい機能によって実現されました。モバイルホストは、ホームアドレスに加え、ローミング先の外部ネットワークに属するアドレスも取得します。これらはケアオブアドレスと呼ばれます。ホームネットワークには、ホストが対象エリア外をローミングしている間、そのホスト宛てのすべてのパケットを転送する機能があります。IPv6環境において、このタスクは、ホームエージェントによって実行されます。ホームエージェントは、ホームアドレスに届くすべてのパケットを取得してトンネルに リレーします。一方、ケアオブアドレスに届いたパケットは、特別迂回することなく、直接モバイルホストに転送されます。

19.2.3 IPv4とIPv6の共存

インターネットに接続されている全ホストをIPv4からIPv6に移行する作業は、段階的に行われます。両方のプロトコルは今後しばらく共存することになります。両方のプロトコルをデュアルスタックで実装すれば、同じシステム上に共存することが保証されます。しかし、それでもなお、IPv6対応のホストがどのようにしてIPv4ホストと通信するか、また多くがIPv4ベースの現行ネットワークでIPv6パケットをどのように伝送するかなど、解決すべき問題が残ります。最善のソリューションは、トンネリングと互換アドレスです(19.2.2項 「アドレスのタイプと構造」を参照)。

ワールドワイドなIPv4ネットワークと隔離されているIPv6ホストは、トンネルを使って通信を行うことができます。IPv6パケットをIPv4パケットにカプセル化すれば、それをIPv4ネットワークに送ることができます。2つのIPv4ホスト間のこのような接続をトンネルと呼びます。これを行うには、パケットにIPv6の宛先アドレス(または対応するプレフィクス)とともに、トンネルの受信側にあるリモートホストのIPv4アドレスも含める必要があります。基本的なトンネルは、ホストの管理者間が合意すれば、手動で設定が可能です。これは、静的トンネリングとも呼ばれます。

ただし、静的トンネルの環境設定とメンテナンスは、あまりに手間がかかるので、多くの場合、日常の通信には向きません。そこで、IPv6は、動的トンネリングを実現する3つの異なる方法を提供しています。

6over4

IPv6パケットが自動的にIPv4パケットとしてカプセル化され、マルチキャスト対応のIPv4ネットワークによって送信されます。IPv6は、ネットワーク全体(インターネット)を巨大なLAN (local area network)だと思い込んで動作することになります。これにより、IPv4トンネルの着信側の端を自動的に判定できます。ただし、この方法は拡張性に欠けているだけではなく、IPマルチキャストがインターネット上で広く普及しているとはいえないという事実も障害となります。したがってこの解決方法を採用できるのは、マルチキャストが利用できる小規模な企業内ネットワークだけです。この方式の仕様は、RFC 2529に規定されています。

6to4

この方式では、IPv6アドレスからIPv4アドレスを自動的に生成することで、隔離されたIPv6ホストがIPv4ネットワーク経由で通信できるようにします。しかし、隔離されたIPv6ホストとインターネットの間の通信に関して、多くの問題が報告されています。この方式は、RFC 3056で規定されています。

IPv6トンネルブローカ

この方式は、IPv6ホスト専用のトンネルを提供する特殊なサーバに依存します。この方式は、RFC 3053で規定されています。

19.2.4 IPv6の設定

IPv6を設定するには、通常、個々のワークステーションの設定を変更する必要はありません。IPv6は、デフォルトで有効になっています。インストール済みシステムでIPv6を有効または無効にするには、YaSTのネットワーク設定モジュールを使用します。グローバルオプションタブで、必要に応じてIPv6を有効にするオプションをオン/オフします。次回の再起動時まで一時的に有効にするには、rootとして、「modprobe -i ipv6」と入力します。IPv6モジュールはロード後にアンロードすることはできません。

IPv6の自動環境設定の概念があるため、ネットワークカードには、リンクローカルネットワーク内のアドレスが割り当てられます。通常、ワークステーション上ではルーティングテーブルの管理を実行しません。ワークステーションは、ルータアドバタイズプロトコルを使用して、実装する必要のあるプレフィクスとゲートウェイをネットワークルータに問い合わせます。IPv6ルータは、radvdプログラムを使用して設定できます。このプログラムは、IPv6アドレスに使用するプレフィクスとルータをワークステーションに通知します。または、zebra/quaggaを使用してアドレスとルーティングの両方を自動設定することもできます。

/etc/sysconfig/networkファイルを使用してさまざまなタイプのトンネルをセットアップする方法の詳細については、ifcfg-tunnelのマニュアルページ(man ifcfg-tunnel)を参照してください。

19.2.5 詳細情報

ここでの概要は、IPv6に関する情報を網羅しているわけではありません。IPv6の詳細については、次のオンラインドキュメントや書籍を参照してください。

http://www.ipv6.org/

IPv6のあらゆる情報にここからリンクできます。

http://www.ipv6day.org

独自のIPv6ネットワークを開始するには、すべての情報が必要です。

http://www.ipv6-to-standard.org/

IPv6対応製品のリスト。

http://www.bieringer.de/linux/IPv6/

Linux IPv6-HOWTOと多くの関連トピックへのリンクが用意されています。

RFC2640

IPv6に関する基本的なRFCです。

IPv6 Essentials

Silvia HagenによるIPv6 Essentials (ISBN 0-596-00125-8)は、このトピックに関するあらゆる重要な面を扱っている本です。

19.3 ネームレゾリューション

DNSはIPアドレスに1つまたは複数のホスト名を割り当てるとともに、ホスト名をIPアドレスに割り当てます。Linuxでは、この変換は通常、bindという特別な種類のソフトウェアによって行われます。また、この変換を行うマシンをネームサーバと呼びます。ホスト名は、その名前構成要素がピリオド(.)で区切られた階層システムを構成しています。しかしながら名前の階層構造は、先に述べたIPアドレスの階層構造とは無関係です。

hostname.domainという形式で書かれた完全な名前、たとえば、jupiter.example.comを考えてみましょう。「完全修飾ドメイン名」 (FQDN: Fully Qualified Domain Name)と呼ばれるフルネームは、ホスト名とドメイン名(example.com)で構成されます。ドメイン名には最上位ドメイン(TLD) (com)が含まれます。

TLDの割り当ては、これまでの経緯もあって、非常に複雑になっています。従来から、米国では、3文字のドメイン名が使用されています。他の国では、ISOで制定された2文字の国コードが標準です。これに加えて、2000年には、特定の活動領域を表す、より長いTLDが導入されました(たとえば、.info.name.museum)。

インターネットの初期( 1990年より前)には、ファイル/etc/hostsに、インターネットで利用されるすべてのマシン名を記述していました。しかし、インターネットに接続されるコンピュータ数の急激な増加により、この方法はすぐに現実的でなくなりました。このため、ホスト名を広く分散して保存するための分散データベースが開発されました。このデータベースは、ネームサーバと同様、インターネット上のすべてのホストに関するデータがいつでも用意されているわけではなく、他のネームサーバに問い合わせを行います。

この階層の最上位には、複数のルートネームサーバがあります。ルートネームサーバは、Network Information Center (NIC)によって運用されており、最上位レベルドメインを管理します。各ルートネームサーバは、特定の最上位ドメインを管理するネームサーバについての情報を持っています。最上位ドメインNICの詳細については、http://www.internic.netを参照してください。

DNSには、ホスト名の解決以外の機能もあります。ネームサーバは、特定のドメイン宛の電子メールをどのホストに転送するかも管理しています(「メールエクスチェンジャ(MX)」)。

マシンがIPアドレスを解決するには、少なくとも1台のネームサーバとそのIPアドレスを知っている必要があります。YaSTを使用すれば、このようなネームサーバを簡単に指定できます。モデムを使ったダイアルアップ接続の場合は、ネームサーバを手動で設定する必要はありません。接続が設定されるときに、ダイアルアッププロトコルによってネームサーバのアドレスが提供されるからです。SUSE Linux Enterprise Serverでのネームサーバアクセスの設定については、19.4.1.4項 「ホスト名とDNSの設定」に記載されています。独自のネームサーバの設定については、第22章 ドメインネームシステムに説明があります。

whoisプロトコルは、DNSと密接な関係があります。このプログラムを使用すると、特定のドメインの登録者名をすぐに検索できます。

注記
注記: MDNSおよび.localドメイン名

.localトップレベルドメインは、リゾルバではリンクローカルドメインとして処理されます。DNS要求は通常のDNS要求ではなく、マルチキャスト要求として送信されます。ネームサーバ設定で.localドメインをすでに使用している場合は、このオプションを/etc/host.confでオフに変更する必要があります。詳細については、host.confのマニュアルページを参照してください。

インストール中にMDNSをオフにするには、nomdns=1をブートパラメータとして使用してください。

マルチキャストDNSの詳細は、http://www.multicastdns.orgを参照してください。

19.4 YaSTによるネットワーク接続の設定

Linuxでは多くのタイプのネットワーク接続がサポートされています。その多くは、異なるデバイス名と、ファイルシステム内の複数の場所に分散した設定ファイルを使用しています。手動によるネットワーク設定のさまざまな面についての詳細は、19.5項 「ネットワークの手動環境設定」を参照してください。

ネットワークケーブルと接続され、リンクアップしているネットワークインタフェースはすべて自動的に設定されます。インストール済みのシステムには、いつでも付加的なハードウェアを設定することができます。以降のセクションでは、SUSE Linux Enterprise Serverがサポートするすべてのタイプのネットワーク接続について、その設定方法を説明します。

ヒント
ヒント: IBM System z: ホットプラグ対応ネットワークカード

IBM System zプラットフォームでは、ホットプラグ可能なネットワークカードがサポートされていますが、DHCPを介したネットワークの自動統合は(PCの場合とは異なり)サポートされていません。検出後はインタフェースを手動で設定してください。

19.4.1 YaSTでのネットワークカードの設定

YaSTでEthernetカードまたはWi-Fi/Bluetoothカードを設定するには、ネットワークデバイス › ネットワーク設定の順に選択します。モジュールの開始後に、YaSTはネットワーク設定ダイアログを表示します。ダイアログにはグローバルオプション概要ホスト名/DNS、およびルーティングの4つのタブがあります。

グローバルオプションタブでは、ネットワークのセットアップ方法、IPv6、一般的なDHCPオプションの使用など、一般的なネットワークオプションを設定できます。詳細については、19.4.1.1項 「グローバルネットワークオプションの設定」を参照してください。

概要タブには、インストールされたネットワークインタフェースと環境設定に関する情報が含まれています。正しく検出されたネットワークカードの名前が表示されます。このダイアログでは、手動で新しいカードを設定し、それらの設定内容を削除または変更できます。自動検出されなかったカードを手動で設定する場合は、19.4.1.3項 「検出されないネットワークカードの設定」を参照してください。すでに設定済みのカードの設定を変更する場合については、19.4.1.2項 「ネットワークカードの設定の変更」を参照してください。

ホスト名/DNSタブでは、マシンのホスト名を設定し、使用サーバに名前を付けることができます。詳細については、19.4.1.4項 「ホスト名とDNSの設定」を参照してください。

ルーティングタブは、ルーティングの設定で使用します。詳細については、19.4.1.5項 「ルーティングの設定」を参照してください。

ネットワーク設定の実行
図 19.3 ネットワーク設定の実行

19.4.1.1 グローバルネットワークオプションの設定

YaSTのネットワーク設定モジュールのグローバルオプションタブを使用して、NetworkManager、IPv6およびDHCPのクライアントオプションの使用など、重要なグローバルネットワークオプションを設定できます。この設定は、すべてのネットワークインタフェースに適用されます。

注記
注記: Workstation ExtensionでのNetworkManagerの提供

NetworkManagerはWorkstation Extensionで提供されるようになりました。NetworkManagerをインストールするには、Workstation Extensionソフトウェアアドオンを有効にして、NetworkManagerパッケージを選択します。

ネットワークのセットアップ方法では、ネットワーク接続を管理する方法を選択します。NetworkManagerデスクトップアプレットですべてのインタフェースの接続を管理する場合は、NetworkManagerサービスを選択します。NetworkManagerは、複数の有線ネットワークおよび無線ネットワーク間の切り替えに適しています。デスクトップ環境を実行しない場合、またはコンピュータがXenサーバ(仮想システム)であるか、ネットワーク内でDHCPやDNSなどのネットワークサービスを提供する場合は、Wickedサービスの方法を使用します。NetworkManagerを使用する場合は、nm-appletを使用して、ネットワークオプションを設定する必要があります。ネットワーク設定モジュールのタブである概要ホスト名/DNS、およびルーティングは無効になります。NetworkManagerの詳細については、SUSE Linux Enterprise Desktopのマニュアルを参照してください。

IPv6プロトコル設定で、IPv6プロトコルを使用するかどうかを選択します。IPv4とともにIPv6を使用できます。デフォルトでは、IPv6は有効です。ただし、IPv6プロトコルを使用しないネットワークでは、IPv6プロトコルを無効にした方が応答時間がより短くなる場合があります。IPv6を無効にするには、IPv6を有効にするを無効にします。IPv6が無効な場合、カーネルはIPv6モジュールを自動的にロードしません。この設定は、再起動後に適用されます。

DHCPクライアントオプションでは、DHCPクライアントのオプションを設定します。DHCPクライアントIDは、単一ネットワーク上の各DHCPクライアントで異なる必要があります。空白のままにした場合は、デフォルトでネットワークインタフェースのハードウェアアドレスになります。ただし、同じネットワークインタフェース、したがって同じハードウェアアドレスを使用して複数の仮想マシンを実行している場合は、ここで自由形式の固有識別子を指定します。

送信するホスト名では、DHCPクライアントがDHCPサーバにメッセージを送信するときに、ホスト名オプションフィールドで使用される文字列を指定します。一部のDHCPサーバでは、このホスト名(ダイナミックDNS)に応じて、ネームサーバゾーン(順レコードおよび逆レコード)を更新します。また一部のDHCPサーバでは、クライアントからのDHCPメッセージで、送信するホスト名オプションフィールドに特定の文字列が含まれていることが必要です。現在のホスト名(/etc/HOSTNAMEで定義されたホスト名)を送信する場合は、[自動]のままにします。ホスト名を送信しない場合は、このオプションフィールドを空のままにします。

DHCPからの情報に従ったデフォルトのルートを変更しない場合は、DHCPで既定のルートを変更するをオフにします。

19.4.1.2 ネットワークカードの設定の変更

ネットワークカードの設定を変更するには、YaSTのネットワーク設定 › 概要で検出されたカードのリストから目的のカードを選択し、編集をクリックします。ネットワークカードの設定ダイアログが表示されます。このダイアログの一般アドレス、およびハードウェアタブを使用してカードの設定を変更します。

19.4.1.2.1 IPアドレスの設定

Network Card Setupダイアログのアドレスタブで、ネットワークカードのIPアドレス、またはそのIPアドレスの決定方法を設定できます。IPv4およびIPv6の両アドレスがサポートされます。ネットワークカードは、IPアドレスなし(ボンドデバイスで有用)の場合や、静的に割り当てられたIPアドレス(IPv4またはIPv6)、あるいはDHCPまたはZeroconfのいずれかまたは両方を経由して割り当てられる動的アドレスを持つ場合もあります。

Dynamic Addressを使用する場合は、DHCP Version 4 Only(IPv4の場合)、DHCP Version 6 Only(IPv6の場合)、またはDHCP Both Version 4 and 6のいずれを使用するかを選択します。

可能であれば、インストール時に利用可能なリンクを持つ最初のネットワークカードがDHCPによる自動アドレス設定を使用するように自動的に設定されます。

注記
注記: IBM System zとDHCP

IBM System zプラットフォームでは、DHCPベースのアドレス設定はMACアドレスを持つネットワークカードの場合にのみサポートされます。これに該当するのは、OSAカードおよびOSA Expressカードだけです。

DSL回線を使用していてISP(Internet Service Provider)からスタティックIPが割り当てられていない場合も、DHCPを使用する必要があります。DHCPを使用することを選択する場合は、YaSTネットワークカード設定モジュールのネットワーク設定ダイアログにあるグローバルオプションタブのDHCPクライアントオプションで詳細を設定します。さまざまなホストが同じインタフェースを介して通信するようにバーチャルホストがセットアップされている場合は、各ホストの識別にDHCPクライアントIDが必要になります。

DHCPは、クライアント設定には適していますが、サーバ設定には適していません。静的なIPアドレスを設定するには、以下の手順に従ってください。

  1. YaSTネットワークカード設定モジュールの概要タブの検出されたカードのリストから目的のカードを選択し、編集をクリックします。

  2. アドレスタブで、Statically Assigned IP Addressを選択します。

  3. IPアドレスを入力します。IPv4およびIPv6の両アドレスを使用できます。サブネットマスクにネットワークマスクを入力します。IPv6アドレスが使用されている場合は、フォーマット/64のプレフィックス長に対するサブネットマスクを使用します。

    オプションで、このアドレスの完全修飾ホスト名を入力できます。このホスト名は、/etc/hosts設定ファイルに書き込まれます。

  4. 次へをクリックします。

  5. 環境設定を有効にするには、OKをクリックします。

静的アドレスを使用する場合、ネームサーバとデフォルトゲートウェイは、自動的には設定されません。ネームサーバを設定するには、19.4.1.4項 「ホスト名とDNSの設定」に従って手順を進めます。ゲートウェイを設定するには、19.4.1.5項 「ルーティングの設定」に従って手順を進めます。

19.4.1.2.2 複数のアドレスの設定

1台のネットワークデバイスに、複数のIPアドレスを割り当てることができます。

注記
注記: エイリアスは互換機能

これらのエイリアスまたはラベルはそれぞれIPv4でのみ動作し、IPv6では、無視されます。iproute2ネットワークインタフェースを使用する場合、1つ以上のアドレスを持つことができます。

YaSTを使用してネットワークカードに追加のアドレスを設定するには、次の手順に従います。

  1. YaSTのネットワーク設定モジュールの概要タブの検出されたカードのリストから目的のカードを選択し、編集をクリックします。

  2. アドレス › 追加アドレスタブで、追加をクリックします。

  3. IPアドレスラベルIPアドレス、およびネットマスクに適切な値を入力します。エイリアス名にはインタフェース名を含めないでください。

  4. 設定内容を有効にするために、設定を確認します。

19.4.1.2.3 デバイス名およびUdevルールの変更

ネットワークカードのデバイス名が使用されている場合、ネットワークカードのデバイス名を変更できます。また、ハードウェア(MAC)アドレスまたはバスIDを介してudevによりネットワークカードを識別するかどうかを選択できます。大型のサーバでは、カードのホットスワッピングを容易にするために後者のオプションが適しています。YaSTを使ってこうしたオプションを設定するには、次の手順に従います。

  1. YaSTのネットワーク設定モジュールの概要タブの検出されたカードのリストから目的のカードを選択し、編集をクリックします。

  2. ハードウェアタブを開きます。現在のデバイス名がUdevルールに表示されます。変更をクリックします。

  3. udevでMACアドレスまたはバスIDによりカードを識別するかどうかを選択します。カードの現在のMACアドレスおよびバスIDがダイアログに表示されます。

  4. デバイス名を変更するには、Change Device Nameオプションをオンにし、名前を編集します。

  5. 設定内容を有効にするために、設定を確認します。

19.4.1.2.4 ネットワークカードカーネルドライバの変更

一部のネットワークカードには、複数のカーネルドライバを使用できます。カードがすでに設定されている場合は、YaSTで利用可能で適切なドライバのリストから、使用するカーネルドライバを選択できます。また、カーネルドライバのオプションを指定することもできます。YaSTを使ってこうしたオプションを設定するには、次の手順に従います。

  1. YaSTのネットワーク設定モジュールの概要タブの検出されたカードのリストから目的のカードを選択し、編集をクリックします。

  2. ハードウェアタブを開きます。

  3. モジュール名で、使用するカーネルドライバを選択します。選択したドライバのオプションを、オプションに「option=value」の形式で入力します。他にもオプションを使用する場合は、スペースで区切る必要があります。

  4. 設定内容を有効にするために、設定を確認します。

19.4.1.2.5 ネットワークデバイスの有効化

wickedを使った方法を使用している場合、デバイスをブート時、ケーブル接続時、カード検出時、または手動で起動するように設定したり、起動しないように設定したりすることができます。デバイスの起動方法を変更するには、次の手順に従います。

  1. YaSTで、ネットワークデバイス › ネットワーク設定で検出されたカードの一覧からカードを選択し、編集をクリックします。

  2. 一般タブのデバイスの起動から、適切な項目を選択します。

    システムブート中にデバイスを起動するには、ブート時を選択します。ケーブル接続時では、インタフェースで物理接続が存在するかどうかが監視されます。ホットプラグ時では、インタフェースは可能な限り早急に設定されます。これは、ブート時オプションに似ていますが、インタフェースがブート時に存在しない場合にエラーが発生しない点のみが異なります。ifupでインタフェースを手動で制御する場合は、[手動]を選択します。デバイスを全く起動しない場合は、起動しないを選択します。NFSrootオンブート時に似ていますが、インタフェースはsystemctl stop wicked.serviceコマンドではシャットダウンしません。このオプションは、NFSまたはiSCSIのルートファイルシステムを使用する場合に選択します。

  3. 設定内容を有効にするために、設定を確認します。

19.4.1.2.6 最大転送単位サイズの設定

インタフェースの最大転送単位(MTU)を設定できます。MTUでは、最大許容パケットサイズ(バイト)を参照します。MTUが大きいと、帯域幅の効率が高くなります。ただし、パケットが大きくなると、低速なインタフェースの処理がしばらく阻止され、以降のパケットの遅延が増加する場合があります。

  1. YaSTで、ネットワークデバイス › ネットワーク設定で検出されたカードの一覧からカードを選択し、編集をクリックします。

  2. 一般タブのMTUを設定リストから、適切な項目を選択します。

  3. 設定内容を有効にするために、設定を確認します。

19.4.1.2.7 IPoIB (IP-over-InfiniBand)用のインフィニバンドの設定
  1. YaSTで、ネットワークデバイス › ネットワーク設定でインフィニバンドデバイスを選択し、編集をクリックします。

  2. 一般タブのIP-over-InfiniBand(IPoIB)モードで接続済み(デフォルト)またはデータグラムを選択します。

  3. 設定内容を有効にするために、設定を確認します。

インフィニバンドの詳細については、/usr/src/linux/Documentation/infiniband/ipoib.txtを参照してください。

19.4.1.2.8 ファイアウォールの設定

Section “Configuring the Firewall with YaST”, Chapter 15, Masquerading and Firewalls, Security Guideで説明しているような詳細なファイアウォール設定を行わずに、デバイスに基本的なファイアウォールを設定することができます。次の手順に従います。

  1. YaSTのネットワークデバイス › ネットワーク設定モジュールを開きます。概要タブで、検出されたカードの一覧からカードを選択し、編集をクリックします。

  2. ネットワーク設定ダイアログの一般タブを表示します。

  3. インタフェースを割り当てるファイアウォールゾーンを指定します。次のオプションを指定できます。

    Firewall Disabled

    このオプションは、ファイアウォールが無効であり、ファイアウォールがまったく実行しない場合にのみ利用可能です。コンピュータが、外部ファイアウォールにより保護されている、より規模の大きいネットワークに接続している場合にのみ、このオプションを使用してください。

    自動割り当てゾーン

    このオプションは、ファイアウォールが有効になっている場合のみ、利用できます。ファイアウォールが実行中であり、インタフェースがファイアウォールゾーンに自動的に割り当てられます。こうしたインタフェースには、anyキーワードを含むゾーンまたは外部ゾーンが使用されます。

    内部ゾーン(未保護)

    ファイアウォールを実行しますが、このインタフェースを保護するルールは使いません。コンピュータが、外部ファイアウォールにより保護されている、より規模の大きいネットワークに接続している場合に、このオプションを使用してください。また、マシンに追加ネットワークインタフェースが存在する場合、内部ネットワークに接続するインタフェースで使用できます。

    非武装地帯(DMZ)

    非武装地帯ゾーンは、内部ネットワークと(悪意のある)インターネットとの中間にあたるゾーンです。このゾーンに割り当てられたホストは、内部ネットワークおよびインターネットからアクセスされますが、ホストから内部ネットワークにアクセスすることはできません。

    外部ゾーン

    このインタフェースでファイアウォールを実行し、(危険な可能性のある)他のネットワークトラフィックからインタフェースを保護します。これがデフォルトのオプションです。

  4. 設定内容を有効にするために、設定を確認します。

19.4.1.3 検出されないネットワークカードの設定

ネットワークカードが正しく検出されなかった場合、そのカードは検出されたカードのリストに含まれません。システムにそのカード用のドライバが間違いなく含まれている場合は、そのようなカードを手動で設定することができます。特殊なネットワークデバイスタイプ(ブリッジ、ボンド、TUN、TAPなど)も設定できます。未検出のネットワークカードまたは特殊なデバイスを設定するには、次の手順に従います。

  1. YaSTのネットワークデバイス › ネットワーク設定 › 概要ダイアログで追加をクリックします。

  2. ハードウェアダイアログで、使用可能なオプションからインタフェースのデバイスの型環境設定名を設定します。ネットワークカードが、PCMCIAデバイスかUSBデバイスの場合、それぞれのチェックボックスを選択して、次へをクリックしダイアログを終了します。それ以外の方法では、必要に応じて、カードとそのオプションで使用されるカーネルのモジュール名を定義できます。

    Ethtoolオプションでは、インタフェースのifupにより使用されるethtoolオプションを設定できます。使用可能なオプションについては、ethtoolマニュアルページを参照してください。オプション文字列が - で始まる場合(たとえば-K interface_name rx on)、文字列内の2番目の単語が現在のインタフェースの名前に置換されます。それ以外の場合(たとえばautoneg off speed 10)、-s interface_nameの前にifupが追加されます。

  3. 次へをクリックします。

  4. 一般アドレス、およびハードウェアタブで、インタフェースのIPアドレス、デバイス起動方法、ファイアウォールゾーンなどの必要なオプションを設定します。環境設定オプションの詳細については、19.4.1.2項 「ネットワークカードの設定の変更」を参照してください。

  5. インタフェースのデバイスタイプとして、ワイヤレスを選択した場合は、次のダイアログでワイヤレス接続の設定を行います。

  6. 新しいネットワーク設定を有効にするために、設定を確認します。

19.4.1.4 ホスト名とDNSの設定

Ethernetカードがすでに利用できる状態で、インストール時にネットワーク設定を変更しなかった場合、コンピュータのホスト名が自動的に生成され、DHCPが有効になります。また、ホストがネットワークに参加するために必要なネームサービス情報も自動的に生成されます。ネットワークアドレス設定にDHCPを使用している場合は、ドメインネームサーバのリストは自動的に記入されます。静的設定を利用する場合は、これらの項目を手動で設定してください。

コンピュータ名を変更し、ネームサーバの検索リストを修正するには、以下の手順に従ってください。

  1. YaST内のネットワークデバイスモジュールのネットワーク設定 › ホスト名/DNSタブに移動します。

  2. ホスト名にホスト名を入力し、必要に応じてドメイン名にドメイン名を入力します。マシンがメールサーバである場合、ドメインは特に重要です。ホスト名はグローバルであり、すべての設定ネットワークインタフェースに適用されることに注意してください。

    IPアドレスを取得するためにDHCPを使用している場合、DHCPによりコンピュータのホスト名が自動的に設定されます。異なるネットワークに接続する場合は、異なるホスト名が割り当てられることがあり、ランタイムにホスト名が変更されるとグラフィックデスクトップが混同される可能性があるので、この機能を無効にした方が良い場合もあります。DHCPを使用したIPアドレスの取得を無効にするには、DHCPでホスト名を変更するをオフにします。

    ホスト名をループバックIPに割り当てるでは、ホスト名を/etc/hosts内の127.0.0.2 (ループバック) IPアドレスに関連付けます。アクティブネットワークが存在しないときでも常に解決可能なホスト名を必要とする場合に有用なオプションです。

  3. DNS環境設定の変更では、DNS設定(ネームサーバ、検索リスト、/etc/resolv.confファイルのコンテンツ)を変更する方法を選択します。

    既定のポリシーを使用するオプションを選択した場合、(DHCPクライアントまたはNetworkManagerから)動的に取得されたデータと、(YaSTまたは設定ファイルで)静的に定義されたデータをマージするnetconfigスクリプトにより設定が処理されます。ほとんどの場合、デフォルトのポリシーで十分です。

    手動でのみオプションを選択した場合、netconfigでは/etc/resolv.confファイルを変更できません。ただし、このファイルは手動で編集できます。

    Custom Policyオプションを選択した場合、マージポリシーを定義するCustom Policy Rule文字列を指定する必要があります。この文字列は、設定の有効なソースとみなされるインタフェース名のカンマで区切られたリストから構成されます。完全なインタフェース名以外に、複数のインタフェースに一致する基本的なワイルドカードを使用することもできます。たとえばeth* ppp?は、先頭がethであり、以降にppp0-ppp9を含むすべてのインタフェースが対象になります。/etc/sysconfig/network/configファイルで定義された静的な設定を適用する方法を示す次の2つの特別なポリシー値が存在します。

    STATIC

    静的な設定は、動的な設定とマージされる必要があります。

    STATIC_FALLBACK

    静的な設定は、動的設定が利用できない場合のみ使用されます。

    詳細については、netconfig(8)のマニュアルページ(man 8 netconfig)を参照してください。

  4. ネームサーバおよびドメイン検索リストに入力します。ネームサーバは、ホスト名ではなく、192.168.1.116などのIPアドレスにより指定する必要があります。ドメイン検索タブで指定した名前は、ドメインが指定されていないホスト名の解決のために使用されるドメイン名です。複数のドメイン検索を使用する場合は、カンマまたは空白でドメインを区切ります。

  5. 設定内容を有効にするために、設定を確認します。

コマンドラインからYaSTを使用してホスト名を編集することもできます。YaSTによる変更はすぐに有効になります(/etc/HOSTNAMEファイルを手動で編集する場合はすぐに有効にはなりません)。ホスト名を変更するには、次のコマンドを実行します。

yast dns edit hostname=hostname

ネームサーバを変更するには、次のコマンドを実行します。

yast dns edit nameserver1=192.168.1.116
yast dns edit nameserver2=192.168.1.117
yast dns edit nameserver3=192.168.1.118

19.4.1.5 ルーティングの設定

コンピュータを他のコンピュータやネットワークと通信させるには、ネットワークトラフィックが正しい経路を通過するように、ルーティング情報を設定する必要があります。DHCPを使用している場合、この情報は自動的に設定されます。静的アドレスを使用する場合は、このデータを手作業で追加する必要があります。

  1. YaSTで、ネットワーク設定 › ルーティングの順に移動します。

  2. デフォルトゲートウェイのIPアドレス(IPv4および必要に応じてIPv6)を入力します。デフォルトゲートウェイは、可能性のあるすべての宛先に一致しますが、必要なアドレスに一致するルーティングテーブルエントリが存在する場合は、デフォルトゲートウェイ経由のデフォルトルートの代わりにそのエントリが使用されます。

  3. ルーティングテーブルには、さらに追加エントリを入力できます。宛先のネットワークIPアドレス、ゲートウェイのIPアドレス、およびネットマスクを入力します。定義されたネットワークにトラフィックがルーティングされるデバイスを選択します(マイナス記号はデバイスを表わします)。このいずれかの値を省略する場合は、マイナス記号(-)を使用します。デフォルトゲートウェイをテーブルに入力するには、宛先フィールドをdefaultのままにします。

    注記
    注記

    追加のデフォルトルートが使用されている場合、より高い優先度を持つルートを決定するためのメトリックオプションを指定できます。メトリックオプションを指定するには、オプション- metric番号を入力します。最も高いメトリックを持つルートがデフォルトとして使用されます。ネットワークデバイスが切断している場合は、そのルートが削除され、次のルートが使用されます。ただし、現在のカーネルは静的なルーティングでメトリックを使用せず、multipathdなどのルーティングデーモンのみがメトリックを使用します。

  4. システムがルータの場合、必要に応じて、ネットワーク設定IPv4転送およびIPv6転送を有効にします。

  5. 設定内容を有効にするために、設定を確認します。

19.4.2 IBM System z: ネットワークデバイスの設定

IBM System z用のSUSE Linux Enterprise Serverは、さまざまな種類のネットワークインタフェースをサポートしています。これらのインタフェースは、YaSTを使って設定することができます。

19.4.2.1 qeth-hsiデバイス

qeth-hsi (Hipersocket)インタフェースをインストール済みのシステムに追加するには、YaSTでネットワークデバイス › ネットワーク設定モジュールを起動します。READデバイスアドレスとして使用するため、Hipersocketとマークされたデバイスの1つを選択して、編集をクリックします。読み込みチャネル、書き込みチャネル、および制御チャネルのデバイス番号を入力します(デバイス番号形式の例: 0.0.0800)。[次へ]をクリックします。ネットワークアドレスの設定ダイアログで、新しいインタフェースのIPアドレスとネットマスクを指定し、次へOKをクリックしてネットワークの設定を終了します。

19.4.2.2 qeth-ethernetデバイス

qeth-ethernet (IBM OSA Expressイーサネットカード)インタフェースをインストール済みのシステムに追加するには、YaSTでネットワークデバイス › ネットワーク設定モジュールを起動します。READデバイスアドレスとして使用するため、IBM OSA Expressイーサネットカードとマークされたデバイスの1つを選択して編集をクリックします。読み込みチャネル、書き込みチャネル、および制御チャネルのデバイス番号を入力します(デバイス番号形式の例: 0.0.0700)。必要なポート名、ポート番号(該当する場合)、および追加オプション(『Linux for IBM IBM System z: Device Drivers, Features, and Commands』リファレンスマニュアル、http://www.ibm.com/developerworks/linux/linux390/documentation_suse.htmlを参照)のほか、IPアドレスおよび適切なネットマスクを入力します。次へOKをクリックして、ネットワークの設定を終了します。

19.4.2.3 ctcデバイス

ctc (IBMパラレルCTCアダプタ)インタフェースをインストール済みのシステムに追加するには、YaSTでネットワークデバイス › ネットワーク設定モジュールを起動します。READデバイスアドレスとして使用するIBMパラレルCTCアダプタというマークの付いたデバイスの1つを選択して、設定をクリックします。お使いのデバイスに合わせてデバイス設定を選択します(通常は、互換モード)。自分のIPアドレスとリモートのIPアドレスを指定します。必要に応じて、詳細 › 詳細設定の順に選択してMTUサイズを調整します。次へOKをクリックして、ネットワークの設定を終了します。

警告
警告: CTCは、サポートされなくなりました

このインタフェースを使用することはお勧めしません。SUSE Linux Enterprise Serverの今後のバージョンでは、このインタフェースはサポートされません。

19.4.2.4 lcsデバイス

lcs (IBM OSA-2アダプタ)インタフェースをインストール済みのシステムに追加するには、YaSTでネットワークデバイス › ネットワーク設定モジュールを起動します。IBM OSA-2アダプタというマークの付いたデバイスの1つの選択して、設定をクリックします。ポート番号や他のオプション(『Linux for IBM System z: Device Drivers, Features, and Commands 』リファレンスマニュアル、http://www.ibm.com/developerworks/linux/linux390/documentation_suse.htmlを参照)、IPアドレス、およびネットマスクを入力します。次へOKをクリックして、ネットワークの設定を終了します。

19.4.2.5 IUCVデバイス

iucv (IUCV)インタフェースをインストール済みのシステムに追加するには、YaSTでネットワークデバイス › ネットワーク設定モジュールを起動します。IUCVとマークされたデバイスを選択し、編集をクリックします。IUCVパートナーの名前を入力するように要求されます(ピア)。パートナー名(大文字と小文字が区別されます)を入力して、次へをクリックします。自分のIPアドレスと、パートナーのリモートIPアドレスの両方を指定します。必要な場合は、Set MTUサイズを一般タブで設定します。次へOKをクリックして、ネットワークの設定を終了します。

警告
警告: IUCVはサポートされなくなりました

このインタフェースを使用することはお勧めしません。SUSE Linux Enterprise Serverの今後のバージョンでは、このインタフェースはサポートされません。

19.5 ネットワークの手動環境設定

ネットワークソフトウェアの手動環境設定は、最後の手段です。設定には可能な限りYaSTを使用してください。しかし、ここで説明するネットワーク環境設定の背景知識がYaSTでの設定作業に役立つことがあります。

19.5.1 wickedネットワーク環境設定

wickedと呼ばれるツールとライブラリは、ネットワーク環境設定用の新しいフレームワークを提供します。

ネットワーク管理は相互に影響を持つ複数の層で構成されていますが、その相互作用は明確とはいえず、悪影響があっても把握しづらかったり、あいまいな制約や慣習があったりします。このようなネットワーク管理のさまざまな層を1つのスクリプト(多くても2つ程度のスクリプト)に寄せ集めている点が、従来のネットワークインタフェース管理における問題の1つです。異なるシナリオに対応するために特別なハックを使った層がいくつもあると、保守負担が増加します。現状では、dhcpcdなどのデーモンによって実装されるアドレス設定プロトコルが使用されていますが、他のインフラストラクチャとの相互作用は十分ではありません。そこで、インタフェースを永続的に識別できるようにするため、多くのudevサポートを必要とするインタフェース命名スキームが導入されたものの、これは洗練されているとはいいがたい手段です。

wickedというアイデアが生まれたのは、この問題をさまざまな方法で分解するためです。どの方法もまったく新しいものではありませんが、異なるプロジェクトから得たアイデアをまとめようとする試みから、総合的により優れた解決策が生まれることが期待できます。

アプローチの1つは、クライアント/サーバモデルを使用することです。これにより、wickedは、アドレス設定のような作業について、フレームワーク全体と効果的に統合された標準化機能を定義できます。たとえば、アドレス設定では、管理者はDHCPまたはIPv4 zeroconf経由でインタフェースを設定するよう要求できます。アドレス設定サービスが実行するのは、サーバからリースを取得してwickedサーバプロセスに渡すことだけで、その後はwickedサーバプロセスが要求されたアドレスおよびルートをインストールします。

問題を分解するもう1つのアプローチは、階層化を強制的に導入することです。すべてのタイプのネットワークインタフェースに対して、ネットワークインタフェースのデバイス層(VLAN、ブリッジ、ボンド、または準仮想化されたデバイス)を設定するdbusサービスを定義できます。アドレス設定といった共通の機能は、こうしたデバイス固有のサービスの上に階層化した結合サービスによって実装します。これにより、サービスを個別に実装する必要がなくなります。

wickedフレームワークは、そのタイプに応じてネットワークインタフェースにアタッチされるさまざまなdbusサービスを使用して、これら2つの側面を実装します。ここでは、wickedにおける現在のオブジェクト階層をおおまかに説明します。

各ネットワークインタフェースは、/org/opensuse/Network/Interfacesの子オブジェクトを介して表されます。子オブジェクトの名前は、そのifindexで指定されます。たとえば、ループバックインタフェースは通常、ifindex 1を取り、/org/opensuse/Network/Interfaces/1です。登録されている最初のEthernetインタフェースは、/org/opensuse/Network/Interfaces/2です。

各ネットワークインタフェースには「クラス」が関連付けられており、そのクラスを使用して、サポートするdbusインタフェースが選択されます。デフォルトでは、各ネットワークインタフェースは、クラスnetifに属し、wickeddはこのクラスと互換性のあるすべてのインタフェースを自動的にアタッチします。現在の実装では、これには次のインタフェースが含まれます。

org.opensuse.Network.Interface

リンクアップとリンクダウンの取得、MTUの割り当てなどの、一般的なネットワークインタフェース機能。

org.opensuse.Network.Addrconf.ipv4.dhcp , org.opensuse.Network.Addrconf.ipv6.dhcp, org.opensuse.Network.Addrconf.ipv4.auto, org.opensuse.Network.Addrconf.ipv6.auto

DHCP、IPv6 autoconf、IPv4 zeroconfなどのアドレス設定サービス。

これ以外に、ネットワークインタフェースで特別な設定メカニズムが必要な場合や、ネットワークインタフェースがこのようなメカニズムを備えている場合もあります。たとえば、Ethernetデバイスの場合、リンク速度、チェックサム計算のオフロードなどを制御可能にしたい場合があります。これを実現するために、Ethernetデバイスには、netifのサブクラスである、netif-ethernetという独自のクラスがあります。このため、Ethernetインタフェースに割り当てられたdbusインタフェースには、上記に一覧にされているすべてのサービス、およびnetif-ethernetクラスに属するオブジェクトでのみ使用可能なサービスであるorg.opensuse.Network.Ethernetが含まれています。

同様に、ブリッジ、VLAN、ボンド、インフィニバンドなどのインタフェースタイプのクラスも存在します。

Ethernetデバイスの上に位置し、実際には仮想ネットワークインタフェースであるVLANなど、最初に作成する必要があるインタフェースとはどのように相互作用すればよいのでしょうか。このような場合、wickedは、org.opensuse.Network.VLAN.Factoryなどのファクトリインタフェースを定義します。このようなファクトリインタフェースは、要求されたタイプのインタフェースを作成できる単一の機能を提供します。これらのファクトリインタフェースは、/org/opensuse/Network/Interfacesリストノードにアタッチされます。

19.5.1.1 現在サポートされている内容

wickedは現在、以下をサポートしています。

  • SUSEおよびRedHatスタイルの/etc/sysconfig/networkファイルを解析する環境設定ファイルバックエンド。開発はSUSEのインストール済み環境上で行われるため、多くの場合、前者の方がRedHat用ファイルよりも安定しています。

  • ネットワークインタフェース設定をXMLで表す環境設定ファイルバックエンド。netcfが使用する設定から発展した構文。

  • Ethernetやインフィニバンド、VLAN、ブリッジ、ボンドデバイスなどの、「標準」のネットワークインタフェースの起動とシャットダウン。ブリッジとボンドには、依然としていくつかの問題があります。

  • ワイヤレス。まだ完全ではなく、1つのネットワークに制限されています。

  • 内蔵DHCPv4クライアントおよび内蔵DHCPv6クライアント。

  • リンクが検出されるとすぐに、自動的にインタフェースを起動することができるいくつかの実験コードがあります。

  • XMLリーダ/ライタの実装。これは規格に完全準拠しているとはいえないものの、コンパクトなフットプリントを持ち、適度に高速であると思われます。これにはXPath 1.0の部分的な実装も付属していて、XMLによるインタフェースの記述から情報を抽出できるため、XMLを自分自身で解析する必要はありません。

19.5.1.2 wickedの使用

SUSE Linux Enterpriseでは、NetworkManagerを選択しなかった場合、wickedがデフォルトで実行されています。これを有効化する必要がある場合には、次を呼び出します。

systemctl enable --force wicked.service

これにより、wickedサービスが有効になり、wicked.serviceエイリアスリンクに対してnetwork.serviceが作成され、次回ブート時にネットワークを起動します。

サーバプロセスを起動します。

systemctl start wickedd.service

これにより、wickedd (メインサーバ)および関連するサプリカントがデバッグモードで起動し、トレース情報をsyslogに出力します。

/usr/sbin/wickedd --foreground
/usr/lib/wicked/bin/wickedd-dhcp4 --foreground
/usr/lib/wicked/bin/wickedd-auto4 --foreground
/usr/lib/wicked/bin/wickedd-dhcp6 --foreground

ネットワークを起動します。

systemctl start wicked.service

または、network.serviceエイリアスを使用します。

systemctl start network.service

これらのコマンドは、デフォルト、または/etc/wicked/client.xmlで定義されるシステム設定ソースを使用しています。

デバッグを有効にするには、/etc/sysconfig/network/configWICKED_DEBUG_PARAMを設定します(これは将来変更される場合があります)。次に例を示します。

WICKED_DEBUG_PARAM="--debug most"

クライアントユーティリティを使用して、すべてのインタフェース、またはifnameで指定したインタフェースに関するインタフェース情報を表示します。

wicked show all
wicked show ifname

XML出力の場合は、以下を実行します。

wicked show-xml all
wicked show-xml ifname

1つのインタフェースを起動します。

wicked ifup eth0
wicked ifup wlan0
...

設定ソースが指定されていないため、wickedクライアントは、/etc/wicked/client.xmlで定義されている設定のデフォルトソースを確認します。

  1. firmware: iBFT (iSCSI Boot Firmware Table)

  2. compat: ifcfgファイル—互換性のため実装

  3. wicked:PATH (デフォルト: /etc/wicked/ifconfig)に保存されるPATHネイティブのwicked XML設定フォーマット

特定のインタフェースに対してwickedがこれらのソースから取得した設定がすべて適用されます。重要度の順序は、firmwarecompatwickedの順です。これは将来、ifcfgの互換性要件が緩和されれば変更される可能性があります。

続いて、サンプルVLANインタフェースなど、関心の高いものを起動します。

wicked ifup --ifconfig ./samples/wicked/vlan-static.xml eth0.42

これは、eth0.42という名前のVLANインタフェースを起動します。VLANタグ42と数個のIPアドレスが静的に割り当てられています。動作しているかどうかを確認するため、以下を実行してみます。

ip addr show
ip route show

上のコマンドは、指定されたファイルからすべてのインタフェースの記述を取得し、eth0.42というインタフェースを起動します。このファイルに含まれているインタフェース1つだけであるため、インタフェース名の代わりにallを使用することもできます。名前が示すように、これは、このファイルに一覧にされているすべてのインタフェースを起動します。

単一のインタフェースを起動するため、クライアントはXML要素から、複数のサーバメソッドと引数を実行し、目的のインタフェースの状態をupに切り替えるようサーバに命令します。この操作により、まだVLANインタフェースがない場合は、ただちに作成されます。

同様の方法でインタフェースを停止します。

wicked ifdown eth0.42

インタフェースを停止して削除するには、以下を使用します。

wicked ifdown --delete --ifconfig ./samples/wicked/vlan-static.xml eth0.42

詳細については、wickedのマニュアルページを参照してください。

19.5.1.3 複数のインタフェースの起動

ボンドおよびブリッジの場合、1つのファイルにデバイストポロジ全体を定義し、それをまとめて起動します。これは、特にボンドにとって重要です。ボンドの場合、最初にスレーブデバイスを作成する必要があるためです(スレーブデバイスがVLANなどの仮想デバイスである場合)。

このようなシナリオの場合、1つのファイルでデバイストポロジを定義し、wickedを呼び出して、設定全体を起動します。例については、パッケージのマニュアル(/usr/share/doc/packages/wicked)のsamples/wicked/bridge-static.xmlを参照してください。この設定は、2つのVLANインタフェースから構築されたEthenetブリッジを定義します。これを起動するには、次を呼び出します。

wicked ifup --ifconfig ./samples/wicked/bridge-static.xml all

クライアントは適切な順序でデバイスを起動します。最初に2つのVLANインタフェースを作成してからブリッジを作成し、最後にVLANインタフェースをポートとしてブリッジに追加します。

19.5.1.4 増分変更の処理

wickedでは、再設定のためにインタフェースを実際に停止する必要はありません(カーネルによって要求される場合を除く)。たとえば、静的に設定されたネットワークインタフェースに別のIPアドレスまたはルートを追加するには、インタフェース定義にIPアドレスを追加して、もう一度ifup操作を実行します。サーバは変更された設定のみを更新しようとします。これは、リンクレベルのオプション(デバイスMTUやMACアドレスなど)に加え、静的設定からDHCPに切り替える場合などはネットワークレベルの設定(アドレス、ルート、アドレス設定モードなど)にも適用されます。

もちろん、ブリッジやボンドなど複数の実デバイスを組み合わせる仮想インタフェースでは、処理は複雑になります。ボンドデバイスの場合、デバイスの稼働中に特定のパラメータを変更することはできません。これを行うと、エラーが発生します。

ただし、この状態でも、ボンドまたはブリッジの子デバイスを追加または削除したり、ボンドのプライマリインタフェースを選択したりする操作は有効です。

19.5.1.5 Wicked拡張機能: アドレス設定

wickedは、シェルスクリプトによって拡張可能な設計になっています。これらの拡張機能は、config.xmlファイルで定義できます。

現状では、複数の異なるクラスの拡張機能がサポートされています。

  • リンク設定: クライアントによって提供される環境設定に従ってデバイスのリンク層を設定し、それを再び終了するスクリプトです。

  • アドレス設定: デバイスのアドレス設定を管理するスクリプトです。通常、アドレス設定およびDHCPは、wicked自体で管理されますが、拡張機能によって実装できます。

  • ファイアウォール拡張機能: これらのスクリプトでファイアウォールルールを適用できます。

通常、拡張機能には、開始および終了コマンド、オプションの「pid file」、およびスクリプトに渡される一連の環境変数があります。

これがどのように機能するかを説明するために、etc/server.xmlで定義されているファイウォール拡張機能を取り上げます。

<dbus-service interface="org.opensuse.Network.Firewall">
 <action name="firewallUp"   command="/etc/wicked/extensions/firewall up"/>
 <action name="firewallDown" command="/etc/wicked/extensions/firewall down"/>

 <!-- default environment for all calls to this extension script -->
 <putenv name="WICKED_OBJECT_PATH" value="$object-path"/>
 <putenv name="WICKED_INTERFACE_NAME" value="$property:name"/>
 <putenv name="WICKED_INTERFACE_INDEX" value="$property:index"/>
</dbus-service>

拡張機能は、dbusサービスインタフェースにアタッチされ、このインタフェースのアクションに対して実行するコマンドを定義します。さらに、宣言によって、アクションに渡される環境変数を定義および初期化できます。

19.5.1.6 Wicked拡張機能: 環境設定ファイル

スクリプトを使用して環境設定ファイルの処理を拡張することもできます。たとえば、DNSのリースの更新は、最終的には、server.xmlで動作が設定されたextensions/resolverスクリプトで処理されます。

<system-updater name="resolver">
 <action name="backup" command="/etc/wicked/extensions/resolver backup"/>
 <action name="restore" command="/etc/wicked/extensions/resolver restore"/>
 <action name="install" command="/etc/wicked/extensions/resolver install"/>
 <action name="remove" command="/etc/wicked/extensions/resolver remove"/>
</system-updater>

更新内容がwickeddに届くと、システムアップデータルーチンがリースを解析して、適切なコマンド(backupinstallなど)をリゾルバスクリプトで呼び出します。これにより、/sbin/netconfigを使用してDNSを設定するか、フォールバックとして手動で/etc/resolv.confを作成してDNSを設定します。

19.5.2 環境設定ファイル

ここでは、ネットワークの環境設定ファイルの概要を紹介し、その目的と使用される形式について説明します。

19.5.2.1 /etc/sysconfig/network/ifcfg-*

これらのファイルには、ネットワークインタフェースの従来の環境設定が含まれています。

注記
注記: wickedおよびifcfg-*ファイル

wickedは、--ifconfigオプションの使用時にcompat:プレフィックスで互換性モードを指定した場合に、これらのファイルを読み込みます。/etc/wicked/client.xmlにあるSUSE Linux Enterprise Server 12のデフォルト設定に応じて、wickedは、/etc/wicked/ifconfig内のXML設定ファイルの前にこれらのファイルを読み込みます。

ifcfg-*ファイルには、起動モードやIPアドレスなどの情報が含まれています。指定可能なパラメータについては、ifupのマニュアルページを参照してください。また、一般的設定を1つのインタフェースだけに使用する場合は、dhcpおよびwirelessファイルのほとんどの変数をifcfg-*ファイルで使用できます。ただし、/etc/sysconfig/network/configの変数の大半はグローバル変数であり、ifcfgファイル内で上書きすることはできません。たとえば、NETWORKMANAGERNETCONFIG_*は、グローバル変数です。

macvlanおよびmacvtabインタフェースの設定方法については、ifcfg-macvlanおよびifcfg-macvtapのマニュアルページを参照してください。たとえば、macvlanインタフェースでは、ifcfg-macvlan0を次のように設定します。

STARTMODE='auto'
MACVLAN_DEVICE='eth0'
#MACVLAN_MODE='vepa'
#LLADDR=02:03:04:05:06:aa

ifcfg.templateについては、19.5.2.2項 「/etc/sysconfig/network/config/etc/sysconfig/network/dhcp、および/etc/sysconfig/network/wirelessを参照してください。

System z IBM System zは、USBをサポートしていません。インタフェースファイル名とネットワークエイリアスには、qethのようなSystem z固有の要素が含まれます。

19.5.2.2 /etc/sysconfig/network/config/etc/sysconfig/network/dhcp、および/etc/sysconfig/network/wireless

configファイルには、ifupifdown、およびifstatusの動作に関する汎用的な設定が記述されています。また、dhcpにはDHCPの設定が、wirelessには無線LANカードの設定が記述されています。3つの環境設定ファイル内の変数にはコメントが付きます。/etc/sysconfig/network/config内の一部の変数は、ifcfg-*ファイルでも使用できます。このファイルでは、高い優先度が設定されます。/etc/sysconfig/network/ifcfg.templateファイルは、インタフェースごとに指定できる変数を一覧表示します。ただし、/etc/sysconfig/network/configの変数の大半はグローバル変数であり、ifcfgファイル内で上書きすることはできません。たとえば、NETWORKMANAGERNETCONFIG_*は、グローバル変数です。

19.5.2.3 /etc/sysconfig/network/routes/etc/sysconfig/network/ifroute-*

TCP/IPパケットのスタティックルーティングは、/etc/sysconfig/network/routesおよび/etc/sysconfig/network/ifroute-*ファイルによって決定されます。ホストへのルート、ゲートウェイ経由のホストへのルート、およびネットワークへのルートなど、さまざまなシステムタスクが必要とするすべてのスタティックルートは、/etc/sysconfig/network/routesファイルに指定できます。個別のルーティングが必要な各インタフェースに対して、付加環境設定ファイル/etc/sysconfig/network/ifroute-*を定義します。ワイルドカード(*)はインタフェース名で読み替えてください。経路の環境設定ファイルのエントリは次のようになります。

# Destination     Gateway           Netmask            Interface  Options

第1列は、経路の宛先です。この列には、ネットワークまたはホストのIPアドレスが入ります。到達可能なネームサーバの場合は、完全に修飾されたネットワークまたはホスト名が入ります。ネットワークは、IPv4ルートでは10.10.0.0/16、IPv6ルートではfc00::/7のように、CIDR表記(関連付けられたルーティングプレフィックス長付きのアドレス)で記述する必要があります。キーワードのdefaultは、そのルートがゲートウェイと同じアドレスファミリ内のデフォルトゲートウェイであることを示しています。ゲートウェイのないデバイスの場合は、明示的な宛先0.0.0.0/0または::/0を使用します。

第2列は、デフォルトゲートウェイ、すなわちホストまたはネットワークにアクセスする際に経由するゲートウェイです。

第3列は非推奨になりました。これは、宛先のIPv4ネットマスクを示すために使用されていました。デフォルトルートであるIPv6ルートの場合、または第1列でプレフィックス長を使用する場合(CIDR表記)は、ここにダッシュ記号(-)を入力します。

第4列は、インタフェースの名前です。ダッシュ記号(-)を使用して空のままにすると、/etc/sysconfig/network/routesで意図しない動作を引き起こす場合があります。詳細については、routesのマニュアルページを参照してください。

第5列(オプション)では、特殊なオプションを指定することができます。詳細については、routesのマニュアルページを参照してください。

例 19.5 一般的なネットワークインタフェースとスタティックルートの例
# --- IPv4 routes in CIDR prefix notation:
# Destination     [Gateway]         -                  Interface
127.0.0.0/8       -                 -                  lo
204.127.235.0/24  -                 -                  eth0
default           204.127.235.41    -                  eth0
207.68.156.51/32  207.68.145.45     -                  eth1
192.168.0.0/16    207.68.156.51     -                  eth1

# --- IPv4 routes in deprecated netmask notation"
# Destination     [Dummy/Gateway]   Netmask            Interface
#
127.0.0.0         0.0.0.0           255.255.255.0      lo
204.127.235.0     0.0.0.0           255.255.255.0      eth0
default           204.127.235.41    0.0.0.0            eth0
207.68.156.51     207.68.145.45     255.255.255.255    eth1
192.168.0.0       207.68.156.51     255.255.0.0        eth1

# --- IPv6 routes are always using CIDR notation:
# Destination     [Gateway]                -           Interface
2001:DB8:100::/64 -                        -           eth0
2001:DB8:100::/32 fe80::216:3eff:fe6d:c042 -           eth0

19.5.2.4 /etc/resolv.conf

/etc/resolv.confには、ホストが属するドメインが指定されています(キーワードsearch)。searchオプションでは、最大256文字で最大6つのドメインを指定できます。完全修飾でない名前を解決する場合は、searchの各エントリを付加して完全修飾名の生成が試みられます。nameserverオプションでは、1行に1つずつ、最大3つのネームサーバを指定できます。コメントの先頭には、ハッシュマークまたはセミコロン記号(#または;)を付加します。例については、例19.6「/etc/resolv.confを参照してください。

ただし、/etc/resolv.confは、手動では編集しないでください。このファイルは、netconfigスクリプトで生成されます。YaSTを使用せずに静的DNS設定を定義するには、/etc/sysconfig/network/configファイルの該当する変数を手動で編集します。

NETCONFIG_DNS_STATIC_SEARCHLIST

ホスト名の検索に使用されるDNSドメイン名のリスト

NETCONFIG_DNS_STATIC_SERVERS

ホスト名の検索に使用されるネームサーバのIPアドレスのリスト

NETCONFIG_DNS_FORWARDER

設定する必要のあるDNSフォワーダの名前。たとえば、bindまたはresolver

NETCONFIG_DNS_RESOLVER_OPTIONS

/etc/resolv.confに記述される任意のオプション。例:

debug attempts:1 timeout:10

詳細については、resolv.confのマニュアルページを参照してください。

NETCONFIG_DNS_RESOLVER_SORTLIST

最大10項目のリスト。例:

130.155.160.0/255.255.240.0 130.155.0.0

詳細については、resolv.confのマニュアルページを参照してください。

netconfigでDNS環境設定を無効にするには、NETCONFIG_DNS_POLICY=''を設定します。netconfigの詳細については、netconfig(8)のマニュアルページ(man 8 netconfig)を参照してください。

例 19.6 /etc/resolv.conf
# Our domain
search example.com
#
# We use dns.example.com (192.168.1.116) as nameserver
nameserver 192.168.1.116

19.5.2.5 /sbin/netconfig

netconfigは、追加のネットワーク環境設定を管理するモジュール式ツールです。このツールは、事前定義されたポリシーに従って、 DHCPまたはPPPなどの自動設定メカニズムにより提供される設定と、静的に定義された設定をマージします。要求された変更は、netconfigモジュールの呼び出しによって適用されます。このモジュールは、環境設定ファイルの変更と、サービスまたは同様のアクションの再起動を行います。

netconfigは、3つの主要なアクションを認識します。netconfig modifyコマンドとnetconfig removeコマンドは、 DHCPやPPPなどのデーモンによって使用され、netconfigの設定値を提供したり、削除します。ユーザが使用できるのは、netconfig updateコマンドだけです。

変更

netconfig modifyコマンドは、現在のインタフェースとサービス固有の動的設定を変更し、ネットワーク設定を更新します。netconfigは、標準入力からか、または--lease-file filenameオプションで指定されたファイルから設定を読み込み、システムのリブートまたは次の変更/削除アクションまで、それらの設定を内部的に保存します。同じインタフェースとサービスの組み合わせに関する既存設定は、上書きされます。インタフェースは、-i interface_nameパラメータで指定されます。サービスは、-s service_nameパラメータで指定されます。

削除

netconfig removeコマンドは、特定のインタフェースとコマンドの組み合わせに対する変更アクションによる動的設定を削除し、ネットワーク設定を更新します。インタフェースは、-i interface_nameパラメータで指定されます。サービスは、-s service_nameパラメータで指定されます。

update

netconfig updateコマンドは、現在の設定で、ネットワーク設定を更新します。これは、ポリシーや静的環境設定が変更された場合に便利です。指定したサービスのみ(dnsnis、またはntp)を更新するには、-m module_typeパラメータを使用します。

netconfigポリシーおよび静的環境設定は、手動またはYaSTで、/etc/sysconfig/network/configファイル内で定義します。DHCPやPPPなどの自動設定ツールで提供された動的設定は、netconfig modifyおよびnetconfig removeのアクションで、これらのツールによって直接配信されます。NetworkManagerが有効な場合、netconfig (ポリシーモードがauto)は、NetworkManagerの設定のみを使用し、従来のifup方式で設定された他のインタフェースからの設定を無視します。NetworkManagerが設定を提供しない場合は、静的設定がフォールバックとして使用されます。NetworkManagerとwicked方式の混合使用はサポートされません。

netconfigの詳細については、man 8 netconfigを参照してください。

19.5.2.6 /etc/hosts

このファイル(例19.7「/etc/hostsを参照)では、IPアドレスがホスト名に割り当てられています。ネームサーバが実装されていない場合は、IP接続をセットアップするすべてのホストをここに一覧にする必要があります。ファイルには、各ホストについて1行を入力し、IPアドレス、完全修飾ホスト名、およびホスト名を指定します。IPアドレスは、行頭に指定し、各エントリはブランクとタブで区切ります。コメントは常に#記号の後に記入します。

例 19.7 /etc/hosts
127.0.0.1 localhost
192.168.2.100 jupiter.example.com jupiter
192.168.2.101 venus.example.com venus

19.5.2.7 /etc/networks

このファイルには、ネットワーク名とネットワークアドレスの対応が記述されています。形式は、ネットワーク名をアドレスの前に指定すること以外は、hostsファイルと同様です。詳細については、例19.8「/etc/networksを参照してください。

例 19.8 /etc/networks
loopback     127.0.0.0
localnet     192.168.0.0

19.5.2.8 /etc/host.conf

このファイルは、名前解決(resolverライブラリによるホスト名とネットワーク名の変換)を制御します。このファイルは、libc4またはlibc5にリンクされているプログラムについてのみ使用されます。最新のglibcプログラムについては、/etc/nsswitch.confの設定を参照してください。パラメータは、その行内で常に独立しています。コメントは#記号の後に記入します。表19.2「/etc/host.confファイルのパラメータ」に、利用可能なパラメータを示します。/etc/host.confの例については、例19.9「/etc/host.confを参照してください。

表 19.2 /etc/host.confファイルのパラメータ

order hosts,bind

名前の解決の際、サービスがアクセスされる順序を指定します。有効な引数は次のとおりです(空白またはカンマで区切ります)。

hosts: /etc/hostsファイルを検索します。

bind: ネームサーバにアクセスします。

nis: NISを使用します。

multi on/off

/etc/hostsに指定されているホストが、複数のIPアドレスを持てるかどうかを定義します。

nospoof on spoofalert on/off

これらのパラメータは、ネームサーバspoofingに影響を与えますが、ネットワークの環境設定にはまったく影響を与えません。

trim domainname

ホスト名が解決された後、指定したドメイン名をホスト名から切り離します(ホスト名にドメイン名が含まれている場合)。ローカルドメインにある名前は/etc/hostsファイルにありますが、付加されるドメイン名でも認識する必要がある場合には便利なオプションです。

例 19.9 /etc/host.conf
# We have named running
order hosts bind
# Allow multiple address
multi on

19.5.2.9 /etc/nsswitch.conf

GNU C Library 2.0を導入すると、Name Service Switch (NSS)も合わせて導入されます。詳細については、nsswitch.conf(5) manページおよび『The GNU C Library Reference Manual』を参照してください。

クエリの順序は、ファイル/etc/nsswitch.confで定義します。nsswitch.confの例については、例19.10「/etc/nsswitch.confを参照してください。コメントの先頭には#記号が付きます。この例では、hostsデータベースの下のエントリは、要求がDNSを介して、/etc/hosts(files)に送信されることを意味しています(第22章 ドメインネームシステム参照)。

例 19.10 /etc/nsswitch.conf
passwd:     compat
group:      compat

hosts:      files dns
networks:   files dns

services:   db files
protocols:  db files
rpc:        files
ethers:     files
netmasks:   files
netgroup:   files nis
publickey:  files

bootparams: files
automount:  files nis
aliases:    files nis
shadow:     compat

NSSで利用できるデータベースについては、表19.3「/etc/nsswitch.confで利用できるデータベース」を参照してください。 NSSデータベースの環境設定オプションについては、表19.4「NSS データベースの環境設定オプション」を参照してください。

表 19.3 /etc/nsswitch.confで利用できるデータベース

aliases

sendmailによって実行されたメールエイリアス。man 5 aliasesコマンドで、マニュアルページを参照してください。

ethers

イーサネットアドレス。

netmasks

ネットワークとそのサブネットマスクのリスト。サブネットを使用する場合のみ必要です。

group

getgrentによって使用されるユーザグループ。groupのマニュアルページも参照してください。

hosts

gethostbynameおよび同類の関数によって使用されるホスト名とIPアドレス。

netgroup

アクセス許可を制御するための、ネットワーク内にある有効なホストとユーザのリスト。netgroup(5) manページを参照してください。

networks

ネットワーク名とアドレス。 getnetentによって使用されます。

publickey

NFSとNIS+によって使用されるSecure_RPCの公開鍵と秘密鍵。

passwd

ユーザパスワード。getpwentによって使用されます。passwd(5) manページを参照してください。

protocols

ネットワークプロトコル。getprotoentによって使用されます。protocols(5) manページを参照してください。

rpc

リモートプロシージャコール名とアドレス。 getrpcbynameおよび同様の関数によって使用されます。

services

ネットワークサービス。getserventによって使用されます。

shadow

ユーザのシャドウパスワード。getspnamによって使用されます。shadow(5) manページを参照してください。

表 19.4 NSS データベースの環境設定オプション

ファイル

直接アクセスファイル。たとえば/etc/aliases

db

データベース経由のアクセス。

nisnisplus

NIS。Chapter 3, Using NIS, Security Guideを参照。

dns

hostsおよびnetworksの拡張としてのみ使用できます。

compat

passwdshadow、およびgroupの拡張としてのみ使用できます。

19.5.2.10 /etc/nscd.conf

このファイルは、nscd (name service cache daemon)の環境設定に使用します。nscd(8)およびnscd.conf(5)マニュアルページを参照してください。デフォルトでは、nscdによってpasswdgroupsのシステムエントリがキャッシュされます。キャッシュが行われないと名前やグループにアクセスするたびにネットワーク接続が必要になるため、このキャッシュ処理は NIS や LDAP といったディレクトリサービスのパフォーマンスに関して重要な意味を持ちます。hostsはデフォルトではキャッシュされません。これは、nscd でホストをキャッシュすると、ローカルシステムで正引き参照と逆引き参照のルックアップチェックを信頼できなくなるからです。したがって、nscdを使用して名前をキャッシュするのではなく、キャッシュDNSサーバをセットアップします。

passwdオプションのキャッシュを有効にすると、新しく追加したローカルユーザが認識されるまで、通常、約15秒かかります。この待ち時間を短縮するには、次のコマンドを使用してnscdを再起動します。

systemctl restart nscd.service

19.5.2.11 /etc/HOSTNAME

/etc/HOSTNAMEには、完全修飾ホスト名(FQHN)が含まれています。完全修飾ホスト名は、ドメイン名が付加されたホスト名です。このファイルに指定できるのは、ホスト名が設定されている1行のみです。このファイルはマシンのブート時に読み込まれます。

19.5.3 設定のテスト

設定内容を設定ファイルに書き込む前に、それをテストすることができます。テスト環境を設定するには、ipコマンドを使用します。接続をテストするには、pingコマンドを使用します。

ipコマンドは、ネットワーク設定を直接変更します。ただし、変更内容は環境設定ファイルに保存されません。正しい環境設定ファイルに変更内容を保存しない限り、変更したネットワーク設定は再起動時に失われてしまいます。

注記
注記: ifconfigおよびrouteは廃止

ifconfigおよびrouteツールは廃止されました。代わりに、ipを使用してください。たとえば、ifconfigでは、インタフェース名は9文字に制限されます。

19.5.3.1 ipによるネットワークインタフェースの設定

ip は、ネットワークデバイス、ルーティング、ポリシールーティング、およびトンネルの表示と設定を行うツールです。

ipは非常に複雑なツールです。一般的には、ipoptionsobjectcommandの形式で指定します。objectの部分には、次のオブジェクトを指定することができます。

リンク

ネットワークデバイスを表します。

アドレス

デバイスのIPアドレスを表します。

隣接

このオブジェクトは、ARPまたはNDISCのキャッシュエントリを表します。

route

ルーティングテーブルエントリを表します。

ルール

ルーティングポリシーデータベース中のルールを表します。

maddress

マルチキャストアドレスを表します。

mroute

マルチキャストルーティングキャッシュエントリを表します。

tunnel

IPトンネルを表します。

commandを指定しないと、デフォルトのコマンド(通常はlist)が使用されます。

デバイスの状態を変更するには、ip link setdevice_name commandコマンドを使用します。たとえば、デバイスeth0を無効にするには、ip link seteth0 downを実行します。このデバイスを再び有効にする場合は、ip link seteth0 upを実行します。

デバイスを有効にしたら、そのデバイスを設定することができます。デバイスのIPアドレスを使用する場合は、ip addr addip_address + dev device_nameを使用します。たとえば、インタフェースeth0にアドレス「 192.168.12.154/30」を設定し、標準のブロードキャスト(brdオプション)を使用する場合は、「ip addradd 192.168.12.154/30 brd + dev eth0」と入力します。

接続を実際に利用可能にするには、デフォルトゲートウェイの設定も必要です。システムのゲートウェイを設定するには、「ip route add gateway_ip_address」を入力します。あるIPアドレスを別のIPアドレスに変換するには、nat: ip route add nat ip_address via other_ip_addressを使用します。

すべてのデバイスを表示する場合は、ip link lsを使用します。動作しているインタフェースだけを表示する場合は、ip link ls upを使用します。デバイスのインタフェース統計情報を印刷する場合は、「ip -s link lsdevice_name」と入力します。デバイスのアドレスを表示する場合は、「ip addr」と入力します。ip addrの出力には、デバイスのMACアドレスに関する情報も表示されます。すべてのルートを表示する場合は、ip route showを使用します。

ipの使用方法の詳細については、iphelpを入力するか、またはip(8)マニュアルページを参照してください。helpオプションは、すべてのipサブコマンドに関して利用できます。たとえば、ip addrのヘルプが必要な場合は、ipaddr helpと入力します。ipマニュアルについては、 /usr/share/doc/packages/iproute2/ip-cref.pdfを参照してください。

19.5.3.2 pingを使った接続のテスト

pingコマンドは、TCP/IP接続が正常に動作しているかどうかを調べるための、標準ツールです。pingコマンドはICMPプロトコルを使って、小さなデータパケットECHO_REQUESTデータグラムを、宛先ホストに送信し、即時応答を要求します。これが機能した場合、pingはそのことを示すメッセージを表示します。これは、ネットワークリンクが機能していることを示します。

pingは、2台のコンピュータ間の接続機能をテストするだけでなく、接続品質に関する基本的な情報も提供します。ping例19.11「pingコマンドの出力」コマンドの実行結果例は、を参照してください。最後から2番目の行に、転送パケット数、失われたパケット数、およびpingの実行時間の合計が記載されています。

pingの宛先には、ホスト名またはIPアドレスを指定することができます。たとえば、ping example.comping 192.168.3.100のように指定します。pingコマンドを実行すると、<CtrlC>を押すまでの間、継続的にパケットが送信されます。

接続されているかどうかを確認するだけで良い場合は、-cオプションを使って送信するパケット数を指定することができます。たとえば、PINGを3パケットに制限する場合は、「ping -c 3 example.com」を入力します。

例 19.11 pingコマンドの出力
ping -c 3 example.com
PING example.com (192.168.3.100) 56(84) bytes of data.
64 bytes from example.com (192.168.3.100): icmp_seq=1 ttl=49 time=188 ms
64 bytes from example.com (192.168.3.100): icmp_seq=2 ttl=49 time=184 ms
64 bytes from example.com (192.168.3.100): icmp_seq=3 ttl=49 time=183 ms
--- example.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2007ms
rtt min/avg/max/mdev = 183.417/185.447/188.259/2.052 ms

デフォルトでは、pingは1秒ごとにパケットを送信します。間隔を変更するには、 -i オプションを指定します。たとえば、pingの間隔を10秒に増やす場合は、「ping -i 10 example.com」と入力します。

複数のネットワークデバイスを持つシステムの場合、特定のインタフェースアドレスを指定してpingを実行することができます。その場合は、-Iオプションを、選択したデバイスの名前とともに使用します。たとえば、ping -I wlan1 example.comと指定します。

pingのオプションと使用方法の詳細については、「ping-h」と入力するか、またはping(8)のマニュアルページを参照してください。

ヒント
ヒント: IPv6アドレスのping

IPv6の場合は、ping6コマンドを使用します。ただし、リンクローカルアドレスをpingするには、-Iでインタフェースを指定する必要があります。アドレスがeth1を介して到達可能な場合は、次のコマンドが有効です。

ping6 -I eth1 fe80::117:21ff:feda:a425

19.5.4 ユニットファイルと起動スクリプト

上の環境設定ファイルに加え、マシンのブート時にネットワークサービスをロードするさまざまなスクリプトも用意されています。これらは、システムがmulti-user.targetのいずれかに切り替わったときに起動します。これらのユニットファイルの一部は、ネットワークプログラム用のユニットファイルと起動スクリプトで説明されています。systemdの詳細については、第10章 systemdデーモンを参照してください。systemdターゲットの詳細については、systemd.specialのマニュアルページ(man systemd.special)を参照してください。

ネットワークプログラム用のユニットファイルと起動スクリプト
network.target

network.targetは、ネットワークのsystemdターゲットですが、その意味はシステム管理者が指定した設定により異なります。

詳細については、http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/を参照してください。

multi-user.target

multi-user.targetは、必要なすべてのネットワークサービスを持つ、マルチユーザシステムのsystemdターゲットです。

xinetd.service

xinetdを開始します。xinetdを使用すると、サーバサービスがシステム上で利用できるようになります。たとえば、FTP接続の開始時に必ずvsftpdを起動することができます。

rpcbind.service

RPCプログラム番号をユニバーサルアドレスに変換するrpcbindユーティリティを起動します。NFSサーバなどのRPCサービスで必要です。

ypserv.service

NISサーバを起動します。

ypbind.service

NISクライアントを起動します。

/etc/init.d/nfsserver

NFSサーバを起動します。

/etc/init.d/postfix

postfixプロセスを制御します。

19.6 ボンディングデバイスの設定

システムによって、通常のEthernetデバイスの規格のデータセキュリティ/可用性の要件を超えるネットワーク接続の実装が望ましいことがあります。その場合、数台のEthernetデバイスを集めて1つのボンディングデバイスを設定できます。

ボンディングデバイスの設定には、ボンディングモジュールオプションを使用します。ボンディングデバイスの振る舞いは、主にボンディングデバイスのモードによって影響されます。デフォルトの動作は、mode=active-backupであり、アクティブなスレーブに障害が発生すると、別のスレーブデバイスがアクティブになります。

ヒント
ヒント: ボンディングとXen

ボンディングデバイスの使用が有用なのは、利用可能なネットワークカードが複数あるマシンの場合のみです。大半の設定では、Dom0でのみボンディング設定を使用する必要があることになります。VMゲストシステムに複数のネットワークカードが割り当てられている場合のみ、VMゲストでのボンド設定が役立つことがあります。

ボンディングデバイスを設定するには、次の手順に従います。

  1. YaST › ネットワークデバイス › ネットワーク設定の順に選択します。

  2. 追加を使用し、デバイスの型ボンドに変更します。次へで続行します。

  3. IPアドレスをボンディングデバイスに割り当てる方法を選択します。3つの方法から選択できます。

    • IPアドレスなし

    • 可変IPアドレス(DHCPまたはZeroconf)

    • 固定IPアドレス

    ご使用の環境に適合する方法を使用します。

  4. ボンドスレーブタブで該当するチェックボックスをオンにして、ボンドに含めるEthernetデバイスを選択します。

  5. ボンドドライバオプションを編集します。設定には次のモードを使用できます。

    • balance-rr

    • active-backup

    • balance-xor

    • ブロードキャスト

    • 802.3ad

      802.3adは、標準化されたLACP「IEEE 802.3adダイナミックリンク集約」モードです。

    • balance-tlb

    • balance-alb

  6. パラメータmiimon=100ボンドドライバオプションに追加されていることを確認します。 このパラメータがないと、データの整合性が定期的にチェックされません。

  7. 次へをクリックし、OKでYaSTを終了して、デバイスを作成します。

すべてのモードと他の多数のオプションの詳細は、「Linux Ethernet Bonding Driver HOWTO」に記載されています。このドキュメントは、kernel-sourceをインストールすると、/usr/src/linux/Documentation/networking/bonding.txtで読むことができます。

19.6.1 ボンディングスレーブのホットプラグ

特定のネットワーク環境(高可用性など)では、ボンディングスレーブインタフェースを別のものに置換しなければならないことがあります。ネットワークデバイスで頻繁に障害が発生するなどの理由があります。解決方法として、ボンディングスレーブのホットプラグを設定します。

ボンドは以下のように(man 5 ifcfg-bondingに従って)通常通りに設定されます。たとえば、

ifcfg-bond0   
          STARTMODE='auto' # or 'onboot'  
          BOOTPROTO='static'   
          IPADDR='192.168.0.1/24'   
          BONDING_MASTER='yes'   
          BONDING_SLAVE_0='eth0'   
          BONDING_SLAVE_1='eth1'   
          BONDING_MODULE_OPTS='mode=active-backup miimon=100'

スレーブはSTARTMODE=hotplugおよびBOOTPROTO=noneで指定されます。

ifcfg-eth0   
          STARTMODE='hotplug'   
          BOOTPROTO='none'   

ifcfg-eth1   
          STARTMODE='hotplug'   
          BOOTPROTO='none'

BOOTPROTO=noneethtoolオプション(指定した場合)を使用しますが、ifup eth0にはリンクアップを設定しません。これは、スレーブインタフェースがボンドマスターによって制御されるためです。

STARTMODE=hotplugにより、スレーブインタフェースが利用可能になるとすぐに、ボンドに自動的に追加されます。

MACアドレスではなく、バスIDでデバイスを照合するように、/etc/udev/rules.d/70-persistent-net.rulesudevルールを変更する必要があります(hwinfo --netcardに表示されるudev KERNELSキーワードを「SysFS BusID」とします)。これによって障害のあるハードウェアを置換(同じスロットで、MACが異なるネットワークカードを使用)できるようになり、ボンドがすべてのスレーブのMACアドレスを変更するので混乱を避けられます。

次に例を示します。

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*",
KERNELS=="0000:00:19.0", ATTR{dev_id}=="0x0", ATTR{type}=="1",
KERNEL=="eth*", NAME="eth0"

ブート時にnetwork.serviceはホットプラグスレーブを待機しませんが、ボンドの準備が整うのを待機します。これには少なくとも1つのスレーブが利用可能であることが必要です。スレーブインタフェースの1つがシステムから削除されると(NICドライバからアンバインド、NICドライバのrmmod、または実際のPCIホットプラグ取り外し)、カーネルによってボンドから自動的に削除されます。システムに新しいカードが追加されると(スロットのハードウェアが置換されると)、udevは、バスベースの永続名規則を使って名前をスレーブ名に変更し、ifupを呼び出します。ifup呼び出しによって、ボンドに自動的に追加されます。

このページを印刷