...

IPv6 - 阪南大学

by user

on
Category: Documents
103

views

Report

Comments

Transcript

IPv6 - 阪南大学
IPv6 を使ったネットワーク構築
阪南大学
経営情報学部
5107118
澤竹
1
経営情報学科
潤一郎
目次
第2章
関連研究 ............................................................................................................. 4
第1節
IPv4 について .................................................................................................... 4
第2節
IPv6 について .................................................................................................... 5
第3節
KAME プロジェクト・FreeBSD について ........................................................ 6
第4節
第3章
Linux について .................................................................................................. 6
Linux での IPv6 実装 ......................................................................................... 8
第1節
Linux の IPv6 実装の現状 .................................................................................. 8
第2節
IPv6 の基本設定 ............................................................................................... 10
第3節
アプリケーションの導入 .................................................................................. 11
第4節
パッケージ管理によらないアプリケーションの導 ........................................... 13
第5節
アプリケーションの設定 .................................................................................. 14
第6節
動作確認 ........................................................................................................... 16
第7節
IPv6 アドレス用マクロ .................................................................................... 18
第 8 節 Linux の IPv6 対応の将来動向......................................................................... 19
第 4 章 FreeBSD での IPv6 実装 ..................................................................................... 20
第1節
OS の基本設定.................................................................................................. 20
第2節
アプリケーションの導入 .................................................................................. 22
第3節
アプリケーションの設定 .................................................................................. 26
第 4 節 動作確認 ........................................................................................................... 28
第 5 章 IPv6 対応ルータについて .................................................................................... 31
第1節
IPv6 対応ルータの仕様の比較 ......................................................................... 31
第2節
IPv6 対応ルータ 8 製品の詳細説明 .................................................................. 31
第1項
corega/CG-WLBARGPXB[5] ......................................................................... 31
第2項
corega/CG-BARPRO6[6] ............................................................................... 32
第3項
第4項
BUFFALO/BBR-4HG[7]................................................................................ 32
BUFFALO/WHR-G301N[8] .......................................................................... 33
第5項
PLANEX/BRL-04M[9]................................................................................... 33
第6項
PLANEX/MZK-WNH[10] .............................................................................. 34
第7項
I・O DATA/WN-G54/R3[11] ............................................................................ 34
第8項
I・O DATA/NP-BBRL[12] ............................................................................... 35
第3節
ホームネットワークの構築事例 ....................................................................... 35
第 4 節 製品仕様の比較結果および考察 ....................................................................... 36
第 6 章 まとめ .................................................................................................................. 37
参考文献 ............................................................................................................................. 38
謝辞 .................................................................................................................................... 38
2
第1章
はじめに
世界でのインターネット利用人口は、2006 年時点で 10 億人を越えて現在も増加し続
けている。2013 年には世界でのインターネット利用人口は 22 億人になるとも言われて
おり、全世界の 3 割以上の人がインターネットを利用すると予測されている。しかし、
このままインターネット利用人口が増え続ければ、IP アドレスが枯渇するという問題
が予想されている。現在、IPv4 というプロトコルが使用されており、振り分け可能な
IP アドレス数は、232(=4,294,967,296)個である。この IP 枯渇問題に対し、IETF
(Internet Engineering Task Force)会議では、Classless Inter-Domain Routing(以
下 CIDR)と Supernetting を検討することになった。CIDR はクラスを廃止すること
によりアドレスの利用効率を高める技術である。Supernetting は、経路を集約しその
数を削減するための技術である。これらの技術は実用化され、アドレスの枯渇時期を先
延ばしにすることを可能にした。しかし、2009 年 8 月時点での未使用の IPv4 アドレ
ス数が約 5 億個とされており、ここ数年で IP アドレスが枯渇するのは間違いないとさ
れている。
そこで、現在 IP 枯渇問題を解決するために実装が進められている IPv6 というプロ
トコルに着目した。IPv6 プロトコルは、現在主流である IPv4 プロトコルにかわるもの
として開発されている。
それまで最大であった IPv4 プロトコルの IP アドレスの数を、
2128(=340,282,366,920,938,463,463,374,607,431,768,211,456)個まで使えるという
ものである。これだけの数の IP アドレスが使用可能になれば、IP 枯渇問題は解消され
ることになる。現在、日本国内では一部の ISP により商用・実験サービスが開始され
ている。
そこで、本論文では FreeBSD と Linux を利用した IPv6 ネットワーク構築を紹介す
る。2 章では IPv6 全体の概要と Linux、KAME プロジェクトの FreeBSD について紹
介する。3 章では Linux を利用した IPv6 プロトコルの構築を紹介する。4 章では
FreeBSD を利用した IPv6 プロトコルの設定を紹介する。5 章では IPv6 対応ルータの
仕様比較を紹介する。6 章では本論文のまとめを述べる。
3
第2章
関連研究
2 章では、本研究に使用する技術や例題を紹介する。1 節では IPv6 の概要について、
2 節では IPv6 プロトコルの概要について、3 節では KAME プロジェクト・FreeBSD
について、4 節では Linux について紹介する。
第1節
IPv4 について
IPv4 とは、Internet Protocol Version 4 の略である。OSI 参照モデルにおいてネッ
トワーク層に位置づけられるプロトコルである。転送の単位であるパケットの経路選択
と、その断片化と再構築が主な機能である。TCP/IP の基本機能として現在のインター
ネットで利用されている IP はこれがほとんどである。アドレス資源を 32 ビットで管
理しているため、識別できるコンピュータの最大数は 42 億 9496 万 7296 台である。ま
た、IP パケットの先頭には必ず IP ヘッダが付加され、それにより経路選択などの IP
機能が実現されている(図 1)
。[2]
そして、IP で用いられる 32 ビットのアドレスは IP アドレスと呼ばれており、この
IP アドレスはネットワークアドレスとホストアドレスに分けて用いられる。通常は、
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
バージョン ヘッダ長
サービス種別
識別子
生存時間
全長
フラグ
プロトコル
断片位置
チェックサム
送信元アドレス
宛先アドレス
拡張情報
データ
【図 1】パケット形式図
ドット付き十進法あるいはドットアドレスと呼ばれる 0~255 の数字 4 組をドットでつ
ないだ形で表記される。ネットワークアドレスとホストアドレスの境界は、IP アドレ
スの先頭のビット列で定められ、境界の位置により IP アドレスはクラス(class)とし
て分類されている(図 2)。
クラス 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
ホスト
a 0 ネットワーク
ネットワーク
ホスト
b 1 0
1
1
0
ネットワーク
ホスト
c
1 1 1
拡張アドレスモード
【図 2】
クラス分類図
4
第2節
IPv6 について
IPv6 とは、Internet Protocol Version 6[3]の略であり、IPv4 の次世代プロトコルとし
て注目されている。IPv4 の次世代プロトコルとしての検討は、1992 年頃から始まり、
1994 年に複数の IP 候補から SIPP(Simple Internet Protocol Plus)という IP が採用さ
れ、翌 1995 年に IPv6 となり基本仕様が取り決められた。また、現状では個人への割
り 当 て が 可 能 な グ ロ ー バ ル IP の 数 は 限 り が あ る た め 、 NAT(Network Address
Translator)を使ってプライベートアドレスとグローバルアドレスを変換して通信して
いる。しかし、ネットワークを相互接続する必要がある場合、プライベートアドレスを
使用している場合、ネットワークの管理者が相互接続をしようとすれば、アドレスが重
複 す る 可 能 性 が 出 て く る 。 さ ら に 、 NAT の ア ド レ ス 変 換 が IPSec ( Security
Architecture for Internet Protocol)では改ざんとなってしまうために、IPSec が機能
せず、IPSec が使用できないということもある。また、当初インターネットは研究ネッ
トワークから始まったが、音楽、画像、動画などの大容量のマルチメディア情報をやり
取りするようになって IPv4 では対応できなくなりつつある。携帯電話や携帯端末機、
自動車、情報家電などもインターネットに接続され、常時接続環境が普及した場合、プ
ライベートアドレスや NAT の限界も見えてきている。しかし、IPv6 では、アドレス空
間が拡大されたことから、このような環境変化などに対応できると考えられる(図 3)。
このように IPv6 の導入により、さまざまな機器がネットワークにつながり、それらの
間で通信が可能になり、新しい応用も考えられる。このように、IPv6 は様々な可能性
を支える基盤技術といえる。
モバイル
研究ネットワ
研究ネット
ーク
ワーク
携帯電話
携帯情報端末
研究ネット
商用ネットワー
ワーク
ク(ISP)
商用ネットワー
自動車
ク(ISP)
企業内 IP
SOHO
ネットワーク
企業内 IP
SOHO
ネットワーク
情報家電
【図 3】インターネット技術の適用範囲の拡大
5
第3節
KAME プロジェクト・FreeBSD について
KAME プロジェクトとは、IIJ、NEC、東芝、日立、富士通、横河電機各社による共
同研究プロジェクトである。IPv6 と IPsec の開発及び普及を目的として、1998 年から
活動している。
KAME プロジェクトでは BSD 系の OS(FreeBSD、NetBSD、OpenBSD など)を
ターゲットとしてプロトコルスタックの開発やアプリケーションの IPv6 対応などを行
っている。2005 年には、IPv6 の基本規格の実装はほぼ安定したということで、
「KAME
プロジェクト完成宣言」が行われ、2006 年 3 月をもって活動の終了が発表された。ち
なみに、KAME プロジェクトの Web サイトに IPv6 でアクセスするとトップページの
亀の画像が手足を動かすアニメーションをするようになっている。このページは、IPv6
で通信可能かどうかを判断する手段として広く知られており、「亀が躍る」と呼ばれて
いる。KAME の実装は BSD ライセンス下でフリーソフトウェアとして公開されており、
現在までに各 BSD UNIX の IPv6 スタックとして採用されており、さらにルータベン
ダなどにも採用されている。KAME プロジェクトは、USAGI プロジェクトや TAHI
プロジェクト同様に WIDE プロジェクト傘下のプロジェクトで、特にこれらのプロジ
ェクトとは密接に関係している。
FreeBSD とは、UNIX 系のオープンソースの OS であり、NetBSD や OpenBSD と
同じ BSD の子孫のひとつである。特徴は、Web サイトで、安定していて高速・高性能
かつ安全・先進的な機能や多くのセキュリティ機能を提供しており、FreeBSD jail(OS
レベル仮想化機構)等の機能もレンタルサーバ等に適したシステムであるといえる。
Linux とは異なり、カーネルとユーザーランドを含めてひとつの OS であり、そして
OS 側に GPL ライセンスのものを含まないようにしている。かつては自分の環境に合
わせてカーネルを再ビルドする方法が主流であったが、generic カーネルに必要に応じ
てカーネルモジュールを追加する形で運用することが多い。
第4節
Linux について
Linux とは、一般的には UNIX 系のコンピュータ用 OS の一群を示し、厳密にはその
中核となる部分であるカーネルのことである。1991 年にフィンランドのヘルシンキ大
学の大学院生(当時)Linus Torvalds 氏によって開発された。最初はアセンブリ言語
で記述されたターミナルエミュレータだったが、その後 Minix よりも優れた Minix を
作るために拡張された。現在では、パーソナルコンピュータに限らず、携帯電話のよう
な組み込みシステムからメインフレームや HPCC などのスーパーコンピュータまで、
6
幅広く利用されている。Linux はほかの OS に比べ、低い性能のコンピュータでも軽快
に動作する。Linux と呼ばれているものには、Red Hat、Debian、Slackware など、
各種のディストリビューションがあり、それぞれ少しずつ違いがある。ただし、本当の
意味で Linux と呼べるのはカーネルのみであり、OS を構成するほかの部分は GNU も
しくは BSD スタイルライセンスを採用しているソフトウェアで構成されている。
Linux
カーネルを用いて構築された OS 環境は、一時的には UNIX 系 OS、UNIX 互換 OS な
どとして分類される。ただし厳密には本来の UNIX と混同して扱うことは適切ではな
い。かつては「ハッカーの OS」としてのイメージが強かったが、最近ではユーザーフ
レンドリーなデスクトップ環境が充実し、さらにシステムソフトウェアパッケージなど
の管理システムも発達し、グラフィカルなラッパーなどが充実した結果、システムの保
守運用も容易なものとなったため、それまで縁遠いものとされてきたエンドユーザーの
一部にも普及し始めている。さらに無料なうえ、オープンソースで改良も自由であるが、
改変、追加した部分は GPL に基づいてソースの改良は公開しなければならないという
条件がある。最近になり基本ライブラリである libc についても、GNU libc を採用する
ものがほとんどであるため、システムを構成する最も基本となるソフトウェアは、
Linux カーネルと GNU libc、gcc の 3 点セットであるといえる。ほかのツールの選択
の違いや、gcc やカーネルの採用バージョンの違いはあるが、
この 3 点を抑えておけば、
読み替えることが可能である。この多くの利用者の知識を取り入れるというウィキペデ
ィアとよく似た利用方法が、各方面に利用できる「幅広い機能」と数多くの利用者によ
る修正を経た結果の「高い信頼性」につながっている。
7
第3章
第1節
Linux での IPv6 実装
Linux の IPv6 実装の現状
現在、IPv4 アドレス枯渇問題は、インターネットアーキテクチャに対して非常に大
きな影響を与えている。まず、インターネットをレイヤ分けすると(図 4)のように表
現できる。IP を表す第 3 層(ネットワーク層)のプロトコルだけが単一となっており、
それ以外はすべて複数のプロトコルが存在しているため、砂時計のような形になってい
る。しかし、今までは単一であった IP が IPv6 の登場によって 2 つへ変わろうとして
いる。
(図 5)IPv6 と、IPv4 には互換性がないため、両者は平行して存在するようにな
り、IPv6 インターネットと IPv4 インターネットが同時に利用されるようになることが
考えられる。その時、一般的な家庭での接続形態は(図 6)のようになる。現時点では、
各家庭からのインターネット接続は IPv4 に対してのみである。しかし、それと同時に
IPv6 とも接続することが、徐々に可能となっていくと思われている。しかし、一般家
庭へ配線を考えた場合、結局は1つの配線に IPv6 と IPv4 の両方のパケットが流れる
だけであり、物理的には同じ通信路やトロポジになる部分も多いと思われる。
Thunderbird
Firefox Mew Apache
POP3
TELNET
HTTP
SMTP
TCP
UDP
Thunderbird
Firefox Mew Apache
POP3
TELNET
HTTP
SMTP
TCP
UDP
IPv4
IPv4
MPLS
PPP
Ethernet
SONET CAT-5e
CAT-6 Wireless
MPLS
PPP
Ethernet
SONET CAT-5e
CAT-6 Wireless
【図 4】
【図 5】 IPv6 が加わったレイヤ分け
IPv4 のレイヤ分け
IPv4インター
ネット
IPv6インター
ネット
CPE
【図 6】
IPv6
一般的な家庭での接続形態
8
そこで、Linux の IPv6 対応状況であるが、FreeBSD の KAME プロジェクトなどと比
較すると、あまり芳しくない。しかし、現在のバージョンの Linux が IPv6 のプラット
フォームとして利用できないわけではない。現在の Linux の実装では、IPv6 サーバや
ルータとしての利用で問題が発生する場合もあるが、デスクトップの IPv6 端末として
利用するには、十分な機能がある。さらに、BSD や Solaris などとも比較しても、日本
語に対応した環境構築が容易なためデスクトップの IPv6 対応ホストとして考えた場合
は非常に便利なものである。
Linux での IPv6 実装において、問題の一つはカーネル内部のスタックの未分離問題
である。Linux カーネルの IPv6 プロトコルスタックは、
IPv4 プロトコルスタックと別々
になっていないため、IPv6 だけを利用したものは作れない。同様に、カーネル内部で
IPv4 と IPv6 が分離していないため、KAME 環境のように IPv6 と IPv4 を分けて管理
することができない。
(図 7)そのため、1つのプログラムで、IPv6 と IPv4 のサービ
スを行う必要がある。
IPv6独自部分
IPv4スタック
+
IPv4、IPv6共通部分
デバイスドライバなど
【図 7】
カーネル内部のプロトコルスタックの構造
IPv6 において、アドレス自動生成を使用する場合、ホストはルータが出す Router
Advertisement メッセージを受信し、それに追従して状態を変える。現在の Linux カ
ーネルでは、この機能に問題があり、実験目的のネットワークなどでは、運用中にアド
レスが変更されるなど、ルータを変更した場合などに正常な通信ができなくなるという
問題がある。そのため、アドレスの付け替えやルータの入れ替えなどを行うたびに、ア
ドレス自動生成を利用する Linux は、再起動する必要がでてくる。
アプリケーションに関しても、最近になって sendmail や BIND のように IPv6 が標
準で対応しているソフトウェアも増えてきてはいる。しかし、開発の本家で IPv6 への
対応がいまだに行われていないものに関しては、IPv6 利用者や IPv6 プロトコルスタッ
フの開発に携わっている人たちが、独自にパッチを製作している。さらに、Linux では
IPv6 アプリケーションのパッケージを IPv4 用のパッケージと別に配布する体制のデ
ィストリビューションがないため、IPv6 を利用する場合、自分でバイナリパッケージ
を製作する必要がある。
9
第2節
IPv6 の基本設定
まず、Linux で利用する OS は、IPv6 対応を積極的に行っているディストリビュー
ションの中でも、日本語の利用環境が整っている Kondara/MNU Linux を利用する。
Kondara/MNU Linux には、Kondara プロジェクトから配布されているフリーと商用
の 2 種類のバージョンがあるが、ここでは安定していてかつ最新である商用版である
Kondara2000 をベースに解説していく。OS のインストールは、通常のインストールで
よく、インストール終了後すでに IPv6 対応がされたカーネルなどがインストールされ
ている。
[root@linux root]$ sysctl -a|grep ipv6
net.ipv6.conf.eth0.router_solicitation_delay = 1
net.ipv6.conf.rth0.router_solicitation_interval = 4
net.ipv6.conf.rth0.router_solicitations = 3
net.ipv6.conf.rth0.dad_transmits = 1
net.ipv6.conf.rth0.autoconf = 1
←eth0のアドレス自動生成は有効
net.ipv6.conf.rth0.accept_redirects = 1
net.ipv6.conf.rth0.accept_ra = 1
←eth0でRouter Advertisementは受理する
net.ipv6.conf.rth0.mtu = 1500
net.ipv6.conf.rth0.hop_limit = 64
net.ipv6.conf.rth0.forwarding = 0
(中略)
net.ipv6.conf.default.autoconf = 1
←標準のアドレス自動生成は有効
net.ipv6.conf.default.accept_redirects = 1
net.ipv6.conf.default.accept_ra = 1
←標準でRouter Advertisementは受理する
net.ipv6.conf.default.mtu = 1280
net.ipv6.conf.default.hop_limit = 64
(中略)
net.ipv6.route.max_size = 4096
net.ipv6.route.gc_thresh = 1024
【図 8】
sysctl コマンドによるカーネルの状態確認
次に、IPv6 の設定であるが、DNS と Web サーバをインストールするためにアドレ
ス自動生成を利用するための設定を行う。Kondara に限らず、最近の Linux ディスト
リビューションでは、カーネル変数の設定に/etc/sysct1.conf ファイルを用い、起動時
に sysctl コマンドがその設定を見て自動的にカーネル変数に値を書き込むようになっ
ている。流れとしては、最初に現在の IPv6 関係のカーネル変数がどのようになってい
るかを確認した後、不足部分を/etc/sysctl.conf に定義する。
アドレス自動生成を用いたホスト設定は、sysctl で確認する。確認すべき項目は
autoconf と accept_ra の 2 か所で、現在利用しているインターフェースおよびデフォ
ルトの設定が 1 になっていることを確認する(図 8)。ここでは、eth0 でルータの通知
を受信し、アドレス自動生成をする設定になっている。
10
第3節
アプリケーションの導入
Kondara2000 ではカーネルおよび一部のアプリケーションは IPv6 に対応しているが、
ソフトウェアの一部は IPv6 に対応していない。そこで、ソフトウェアを Apache およ
び BIND9 に変更し導入する。Kondara は RedHat と同じ rpm コマンドでアプリケー
ションを管理しているため、これを利用して必要なソフトウェアを導入していく。
まず、rpm コマンドについて解説する。rpm コマンドとは 、RedHat Package
Manager の略であり、プログラムなどのバイナリファイルや設定ファイル、ドキ
ュメントなどがひとまとめになったものを示す。rpm コマンドには、『バイナリパ
ッケージのインストール、削除、アップグレード』『インストール済みのパッケー
ジに関する問い合わせ』『ソースからのバイナリおよびソースパッケージの構築』
という大きく分けて 3 つの機能がある。この中から、
『ソースからのバイナリおよ
びソースパッケージの構築』を利用してバイナリパッケージの作成とインストール
を行う。
まず、バイナリパッケージのインストールを行う必要がある。RPM 用のバイナリパ
ッケージは、通常ファイル名が『パッケージ+バージョン番号.CPU アーキテクチャ
/usr/src/redhat
SOURCES
SRPMS
SPECS
コンパイルなど
ソースファイル
作成済みソース
specファイル置場
作業ディレクトリ
バッチファイル置場
パッケージ置場
BUILD
RPMS
i386
i586
386用バイナリパッケージ置場
noarch
アーキテクチャ非依存
パッケージ置場
【図 9】 /usr/src/redhat 以下のディレクトリ構造
rpm -Uvh パッケージファイル名
【図 10】 バイナリパッケージのアップグレードインストール
名.rpm』となっている。インテル対応では”i386.rpm”や”i586.rpm”というファイル名と
なるが、機種依存しない画像データや font データなどは”noarch.rpm”というファイル
名となる。また、ディレクトリ構造は(図 9)のようになっている。既存アプリケーシ
ョンのバージョンアップ版を導入する場合は、
(図 10)のようにするとアップグレード
インストールされる。
RPM のソースパッケージには、nosrc.rpm と src.rpm の 2 種類がある。これらの違
いは、nosrc.rpm は、一部のファイルがソースパッケージに含まれていないため別途ダ
11
ウンロードが必要になる。Src.rpm は、すべての必要なファイルがパッケージに含まれ
ている。Kondara では、オリジナルソフトウェアの配布コントロールや、配布制限の
あるソフトウェアの、ソースパッケージの配布の流通を考慮し、nosrc.rpm が基本にな
っている。まず、
(図11)のように/usr/src/redhat/SPECS にある『パッケージ名.spec』
を参照し、NoSource フィールドを確認して不足しているソースを判断し、ソースを別
rpm -i パッケージ名.nosrc.rpm
【図 11】 ソースパッケージの展開
rpm -ba パッケージ名.spec
【図 12】 バイナリパッケージの作成
途でダウンロードしたら、/usr/src/redhat/SOURCES に置いておく。その後、SPECS
ディレクトリで、
(図12)のようにすれば/usr/src/redhat/RPMS/以下にバイナリパッ
ケージが作成されるため、そのパッケージを RPM でインストールする。
次に、IPv6 を使用する上で必要なソフトウェアを導入していく。Kondara2000 では、
inetd、telnet、ftp などが IPv6 に対応していないため、最小限動作確認に必要なもの
として inetd と telnet、telnetd の IPv6 対応版をインストールする必要がある。
最初に開発版のソースパッケージから、ソースパッケージとその他必要なソースを入
手する。Linux の IPv6 の情報がまとめられたサイトがあり、そこで紹介されている関
連サイトから様々なソースや IPv6 パッチを入手することができる。このとき、注意し
なければならないことが、最近の Kondara の開発版や Redhat の 7 以降では、新しい
RPM のパッケージ方式を利用している。そのため、RPM のバージョン 4 系列のもの
でないとうまく取り扱えない場合がある。その場合、先に RPM を ver.4 以上のものと
取り換える必要がある。そのため、
(表 1)のようなソースパッケージを利用する。
・apache-1.3.12-3k.src.rpm
・inetd-0.16-6k.src.rpm
・telnet-0.16-7k.src.rpm
・bind-9.0.0-1k.src.rpm
・tcp_wrappers-7.6-13k.src.rpm
【表 1】 利用するソースパッケージ
次に、アプリケーションのコンパイルとインストールを行う。今回導入するアプリケー
ションでは telnet と inetd の間に依存関係が存在するため、inetd を先にインストール
する必要がある。しかし、コンパイル時の依存関係はないため、コンパイル自体は独立
して行うことができる。まず、/usr/src/redhat/SPECS ディレクトリを開き、bash のプ
ロンプトで(図 13)のように入力すると、すべてのアプリケーションが自動でコンパ
イルされてバイナリパッケージが作成される。次に、/usr/src/redhat/RPMS/ディレク
トリを開き、パッケージができていることを確認する。このとき正常にコンパイルでき
12
ていれば(図 14)のようになっている。
[root@linux SPECS]$ for I in *.spec ;do rpm -ba $i ;done
【図13】 全パッケージの一括ビルド
[root@linux root]$ cd /usr/src/redhat/RPMS
[root@linux RPMS]$ Is
i386 i586 noarch
[root@linux RPMS]$ IS */
i386/:
apache-1.3.12-3k.i386.rpm
bind-utils-9.0.0-1k.i386.rpm
apache-devel-1.3.12-3k.i386.rpm
inetd-0.16-6k.i386.rpm
apache-manual-1.3.12-3k.i386.rpm
tcp_wrappers-7.6-13k.i386.rpm
bind-9.0.0-1k.i386.rpm
telnet-0.16-7k.i386.rpm
bind-devel-9.0.0-1k.i386.rpm
telnet-server-0.16-7k.i386.rpm
i586/:
noarch/:
[root@linux RPMS]$
【図14】 作成済みパッケージの確認
これらのファイルを順番に rpm-Uvh してインストールするが、古いバージョンと衝突
してインストールできない場合がある。その場合一度古いバージョンを削除したうえで
新しいバージョンをインストールするか、RPM に-force オプションを与えて強制的に
インストールする方法がある。しかし、強制インストールには問題があり、元になるア
プリケーションのバージョンアップに伴い、パッケージのバージョンアップが発生した
場合、rpm コマンドを利用したアップデートインストールができない(RPM がエラー
で異常終了する)場合がある。
第 4 節
パッケージ管理によらないアプリケーションの導
入
IPv6 対応パッケージの中には、アプリケーションのバージョンアップや最新開発版
を利用するとき、対応しているパッケージがないことがある。このような場合でも、い
ずれは入手可能になるが、セキュリティ上の理由などから、対応パッケージが配布され
るのを待っていられないこともある。そのような場合は独自に IPv6 対応パッチを入手
して、コンパイルとインストールを行う必要がある。前節で紹介したアプリケーション
のうち、Apache の開発版および BIND9 以外は IPv6 を標準サポートしていないため、
それらのアプリケーションはパッチを探してコンパイルする必要がある。また、これら
のパッチは RPM を用いずにインストールしなければならないため、目的のバージョン
のソフトウェア用の IPv6 対応ソースパッケージが見つからなかった場合、自分でパッ
ケージ化するか、インストールする必要がある。しかし、IPv6 非対応のソースパッケ
ージがある場合、ビルドの手順が spec ファイルに記載されており、Linux の IPv4 環境
13
で動作させるためのパッチが同封されているのでこれを用いればコンパイルは簡単に
行うことができる。
まず、インストールするアプリケーション用の IPv6 対応パッチを web 上から探し、
ダウンロードする。次に、そのソフトウェアのバージョンと同じバージョンの IPv4 ソ
ースパッケージを探しダウンロードし、パッケージを展開しておく。そして、SPEC デ
rpm -bp スペックファイル
【図 15】 rpm によるソースの展開とパッチの適用
ィレクトリを開き(図 15)のコマンドで BUILD ディレクトリにソースを展開しパッ
チを適用する。
すると、BUILD ディレクトリ以下に IPv4 環境で必要なパッチが適用済みになった
展開済みソースができるので、それに対して IPv6 パッチを適用してインストールを行
う。IPv6 パッチの適用が完了したら、IPv6 対応パッチに付属しているテキストファイ
ルを参照し、IPv6 対応させる場合に必要なコンパイルオプションなどを確認しておく。
第5節
アプリケーションの設定
まず、inetd の設定を行うが、動作確認のために telnet コネクションを受け付ける設定
#
#telnet
telnet stream
#
stream tcp
nowait
tcp
nowait root
root
/usr/sbin/tcpd
/usr/sbin/in.telnetd
in.telnetd
in.telnetd
【図 16】/etc/inetd.conf の記述例
を行う。Tcp_wrapper を用いることもできるが、動作しなかったときにどこが間違っ
ていたのかわからなくなるので、tcp_wrapper を用いず telnet で接続できるように、
(図
16)のように/etc/inetd.conf を編集する。
Apache の設定は、RPM でインストールした場合、各ファイルがどこにインストー
ルされているか確認しなければならない。そのため、Apache のバイナリパッケージに
含まれているファイル一覧を表示させ、そのリストを確認する(図 17)。
この例では、設定ファイルが/etc/httpd/conf 以下に格納され、画像や HTML ファイ
ルなどが/home/httpd 以下に格納されている。起動スクリプトもインストールされてお
り、ログのメンテナンスの設定も確認できる。
14
[root@linux /root]# rpm -q -l apache
/etc/httpd/conf
┐
/etc/httpd/conf/access.conf |
/etc/httpd/conf/httpd.conf
|←設定ファイル関連
/etc/httpd/conf/magic
|
/etc/httpd/conf/srm.conf
┘
/etc/httpd/logs
←ログの格納場所
/etc/httpd/modules ←モジュールの格納場所
/etc/logrotate.d/apache
←ログの処理関連
/etc/rc.d/init.d/httpd
←起動スクリプト関連
/etc/rc.d/rc0.d/k15httpd
/etc/rc.d/rc1.d/k15httpd
/etc/rc.d/rc2.d/k15httpd
/etc/rc.d/rc3.d/k15httpd
/etc/rc.d/rc4.d/k15httpd
/etc/rc.d/rc5.d/k15httpd
/etc/rc.d/rc6.d/k15httpd
/home/httpd
←wwwデータ置場所関連
(中略)
/home/httpd/icons/transfer.gif
/home/httpd/icons/unknown.gif
/home/httpd/icons/up.gif
/home/httpd/icons/uu.gif
【図 17】 Apache のバイナリパッケージのファイル確認
同様に、BIND にインストールされたファイルを確認する(図 18)。
[root@linux /root]# rpm -q -l bind-9.0.0-1k
/etc/init.d/named
/etc/logrotate.d/named
←namedのログの取り扱いの設定
/usr/doc/bind-9.0.0 ←ドキュメント置場
(中略)
/usr/doc/bind-9.0.0/doc/rfc/rfc2874.txt
/usr/doc/bind-9.0.0/doc/rfc/rfc952.txt
/usr/man/man5/rndc.conf.5
/usr/man/man8/named.8
/usr/man/man8/rndc.8
/usr/sbin/dnssec-keygen
/usr/sbin/dnssec-makekeyset
/usr/sbin/dnssec-signzone
/usr/sbin/lwresd
/usr/sbin/named
←named本体
/usr/sbin/named-bootconf
/usr/sbin/rndc
/var/named
←namedのログ置場
【図 18】 BIND9 のパッケージの中身確認
ここには named の設定ファイルがないので、named のバイナリから設定ファイルを引
き出す(図 19)。
[root@linux /root]# strings /usr/sbin/named |grep named.conf
/etc/named.conf
[root@linux /root]# strings /usr/sbin/named |grep named.conf
【図 19】 named.conf の場所の確認
15
(図 19)から、named のデフォルトの設定ファイルは/etc 以下に置くようにコンパイ
ルされていることがわかる
第6節
動作確認
設定が完了したら一度再起動を行い、正常に起動することを確認する。正常に起動で
きたら、OS の動作確認でアドレスの自動生成と、telnet で接続し、ログインできるか
を確認する。
まず、ifconfig コマンドで、インターフェース状態を確認し、アドレス自動生成が正
常に行われているかの確認をする(図 20)
。
ネットワークインターフェースに IPv6 アドレスが割り当てられていることを確認でき
たら(図 20 下線部)
、telnet で inetd と telnetd が IPv6 接続を受け付けられるかの確
認をする(図 21)
。
[root@linux /root]# ifconfig eth0
eth0
リンク方法:イーサネット ハードウェアアドレス00:10:A4:8F:98:83
inetアドレス:xxx.xxx.xxx.xxx ブロードキャスト:xxx.xxx.xxx.xxx マスク:255.255.255.0
inet6アドレス: 3ffe:501:ffff:9101:210:a4ff:fe8f:9883 /64 範囲:集約可能
inet6アドレス: fe80::210:a4ff:fe8f:9883/10 範囲:リンク
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RXパケット:121314 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:20649 エラー:0 損失:0 オーバラン:0 キャリア:0
衝突(Collisions):30 TXキュー長:100
割り込み:11 ベースアドレス:0x1400
[root@linux /root]#
【図 20】 ifconfig によるインターフェースの状態確認
[root@linux /root]# telnet 3ffe:501:ffff:9101:210:a4ff:fe8f:9883
Trying 3ffe:501:ffff:9101:210:a4ff:fe8f:9883…
Connected to 3ffe:501:ffff:9101:210:a4ff:fe8f:9883.
Escape character is ‘^]’ .
Kondara MNU/Linux 2000 (Sushi)
Kernel 2.2.16-5k on an i686
login:
login:
Conection closed by foreign host.
【図 21】telnet による接続確認
以上が、OS での動作確認である。また、セキュリティを高める場合は、telnet を
tcp_wrapper で起動するか、telnet コネクションを受け付けないようにするとよい。
次に、Apache の動作確認では、プロセスとして httpd が起動しているかどうかと
httpd が IPv6 接続を受け入れているかの確認を行う。
まず、プロセスが起動しているかを ps コマンドで確認する(図 22)。
16
[root@linux /root]# ps ax |grep httpd
14195 ?
s
0:00 httpd
14197 ?
s
0:00 httpd
14198 ?
s
0:00 httpd
14199 ?
s
0:00 httpd
14200 ?
s
0:00 httpd
14201 ?
s
0:00 httpd
14202 ?
s
0:00 httpd
14203 ?
s
0:00 httpd
14204 ?
s
0:00 httpd
14220 pts/3 s
0:00 grep httpd
[root@linux /root]#
【図 22】 Apache のプロセス確認
次に、telnet で 80 番ポートに接続し、簡単な http のリクエストを行う(図 23)
。
[root@linux /root]# telnet 3ffe:501:ffff:9101:210:a4ff:fe8f:9883 80
Trying 3ffe:501:ffff:9101:210:a4ff:fe8f:9883…
Connected to 3ffe:501:ffff:9101:210:a4ff:fe8f:9883.
Escape character is ‘^]’ .
GET http://kondara/index.html
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 3.2 Final//EN”
<HTML>
<HEAD>
<TITLE>Test Page for Kondara MNU/Linux’s Apache Installation</TITLE>
</HEAD>
<!-- Background white, links blue (unvisited) , navy (visited), red (active) -->
<BODY
BGCOLOR=” #FFFFFF”
TEXT=” #000000”
LINK=” #0000FF”
VLINK=” #000080”
ALINK=” #FF0000”
>
<H1 ALIGN=” CENTER” >It Worked!</H1>
<P>
If you can see this, it means that the installation of the
(中略)
<a href=” http://www.kondara.org/” ><img src=” poweredby.png” alt=” [ Powered
by Kondara MNU/Linux ]” ></a>
</p>
</BODY>
</HTML>
Connection closed by foreign host.
[root@linux /root]#
【図 23】 telnet による httpd の動作確認
以上が成功すれば、Apache の動作確認は終了である。telnet での http リクエストは、
一般に 1 本の TCP 接続を利用してネットワークサービスを行うサーバへの動作確認方
法の中でも、Web ブラウザを用いての動作確認より、単純で簡単な方法である。その
他の Web ブラウザを用いずに行う動作確認の方法としては、SMTP(Simple Mail
Transfer Protocol)や POP(Post Office Protocol)、NNTP(Network News Transfer
Protocol)などが、同様の方法で簡単に動作確認をすることができる。
また、Apache の動作確認でよくある問題で、httpd の起動時にサーバのアドレスが
見つからないといったエラーが検出されることがある。このようなエラーの回避方法は、
17
httpd.conf のサーバ名を記述する場所に FQDN(Fully Qualified Domain Name)ホ
スト名を設定し、/etc/hosts にも記述すれば解決される。
BIND での動作確認も、Apache と同様にプロセスの確認(図 24)を行った後、IPv6
関連のリソースレコードを検索して行う。
[root@linux /root]# ps ax |grep named
14315 ? s
0:00 named
14316 ? s
0:00 named
14317 ? s
0:00 named
14318 ? s
0:00 named
14319 ? s
0:00 named
0:00 grep named
14323 pts/ s
[root@linux /root]#
【図 24】 named のプロセス確認
また、定義ファイルなどに問題があった場合は/var/log/message ファイルを確認する
(図 25)
。
[root@linux log]# tail message
Mar
2 18:46:42 linux named[14315] : starting BIND 9.0.0
Mar
2 18:46:42 linux named[14317] : loading configration from ‘/etc/named.conf’
Mar
2 18:46:43 linux named[14317] : the default for the ‘auth-nxdomain’ option is now
‘no’
Mar
2 18:46:43 linux named[14317] : listening on IPv4 interface lo, 127.0.0.1#53
Mar
2 18:46:43 linux named[14317] : listening on IPv4 interface eth0, xxx.xxx.xxx.xxx#53
Mar
2 18:46:43 linux named[14317] : dns_master_load: named.local:7: using RFC 1035 TTL
semantics
Mar
2 18:46:43 linux named[14317] : running
[root@linux log]#
【図 25】 /var/log/message の BIND のイメージ
次に、/etc/resolv.conf を編集して DNS サーバとして自身を参照するように設定する
(図 26)
。
domain v6.net
seach v6.net
nameserver 127.0.0.1
【図 26】 /etc/resolv.conf の例
最後に、実際に DNS の問い合わせを発行して検索できることを確認する(図 27)。
[root@linux /root]# dig @127.0.0.1 AAAA linux.v6.net
【図 27】 dig による BIND9 の動作確認
第7節
IPv6 アドレス用マクロ
/usr/include/netinet/in.h には、IPv6 アドレスの判定や比較用のマクロが宣言されて
いる(図 28)。[4]このようなマクロは知っておくと便利なのでこの場で紹介しておく。
18
#define IN6_IS_ADDR_UNSPECIFIED(a)
(((__const unit32_t *) (a))[0] == 0
&& ((__const unit32_t *) (a))[1] == 0
&& ((__const unit32_t *) (a))[2] == 0
&& ((__const unit32_t *) (a))[3] == 0)
#define IN6_IS_ADDR_LOOPBACK(a)
(((__const unit32_t *) (a))[0] == 0
&& ((__const unit32_t *) (a))[1] == 0
&& ((__const unit32_t *) (a))[2] == 0
&& ((__const unit32_t *) (a))[3] == htonl (1))
#define IN6_IS_ADDR_MULTICAST(a) (((__sonst unit8_t *) (a))[0] == 0xff
#define IN6_IS_ADDR_LINKLOCAL(a)
((((__const unit32_t *) (a))[0] & htonl (0xffc00000))
== htonl (0xfe800000))
#define IN6_IS_ADDR_SITELOCAL(a)
((((__const unit32_t *) (a))[0] & htonl (0xffc00000))
== htonl (0xfec00000))
#define IN6_IS_ADDR_V4MAPPED(a)
((((__const unit32_t *) (a))[0] == 0)
&& (((__const unit32_t *) (a))[1] == 0)
&& (((__const unit32_t *) (a))[2] == htonl (0xffff)))
#define IN6_IS_ADDR_V4COMPAT(a)
((((__const unit32_t *) (a))[0] == 0)
&& (((__const unit32_t *) (a))[1] == 0)
&& (((__const unit32_t *) (a))[2] == 0)
&& (ntohl (((__const unit32_t *) (a))[3]) > 1))
#define IN6_ARE_ADDR_EQUAL(a,b)
((((__const unit32_t *) (a))[0] == ((__const unit32_t *) (b))[0])
&& (((__const unit32_t *) (a))[1] == ((__const unit32_t *) (b))[1])
&& (((__const unit32_t *) (a))[2] == ((__const unit32_t *) (b))[2])
&& (((__const unit32_t *) (a))[3] == ((__const unit32_t *) (b))[3]))
【図 28】 IPv6 用の便利なマクロ
第8節
Linux の IPv6 対応の将来動向
現在、IPv6 対応において、カーネルや GNU lbic を中心に、Linux を対象にしたプ
ロジェクトが発足している。プロジェクト名は USAGI(UniverSAl play Ground for
IPv6)プロジェクトである。USAGI プロジェクトとは、KAME プロジェクトや TAHI
プロジェクトと同じ WIDE プロジェクト傘下のプロジェクトであり、Red Hat や
Debian などの主要なディストリビューションに対応したパッケージなどを製作してい
る。また、IPv6 には、通常のプロトコルスタック以外の機能もある。IPv6 は、規格上
IPSec の実装が義務付けられている。Linux においても、IPSec の実装が進められ、ま
た、Mobile IPv6 の実装も開始されている。これらのプロジェクトがさらに進めば、今
後の Linux における IPv6 の利用が広がり、ますます進展していくと思われる。
19
第4章
第1節
FreeBSD での IPv6 実装
OS の基本設定
はじめに、FreeBSD の入手は、ネットワークからダウンロードするか、FreeBSD に
関連する書籍を購入し、それに付属している CD-ROM を利用するなどの方法がある。
設定の方針としては、
・ルータにはしない(ネットワーク的にはリーフノードとする)
・アドレス自動生成を利用して Ipv6 の設定をする
・DNS サーバを動作させるため、BIND をインストールする
・Web サーバを動作させるため、Apache の Ipv6 対応版をインストールする
以上を踏まえた上で FreeBSD の設定を行っていく。
まず、OS の基本設定であるが、FreeBSD における基本設定は、基本設定ファイルと
ブート設定の関係で、/etc/rc.conf ファイルを編集して行う。/etc/rc.conf は、shell 変数
に値を定義する形で設定の記述をする形式で、
(図 29)のような流れとなっている。ま
た、shell 変数とは定義した値を、そのシェルが終了するまで残しておくものである。
しかし、その値を参照できるのは現在利用しているシェル上のみとなる。
/etc/defaults/rc.conf
読み込み
shell変数値への
標準値の設定
追加読み込みの設定
実行
/bin/init
/etc/rc
読み込み
shell変数への値の設定
shell変数値の継承と実行
/etc/rc.conf
/etc/rc.network等
/etc/rc.conf.local
【図 29】 ブート過程の各ファイルの関係
(図 29)の起動の流れは以下のように行われる
(1) init がスクリプト(/etc/rc)を実行
(2) /etc/rc が/etc/defaults/rc.conf を読み込み変数に値を設定
(3) /etc/rc が/etc/rc.conf を読み込み変数に値を設定
(4) /etc/rc が/etc/rc.network などの軌道スクリプトを実行
(5) /etc/rc.network などの起動スクリプトは、rc.conf などで設定された変数の値
に従ってコマンドを実行し、カーネル変数の設定を行う
ブート過程の説明から、/etc/rc.conf は/etc/defaults/rc.conf の内容から、上書きした
20
い部分のみを/etc/rc.conf に定義すればよいことがわかる。
(図 30)は、/etc/defaults/rc.conf の Ipv6 関連部分を、説明とともに記載したもので
ある。FreeBSD マシンをルータとして利用したい場合やその他の設定を行いたい場合
は、関連文書(man ページなど)を参考にして、独自に設定し、利用するとよい。
###
###
###
### /etc/defaults/rc.confのIPv6関連項目の抜粋と説明
###
###
#IPv6を利用する場合はYES。
ipv6_enable=” NO”
ipv6_network_interfaces=” auto” #IPv6を利用するインターフェースのリスト。
ipv6_defaultrouter=” NO”
# autoは自動判別、アドレス自動生成する場所に指定。
#IPv6のデフォルトルータを手動設定する場合に利用する。
# 利用する場合はデフォルトルータのIPv6アドレスを指定する。
#IPv6のスタティックルートの設定に利用。
# fec0:0000:0000:0006::/64の経路をループバックインターフェースに向ける場合
ipv6_static_routes=””
#ipv6_static_routes=” xxx”
#ipv6_route_xxx=” fec0:0000:0000:0006:: -prefixlen 64 ::1”
#IPv6のルーティングを行う場合はYES。
ipv6_gateway_enable=” NO”
#IPv6のルーティングデーモンを動かす場合はYES。
ipv6_router_enable=” NO”
#
ipv6_router=” /usr/sbin/route6d#IPv6のルーティングデーモンのフルパス名。
#ルーティングデーモンの引数。
ipv6_router_flags=””
# route6dにサイトローカルアドレスを取り扱うよう
#ipv6_router_aflags=” -l”
# 指示する場合は”-l”オプションが必要。
#ルータの場合は手動設定の必要があるのでここで指定する。
#ホストの場合でも手動設定する場合はここで指定する。
#手動設定の場合の各インターフェースに対する
# ネットワークprefixの設定。
#ipv6_network_interfaces=” ed0 ep0”
#ipv6_prefix_ed0=” fec0:0000:0000:0001 fec0:0000:0000:0002”
# ed0インターフェースに2つのネットワークアドレスを設定。
#ipv6_prefix_ep0=” fec0:0000:0000:0003 fec0:0000:0000:0004”
# ep0インターフェースに2つのネットワークアドレスを設定。
#ipv6_ifconfig_ed0=” fec0:0:0:5::1 prefixlen 64#IPエイリアスの設定。
#リンクローカルアドレスやサイトローカルアドレスの
ipv6_default_interface=””
# 発信時に用いるデフォルトのインターフェース
#現在はリンクローカルマルチキャスト宛の発信時のみ有効。
#ネットワークのprefixの設定にprefixコマンドを利用するかどうかの設定。
prefixcmd_enable=” YES”
#ルータ広告のデーモンを実行する場合はYESに設定。
rtadvd_enable=” YES”
# ルータにしないホストの場合はNOでよい。
#IPv6マルチキャストルーティングを行う場合は” YES”
mroute6d_enable=” NO”
#IPv6マルチキャストのルーティングデーモンのフルパス名。
mroute6d_program=” /usr/sbin/pim6dd”
#IPv6マルチキャストルーティングデーモンの引数の指定。
mroute6d_flags=””
#IPv6 over IPv4トンネル(GIFインターフェース)を利用する場合の設定。
gif_interfaces=” NO”
#利用しない場合は” NO”
#利用する場合の例。
#gif_interfaces=” gif0 gif1”
#自分のIPv4アドレスとトンネル先のIPv4アドレス
#gifconfig_gif0=” 10.1.1.1 10.1.2.1”
#同上
#gifconfig_gif1=” 10.1.1.2 10.1.2.2”
#IPv6 over IPv4トンネル(STFインターフェース)を利用する場合の設定。
stf_interface_ipv4addr=””
#STFインターフェースに関してはIPv4からIPv6への移行技術で用いる。
stf_interface_ipv4plen=” 0”
stf_interface_ipv6_ifid=” 0:0:0:1” #
stf_interface_ipv6_slaid=” 0000” #通常のIPv6トンネルではGIFインターフェースを用いる。
#
ipv6_ipv4mapping=” YES”
#このホストをIPv6ファイアウォールマシンにする場合は” YES”
ipv6_firewall_enable=” NO”
#IPv6ファイアウォールの設定起動スクリプトのフルパス名。
ipv6_firewall_script=” /etc/rc.firewall6”
ipv6_firewall_type=” UNKNOWN” #IPv6ファイアウォールのタイプの指定(/etc/rc.firewall6を参照)。
#IPv6ファイアウォール起動時のルール追加を表示するかどうかの設定。
ipv6_firewall_quiet=” NO”
# ip6fwのコマンドの” -q”オプションに相当。
#IPv6ファイアウォールのロギング機能の設定。
ipv6_firewall_logging=” NO”
#IPv6ファイアウォール制御コマンド(ip6fw)の引数の指定。
ipv6_firewall_flags=””
【図 30】 /etc/defaults/rc.conf のサンプルとその簡単な説明
21
しかし、本論文では、ルータとして利用せず、アドレス自動生成を利用したリーフノ
ードとすることになっているため、これに関係する部分だけ記述すればよい。この場合、
/etc/rc.conf の Ipv6 設定は非常に単純なため、
(図 31)のようにするだけでよい。
###
###
###
### /etc/rc.confの最小限の設定
###
###
#IPv6を利用する場合はYES。
ipv6_enable=” YES”
【図 31】 IPv6 ホストの最小限の設定
以上で OS の基本設定は終了である。また、inetd の設定を telnet で受け付けるように
設定しておけば、後の動作確認で利用するため便利である(図 32)
。
# $FreeBSD: src/etc/inetd.conf,v 1.44.2.3 2011/01/25 16:11:52 kris Exp $
#
# Internet server configration database
#
#
@(#)inetd.conf
5.4(Berkeley) 6/30/90
#
ftp
stream
tcp
nowait
root
/usr/libexec/ftpd
ftpd -l
telnet
stream
tcp
nowait
root
/usr/libexec/telnetd telnetd
#shell
stream
tcp
nowait
root
/usr/libexec/rshd
rshd
#login
stream
tcp
nowait
root
/usr/libexec/rlogind rlogind
【図 32】 /etc/inetd.conf の設定例
第2節
アプリケーションの導入
OS の設定作業で、単体での Ipv6 通信が可能になり、telnet や ftp などは Ipv6 で利
用できるようになっている。しかし、今回の目的はサーバマシンとして動作させるため
なので、サーバ関連のソフトウェアなどを導入する必要がある。OS のインストール時
にバイナリパッケージを導入している場合は、Ipv6 サーバ関連のソフトウェアがイン
ストールされている。しかし、ここでは IPv6 サーバ関係のソフトウェアがインストー
ルされていないことを前提に、インストールする方法を説明していく。
まず、FreeBSD においてアプリケーションを導入する場合、以下の方法がある
そのため、これらの方法を用いたインストールにいて説明していく。
①バイナリパッケージの利用
②ports を利用してソースからコンパイルする
③独自で最新バージョンをコンパイルする
まず、バイナリパッケージの利用についてだが、前述から OS のインストール時にア
プリケーショのバイナリパッケージがインストールできる。しかし、/stand/sysinstall
コマンドを実行すれば OS とまったく同じインターフェースでバイナリパッケージを
インストールすることができる。以下、実際の図でその流れを説明する。[1]
・ /stand/sysinstall の実行
・ “Index
Glossary of functions”を選択(図 33)
22
【図 33】Glossary of functions の選択
・
“Packages
The packages collection”を選択(図 34)
【図 34】The packages collection の選択
23
・インストールメディアを選択
【図 35】インストールメディアの選択
・
“ipv6
Ipv6 related software”を選択
【図 36】IPv6 relate software の選択
24
・パッケージの選択
【図 37】パッケージ選択
・インストールの実行図
【図 38】インストール実行図
以上の方法でインストールされたバイナリパッケージは、通常/usr/local ディレクト
リに導入されている。
次に、ports を利用してソースからコンパイルする方法について説明する。Ports と
は、FreeBSD や OpenBSD でソフトウェアのパッケージを管理するシステムである。
ダウンロードからインストール、バイナリパッケージ化までの一連の動作を自動で行え
るという便利なものである。Ports は/usr/ports 以下のディレクトリに存在し、負けコ
マンドを用いて操作を実行する。その仕組みは(図 39)のようになっている。
/
usr
すべてのパッケージ
ports
net
ipv6
netに分類されている
すべてのパッケージ
mozilla
mozillaのみ
【図 39】ディレクトリとパッケージの関係
25
/usr/ports 以下のディレクトリはアプリケーションごとに分類されそのアプリケーシ
ョンディレクトリ以下に各アプリケーション用のファイルが存在している。例えば、
BIND9 の場合/usr/ports/net/bind9 というディレクトリ以下に、Makefile や FreeBSD
の ports 用のパッチやパッケージの定義ファイルがある。このディレクトリに make
package コマンドを利用すると、Makefile の定義に従い、インターネットからソース
がダウンロードされ、ソースの展開からバイナリパッケージの作成が自動的に行われる。
また、/usr/ports ディレクトリにも Makefile が存在するため、そこで make package
コマンドを利用すると全てのソフトウェアのパッケージ作成が行われ、/usr/ports/[カテ
ゴリディレクトリ]で make package コマンドを利用するとそのカテゴリ以下の全ての
ソフトウェアのパッケージ作成が行われる。
次に、ports 利用して BIND9 と IPv6 対応版の Apache の導入を行う。手順は以下の
通りである。
(1) ディレクトリ/usr/ports/net/bind9 に移動
(2) make package
(3) ディレクトリ/usr/ports/www/apache13+ipv6 に移動
(4) make package
ここで注意しなければならないのが、バイナリパッケージなどで BIND9 や Apache
がインストールされていると make package ができない。そのため、pkg_info コマン
ドで BIND や Apache がインストールされていないことを確認し、導入を行う。もし、
BIND や Apache がインストールされていた場合、pkg_delete コマンドを用いればイン
ストールパッケージを削除することができる。
第3節
アプリケーションの設定
BIND の設定では、パッケージ化されたバイナリの場合、設定ファイルのデフォルトで
のディレクトリなどの場所が分からないことがある。このため、場所を確認するために
pkg_info コマンドを用いる。まず、BIND 関連パッケージの名前を知るために、パッ
ケージ情報から“bind”を含む部分を探す。
(図 40)から、BIND-9.0.0.1 がインスト
ールされていることがわかる。次に、パッケージに含まれているファイルの一覧を確認
するために pkg_info –L で実行する。
26
bash-2.04$ pkg_info |grep bind
bind-9.0.0_1
The Berkeley Internet Name Daemon, an implementation of
py-gnome-1.0.53 A set of Python bindings GNOME
py-gtk-0.6.6
A set of Python bindings for GTK
rep-gtk-0.14_1
GTK+ binding for rep Lips interpreter
bash-2.04$ pkg_info -L bind-9.0.0_1
Information for bind-9.0.0_1:
Files:
/usr/local/man/man8/dnssec-signzone.8.gz
/usr/local/bin/dig
/usr/local/bin/host
/usr/local/bin/isc-config.sh
/usr/local/bin/nslookup
/usr/local/bin/nsupdate
/usr/local/include/dns/a6.h
/usr/local/include/dns/acl.h
/usr/local/include/dns/aclconf.h
(中略)
/usr/local/lib/libomapi.a
/usr/local/sbin/dnssec-keygen
/usr/local/sbin/dnssec-makekeyset
/usr/local/sbin/dnssec-signkey
/usr/local/sbin/dnssec-signzone
/usr/local/sbin/lwresd
/usr/local/sbin/named
/usr/local/sbin/rndc
bash-2.04$ strings /usr/local/sbin/named |grep named.conf
/usr/local/etc/named.conf
bash-2.04$ strings /usr/local/sbin/named |grep named.pid
/usr/local/var/run/named.pid
【図 40】BIND のパッケージ情報
図から、named が/usr/local/sbin/以下にインストールされていることがわかる。それ
以外にデフォルトの設定ファイルの場所と、PID ファイルの場所を確認するためにそれ
ぞれ探し出す。図では、設定ファイルは/usr/local/etc/named.conf に、PID ファイルは、
/usr/local/var/run/named.pid にあることがわかる。実際に named を運用するために、
設定ファイルに記述し、プロセスの制御に PID ファイルを利用する。まず、プロセス
を終了させるために kill コマンドを用いる。PID ファイルの中身が現在稼働中の named
のプロセス番号になっているため、これを kill コマンドの引数に利用する(図 41)。
bash-2.04$ kill 'cat /usr/local/var/run/named.pid'
【図 41】BIND の終了
最後に、マシン起動時にデフォルトで DNS サーバが起動するように設定るる。その
ため、/etc/rc.conf に named を起動するための記述を行う必要がある(図 42)。この記
述で、次回以降起動の際、named も起動する。
#
# named. It may be possible to run named in a sandbox, man security for details.
#
named_enable=”YES”
#namedを起動する場合はYES
named_program=” /usr/local/abin/named” #追加インストールしたnamedのパス
named_flags=””
#named起動時の引数の定義
【図 42】/etc/rc.conf に追加する BIND 関連設定
27
次に、Apache の設定だが、BIND と同様にパッケージ名とファイルの場所を確認す
るために、pkg_info を利用する(図 43)
。
bash-2.04$ pkg_info |grep apache
apache+ipv6-1.3.14 The extremely popular Apache http server. Very fast, very c
bash-2.04$ pkg_info -L apache+ipv6-1.3.14
Information for apache+ipv6-1.3.14:
Files:
/usr/local/man/man1/dbmmanage.1.gz
(中略)
/usr/local/man/man8/rotatelogs.8.gz
/usr/local/bin/dbmmanage
/usr/local/bin/htdigest
/usr/local/bin/htpasswd
/usr/local/etc/apache/access.conf.default
/usr/local/etc/apache/httpd.conf.default
/usr/local/etc/apache/magic.default
/usr/local/etc/apache/mime.types.default
/usr/local/etc/apache/srm.conf.default
/usr/local/etc/rc.d/apache.sh
/usr/local/include/apache/ap.h
/usr/local/include/apache/ap_alloc.h
(中略)
/usr/local/sbin/ab
/usr/local/sbin/apachectl
/usr/local/sbin/apxs
/usr/local/sbin/httpd
/usr/local/sbin/logresolve
/usr/local/sbin/rotatelogs
/usr/local/share/doc/apache/README.rus
/usr/local/share/doc/apache/apache_pb.gif
(中略)
/usr/local/www/icons/world2.gif
【図 43】IPv6 対応 Apache のバイナリパッケージ情報
図から、導入されている Apache のパッケージは apache+ipv6-1.3.14 で、プログラ
ムの本体は/usr/local/sbin/httpd であり、制御用のコマンドが/usr/local/sbin/apachectl、
そして設定ファイルの場所が/usr/local/etc/apache であることがわかる。また、Apache
のパッケージには、OS 起動時に Apache を起動するためのスクリプトがあり、
/usr/local/etc/rc.d/apache.sh であることがわかる。
Apache のパッケージはインストールした時点で自動起動する設定になっているので、
パッケージのインストール以後は起動時に Apache が動作するようになっている。
第4節
動作確認
これまでの設定で、IPv6 で動作する環境が出来上がったので、実際に動作を確認す
るために一度再起動し、正常にログインできることを確認する。起動が正常に終了した
ら、以下の 3 つの確認を行う。
① OS が IPv6 で通信可能な状態になっているか
② Apache(httpd)が稼働し、IPv6 の接続を受け入れているか
③ BIND9(named)稼働し、IPv6 関連リソースレコードが検索できるか
28
まず、OS の動作確認として、ネットワークインターフェースの状態を確認する。ル
ータが正しく動作しており、設定が適切に行われていれば、アドレス自動生成でネット
ワークインターフェースに IPv6 アドレスが設定されているので、これを ifconfig コマ
ンドで確認する。コマンドを実行して(図 44)の下線部のように IPv6 アドレスが振り
分けられていれば、アドレス自動生成は正しく動作している。
bash-2.04# ifconfig -a
x10: flags=8843<UP,BROADCAST,RUNNING,STMPLEX,MULTICAST> mtu 1500
inet6 fe80::260:8ff:fe88:b446%x10 prefixlen 64 scopeid 0x1
inte6 3ffe:501:ffff:8101:260:8ff:fe88:b446 prefixlen 64
inet xxx.xxx.xxx.xxx netmask 0xffffff00 broadcast xxx.xxx.xxx.xxx
ether 60:08:fe:88:b4:46
media: autoselect (100baseTX <full-duplex>) status: active
supported media: autoselect 100baseTX <full-duplex> 100baseTX 10baseT/UTP
<full-duplex> 10baseT/UTP 100baseTX <hw-loopback>
lo0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
faith0: flags=8041<UP,RUNNING,MULTICAST> mtu 1500
inet6 fe80::260:8ff:fe88:b446%faith0 prefixlen 64 scopeid 0x3
inet 0.0.0.0 netmask 0xff000000
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
gif1: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
gif2: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
gif3: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x8
inet6 ::1 prefixlen 128
inet 127.0.0.1 netmask 0xff000000
ppp0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500
sl0: flags=co10<POINTOPOINT,LINK2,MULTICAST> mtu 552
bash-2.04#
【図 44】ifconfig の結果サンプル
次に telnet で通信を行い、ほかのホストからこのホストに対して telnet を行い接続
できることを確認する(図 45)
。
bash-2.04$ teln 3fee:501:ffff:8101:260:8ff:fe88:b446
Trying 3fee:501:ffff:8101:260:8ff:fe88:b446…
Connected to freebsd
Escape character is ‘^]’ .
FreeBSD/i386 (freebsd1) (ttyp5)
login:
login: connection closed by foreign host.
bash-2.04$
【図 45】telnet の実行例
次に、telnet を利用して Apache の動作確認を行う。まず、ps コマンドで httpd が
起動しているかを確認する(図 46)。
freebsd1 ps ax
175 ?? Ss
204 ?? I
205 ?? I
206 ?? I
207 ?? I
208 ?? I
818 ?? I
freebsd1
|grep http
0:00.43 /usr/local/sbin/httpd
0:00.01 /usr/local/sbin/httpd
0:00.02 /usr/local/sbin/httpd
0:00.01 /usr/local/sbin/httpd
0:00.00 /usr/local/sbin/httpd
0:00.01 /usr/local/sbin/httpd
0:00.00 /usr/local/sbin/httpd
【図 46】ps コマンドによる httpd の確認
29
次に、80 番ポートに telnet で接続し、ドキュメントルートの index.html を取得する。
(図 47)はローカルマシンから試した場合の結果で、この結果 HTML ドキュメントが
取得できれば動作確認は終了となる。
bash-2.04$ telnet localhost 80
Trying ::1…
connected to localhost.
Escape character is ‘^]’.
GET http://localhost/index.html
GET http://localhost/index.html
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 3.2 Final//EN”>
<HTML>
<HEAD>
<TITLE>Test Page for Apache Installation</TITLE>
(中略)
<P>
You are free to use the image below on an Apache-powered web server. Thanks for using Apache!
<DIV ALIGN=“CENTER”><IMG SRC=” apache_pb.gif” ALT=”” ></DIV>
</BODY>
</HTML>
Connection closed by foreign host.
【図 47】telnet による Apache の動作確認
最後に、BIND(DNSサーバ)の確認として、IPv4 で問い合わせが処理できること
だけを確認する。まず、DNS の問い合わせを行うために/etc/resolv.conf の中身を確認
する。named がこのホストで稼働しているため、/etc/resolv.conf の nameserver のフ
ィールドは自身を示すように IPv4 のループバックアドレスを指定しておく(図 48)
。
domain v6.net
serch v6.net
namesever 127.0.0.1
【図 48】/etc/resolv.conf の例
次に、httpd の確認時と同様に ps コマンドを用いて named が実際に稼働しているかを
確認する。最後に、dig コマンドで確認すれば、BIND の動作確認は終了である(図 49)。
bash-2.04$ dig @127.0.0.1 AAAA freebsd1.v6.net
【図 49】dig による BIND9 の動作確認
30
第5章
第1節
IPv6 対応ルータについて
IPv6 対応ルータの仕様の比較
はじめに、現在市販されている IPv6 対応ルータ 8 種類の製品仕様を比較し、まとめ
たものを提示する(図 50)。
メーカー
corega
corega
BUFFALO
型番
CG-WLBARGPXB CG-BARPRO6
BBR-4HG
100Mbps
有線速 理論値
度 実測値(FTP)
65Mbps
85Mbps
92Mbps
IPv6
ブリッジ
デュアルスタック
ブリッジ
SPI
○
○
○
Dos攻撃検知
○
○
○
○
○
○
WAN PPPoE
側IP取 DHCP
○
○
○
得方法 IP Unnumbreed
○
○
○
DHCPサーバ機能
○
○
○
IPマスカレイド
×
○
○
DMZ
○
○
○
VPNリモートアクセス
×
×
×
無料DDNS機能
○
○
×
ポート開放
○
○
○
メーカー
PLANEX
PLANEX
IO DATA
型番
BRL-04M
MZK-WNH
NP-BBRL
100Mbps
有線速 理論値
度 実測値(FTP)
80Mbps
94Mbps
93Mbps
IPv6
ブリッジ
ブリッジ
パススルー
SPI
×
×
○
Dos攻撃検知
×
×
○
○
○
○
WAN PPPoE
側IP取 DHCP
○
○
○
得方法 IP Unnumbreed
○
○
×
DHCPサーバ機能
○
○
○
IPマスカレイド
○
○
○
DMZ
○
○
○
VPNリモートアクセス
×
×
×
無料DDNS機能
○
○
○
ポート開放
○
○
○
BUFFALO
WHR-G301N
92Mbps
パススルー
○
×
○
○
×
×
○
○
○
×
○
IO DATA
WN-G54/R3
86Mbps
パススルー
○
×
○
○
×
○
×
○
×
○
○
【図 50】IPv6 対応ルータの仕様比較
第2節
IPv6 対応ルータ 8 製品の詳細説明
第1項
corega/CG-WLBARGPXB[5]
CG-WLBARGPXB は、corega から 2007 年 1 月に発売された無線ブロードバンドルー
タである。標準価格は 5,565 円(税込)である。主な特徴は、無線 LAN 普及推進団体
である『Wi-Fi Alliance』が発表した無線 LAN 接続方式である、
『Wi-Fi Protected Setup』
を採用し、クライアントが corega に対応していればルータと子機のボタンを押すだけ
で接続設定ができる。また、ルータの機能オフ時にはスイッチングハブ付き無線 LAN
31
アクセスポイントとしても利用できるため、スイッチ
ングハブとして利用しながら Wi-Fi を楽しむなど柔軟
な使い方が可能である。また、本体背面にあるスイッ
チを ON にすることで、WPA/WPA2 などのセキュリ
ティ機能を利用することもできる。
【図 51】CG-WLBARGPXB
第2項
corega/CG-BARPRO6[6]
CG-BARPRO6 は、corega から 2005 年 8 月に発売された IPv6 対応有線ブロードバ
ンドルータである。価格は 17,640 円(税込)である。主な機能は、IPv4/IPv6 デュア
ルスタック機能を搭載しており、IPv4 と IPv6 の両方のネットワークを利用することが
可能である。また、オートネゴシエーション機能に
より、スイッチに接続されたコンピュータと通信速
度、通信モードを自動的に最適化することができる。
さらに、Auto MDI/MDI-X に対応しているため、
接続したイーサネットケーブルの種別を自動認識
できる。そのため、ケーブルの違いなどを考慮しな
くても利用することが可能である。また、同梱の簡
単ルータ接続ソフトにより、初心者でも簡単に接続
【図 52】CG-BARPRO6
することが可能である。
第3項
BUFFALO/BBR-4HG[7]
BBR-4HG は、BUFFALO から 2003 年 10 月に発売された有線ブロードバンドルー
タである。価格は 6,090 円(税込)である。主な機能は、コンピュータをダウンさせる
Dos 攻撃や PortScan などを検出すると、クライアントマネージャにポプアップ通知し、
さらにメールで通知してくれるアタックブロッ
ク機能がある。また、SPI(ステートフル・パケ
ット・インスペクション)機能により、高レベル
のパケットフィルタリングが可能となり、通信セ
ッション毎にパケットフィルタリングの統合性
をチェックし、セッション終了時には全ポートを
閉じるため不正アクセスの防止も可能となる。そ
のため、セキュリティ面に対しては非常に強いル
【図 52】BBR-4HG
ータとなっている。
32
第4項
BUFFALO/WHR-G301N[8]
WHR-G301N は BUFFALO から 2009 年 12 月に発売された無線ブロードバンドルー
タである。価格は 5,565 円(税込)である。主な機能は、最大 300Mbps の無線 LAN
高速規格である 11n に対応している。
さらに、
MIMO
(Multiple Input Multiple Output)
技術を使用し、2 本のアンテナで送受信を行うこ
とで安定した通信を行うことが可能である。また、
2 台の無線 LAN 親機関での無線通信機能をサポ
ートし、通信距離の延長や死角エリアへの中継も
可能となる。また、インターネットを使う時間、
使わない時間などを設定し、オン/オフを自動で行
う『おまかせ節電』機能により、自分の生活に合
わせた省エネが可能となっている。
【図 53】WHR-G301N
第5項
PLANEX/BRL-04M[9]
BRL-04M は PLANEX から 2008 年 12 月に発売された有線ブロードバンドルータで
ある。価格は 3,280 円(税込)である。主な機能は、接続しているクライアントに対し
て必要な情報(ゲートウェイアドレスや DNS アドレスなど)を自動的に割り当てること
が可能なため、ネットワークの管理が容易になる
ほか、他に DHCP サーバがある場合は DHCP ク
ライアントとしても設定が可能である。また、
PPPoE マルチセッションに対応しており、プロ
バイダと、フレッツ・スクウェアとの同時接続を
行うことが可能である。さらに、小型だがオート
ネゴシエーション機能や Auto MDI/MDI-X に対
応しているため、汎用性の高いルータである。
【図 54】BRL-04M
33
第6項
PLANEX/MZK-WNH[10]
MZK-WNH は PLANEX から 2008 年 12 月に発売された無線ブロードバンドルータ
である。価格は 5,250 円(税込)である。主な特徴は、パソコンと家庭用ゲーム機など、
セキュリティレベルが異なる機器との同時接続が可能であり、機器に接続する場合機器
に応じてセキュリティレベルを自動で変更し利
用することが可能である。また、別途『TV&バ
ッテリー』を購入し、自宅に設置することで
『TV&バッテリー』で受信したワンセグ放送を
Wi-Fi 経由で、iPhone でワンセグ放送を視聴す
ることができる。
【図 55】MZK-WNH
第7項
I・O DATA/WN-G54/R3[11]
WN-G54/R3 は I・O DATA から 2006 年 9 月に発売された無線ブロードバンドルータ
である。価格は 8,820 円(税込)である。主な機能は、アセロス社が開発した、無線
LAN の通信距離を拡大する XR(eXtended Ramge)機能に対応しており、ルータから
離れた場所や、死角となっていた場所でも安定
して接続することが可能である。また、I・O
DATA の、DDNS サービスである『iobb.net』
により、IP アドレスに「○○○.iobb.net」とい
うユーザー毎の名称を付け、外出先からのリモ
ートアクセスなどを、無償で利用することが可
能である。さらに、自動チャンネル設定機能に
より、自動的に電波の混雑が少ないチャンネル
に設定が可能なため、電波干渉によるスループ
ットの低下を避けることが可能である。
34
【図 56】WN-G54/R3
第8項
I・O DATA/NP-BBRL[12]
NP/BBRL は I・O DATA から 2006 年 2 月に発売された有線ブロードバンドルータで
ある。価格は 2,877 円(税込)である。主な特徴は、
ネットワーク対応のハードディスクビデオレコー
ダなど、デジタル家電との接続が可能である。また、
Web ブラウザでの設定が可能なため、専用のソフ
トを必要とせず、簡単に設定をすることが可能であ
る。
【図 57】NP-BBRL
第3節
ホームネットワークの構築事例
前節で紹介したルータを利用し、ホームネットワークの構築事例を紹介する
外出先
Wi-Fi
中継機
テレビ
192.168.1.10
ネットワーク HDD
(NAS)
地デジデータ
カメラデータ
外出先データ
ルータ
192.168.1.0
192.168.1.1
パソコンデータ
デスクトップ PC
192.168.1.2
ノート PC
192.168.1.3
Web カメラ 1
192.168.1.11
Web カメラ 2
192.168.1.12
【図 58】ホームネットワークのシステム構成図
図 58 は、BUFFALO の WHR-G301N を利用したネットワーク構成図である。無線
LAN で web カメラやテレビなどの情報家電に接続し、テレビでは IPv6 機能を用いて
フレッツ光 TV や、パススルーによる IPv6 ネットワークを利用することができる。ま
た、テレビなどのデータやコンピュータの HDD を、NAS を用いて管理することで必
35
要なデータなどを 1 か所に集約させている。さらに、リモートアクセス機能により、外
出先からのリモートアクセスが可能なため、外出先から自宅のコンピュータにアクセス
することが可能である。
第4節
製品仕様の比較結果および考察
ルータの仕様を比較した結果、まず注目すべき項目は IPv6 接続方式である。Corega
の CG-BARPRO6 が IPv4/IPv6 デュアルスタックなのに対し、その他のルータはブリ
ッジ接続またはパススルー接続となっている。また、セキュリティに関しても、corega
のルータは他社のルータと比べても性能が高いといえる。BUFFALO の WHR-G301N
に関しては VPN リモートアクセスが可能なため外出先からでも家のパソコンの遠隔操
作などネットワーク内にあるすべての機器とのデータのやり取りなどが可能というメリッ
トもある。また、初心者が購入するという点では、設定が容易である NP-BBRL や BRL-04M、
CG-WLBARGPXB がよい。外出先からのリモートアクセスなどを利用したいなら VPN リ
モートアクセス機能が利用できる BBR-4HG がよい。無線 LAN による高速通信を楽しみた
い場合などは、WHR-G301N や MZK-WNH を推奨する。IPv6 を利用したインターネット
を楽しみたい場合などは CG-BARPRO6 を利用することがよいだろう。
3 章のホームネットワークの構築事例では、リモートアクセス機能を用いたホームネ
ットワークを考案した。そのため、BUFFALO の WHR-G301N を利用し、NAS を用
いて自宅内データを統一した。そこで、リモートアクセスを用いて NAS にアクセスす
ることで、許可された情報を外出先から閲覧することが可能になる。さらに IPv6 パス
スルー機能でフレッツ光 TV や IPv6 サービスを利用することができる。さらにテレビ
とネットワークを接続することで地デジの録画なども可能となる。セキュリティにおい
てもマルチセキュリティ機能で接続する機器が対応する最も高い暗号化レベルのセキュ
リティを自動設定することができる。
最期に、
筆者が推奨するルータとしては、corega の CG-BARPRO6 または、BUFFALO
の BBR-4HG である。CG-BARPRO6 は IPv4/IPv6 デュアルスタック機能があり、セ
キュリティ面に関しても十分機能が高い。BBR-4HG は、安定性が高くセキュリティ面
も充実している。価格に関してもそれほど高価ではなく、消費電力も低いので人気が高
い。どのルータに関してもメリット・デメリットは存在するが、製品仕様を調べ比較し
た結果、筆者は上記の 2 種類のルータを推奨したい。
36
第6章
まとめ
本論文では、IPv4 枯渇問題に対して Linux と FreeBSD を用いてそれぞれネットワ
ークの構築について述べた。Linux では IPv6 の実装の現状から、Kondara を利用し必
要なアプリケーションの導入、設定、ネットワークの動作確認の方法について解説した。
また、Linux の IPv6 対応における将来動向も、現在開発が進められているプロジェク
トに関して解説した。KAME プロジェクトの FreeBSD に関しては、プロジェクトを
紹介し、Linux と同様に OS の導入から、BIND や Apache の導入、設定、動作確認に
ついて解説した。IPv6 対応ルータの仕様比較では、現状の IPv6 対応比較や、性能、推
奨するルータなどを紹介した。
しかし、IPv6 対応に関する問題は少なくない。IPv4 から、IPv6 への移行や、一般
家庭への普及など、現状では世間の認知度が低く、あまり知られていない。しかし、2012
年には、IPv4 アドレスは枯渇すると予想されているため、今後の IPv6 対応に関するプ
ロジェクトの取り組みや、世間への認知を広めることも必要である。さらに、IPv6 に
対応した製品を開発し、これからの IPv6 への関心を高めていく必要がある。
37
参考文献
[1] あきみち. (2010). Linux ネットワークプログラミング. ソフトバンククリエイティブ.
[2] IPv4. http://ja.wikipedia.org/wiki/IPv4
[3] IPv6. http://ja.wikipedia.org/wiki/IPv6
[4] 松平直樹
監修. (2001). IPv6 ネットワーク実践構築技法. オーム社.
[5] corega/ CG-WLBARGPXB. http://www.corega.co.jp/prod/wlbargpxb/index.htm
[6] corega/ CG-BARPRO6. http://corega.jp/product/list/router/barpro6.htm
[7] BUFFALO/ BBR-4HG. http://buffalo.jp/products/catalog/item/b/bbr-4hg/index.html
[8] BUFFALO/ WHR-G301N. http://buffalo.jp/products/catalog/network/whr-g301n/
[9] PLANEX/ BRM-04M. http://www.planex.co.jp/product/router/brl-04m/index.shtml
[10] PLANEX / MZK-WNH.
http://www.planex.co.jp/product/router/mzk-wnh/index.shtml
[11] I・O DAT/ N-G54/R3.
http://www.iodata.jp/prod/network/wnlan/2006/wn-g54r3/index.htm#01
[12] I・O DAT/ NP-BBRL.
http://www.iodata.jp/product/network/router/np-bbrl/spec.htm
謝辞
本論文において、多くのアドバイスをいただき、また、遊んでいただいた尾花将輝氏に感
謝します。オープンキャンパスでまとめてくれた妹背武志氏に感謝します。アドバイスを
くれた杉木亜友美氏に感謝します。アドバイスをくれた小藪瑠璃氏に感謝します。アドバ
イスをくれた柴田洋佑氏に感謝します。共に励ましあった小山史弥氏に感謝します。くだ
らない話や遊びに付き合ってくれた管貴将氏に感謝します。相談にのってくれた西井裕亮
氏に感謝します。迷惑をかけたにもかかわらず、励ましてくれた金光大貴氏に感謝します。
学校からの帰宅時、バイクで自転車をひっぱってくれた仙田友久氏に感謝します。いつも
楽しませてくれた原知廣氏に感謝します。いつも支えてくれた家族に感謝します。最後に、
ゼミでの面倒を見ていただき、多くの迷惑をかけ、多くのアドバイスを頂いた花川典子教
授に心より感謝します。
38
Fly UP