Solaris のシステム管理 (IP サービス)

IPv4 ネットワーク上でのパケット転送と経路制御

この節では、IPv4 ネットワーク上のルーターとホストに対して転送と経路制御を設定する手順および例を示します。

パケット転送」は、ネットワーク上のシステム間で情報を共有するための基本的な方法です。転送元インタフェースと転送先インタフェース間で、パケットが転送されます。通常、2 つのインタフェースのシステムは異なります。ローカルでないインタフェースにコマンドを発行するかメッセージを送信すると、システムによりこれらのパケットがローカルネットワーク上に転送されます。その後、パケットヘッダー内に指定された宛先 IP アドレスを持つインタフェースが、ローカルネットワークからパケットを取得します。着信先アドレスがローカルネットワーク上に存在しない場合、パケットは隣接するネットワークに転送 (ホップ) されます。デフォルトでは、パケット転送は Oracle Solaris のインストール時に自動的に設定されます。

「経路制御」は、システムがパケットの送信先を決定する処理のことです。システム上の経路制御プロトコルは、ローカルネットワーク上のほかのシステムを「検出」します。送信元システムと送信先システムが同じローカルネットワーク上にある場合、これらのシステム間でパケットが通過する経路は「直接ルート」と呼ばれます。パケットが送信元システムのあとに少なくとも 1 つのホップを通過しなければならない場合、送信元システムと送信先システムの間の経路は「間接ルート」と呼ばれます。経路制御プロトコルは、転送先インタフェースへのパスを取得して、既知の送信ルートに関するデータをシステムの「経路制御テーブル」内に保持します。

ルーター」は、複数の物理インタフェースを備える、特別に構成されたシステムです。ルーターは、この物理インタフェースを介して複数のローカルネットワークに接続されます。このため、ルーターは、経路制御プロトコルを実行するかどうかに関係なく、ホームの LAN を越えてパケットを転送できます。ルーターによるパケット転送方法の詳細は、「ネットワーク上でのルーターの計画」を参照してください。

「経路制御プロトコル」は、システムでの経路制御活動を処理し、経路制御情報をほかのホストと交換することで、リモートネットワークへの既知のルートを維持管理します。経路制御プロトコルはルーターとホストの両方で実行できます。ホストの経路制御プロトコルは、ほかのルーターやホストの経路制御デーモンと通信します。ホストはこれらのプロトコルを利用して、パケットの転送先を決定します。ネットワークインタフェースが使用可能な場合、システムは経路制御デーモンとの通信を自動的に行います。これらのデーモンは、ネットワーク上のルーターの状態を監視し、ローカルネットワーク上のホストにルーターのアドレスを通知します。すべてではありませんが、一部の経路制御プロトコルは統計情報も保持します。この統計を使って、経路制御パフォーマンスを計測できます。パケット転送とは異なり、Oracle Solaris システム上で経路制御を明示的に設定する必要があります。

この節では、パケット転送の管理および IPv4 ルーターとホスト上での経路制御のタスクについて説明します。IPv6 が有効なネットワークでの経路制御については、「IPv6 ルーターの構成」を参照してください。

Oracle Solaris でサポートされている経路制御プロトコル

経路制御プロトコルは、内部ゲートウェイプロトコル (IGP)、外部ゲートウェイプロトコル (EGP)、またはそれらの組み合わせに分類されます。「内部ゲートウェイプロトコル」は、一般的な管理制御下で、ネットワーク上のルーター間で経路制御情報を交換します。図 5–3 は、ルーターが経路制御情報を交換するために IGP を実行するネットワークトポロジを示します。「外部ゲートウェイプロトコル」を使用すると、ローカルのインターネットワークを外部ネットワークに接続するルーターは、外部ネットワーク上の別のルーターと情報を交換できます。たとえば、企業ネットワークを ISP に接続するルーターは、EGP を実行して、ISP の対応するルーターと経路制御情報を交換します。BGP (Border Gateway Protocol) は、さまざまな組織や IGP 間での経路制御情報送信に使用される、一般的な EGP です。

次の表に、Oracle Solaris 経路制御プロトコルおよび各プロトコルに関連するマニュアルの場所についての情報を示します。

表 5–1 Oracle Solaris 経路制御プロトコル

プロトコル 

関連するデーモン 

説明 

説明 

経路制御情報プロトコル (RIP) 

in.routed

IPv4 パケットの経路制御および経路制御テーブルの維持を行う IGP 

「IPv4 ルーターの構成方法」

ICMP (Internet Control Message Protocol) ルーター発見 

in.routed

ホストがネットワーク上のルーターの存在を検索するために使用します 

「単一インタフェースホストで静的経路制御を有効にする方法」および 「単一インタフェースホストで動的経路制御を有効にする方法」

RIPng (Routing Information Protocol, next generation) プロトコル 

in.ripngd

IPv6 パケットの経路制御および経路制御テーブルの維持を行う IGP 

「IPv6 対応のルーターを構成する方法」

ND (Neighbor Discovery) プロトコル 

in.ndpd

IPv6 ルーターの存在を通知し、ネットワーク上の IPv6 ホストの存在を検索します 

