ルータ - みる会図書館


検索対象: UNIX MAGAZINE 2004年1月号
72件見つかりました。

1. UNIX MAGAZINE 2004年1月号

連載 1 Zaurus with Linux 写真 5 Lantronix XPort ( 右 ) (RJ-45 ジャック ( 中 ) や中継コネクタ ( おと膃度のサイズです ) 、、ファイル共有 " がそのまま使えます。操作も Windows の GUI べースなので、 Windows に慣れている人にとっ ては便利でしよう。しかし、この種の Windows べースの 機器では、ウイルス対策に頭を悩ませることがあるようで 書かれていたり、 BASIC などの言語を使ったサンプル・ RS232C インターフェイスしかない測定器でも、写真 プログラムが載っていたりします。 5 の Lantronix XPort のような小型の RS232C FIuke 192 の各種コマンドは、アルファベット 2 文字で Ethernet 変換器 [ 5 ] を使うとネットワーク対応にするこ 構成されています ( コマンドのマニュアルは、付属の CD- とができます。 RS232C や GPIB では、測定器のすぐ近 ROM ロ泉されています [6])0 画面ダンプを撮るには、 くにコンピュータを置く必要がありますが、ネットワーク QP 0 , 3 " というコマンドを送信します。すると、 F1uke 経由でつなげるのなら、遠隔言則なども可能になります。 192 から画面ダンプのデータが PostScript 形式で送信さ XPort のシリアル・インターフェイスは SL ー Zaurus と れてきます。このデータを SL-Zaurus 側で script コマ 同じ低電圧仕様なので、簡単に SL-Zaurus の I/O ポー ンドを使ってファイルに保存し、それを図 5 の perl スク トに接続できるかもしれません。おもしろい応用例がみつ リプトで画像ファイルに変換します。 かったら、紹介したいと思っています。 このときの手川頁を図 6 に示します。この例では、 19 , 200 画面ダンプの取得 bps で接続しています。 Fluke 192 ではコマンドがエコー バックされないため、 utip を半二重モードで動かし、ロ 7 月号で使った測定器は、 Fluke のスコープメーター ーカルエコーを有効にしています。また、 Fluke 192 か FIuke 192 です。これは、シリアル・インターフェイス ら送られてくるデータの改行文字は、、 \ r " なので、改行文 でコンピュータに接続できます。さきほどのルータの場合 字を、、 \ r \ 11 " に変換しています。半二重モードの指定には と同様、写真 6 のように接続します。 -h オプションを、改行文字の変換には -r オプションを 画面をダンプしたり、測定値を読み取る基本的な手川頁は、 使っています。 さきほどのルータの接続の場合と大きくは変わりません。 なお、多くの測定器では、 Windows 用のソフトウェア シリアル通信用のソフトウェアで接続し、それぞれの測定 カイ寸属していたり、オプションで販売されています (Fluke 器に応じたコマンドを送信すれば、測定器からデータが送 192 の場合は、、、 FlukeView" というソフトウェアが用意 られてきます。ルータなどと異なるのは、 SL-Zaurus 側 されています ) 。これらを使うと、測定データや画面ダンプ から入力したコマンドが多くの測定器ではエコーバックさ も簡単に取得できます。 れない点です。 測定器に送るコマンドの書式は、たいていは取扱説明書 しかし、これらのソフトが対応していない SL-Zaurus やメーカーの Web サイトなどに掲載されています。多く などのマシンから測定器を操作しようとしたり、あるいは、 の測定器では、そのコマンドの使い方がマニュアルなどに サポートされていない機能を使おうとすると、上記のよう に手動でコマンドを打ち込んだり、その操作をおこなうた 13 http://www.tektronix.co.jp/News/Anov/virus-info. めのプログラムを用意する必要があります。 html 写真 6 FIuke 192 と SL-Zaurus 187 UNIX MAGAZ 工 NE 2004. 1

2. UNIX MAGAZINE 2004年1月号

連載 /UNIX Communication Notes 図 4 VPN ルータを用いた中継 (IPsec など ) ロ ネットワーク 1 ( 163.221.1 / 24 ) VPN ルータ 1 ネットワーク インターフェイス ネットワーク 1 三 ( 163.221.1 / 24 ) 図 5 IPsec を有効にするオプション インターネット VPN ロ ネットワーク 2 ( 163.221.2 / 24 ) : / ヾーチャ丿レ丿レータ VPN ルータ 2 ネットワーク 2 インターフェイス ネットワーク ( 163.221.2 / 24 ) : options IPSEC options IPSEC—ESP #opt ions IPSEC—DEBUG # IP security # IP security (encryption part ; define w/IPSEC) # debug for IP security Network という名前からも分かるように、プライベート・ ネットワークのイ反想的な拡張という未合いをもっている。 つまり、トンネルモードは VPN で当初から考えられてき たものといえる。このため、 IPsec のトンネルモード機能 を実装した VPN ルータも数多い。 私カ所属する奈良先端科・学肢術大学院大学情報科学研究 科では、幅広い産学共同プロジェクトを推進しているが、 在京企業とのより緊密な共同研究を推進するために、東京 にリエゾンオフィスを設置した。その際、 IPsec を用いた VPN ルータを奈良キャンパスと東京オフィスの両方に設 置し、キャンパス・ネットワークのイ反想的な拡張を実現し、 東京オフィスでもキャンパス・ネットワーク内と同様のサ ービスおよび操作性を提供している。この種の VPN ルー タとしては、早くから製品化していた NetScreen のもの カ陏名だが、 Cisco Systems などの大手べンダーも VPN 機能をもつレイヤ 3 スイッチを販売している。 IPsec では、 2 つの重要な機能力甘是供される。 1 つは通 信相手が誰であるかの特定、もう 1 つはデータが通信路 の途中で改竄されていないかの確認である。これらの機能 を提供しているのが、 AH (Authentication Header) と 呼ばれるオ内へッダを構成する機構である。暗号化の処理 は、 IPsec における ESP (EncapsuIated Security Pay- load) を構成する機構として実装され、さまざまな暗号化 方式カ吏えるようになっている。 68 現在、 IPsec は IPv6 上での実装が進めら楸さまざま なプラットホームに IPv6 の機能とともに組み込まれてい る。もちろん、 NetBSD でも IPsec の機能力坏リ用できる。 そこで、以下ではこの機能を用いた VPN の構成について 考えてみよう。たとえば、図 4 を構成するゲートウェイ、 そして VPN ルータ 1 ~ 2 を NetBSD で構成してみる。 カーネルを作りなおす NetBSD 上での IPsec の実装は、 AH および ESP の 処理についてはカーネルの内部で実装されている。 IPsec は、実祭には AH と ESP のほかに IKE (lnternet Key Exchange) と呼ばれる機能から構成される。 IKE は暗号 鍵を自動的に交換する機能で、ユーザー空間で実装されている。今 回の VPN の言屶では IKE の機能は使わないので、説明は省略 する。未のある人は、 NetBSD の WWW サイトやオンライ ン・マニュアル racoon ( 8 ) を手、かりにするとよい。 IPsec の機能をカーネルに組み込むためのカーネル・オ プションは、標準では有効になっていない。そこで、まず カーネルに IPsec 機能を追加する必要がある。それには、 カーネルのコンフィギュレーション・ファイルを編集し、 IPsec 関連の 2 つのオプションを有効にする ( 図 5 ) 。 3 つ 目の IPSEC-DEBUG は、 IPsec のカーネルコードをデ バッグする際に使われていたオプションなので有効にしな くてもよい。 UN 工 X MAGAZINE 2004. 1

3. UNIX MAGAZINE 2004年1月号

写真 3 各種シリアルケーカレ 連載 1 Zaurus with Linux 184 アルで確認する必要があります。また、コネクタが標準的 ります。このあたりは、接続する機器の仕様などをマニュ 合のフロー制御用信号線の使い方が通常とは違うものもあ トレート結線でないと駄目だったり、クロス結線にする場 ものを使うといいでしよう。ただし、機器によっては、ス 両端が 9 ピンのメスコネクタで、クロス結線になっている つものが多いようです。これらの機器を利用する場合は、 最近の機器は、 9 ピン DTE 仕様のシリアルポートをも プルを利用します。 ( データ回線終端装置 ) を接続するときはストレート・ケー を、 DTE 機器とモデムや TA ルータのような DCE 機器 機器 ( データ端末装置 ) 間をつなぐときはクロスケープル 一般的には、 SL-Zaurus やコンピュータなどの DTE 使い分けなければなりません。 結線のケープルとクロス結線のものがあり、状況に応じて ピンのものと 9 ピンのものがあります。また、ストレート ルに注意が必要です。シリアルポートのコネクタには、 25 てコンピュータを使う場合には、接続用のシリアルケープ ル端末を接続したり、なんらかの装置のシリアル端末とし SL-Zaurus にかぎりませんが、コンピュータにシリア シリアルケーブル クセスできるようになります。 りません。その後は、標準的な RS232C ポートとしてア sume" を入力し、カードを利用可能な状態にしなければな となります。このため、コマンドラインから、、 cardctl re- ターフェイスのカードは、認識されたあとサスペン翻た態 電源を入れただけでは使えないことです。シリアル・イン 注意が必要なのは、カードを挿し込んで SL-Zaurus の ています。 ードによって違いますが、 REX-CF60 では土 5V となっ /dev/modem としても利用可能です ) 。電圧レベルはカ な D-Sub ではないものもあります (Cisco のルータでは、 RJ-45 を使ったものがあります ) 。 SL-Zaurus にいろいろ な機器をつなぐのなら、写真 3 のように、タイプの違うケー プルやアダブタを用意しておくといいでしよう。 周辺機器の接続 シリアル端末の接続 UNIX マシンでは、シリアル・インターフェイスに端末 カ月妾続できます。もちろん、これは SL-Zaurus でも可能 です。 シリアル端末に関する情報は /etc/inittab に言当杢しま す。 inittab には、 1 行に 1 つの端末の情報を、 id : ? 、 unlevel : ac 0 れ : 盟7 、 ocess という書式で記していきます。 記は inittab のエントリを識別するためのもので、通 常、 /dev/ttY* の * の部分を書きます。たとえば、赤外線 ポートの場合は、、 SI " になります。 れ眦 / には、どのランレベルで process を動かすかを 書きます。ランレベル 2 ~ 5 においてシリアル端末を有効 にするには、、、 2345 " とします。 SL-Zaurus の通常のラン レベルは 5 なので、この項目は、、 5 " だけでもかまわないで しよう。 “。〃には、、 ocess カ鮗了した場合の動作を記述し ます。動作には各種ありますが 6 、シリアル端末用には respawn" を指定します。 process には、そのシリアルポートで動かすプログラム ( とそのオプション ) を指定します。シリアル端末を接続す る場合は /sbin/getty を使います。 getty では、オプショ ンとして通信速度とシリアルポートを指定します。 したがって、 ttyS1 にシリアル端末を 9 , 600bps で接続 する場合は、 /etc/inittab に次の謎杢を追加します。 SI : 5 :respawn: /sbin/getty 9600 ttyS1 シリアル端末の /etc/inittab への登録カ絲冬ったら、 init プロセスに新しい /etc/inittab を読み込ませて登録内容 6 田は、 inittab のマニュアルページ (http://www.linux.or.jp/JM /htmI/SysVinit/man5/inittab.5. html) などを参照してくださ UNIX MAGAZINE 2004. 1

4. UNIX MAGAZINE 2004年1月号

連載 /UNIX Communication Notes UNIX MAGAZ 工 NE 2004. 1 が多い。原因を調べると、 PPTP 自体のトラフィックを拒否し る大学に PPTP でアクセスしようとしても、接続できないこと は IPv4 と NAT との組合せで実現しているため、私の所属す 25Mbps のリンクを提供しているようだ。ところが、ほとんど ゲートウェイから客室までは VDSL による 10Mbps または くの場合、ホテルは直接 ISP のネットワークに接続しており、 のインターネット・アクセスを提供するところカ寸曽えてきた。多 最近、米国などのホテルでは、客室内からプロードバンドで よく検副する必要がある。 については、組織全体でどのような方針をとるかを事前に 題になることがある。したがって、 PPTP サーバーの設置 しかし、細織内に PPTP サーバーが増えると管理上の問 的には、内部ネットワークでのアクセスを制限するとよい。 ポリシーを十分に考慮したうえで設計すべきである。一般 きをどのようにアクセスさせるかは、糸哉のセキュリティ・ は、図 1 の 1 ~ 3 に相当する。とくに、 2 の〃からさ トラフィック・マーキングをおこなう上記の 3 つの地点 簡単である。 いれば、ルータなどでフィルタリングを言するときも 対して特定のアドレスプロックから割当てをおこなって 定のフィルタリングを施したい場合、それらのホストに 組織内で、 PPTP 経由でアクセスするホストについて特 当てるのがよい。 ネットワークのアドレスプロックは、特定のものを割り ・ PPTP 経由でアクセスするホストに割り当てる組織内 アクセスさせてもよい。 頼を置けるのであれば、組織内ネットワークに無制限に ん、 PPTP 経由でアクセスしてくるユーザーに全幅の信 へのアクセス制御をおこなってもよいであろう。もちろ セスできないように糸各を静的に設疋したり、サービス ポータルやグループウェア・サーバーなど ) にしかアク いは特定のネットワーク・サービス ( 組織内の WWW 変わる。たとえば、〃からは特定のネットワーク、ある するかは、その細織のセキュリティ・ポリシーに応じて からさきの内部ネットワークへどのようにしてアクセス のためのゲートウェイとして機能する。したがって、丑〃 ・〃〃は、外部から PPTP を介してアクセスするホスト ウォールそのものへの負荷カ減できる。 ルの前段に設置した負荷分散器で処理すると、ファイア て実現できるので、 11 月号で紹介した、ファイアウォー 図 1 PPTP トラフィックだけをバイバスさせる構造 インターネット 負荷分散器 要素ファイアウォール 企業内ネットワーク ( 内部 ① TCP/1723 、 GRE で Hp と通信 ② Hp(PPTP サーバー) VPN →非 VPN への変換 PPTP ノードへのゲートウェイ OPPTP ノード用の バーチャル・ネットワーク ているところもあるが、圧倒的に多いのは GRE の通過を許さ ないゲートウェイを使っているケースである。つまり、ホテルの NAT ゲートウェイが、 PPTP に必要なトラフィックを拒否して いるのである。この問題を解決するには、ホテルに設置されてい る NAT ルータの言定を変えてもらうしかないが、これはそう簡 単な交渉ではない。メールなどのやりとりは・商になっても、組 彳物内ネットワークのサービスカ吏えないようなできの悪い PPTP (NAT ルータ ) の言定には、正直なところ腹立たしい思いをする ことがある。 やつばり暗号化は使いたい さて、前号で説明した PPTP の設疋では、 VPN の本 来の長所である通信データの暗号化はいっさいおこなわれ ない。これは、たいへん悲しい状況である。 VPN の重要な機能の 1 つは、トンネリングを用いたネッ トワークのイ反想的拡張であるが、もう 1 っ忘れてはいけな いのが通信の暗号化である。とくに、糸目織内ネットワーク へのアクセスを前提とする VPN では、トラフィックの暗 号化が強く求められる。容易に想像できると思うが、 VPN 上を流れる情報は、本来は糸目織外の人にはみせたくないも のが多く含まれているからである。 65

5. UNIX MAGAZINE 2004年1月号

連載 /UNIX Communication Notes ーー 0 図 6 NetBSD の IPsec 旨を使った VPN の言綻 インターネット VPN ルータ 1 ( 163.221.1 / 24 ) ネットワーク 1 ロ # ! /bin/sh 図 7 setkey コマンドによる VPN 言又疋 VPN : 10.0.0.1 ネットワークレ F : 163.221.1.1 ロ ネットワーク 2 ( 163.221.2 / 24 ) VPN : 10.0.0.2 ネットワークレ F : 163.221.2.1 VPN ルータ 2 # こにルーティングの設定を追加してもよい setkey —c くく EOF add 10 . 0 . 0.1 10 . 0 . 0.2 esp 12345 -E blowfish—cbc "unixmagazine2003" add 10 . 0 . 0.2 10 . 0 . 0.1 esp 12346 -E blowfish—cbc 0X3ffe05014819ffff ; spdadd 163.221.1.0 / 24 163.221.2.0 / 24 any —p out ipsec esp / tu ⅡⅡ el / 10.0.0.1 ー 10.0.0.2 / require spdadd 163.221.2.0 / 24 163.221.1.0 / 24 any -p in ipsec esp / tun Ⅱ el / 10.0.0.2 ー 10.0.0.1 / requi て e EOF このオプションを肩効にしたら、カーネルを再コンパイ ルして再起動する。基本的には、これで IPsec を使う準備 カったことになる。 言又疋ファイルを用意する さきほどの図 4 では 163.221 / 16 カ且織内のネットワー クであり、それらカ翊互に接続されているように VPN で ネットワークを構成する。より正確に説明するために、図 4 のネットワークに対して、 VPN ルータのインターフェイ スの値を図 6 のように言定する。 注意 1 図 6 では、ルータの外向きのアドレスを 10.0.0.1 、 10.0.0.2 と書いているが、本来はプライベート・アドレスではなく、イン ターネット上で通信到達性が保証されるグローバル・アドレスで なければならない。さもないと、インターネットをまたいで設疋 する VPN にはならない。 この場合、それぞれの VPN ルータを以下の手川頁で設定 していく。以下では VPN ルータ 1 の設定例を紹介する。 1. 糸酷の言聢 まず、糸各制御の設定である。この構成の場合、ネット ワーク 163.221.2 / 24 のトラフィックをトンネリングの相 手に送り届ける必要がある。さらに、 IPsec でのトンネリ ングは 1 対 1 接続 (point to point) にみえることを考慮 UNIX MAGAZ 工 NE 2004. 1 し、次のような糸各言定をする。 # rout e —n add —net 163.221.2.0 163 . 221 . 2 . 1 # route —n add 163.221.2. 1 163 . 221. 1 . 1 これは、次に説明する VPN の設定よりも前におこなう。 システムの起動直後に rc. local が実行されるとき、 VPN を設疋するためのシェル・スクリプトを用意しておいて、そ の最初の部分で糸各言定をおこなうとよいだろう。 2. VPN の言綻 次に、 setkey コマンドを用いて VPN のための設疋を おこなう。 setkey は IPsec が管理するデータベースを操 作するためのコマンドで、通信相手とのあいだで使う暗号 鍵、通イ哉別子などを言する。 図 7 に、 VPN を設定するためのスクリプトを示す のスクリプトでは、 VPN ルータ 1 から 2 への IPsec 通 信と、 VPN ルータ 2 から流入する IPsec 通信の両方の設 定をおこなっている。 setkey コマンドの add 命令で、使 用する号アルゴリズムと暗号 - 鍵を指定し、 spdadd 命令 で通信ポリシーを追加する構造になっている。 VPN ルータ 1 から 2 への通信の設定は、スクリプト の 6 行目と 8 行目で指定している。 6 行目では、 IPsec で の通信の識別子 (SPI : Security Parameter lndex) を 、、 12345 " にし、使用する暗号アルゴリズムと暗号鍵を以下 のように設疋している。 日号アルゴリズム : blowfish-cbc 69

6. UNIX MAGAZINE 2004年1月号

連載 / Pe 日活用のヒント 図 7 stated-forward メソッドの状蒐 % 崟移 my-read : read 組込み関数に相当し、指定したバイト数 を読み込む。 初期状態 my-readline : くファイルハンドル〉に相当し、行末まで を読み込む。 my-readtilleof : ファイルあるいはソケットから EOF を 検出するまで読み込む。 my-flush : 入力バッフアに残っているデータだけを読み込 む。 上記のようにした理由は、 perl の入出力機構には入力 バッフアに残っているデータだけを読み込む手段がないか らである。これは、 relay-nofork で HTTPS の処理をお こなう際に必要になる。 read-one が HTTPS を検出したあと、 relay-nofork は TCP. pm の relay-nofork を呼び出し、そのなかで sys- 図 8 塊工ンコーディングの言蒄ムみの状当多 read を使って入力をおこなう。これに先立ち、入力バッ 初期状態 フアに残っているものだけを読み込んで出力しておかなけ ればならない。そうしないと、入力バッフアに残っている データが欠けてしまうことになる。 HTTP. pm の relay-nofork の実装 HTTP. pm の relay-nofork メソッドを実装するにあた り、私はまず TCP. pm の relay-nofork の延長で実装し ようと考えた。なにより TCP. pm の拡張としてはそれが 自然だし、 HTTP 要求 / 応答の境目を間違って認識しても 処理が滞ることが少なそうだからである。しかし、これは うまくいかなかった。その理由を説明しよう。 最初に考えたのは、以下のようなコーディングである。 まず、 HTTP. pm の relay-nofork メソッドの中心部分を 以下のようにする。 while ( my @ready = $select—>can—read() ) { foreach my $src ( @ready ) { my $dest = $dest{$src}; sysread($src, $block, BLOCKSIZE) ; my $size $self—>stated—forward($block, $dest) ; unless ( $size ) { shutdown ($dest , 1 ) ; $select—>remove($src) ; $thread{$src}->join() ; next ; 開始行 ヘッダ データ本体 要求 / 応答 読込み完了 塊のバイト数 塊の中身 テータの終端 を HTTP のデータとして組み立てていく 私には、こ 0 、 ed ゴ 0 , 、 0 , d メにを書き上げる = とができなかった。時間をかけれは不可能ではないだろう が、ネ礬で見通しが悪く、保守性もよくないプログラムに なると思ったのである。なぜなら、 stated-forward は図 7 に示すような状態遷移を管理しなければならないからだ。 図 7 を見るとそれほと礬隹にはならないと思うかもしれ ないが、この図はすべてを表していない。たとえばデータ 本体の処理は、塊工ンコーディング (chunked encoding) の場合とそうでない場合に大別される。そして、塊工ンコ ーディングのムみでは図 8 のような状態遷移を管理しな ければならない。 さらに、ヘッダの各フィールドや塊のバイト数の読込み は行単位の処理だが、上記のコード内で読み込まれるデー タは行単位ではないので、行単位の処理のための状態遷移 そして、 stated-forward メソッドは受け取ったデータ 79 UNIX MAGAZINE 2004. 1

7. UNIX MAGAZINE 2004年1月号

ソ匠ま ーの名ざ ド“ま ンたさ の行 マれの 円 中単 0 コらグ 0 動を 種めン書 8 各はミ説 のりラ解 格 ちグな 価 0 、ロ的 体 るちプ践 本 いカ O 実 ジ刀グ れみすく 一ン わ読まっ 著ペミ 使をびに 4 でド学身 上一をが x コ。法 見レⅨロ 治 Ⅳプ ス技手 「一のな 第、ツ ・グク外ロ ロテ秤 : http://www.ascii-store.com/ Web で OK!! 0 Linux 、 BSD 、 SO ね s すべてのⅣ侊ユーザーに Kirk wainrow 著 / 金田芳明訳 各 : A5 判 / 240 ページ 本体価格 2 , 000 円 IJN Ⅸでは管理・保守などすべきことは多い。最近は GIJI ツール から管理を行うことも可能ですが root たるものどんな状況でも管 理・保守できなければなりません。より便利なコマンドの利用法、 効果的なシェルスクリプトを実際の事例に即して解説します。 CO い下 C 引 0 、 プログラミング・ テクニック ィ更利ワサ の便利ヮサ UN Ⅸの便利ワサ ・ネットワーク裏技編 ISBN 4-7561-3370-3 ・ファイル小技編 ISBN 4-7561-3371-1 ISBN 4-7561-4389- X フリーソフトウェアと フリーソフトウェデと 自由な社会 自由な社会 —Richard M. St 訓 man 工ッセイ集 Cygwin 十 Cygwin JE —Windows で 動かす UN Ⅸ環境 4.4BSD の 4.4BSD の 設計と実装 設計と実装 W ー n d 0 w 、で第かす u N ー X ま境 Cygwin 佐藤竜ー、いけだやすし、 野村直著 Richard M. StalIman 著 Marshall Kirk McKusick ほか著 B5 変型判 / 352 ページ 長尾高弘訳 砂原秀樹監訳、七丈直弘訳 本体価格 2 , 800 円 B5 判 / 624 ページ A5 判 / 368 ペーシ CD - ROMI 枚付属 本体価格 3 , 200 円 本体価格 5 , 800 円 ISBN 4-7561-4305-9 ISBN 4-7561-4281-8 旧 BN4-7561-4346-6 著作権からフリーソフトウェア運動の Cyg Ⅳ in の設定・利用方法から高度な BSD 作者たちによる解説書、 歴史まで重な資料ばかり サービスの利用まで解説 待望の翻訳版登場 ! IJN Ⅸのシェルやコマンド、各種サーバーを Windows フリーソフトウェア財団 ( FSF ) の創立者日 icha 「 d M. 4.4BSD の作者たち自身が内部構造と機能を実装する A で動かしてしまう Cygwin 。先行収録の Cygwin St 訓 man 初の工ッセイ集。オープンソース界のカリスマが 上で採用された概念、データ構造、アルゴリズムについ JE ( 日本拡張バッケージ ) を使って Cygwin の日本語 て実装を例にして詳しく解説したバイプル本です。 語るフリーの真意とは ? 環境も大幅改善できます。 1 実践セキュリティ 頼れるファイア ウォールを作る 実用 UNIX データ処理編 入門 UNIX 改訂新版 日第ー生 : 竹」・ユリ - アイ 実用 UNIX 入門 UNIX テータ処理編 改訂新版 羽山博著 B5 変型判 / 256 ペー ン 本体価格 1 , 900 円 ISBN 4-7561-3381-9 UNIX 初心者用の教科書として最適 ! 羽山博著 B5 変型判 / 336 ペーシ 本体価格 2 , 500 円 ISBN 4-7561-4248-6 白崎博生著 A5 判 / 288 ペーシ 本体価格 2 , 800 円 ISBN 4-7561-4296-6 頼れるファイアウォールを 適切に運用しよう ! 低価格のルータや Linux を用いたファイアウォー ルの作り方から攻撃されたときの対処まで、安全 で快適なインターネット・ライフのためのセキュリ ティ対策を丁寧に解説します。 UN Ⅸのデータ処理をマスター ! sed 、 awk 、 perl によるテキスト処理、引 MP による グラフィック加工、 XMMS や刈 NE によるマルチメデ ィア処理まで、 Linux / IJN Ⅸのデータ処理を徹底解説 ! er:es マルチリンガルエデイタ Mu 厄 2.0 の初歩から解説。 大木敦雄著 / A5 判 / 224 ページ / 本体価格 1 , 748 円 ISBN 4-7561-0300-6 x やキャラクタなど各環境別に日本語環境設定を解説。 松田晃ー、本純一共著 / A5 判 / 272 ページ / 本体価格 2 , 136 円 ISBN 4-7561-0354-5 環境設定方法をテーマ別にやさしく解説。 久野禎子、久野靖共著 / A5 判 / 208 ページ / 本体価格 1 , 748 円 ISBN 4-7561-0284-0 tcl / tk で多様な GUI を実現。 久野靖著 / A5 判 / 244 ページ / 本体価格 2 , 000 円 ISBN 4-7561-1293-5 UN Ⅸの基礎知識とその考え方から実用的なコマンド の使い方まで丁寧にわかりやすく解説。 PC-UNIX (Linux/FreeBSD) 対応にした改訂版です。 JavaScript プログラミングの入門書。 久野靖著 / A5 判 / 224 ページ / 本体価格 1 , 800 円 ISBN 4-7561-3871-3 WWW情報発信の核となる正しい技術を解説。 久野靖著 / A5 判 / 256 ページ / 本体価格 2 , 0 円 ISBN 4-7561-3652-4 デバイスドライバなど F 「 eeBSD カーネルを初心者向けに解説。 大木敦雄著 / B5 判 / 192 ページ / 本体価格 2 , 000 円 ISBN 4-7561-3313-4 IJN Ⅸの基礎の基礎を習得。 久野靖著 / A5 判 / 220 ページ / 本体価格 1 , 553 円 ISBN 4-7561-0316-2 入門 MuIe UN Ⅸ日本語環境 UN Ⅸの環境設定 入門 tcl/tk 入門 JavaScript 入門 WWW ー IJN Ⅸでの情報発信技術ー FreeBSD カ - ネル入門 改訂版 UN Ⅸの基礎概念 株式会社アスキー 〒 160-8584 東京都新宿区信濃町 34 番地 JR 信濃町ビル電話 ( 03 ) 5362-3300 http://www.ascii.cojp/

8. UNIX MAGAZINE 2004年1月号

0 ルーティンク 小原泰弘 Zebra ルーティング・ソフトウェア 前回までに、ルータがバケットを車幻去する仕組みと、そ の際にバケットの通り道を決める経路表の概念をみてきま した。また、スタティック・ルーティングでは人間が手作 業で糸各を設定するため、面倒なだけでなく、ネットワー クの故障に自動的に対応できないことも説明しました。 この連載では、ダイナミック・ルーティングを説明する前 に、フリーでオープンソースのルーティング・ソフトウェア GNU Zebra について説明します。 Zebra は、スタティッ ク・ルーティングをおこなうための設疋端末の機能を備え ています。今回は、 Zebra の概要と、その上でのスタティ ック・ルーティングの設定方法を紹介します。 スタティック・ルーティングをおこなうだけなら、 zebra はとくに必要ではありません。 Zebra は、基本的にはダイ ナミック・ルーティングを実行するためのソフトウェアで す。しかし、現実の世界のルータでは、スタティック・ルー ティングとダイナミック・ルーティングが混在し、さらに ダイナミック・ルーティングのなかで複数のルーティング・ プロトコルを動作させることがよくあります。 Zebra は、 このような場合にたいへん便利です。 Zebra の概要 上記のように、 Zebra はフリーでオープンソースのルー ティング・ソフトウェアです。したがって、ソースコード をダウンロードしてコンパイルすれば、誰でも使えます。 zebra の利点の 1 つは、多くのプラットホームで動き、 対応するプロトコルも多いことです。 Linux 、 FreeBSD 、 NetBSD 、 OpenBSD 上で動くことカ在認されており、 So- laris で利用するためのパッチもあるようです。サポート するダイナミック・ルーティングのプロトコルには、主要 UNIX MAGAZINE 2004. 1 な IPv4 用プロトコル (RIP 、 OSPF 、 BGP) のほか、 RIPng 、 OSPFv3 、 BGP4 十といった IPv6 用のプロト コルがあります。 数年前まで、 UNIX 上で使えるフリーなルーティング・ ソフトウェアとしては GateD が有名でした。 GateD の 商用化 1 と zebra の登場にともない、 UNIX でのルーティ ングには Zebra を利用するのが一ヨ殳的になっています。 Zebra には、設定を動的に ( 再起動せずに ) 変更できた り、設定やその確認をおこなうための端末機能 ( シェルな ど ) のように、イリな機能がたくさんあります。 Zebra の 設疋端末へは、 Telnet プロトコルでアクセスできます。 の端末では、 Cisco 製のルータによく似たシェルカ吏える ようになっており、コマンドラインでの補完や候補の表示 などがおこなえます。 Zebra が普及した要因の 1 つは、ひろく使われてい る Cisco のルータと使い方や概念が同じだからでしよう。 Cisco のルータに置れている人なら、必要な設定はすぐに おこなえるはずです。ただし、 Zebra 特有の制限や特徴に はすこし分かりづらいところもあります。今回は、それら の部分を重点的に説明します。 Zebra は開発中であり、公開されているのはべータバー ジョンです。公式の安定バージョンはまだリリースされて いませんが、それでも Zebra を用いて運用されているネッ トワークは世界中にたくさんあります。 Zebra は、石黒邦宏さんが開発したソフトウェアです。 その大半は石黒さんカ翳いたものであり、統一感のある、ソ ースコードのきれいなソフトウェアです。そのため、拡張 性も高く、ほかのプラットホームへの移植や新たな機能の 1 http://www.nexthop.com/products/gated.shtml 131

9. UNIX MAGAZINE 2004年1月号

連載 / 旧ルーティング 図 2 Zebra の構造 バケット ソケット ルーティング経路表 zebra 情報、経路の交換 インターフェイス ripd 図 3 丿レーティングプロトコ丿レ デーモン ospfd bgpd システム カーネ丿レ バケット転送 zebra デーモンと各デーモンの関係 ユーザー Te 旧 et コネクション ↓ ospfd ↓ bgpd UNIX ドメインソケット 、、、インターフェイス zebra 情報、経路の交換 システムカーネル ルーティング・メッセージの送受信 ません。 Zebra のデーモンがおこなうのは、ルーティング・ メッセージをほかのルータと交換し、自システムの糸登各表 を作成することだけです。実際のバケット転送は、カーネ ルがおこないます。バケット転送の際にカーネルカ釜路表 を参照するため、 zebra を用いてバケットの通り道をコン トロール ( 経路制御 ) することができるわけです。ただし、 、、ルータがどのくらい速くバケットを転送できるか " という 点には、 Zebra は関知しません。これは、ルータのハード ウェア構成や、プラットホームのカーネルの効率に依存し ます。 利用しないルーティング・デーモンは、起動する必要は ありません。たとえば、 RIPng を動かすだけのルータで あれば zebra デーモンと ripngd デーモンを起動すればよ く、 ospfd や bgpd などは起動する必要がありません。ま た、もつばらスタティック・ルーティングをおこなうルー タで Zebra を利用するのなら、 zebra デーモンだけを起動 すればよいわけです。今回の末尾近くで説明する設定をお こなうとき、起動する必要があるのは zebra デーモンだけ です。 Zebra の各デーモンには、設疋用のイ反想末の機能があ ります。各デーモンは、特定のポート番号で Telnet プロ トコルによる接続を待ち受けています。ここで動的な設定 や、設定・動作伏況の確認をおこなうことができます。設 定用端末の詳細はします。 zebra デーモンと、 ripd などのルーティングプロトコ ル・デーモン ( 以下、ルーティング・デーモン ) の関係は、 UNIX MAGAZINE 2004. 1 図 3 のようになっています。各デーモンと zebra デー モンは、 UNIX ドメインソケットを用いたコネクション を確立します ( これを TCP ソケットを利用したコネク ションに変更するには、コンパイルする際、 configure に —enable—tcp—zebra を指定します ) 。 各ルーティング・デーモンがもつ外部へのインターフェ イスは、カーネルに対するルーティング・メッセージの送 受信用ソケット、 zebra デーモンに対する UNIX ドメイ ンソケット、そしてユーザーに対する設疋粫末用 TCP ソ ケット (Telnet ターミナル ) の 3 つです。 ー殳的なルーティング・デーモンの動作は、次のように なります。 ユーザー端末や zebra からの入力もプロトコル・イベン ル・イベントをスケジュールする ( 上記の 4 に戻る ) 。 5. ルーティング・メッセージの受信から、適切なプロトコ 要であればルーティング・メッセージを送信する。 4. スケジュールされたプロトコル・イベントを実行し、必 から、適切なプロトコル・イベントをスケジュールする。 3. 設疋ファイルとネットワーク・インターフェイスの情報 イス情報を読み込む。 2. zebra デーモンに接続し、ネットワーク・インターフェ 1. 起動後、設疋ファイルから言定を読み込む。 て実現されます。プロトコル・イベントの実行時には糸各 れは、 lib/thread. c モジュールを用いてイ反想スレッドとし トと同様にスケジュールされ、並行して実行されます。 133

10. UNIX MAGAZINE 2004年1月号

連載 /UNIX Communication Notes ーー 0 図 3 VPN ルータを用いたレイヤ 2 拡張 (SSH 、 PPTP など ) ロ ネットワーク 1 ( 163.221.1 / 24 ) インターネット ロ 163.221.1.153 VPN ルータ その他のパッケージ VPN ルータ ーインターフェイス ネットワーク FreeBSD 用に開発されたパッケージだが、残念ながら に MPD (Multi-line PPP Daemon) も有名である。 PPTP を利用するためのパッケージは、 Poptop 以外 NetBSD には移植されていない。 いたい ) 。 から導入できる ( 言田は、上記のページなどを参照してもら 最新バージョン ( 執筆時は 3.14 ) は、 FreeBSD の ports ・ http://www.dellroad.org/mpd/ MPD に関する情報は、下記の URL で得られる。 いであろう。 サーバーを構成する場合は、 MPD の導入を検討してもよ 理も高速である。 FreeBSD べースのシステムで PPTP netgraph という機能を用いて実装されており、 PPP の処 に導入できる。 MPD は、 FreeBSD の特徴の 1 つである FreeBSD ではパッケージが用意されているので、簡単 方法、もう 1 つは遠隔地にある 2 つのネットワークを仮想 は、端末に対して VPN によってネットワークを拡張する 11 月号で、 VPN の 2 つの実現方法を説明した。 1 つ のが IPsec である。 VPN について述べるうえで、もう 1 つ忘れてならない IPsec UN 工 X MAGAZINE 2004. 1 VPN の旧 ノヾーチャ丿レ ネットワーク インターフェイス 的に同一のネットワークとして運用するというものである。 図 3 ~ 4 に、それぞれの典型的な構成方法を示す。前者の 代表例が SSH や PPTP などによるアクセスであり、後 者のイ弋表例が IPsec を用いたネットワーク拡張である。 IPsec とは何か もともと、 IPsec はネットワーク層のプロトコルであ る IP におけるセキュリティ拡張機能として定義された。 IPsec は IPv4 ではオプションだが、 IPv6 では必須実装 機能となっているため、 IPv6 でのセキュリティ機能強化の 中心的な存在となっている。 IPsec では、 ・トランスポート・モード ・トンネルモード という 2 つのモードが考えられてきた。 トランスポート・モードは、インターネット上の任意の 2 つのホスト間での通信を暗号化によって保護するための 機構である。これは、各工ンドノードに IPsec が実装され ていなけれは利用できないこともあり、これまでのところ はあまり普及していない。 トンネルモードは図 4 に示したような考え方で、 IPsec を用いて遠隔地の複数のネットワークを仮想的に統合し、 さらに、それらのネットワーク間の通信を暗号化して保 護しようというものである。 VPN は、 Virtual Private 67