「IPv6 インタフェースの構成」

Oracle Solaris 10 では、オープンソースの Quagga 経路制御プロトコル群もサポートされます。これらのプロトコルは、SFW 統合ディスクから入手できますが、メインの Oracle Solaris ディストリビューションには含まれていません。次の表に、Quagga プロトコルを示します。

表 5–2 OpenSolaris Quagga プロトコル

プロトコル 

デーモン  

説明 

RIP プロトコル 

ripd

IPv4 距離ベクトル型 IGP。IPv4 パケットの経路制御および近傍への経路制御テーブルの通知を行います。 

RIPng 

ripngd

IPv6 距離ベクトル型 IGP。IPv6 パケットの経路制御および経路制御テーブルの維持を行います。 

OSPF (Open Shortest Path First) プロトコル 

ospfd

パケットの経路制御および高可用性ネットワークのための IPv4 リンク状態型 IGP。 

BGP (Border Gateway Protocol) 

bgpd

管理ドメインを越える経路制御のための IPv4 および IPv6 EGP。 

次の図に、Quagga 経路制御プロトコルを使用する自律システムを示します。

図 5–2 Quagga プロトコルを実行する企業ネットワーク

この図は、Quagga 経路制御プロトコルを実行する企業ネットワークを示しています。この図については本文中で説明しています。

この図は、2 つの経路制御ドメイン A と B に分割された企業ネットワークの自律システムを示しています。「経路制御ドメイン」とは、管理上の目的で、あるいはドメインで単一の経路制御プロトコルが使用されているという理由から、密接した経路制御ポリシーを持っているインターネットワークのことです。この図のドメインはどちらも、Quagga プロトコル群の経路制御プロトコルを実行します。

経路制御ドメイン A は OSPF ドメインであり、単一の OSPF ドメイン ID で管理されます。このドメイン内のシステムはすべて、内部ゲートウェイプロトコルとして OSPF を実行します。内部のホストおよびルーターに加え、ドメイン A には 2 つのボーダールーターがあります。

ボーダールーター R1 は、企業ネットワークを ISP に接続し、最終的にはインターネットに接続します。企業ネットワークと外部の間の通信を容易にするために、R1 はその外部に面したネットワークインタフェース上で BGP を実行します。ボーダールーター R5 は、ドメイン A とドメイン B を接続します。ドメイン B のシステムはすべて、内部ゲートウェイプロトコルとして RIP を使用して管理されます。したがって、ボーダールーター R5 は、ドメイン A に面したインタフェース上では OSPF を実行し、ドメイン B に面したインタフェース上では RIP を実行する必要があります。

Quagga プロトコルの詳細は、Open Solaris Quagga を参照してください。これらのプロトコルの構成手順については、Quagga のマニュアル を参照してください。

IPv4 自律システムのトポロジ

複数のルーターとネットワークを持つサイトでは、通常そのネットワークトポロジは単一の経路制御ドメイン、つまり「自律システム (AS: Autonomous System)」として管理されます。次の図に、小規模な AS と見なすことのできる典型的なネットワークトポロジを示します。この節では、すべての例にこのトポロジを使用します。

図 5–3 複数の IPv4 ルーターを備えた自律システム

この自律システムのトポロジ図については、次の本文中で説明しています。

この図は、3 つのローカルネットワーク 10.0.5.0172.20.1.0、および 192.168.5 に分割された AS を示しています。4 台のルーターが、パケット転送と経路制御の役目を分担しています。この AS には、次の種類のシステムが含まれています。

IPv4 ルーターの構成

この節では、IPv4 ルーターを構成する手順と例を説明します。IPv6 対応のルーターを構成する方法については、「IPv6 対応のルーターを構成する方法」を参照してください。

ルーターは複数のネットワーク間のインタフェースを提供するため、ルーターの物理ネットワークインタフェースごとに一意の名前および IP アドレスを割り当てる必要があります。これで、各ルーターは、その一次ネットワークインタフェースのホスト名と IP アドレスに加えて、増設した各ネットワークインタフェースについて少なくとも 1 つずつ、一意な名前と IP アドレスを持つことになります。

次の手順を使えば、物理インタフェースが 1 つだけのシステム (デフォルトではホスト) をルーターとして構成することもできます。システムを PPP リンクの 1 つのエンドポイントとして使用するような場合、単一インタフェースのシステムをルーターとして構成する場合があります (『Solaris のシステム管理 (ネットワークサービス)』「ダイアルアップ PPP リンクの計画」を参照)。


注 –

Oracle Solaris システムのインストール時にルーターのすべてのインタフェースを構成できます。手順については、『Oracle Solaris 10 9/10 インストールガイド (基本編)』を参照してください。


ProcedureIPv4 ルーターの構成方法

次の手順では、システムのインストール後にルーターのインタフェースを構成していることを想定しています。

始める前に

ルーターをネットワークに物理的に設置してから、ローカルファイルモードで動作するようにルーターを構成します。詳細は、「ローカルファイルモードの場合のホストの構成方法」を参照してください。これで、ネットワーク構成サーバーがダウンしても、ルーターが確実にブートされるようになります。

  1. ルーターとして構成されるシステムで、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. Solaris 10 1/06 リリース以降では、dladm show-link コマンドを使って、ルーターに物理的に取り付けられているインタフェースを判定します。


    # dladm show-link
    

    次の dladm show-link コマンドの出力例は、4 つのインタフェースを持つ qfe NIC と 2 つの bge インタフェースがシステム上で物理的に使用可能であることを示しています。


    qfe0             type: legacy    mtu: 1500       device: qfe0
    qfe1             type: legacy    mtu: 1500       device: qfe1
    qfe2             type: legacy    mtu: 1500       device: qfe0
    qfe3             type: legacy    mtu: 1500       device: qfe1
    bge0             type: non-vlan  mtu: 1500       device: bge0
    bge1             type: non-vlan  mtu: 1500       device: bge1
  3. インストール時に、ルーター上のどのインタフェースが構成され、plumb されたのかを確認します。


    # ifconfig -a
    

    次の ifconfig -a コマンドの出力例は、インストール時にインタフェース qfe0 が構成されたことを示しています。このインタフェースは 172.16.0.0 ネットワークにあります。qfe NIC の残りのインタフェースである qfe1 - qfe3、および bge インタフェースは構成されていません。


    lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
            inet 127.0.0.1 netmask ff000000 
    qfe0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
            inet 172.16.26.232 netmask ffff0000 broadcast 172.16.26.255
            ether 0:3:ba:11:b1:15 
             
  4. 別のインタフェースを構成して plumb します。


    # ifconfig interface plumb up
    

    たとえば、qfe1 の場合は、次のように入力します。


    # ifconfig qfe1 plumb up
    

    注 –

    ifconfig コマンドを使用して明示的に構成されたインタフェースは、リブート後には保持されません。


  5. インタフェースに IPv4 アドレスとネットマスクを割り当てます。


    注意 – 注意 –

    IPv4 ルーターがその IP アドレスを DHCP 経由で受け取るように構成することもできますが、これは十分に経験を積んだ DHCP システム管理者だけが行うようにしてください。



    # ifconfig interface IPv4-address netmask+netmask
    

    たとえば、IP アドレス 192.168.84.3qfe1 に割り当てるには、次のいずれかを実行します。

    • 従来の IPv4 の表記法を使用して、次のように入力します。


      # ifconfig qfe1 192.168.84.3 netmask + 255.255.255.0
      
    • CIDR の表記法を使用して、次のように入力します。


      # ifconfig qfe1 192.168.84.3/24
      

      接頭辞 /24 により、自動的にネットマスク 255.255.255.0qfe1 に割り当てられます。CIDR の接頭辞と、それと同等の 10 進ドット表記のネットマスクの表については、図 2–2 を参照してください。

  6. (省略可能) リブート後もインタフェースの構成が保持されるようにするには、追加の物理インタフェースごとに /etc/hostname.interface ファイルを作成します。

    たとえば、/etc/hostname.qfe1 ファイルと /etc/hostname.qfe2 ファイルを作成します。次に、ホスト名 timbuktu/etc/hostname.qfe1 ファイルに入力し、ホスト名 timbuktu-201/etc/hostname.qfe1 ファイルに入力します。個々のインタフェースを構成する方法の詳細については、「システムインストール後に物理インタフェースを構成する方法」を参照してください。

    このファイルを作成したあとは、必ず構成リブートを実行してください。


    # reboot -- -r
    
  7. 各インタフェースのホスト名と IP アドレスを /etc/inet/hosts ファイルに追加します。

    次に例を示します。


    172.16.26.232      deadsea        #interface for network 172.16.0.0
    192.168.200.20     timbuktu       #interface for network 192.168.200
    192.168.201.20     timbuktu-201   #interface for network 192.168.201
    192.168.200.9      gobi
    192.168.200.10     mojave
    192.168.200.110    saltlake
    192.168.200.12     chilean

    インタフェース timbuktutimbuktu-201 は、同じシステムにあります。timbuktu-201 のネットワークアドレスが、timbuktu のネットワークインタフェースとは異なる点に注意してください。この違いは、ネットワーク 192.168.201 の物理ネットワークメディアが timbuktu-201 ネットワークインタフェースに接続されているのに対し、ネットワーク 192.168.200 のメディアは timbuktu インタフェースに接続されているためです。

  8. Solaris 10 11/06 以前の Solaris 10 リリースの場合のみ、新しいインタフェースのそれぞれの IP アドレスとホスト名を、/etc/inet/ipnodes ファイルまたは同等の ipnodes データベースに追加します。

    次に例を示します。


    vi /etc/inet/ipnodes
    172.16.26.232      deadsea        #interface for network 172.16.0.0
    192.168.200.20     timbuktu       #interface for network 192.168.200
    192.168.201.20     timbuktu-201   #interface for network 192.168.201
    
  9. このルーターがサブネット化されたいずれかのネットワークに接続されている場合は、ネットワーク番号とネットマスクを /etc/inet/netmasks ファイルに追加します。

    • 192.168.83.0 など、従来の IPv4 アドレス表記法の場合は、次のように入力します。


      192.168.83.0    255.255.255.0
    • CIDR アドレスの場合は、/etc/inet/netmask ファイルのエントリに接頭辞の 10 進ドット表記のバージョンを使用します。ネットワークの接頭辞とそれと同等の 10 進ドット表記については、図 2–2 を参照してください。たとえば、192.168.3.0/22 という CIDR ネットワーク接頭辞を表現するには、/etc/netmasks ファイルで次のエントリを使用します。


      192.168.3.0 255.255.252.0
  10. ルーターで IPv4 パケット転送を使用可能にします。

    次のいずれかのコマンドを使用して、パケット転送を有効にします。

    • routeadm コマンドを次のように使用します。


      # routeadm -e ipv4-forwarding -u
      
    • 次のサービス管理機能 (SMF) コマンドを使用します。


      # svcadm enable ipv4-forwarding
      

    これで、ルーターは、ローカルネットワークの外にもパケットを転送できます。さらにルーターは、ルートを手動で経路制御テーブルに追加できる機能である、「静的経路制御」もサポートします。このシステムで静的経路制御を使用する場合は、 ルーターの構成はこれで終わりです。ただし、システム経路制御テーブルで、ルートを維持管理する必要があります。ルートの追加方法については、「ルートの設定」および route(1M) のマニュアルページを参照してください。

  11. (任意) 経路制御プロトコルを起動する。

    経路制御デーモン /usr/sbin/in.routed は自動的に経路制御テーブルを更新します。このプロセスのことを「動的経路制御」と呼びます。次のいずれかの方法で、デフォルトの IPv4 経路制御プロトコルをオンに設定します。

    • routeadm コマンドを次のように使用します。


      # routeadm -e ipv4-routing -u
      
    • 次の SMF コマンドを使用して、RIP などの経路制御プロトコルを起動します。


      # svcadm enable route:default
      

      in.routed デーモンに関連付けられている SMF FMRI は svc:/network/routing/route です。

    routeadm コマンドの詳細については、routeadm(1M) のマニュアルページを参照してください。


例 5–4 ネットワークのデフォルトルーターを構成する

この例では、複数のインタフェースを持つシステムを、デフォルトルーターにアップグレードする方法を示します。目標は、図 5–3 に示されたルーター 2 を、ネットワーク 172.20.1.0 のデフォルトルーターにすることです。ルーター 2 には有線ネットワーク接続が 2 つあり、1 つはネットワーク 172.20.1.0、もう 1 つはネットワーク 10.0.5.0 に接続されています。この例では、ルーターはローカルファイルモードで動作するものとします。このモードについては、「ローカルファイルモードの場合のホストの構成方法」を参照してください。

スーパーユーザーになるか、同等の役割になったあと、システムのインタフェースの状態を調べます。Solaris 10 1/06 以降では、dladm コマンドを次のように使用できます。


# dladm show-link
ce0             type: legacy    mtu: 1500       device: ce0 
bge0            type: non-vlan  mtu: 1500       device: bge0 
bge1            type: non-vlan  mtu: 1500       device: bge1

# ifconfig -a
lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
ce0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 172.20.1.10 netmask ffff0000 broadcast 172.20.10.100
        ether 8:0:20:c1:1b:c6 

dladm show-link の出力は、システムで 3 つのリンクが使用可能であることを示しています。ce0 インタフェースだけが plumb されています。デフォルトルーターの構成を始めるために、まず bge0 インタフェースを 10.0.5.0 ネットワークに物理的に接続します。次に、このインタフェースを plumb し、リブート後も保持されるようにします。


# ifconfig bge0 plumb up
# ifconfig bge0 10.0.5.10
# ifconfig -a
lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
ce0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 172.20.1.10 netmask ffff0000 broadcast 172.255.255.255
        ether 8:0:20:c1:1b:c6 
bge0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 10.0.5.10 netmask ff000000 broadcast 10.255.255.255
        ether 8:0:20:e5:95:c4
 # vi /etc/hostname.bge0
10.0.5.10
255.0.0.0

再構成用ブートコマンドを使用して、システムをリブートします。


# reboot -- -r

続いて、新たに plumb したこのインタフェースの情報とその接続先ネットワークの情報を使用して、次のネットワークデータベースを設定します。


# vi /etc/inet/hosts
127.0.0.1       localhost
172.20.1.10        router2        #interface for network 172.20.1
10.0.5.10          router2-out    #interface for network 10.0.5
# vi /etc/inet/netmasks
172.20.1.0    255.255.0.0
10.0.5.0      255.0.0.0

最後に、SMF を使用してパケット転送を有効にしてから、in.routed 経路制御デーモンを有効にします。


# svcadm enable ipv4-forwarding
# svcadm enable route:default

これで、IPv4 パケット転送と RIP による動的経路制御がルーター 2 で有効になりました。ただし、ネットワーク 172.20.1.0 のデフォルトルーターの構成はまだ完了していません。次の作業を行う必要があります。


経路制御テーブルと経路制御の種類

ルーターとホストの両方で「経路制御テーブル」が管理されます。各システムの経路制御デーモンは、すべての既知のルートを使用してテーブルを更新します。システムのカーネルは、パケットをローカルネットワークに転送する前に、経路制御テーブルを読み取ります。経路制御テーブルには、システムのデフォルトのローカルネットワークも含め、システムで知られているネットワークの IP アドレスがリストされています。このテーブルには、既知の各ネットワークに対するゲートウェイシステムの IP アドレスもリストされています。「ゲートウェイ」とは、発信されるパケットを受け取り、ローカルネットワークより 1 つ外側のホップに転送するシステムのことです。次に、IPv4 専用ネットワーク上にあるシステムの単純な経路制御テーブルを示します。


Routing Table: IPv4
  Destination           Gateway           Flags  Ref   Use   Interface
-------------------- -------------------- ----- ----- ------ ---------
default              172.20.1.10          UG       1    532   ce0
224.0.0.0            10.0.5.100           U        1      0   bge0
10.0.0.0             10.0.5.100           U        1      0   bge0
127.0.0.1            127.0.0.1            UH       1     57   lo0

Oracle Solaris システムでは、2 種類の経路制御を設定できます。静的なものと動的なものです。1 つのシステムに、これらの経路制御のどちらか一方を設定することも、両方を設定することもできます。「動的経路制御」を実装するシステムは、IPv4 ネットワークの場合は RIP、IPv6 ネットワークの場合は RIPng などの経路制御プロトコルを利用して、経路制御テーブルを管理します。「静的経路制御」だけを実行するシステムは、経路制御情報の取得や経路制御テーブルの更新を経路制御プロトコルに依存しません。その代わり、システムの既知のルートを、route コマンドを使って手動で管理する必要があります。詳細は、route(1M) のマニュアルページを参照してください。

ローカルネットワークまたは自律システムの経路制御を設定するときは、特定のルーターやホストでどの種類の経路制御をサポートするかを検討してください。

次の表に、経路制御の種類と、それぞれの種類の経路制御を適用するのに最も適したネットワークの条件を示します。

経路制御の種類 

最適な使用対象 

静的 

小規模なネットワーク、デフォルトルーターから経路を取得するホスト、および、隣接する数ホップの範囲にある 1 つか 2 つのルーターに関する情報のみを必要とするデフォルトルーター。

動的 

より規模の大きいインターネットワーク、多数のホストを含むローカルネットワーク上のルーター、および、大規模な自律システム上のホスト。動的経路制御は、ほとんどのネットワークのシステムに最適です。

静的経路制御と動的経路制御の組み合わせ 

静的に経路制御されるネットワークと動的に経路制御されるネットワークを接続するルーター、および、内部の自律システムと外部のネットワークを接続するボーダールーター。1 つのシステムで静的経路制御と動的経路制御の両方を組み合わせることは、一般的に行われています。 

図 5–3 に示された AS は、静的経路制御と動的経路制御の両方を組み合わせて使用しています。

ルートの設定

IPv4 ネットワークに動的経路制御を実装するには、routeadm コマンドまたは svcadm コマンドを使用して in.routed 経路制御デーモンを起動します。手順については、「IPv4 ルーターの構成方法」を参照してください。動的経路制御は、ほとんどのネットワークおよび自律システムに最適な方法です。ただし、使用しているネットワークトポロジやネットワーク上の特定のシステムで、静的経路制御が必要になる場合もあります。その場合は、システムの経路制御テーブルを手動で編集して、ゲートウェイへの既知のルートを反映させる必要があります。次の手順は、静的ルートを追加する方法を示しています。


注 –

同じ宛先へのルートが 2 つあっても、システムで負荷分散やフェイルオーバーが自動的に行われるわけではありません。これらの機能が必要な場合は、第 30 章IPMP の紹介 (概要)に説明されている IPMP を使用します。


Procedure経路制御テーブルに静的ルートを追加する方法

  1. 経路制御テーブルの現在の状態を表示します。

    通常のユーザーアカウントを使用して、次の形式の netstat コマンドを実行します。


    % netstat -rn
    

    次のような出力が表示されます。


    Routing Table: IPv4
      Destination           Gateway           Flags  Ref   Use   Interface
    -------------------- -------------------- ----- ----- ------ ---------
    192.168.5.125        192.168.5.10          U      1   5879   ipge0
    224.0.0.0            198.168.5.10          U      1  0       ipge0
    default              192.168.5.10          UG     1  91908
    127.0.0.1            127.0.0.1             UH     1  811302   lo0
  2. Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  3. (省略可能) 経路制御テーブル内の既存のエントリを消去します。


    # route flush
    
  4. リブート後も保持されるルートを追加します。


    # route -p add -net network-address -gateway gateway-address
    
    -p

    リブート後も保持される必要のあるルートを作成します。現在のセッションだけに有効なルートを作成する場合は、-p オプションを使用しないでください。

    add

    そのあとに指定されているルートを追加することを示します。

    -net network-address

    network-address で指定されたアドレスを持つネットワークへのルートであることを示します。

    -gateway gateway-address

    指定されたルートのゲートウェイシステムの IP アドレスが gateway-address であることを示します。


例 5–5 経路制御テーブルに静的ルートを追加する

次の例は、システムに静的ルートを追加する方法を示しています。このシステムは、図 5–3 で示されている、172.20.1.0 ネットワークのデフォルトルーターであるルーター 2 です。例 5–4 では、ルーター 2 は動的経路制御用に構成されています。ネットワーク 172.20.1.0 上のホストのデフォルトルーターとしてルーター 2 の機能を向上させるには、AS のボーダールーター 10.0.5.150 への静的ルートを追加する必要があります。

ルーター 2 の経路制御テーブルを表示するために、次の手順を実行します。


# netstat -rn
Routing Table: IPv4
  Destination           Gateway           Flags  Ref   Use   Interface
-------------------- -------------------- ----- ----- ------ ---------
default              172.20.1.10          UG        1    249 ce0
224.0.0.0            172.20.1.10          U         1      0 ce0
10.0.5.0             10.0.5.20            U         1     78 bge0
127.0.0.1            127.0.0.1            UH        1     57 lo0

この経路制御テーブルは、ルーター 2 に既知のルートが 2 つあることを示しています。デフォルトのルートは、ルーター 2 の 172.20.1.10 インタフェースをゲートウェイとして使用します。2 番目のルート 10.0.5.0 は、ルーター 2 で実行中の in.routed デーモンによって検出されました。このルートのゲートウェイはルーター 1 で、その IP アドレスは 10.0.5.20 です。

ネットワーク 10.0.5.0 にはボーダールーターとして機能するゲートウェイがあります。このネットワークへのルートをもう 1 つ追加するには、次の手順を実行します。


# route -p add -net 10.0.5.0/24 -gateway 10.0.5.150/24
add net 10.0.5.0: gateway 10.0.5.150

これで、IP アドレス 10.0.5.150/24 を持つボーダールーターへのルートが、経路制御テーブルに追加されました。


# netstat -rn
Routing Table: IPv4
  Destination           Gateway           Flags  Ref   Use   Interface
-------------------- -------------------- ----- ----- ------ ---------
default              172.20.1.10          UG        1    249 ce0
224.0.0.0            172.20.1.10          U         1      0 ce0
10.0.5.0             10.0.5.20            U         1     78 bge0
10.0.5.0             10.0.5.150           U         1    375 bge0
127.0.0.1            127.0.0.1            UH        1     57 lo0

マルチホームホストの構成

Oracle Solaris では、複数のインタフェースを持つシステムは「マルチホームホスト」であると見なされます。マルチホームホストは IP パケットを転送しません。ただし、経路制御プロトコルを実行するようにマルチホームホストを構成することはできます。一般に、次のような種類のシステムをマルチホームホストとして構成します。

Procedureマルチホームホストの作成方法

  1. 予定するマルチホームホストで、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. Oracle Solaris インストールの一部として構成されなかった追加の各ネットワークインタフェースを、構成して plumb します。

    詳細は、「システムインストール後に物理インタフェースを構成する方法」を参照してください。

  3. マルチホームホストで IP 転送が使用可能になっていないことを確認します。


    # routeadm
     
    

    オプションを指定せずに routeadm コマンドを実行すると、経路制御デーモンの状態が報告されます。次の routeadm の出力は、IPv4 転送が有効になっていることを示しています。


       Configuration   Current              Current
                         Option   Configuration        System State
    ---------------------------------------------------------------
                   IPv4 routing   disabled             disabled
                   IPv6 routing   disabled             disabled
                IPv4 forwarding   enabled              disabled
                IPv6 forwarding   disabled             disabled
    
                Routing services   "route:default ripng:default"
  4. システムでパケット転送が有効になっている場合は、パケット転送をオフに設定します。

    次のコマンドのいずれかを使用します。

    • routeadm コマンドの場合は、次のように入力します。


      # routeadm -d ipv4-forwarding -u
      
    • SMF を使用する場合は、次のように入力します。


      # svcadm disable ipv4-forwarding
      
  5. (省略可能) マルチホームホストの動的経路制御をオンに設定します。

    次のいずれかのコマンドを使用して、in.routed デーモンを有効にします。

    • routeadm コマンドの場合は、次のように入力します。


      # routeadm -e ipv4-routing -u
      
    • SMF を使用する場合は、次のように入力します。


      # svcadm enable route:default
      

例 5–6 マルチホームホストの構成

次の例は、図 5–3 に示されているマルチホームホストを構成する方法を示しています。この例で、システムのホスト名は hostc です。このホストには 2 つのインタフェースがあり、両方ともネットワーク 192.168.5.0 に接続されています。

まず、システムのインタフェースの状態を表示します。


# dladm show-link
hme0           type: legacy    mtu: 1500       device: hme0 
qfe0           type: legacy    mtu: 1500       device: qfe0 
qfe1           type: legacy    mtu: 1500       device: qfe1 
qfe2           type: legacy    mtu: 1500       device: qfe2 
qfe3           type: legacy    mtu: 1500       device: qfe3
# ifconfig -a
lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
hme0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
      inet 192.168.5.82 netmask ff000000 broadcast 192.255.255.255
      ether 8:0:20:c1:1b:c6 
 

dladm show-link コマンドの報告は、hostc にはインタフェースが 2 つあり、可能なリンクが合計 5 つあることを示しています。ただし、hme0 だけが plumb されています。hostc をマルチホームホストとして構成するには、qfe NIC の qfe0 または別のリンクを追加する必要があります。まず、qfe0 インタフェースを 192.168.5.0 ネットワークに物理的に接続します。次に、qfe0 インタフェースを plumb し、リブート後も保持されるようにします。


# ifconfig qf0 plumb up
# ifconfig qfe0 192.168.5.85
# ifconfig -a
lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000 
hme0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 192.168.5.82 netmask ff0000 broadcast 192.255.255.255
        ether 8:0:20:c1:1b:c6 
qfe0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 192.168.5.85 netmask ff000000 broadcast 192.255.255.255
        ether 8:0:20:e1:3b:c4
 # vi /etc/hostname.qfe0
192.168.5.85
255.0.0.0

再構成用ブートコマンドを使用して、システムをリブートします。


# reboot -- -r

次に、qfe0 インタフェースを hosts データベースに追加します。


# vi /etc/inet/hosts
127.0.0.1           localhost
192.168.5.82        host3    #primary network interface for host3
192.168.5.85        host3-2  #second interface

その後、host3 でのパケット転送と経路制御の状態を確認します。


# routeadm
              Configuration   Current              Current
                     Option   Configuration        System State
---------------------------------------------------------------
               IPv4 routing   enabled              enabled
               IPv6 routing   disabled             disabled
            IPv4 forwarding   enabled              enabled
            IPv6 forwarding   disabled             disabled

           Routing services   "route:default ripng:default"

routeadm コマンドの報告は、in.routed デーモンによる動的経路制御とパケット転送が現在有効になっていることを示しています。ただし、パケット転送を無効にする必要があります。


# svcadm disable ipv4-forwarding

「マルチホームホストの作成方法」で説明されているように、routeadm コマンドを使用してパケット転送をオフに設定することもできます。パケット転送を無効にすると、host3 はマルチホームホストになります。


単一インタフェースシステムの経路制御の設定

単一インタフェースホストは、何らかの形式の経路制御を実装する必要があります。ホストがそのルートを 1 つ以上のローカルデフォルトルーターから取得する場合は、静的経路制御を使用するようにホストを構成する必要があります。それ以外の場合は、ホストで動的経路制御を使用することをお勧めします。次の手順では、両方の種類の経路制御を有効にする方法を示します。

Procedure単一インタフェースホストで静的経路制御を有効にする方法

この手順は、単一インタフェースホストで静的経路制御を有効にします。静的経路制御を使用するホストは、RIP などの動的経路制御プロトコルをいっさい実行しません。代わりに、ホストはデフォルトルーターのサービスを利用して経路制御情報を取得する必要があります。「IPv4 自律システムのトポロジ」の図には、いくつかのデフォルトルーターとそのクライアントホストが示されています。特定のホストをインストールするときにデフォルトルーターの名前を指定した場合、そのホストはすでに、静的経路制御を使用するように構成されています。


注 –

次の手順を使用して、マルチホームホストで静的経路制御を設定することもできます。


/etc/defaultrouter ファイルの詳細については、/etc/defaultrouter ファイル」を参照してください。静的経路制御と経路制御テーブルの詳細については、「経路制御テーブルと経路制御の種類」を参照してください。

  1. 単一インタフェースのホスト上で、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. ホストに /etc/defaultrouter ファイルが存在するかどうかを確認します。


    # cd /etc
    # ls | grep defaultrouter
    
  3. テキストエディタを開き、/etc/defaultrouter ファイルを作成または変更します。

  4. デフォルトルーターのエントリを追加します。


    # vi  /etc/defaultrouter
    router-IP
           
    

    ここで、router-IP は、ホストが使用するデフォルトルーターの IP アドレスを示しています。

  5. 経路制御とパケット転送がホストで実行されていないことを確認します。


    # routeadm
       Configuration   Current              Current
                         Option   Configuration        System State
    ---------------------------------------------------------------
                   IPv4 routing   disabled             disabled
                   IPv6 routing   disabled             disabled
                IPv4 forwarding   disabled            disabled
                IPv6 forwarding   disabled             disabled
    
               Routing services   "route:default ripng:default"
  6. デフォルトルーターのエントリをローカルの /etc/inet/hosts ファイルに追加します。

    /etc/inet/hosts の構成については、「IPv4 アドレスおよびその他のネットワーク構成パラメータを変更する方法」を参照してください。


例 5–7 単一インタフェースホストのデフォルトルーターと静的経路制御を設定する

次の例は、単一インタフェースホスト hostb に静的経路制御を設定する方法を示しています。このホストは、図 5–3 に示されているネットワーク 172.20.1.0 上にあります。hostb は、そのデフォルトルーターとしてルーター 2 を使用する必要があります。

まず、スーパーユーザーまたは同等の役割として hostb にログインします。次に、ホストに /etc/defaultrouter ファイルが存在するかどうかを調べます。


# cd /etc
# ls | grep defaultrouter

grep で検出されなかったので、/etc/defaultrouter ファイルを作成する必要があります。


# vi /etc/defaultrouter
172.20.1.10

/etc/defaultrouter ファイルのエントリは、172.20.1.0 ネットワークに接続されているルーター 2 のインタフェースの IP アドレスです。次に、ホストでパケット転送や経路制御が現在有効になっているかどうかを確認します。


# routeadm
   Configuration   Current              Current
                     Option   Configuration        System State
---------------------------------------------------------------
               IPv4 routing   disabled             disabled
               IPv6 routing   disabled             disabled
            IPv4 forwarding   enabled              enabled
            IPv6 forwarding   disabled             disabled

           Routing services   "route:default ripng:default"

この特定のホストでは、パケット転送が有効になっています。次のように、これをオフに設定します。


# svcadm disable ipv4-forwarding

最後に、ホストの /etc/inet/hosts ファイルにこの新しいデフォルトルーターのエントリが存在することを確認します。


# vi /etc/inet/hosts
127.0.0.1           localhost
172.20.1.18         host2    #primary network interface for host2
172.20.1.10         router2  #default router for host2

Procedure単一インタフェースホストで動的経路制御を有効にする方法

動的経路制御は、ホストで経路制御を管理するためのもっとも簡単な方法です。動的経路制御を使用するホストは、IPv4 の場合は in.routed デーモンで提供される経路制御プロトコルを実行し、IPv6 の場合は in.ripngd デーモンで提供される経路制御プロトコルを実行します。単一インタフェースホストで IPv4 動的経路制御を有効にするには、次の手順を使用します。動的経路制御の詳細は、「IPv4 ネットワーク上でのパケット転送と経路制御」を参照してください。

  1. ホスト上で、Primary Administrator の役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. /etc/defaultrouter ファイルがあることを確認します。


    # cd /etc
    # ls | grep defaultrouter
    
  3. /etc/defaultrouter が存在する場合は、その中のエントリをすべて削除します。

    /etc/defaultrouter ファイルが空の場合、ホストは自動的に動的経路制御を使用します。

  4. ホストでパケット転送と経路制御が有効になっているかどうかを確認します。


    # routeadm
       Configuration   Current              Current
                         Option   Configuration        System State
    ---------------------------------------------------------------
                   IPv4 routing   disabled             disabled
                   IPv6 routing   disabled             disabled
                IPv4 forwarding   enabled              enabled
                IPv6 forwarding   disabled             disabled
    
               Routing services   "route:default ripng:default"
  5. パケット転送が有効になっている場合は、パケット転送をオフに設定します。

    次のコマンドのいずれかを使用します。

    • routeadm コマンドの場合は、次のように入力します。


      # routeadm -d ipv4-forwarding -u
      
    • SMF を使用する場合は、次のように入力します。


      # svcadm disable ipv4-forwarding
      
  6. ホストで経路制御プロトコルを有効にします。

    次のコマンドのいずれかを使用します。

    • routeadm コマンドの場合は、次のように入力します。


      # routeadm -e ipv4-routing -u
      
    • SMF を使用する場合は、次のように入力します。


      # svcadm enable route:default
      

    これで、IPv4 動的経路制御が有効になりました。ホストの経路制御テーブルは、in.routed デーモンによって動的に管理されます。


例 5–8 単一インタフェースホストで動的経路制御を実行する

次の例は、単一インタフェースホスト hosta に動的経路制御を設定する方法を示しています。このホストは、図 5–3 に示されているネットワーク 192.168.5.0 上にあります。hosta は、そのデフォルトルーターとしてルーター 1 を現在使用しています。ただし、これからは hosta で動的経路制御を実行する必要があります。

まず、スーパーユーザーまたは同等の役割として hosta にログインします。次に、ホストに /etc/defaultrouter ファイルが存在するかどうかを調べます。


# cd /etc
# ls | grep defaultrouter
defaultrouter

grep で検出されたので、hosta には /etc/defaultrouter ファイルが存在します。


# vi /etc/defaultrouter
192.168.5.10

このファイルには 192.168.5.10 というエントリがあります。これはルーター 1 の IP アドレスです。静的経路制御を有効にするには、このエントリを削除します。次に、ホストでパケット転送と経路制御がすでに有効になっているかどうかを確認する必要があります。


# routeadm   Configuration   Current              Current
                     Option   Configuration        System State
---------------------------------------------------------------
               IPv4 routing   disabled             disabled
               IPv6 routing   disabled             disabled
            IPv4 forwarding   disabled             disabled
            IPv6 forwarding   disabled             disabled

           Routing services   "route:default ripng:default"

hosta では、経路制御とパケット転送の両方がオフに設定されています。次のように経路制御をオンに設定して、hosta の動的経路制御の設定を完了します。


# svcadm enable route:default