Linux IPv6 FAQ/HOWTO Eric Osborne v3.2.1, 1997/07/14 Araki Yasuhiro v3.2.1j, 1997/07/14 この文書 (Linux IPv6 FAQ/HOWTO) はすべての Linux ユーザに対して、IPv6 がつかえること (Linuxはそのうちのひとつです)、開発がどのようにおこなわ れているか、そしてあなたの Linux マシンに IPv6 関連のソフトをどのよう にインストールするかを説明することが目的です。 JF より:この文書は 1997年6月以来、更新されていません。現在とは事情が 異なると思われるので、ご注意ください。 1. バージョン この文書は Linux IPv6 FAQ/HOWTO, バージョン 3.2.1 - 7/14/1897です。 以前からの変更点: o 古くなったところを削除しました。 o いくつかのversion番号をあげました。 o いくつかのまちがいをなおしました。 o いくつかのミススペルをなおしました.... Copyright 1997 Eric Osborne. この文書を非商用目的に、新たな配布制限を 設けず、かつ全文そのままのかたちで再配布することは、筆者の望むところで す。商用出版の際は著者にあらかじめコンタクトしてください。 2. この文書について 2.1. 著者 Linux IPv6 FAQ/HOWTOの主たる著者は Eric Osborne ですが、いくつかは、 netdev メーリングリストや、その他の情報源からのも のです。いつでもできるかぎり、その所属を明示します。 2.2. FAQ/HOWTO のミラーサイト この FAQ/HOWTO はいまのところ、全部で 4 の大陸にミラーされています。あ なたから近いところを試して利用してください。 北アメリカ: o (マスターサイト) o o 南アメリカ: o ヨーロッパ: o o o o o オーストラリア: o アジア o (日本語です) ミラーサイトのセットアップの情報は Eric にコンタ クトしてください。 3. IPv6 とは? (Tony Gale さんからほとんどの寄稿をいただきました。感謝します。) IPv6 は次世代のインターネットプロトコルで、現在のプロトコル(IPv4)の後 継者として設計されています。 [RFC-791] IPv6 は IPv4 に無い、いくつかの特徴を含んでいます。 o 拡張されたアドレス IPv6ではIPアドレスのサイズが32から128ビットに増大した。これはさらな るアドレス階層化、アドレスをつけられるノードの増大、そしてアドレス 自動設定のサポートのためである。マルチキャストルーティングの拡張性 は、マルチキャストアドレスに「スコープフィールド」を加えることで改 良される。また、「エニーキャスト」とよばれる新しいアドレス型がグル ープノードにパケットを送るために定義された。 o ヘッダー形式の簡略化 いくつかのIPv4のヘッダー領域はつかわれなかったり、オプションになっ ている。これはパケットの生成コストを減少させ、 IPv6のヘッダの帯域コ ストを抑制させるためである。 o 拡張やオプションのサポートの改善。 IPヘッダのオプションの変更は、より効率的なフォワーディング、オプ ションの長さ制限の厳密さの緩和、そして将来提供されるオプションの柔 軟性が盛りこまれている。 o フローラベルの整備。 あたらしく、特別のトラフィックの「フロー」に属するパケットのラベル を可能なように整備された。これは送信者が通常つかわれない品質のサー ビスや、「リアルタイム」サービスのためのものである。 o 認証と機密性の整備。 認証、完全性、そしてオプションで機密性の拡張が IPv6 での仕様とされ た。 LinuxのIPv6の核となるコードは David Miller と Eric Schenk によってメンテナンスされていま す。 詳しくは以下を読んでください。 3.1. Web sites 私が見た中で IPv6 と 6bone に関して始めに読む最も良いサイトは次世代IP (IPng). あなたは NASA にある IPv6 at the NAS をチェックしたくなることでしょ う。 Kevin Rae がウェブ上で面白い見解 - " ディジタルオーディオと IPv6 - を 述べています。IPv4とIPv6をならべた比較と、IPv6 の QoS (帯域保証) の紹 介があります。 3.2. RFC とインタネットドラフト (私がかぞえたところでは) CATNIPやTUBAなど、IPv6がプローザルになる前の ものも含めて、55のRFCがIPv6に関して出ています。いくつかは関連したRFCで す。 o 2147: TCP and UDP over IPv6 Jumbograms o 2133: Basic Socket Interface Extensions for IPv6 o 2073: An IPv6 Provider-Based Unicast Address Format o 2101: IPv4 Address Behaviour Today o 2081: RIPng Protocol Applicability Statement o 2080: RIPng for IPv6 o 2030: Simple Network Time Protocol (SNTP) Version 4 for IPv4, IPv6 and OSI o 2023: IP Version 6 over PPP o 1981: Path MTU Discovery for IP version 6 o 1972: A Method for the Transmission of IPv6 Packets over Ethernet Networks o 1971: IPv6 Stateless Address Autoconfiguration o 1970: Neighbor Discovery for IP Version 6 (IPv6) o 1933: Transition Mechanisms for IPv6 Hosts and Routers o 1897: IPv6 Testing Address Allocation o 1888: OSI NSAPs and IPv6 o 1887: An Architecture for IPv6 Unicast Address Allocation o 1886: DNS Extensions to support IP version 6 o 1885: Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) o 1884: IP Version 6 Addressing Architecture o 1883: Internet Protocol, Version 6 (IPv6) Specification o 1881: IPv6 Address Allocation Management o 1809: Using the Flow Label Field in IPv6 多くの インターネットドラフトがあります。これらは急速に変化します が、7/14/97 の時点で有用なものを以下に挙げます。 o Transmission of IPv6 Packets over FDDI Networks o IP Version 6 over PPP o Advanced Sockets API for IPv6 o Generic Packet Tunneling in IPv6 Specification o IPv6 Router Alert Option o Transmission of IPv6 Packets over Token Ring Networks o An IPv6 Aggregatable Global Unicast Address Format o IPv6 Multicast Address Assignments o IP Version 6 Management Information Base for the User Datagram Protocol o IP Version 6 Management Information Base for the Transmission Control Protocol o Management Information Base for IP Version 6: Textual Conventions and General Group o A proposal for an IPv6 site database object o Mobility Support in IPv6 o Dynamic Host Configuration Protocol for IPv6 (DHCPv6) o IPv6 Testing Address Allocation o Dynamical routing (unicast and multicast) for the Ipv6 protocol o Routing Aspects Of IPv6 Transition o Router Renumbering for IPv6 o IPng Analysis of the GSE Proposal o The Use of End System Designators in IPv6 o IP Version 6 Addressing Architecture o OSPF for IPv6 o Implications of the GSE Addressing Scheme to IPv6 Multicast o Host Reachability Advertisement for IPv6 o Header Compression for IPv6 over PPP o Synthesis of Routing Goop and AAAA Records in IPv6 o Realizing the Benefits of Virtual LANs by Using IPv6 o Management Information Base for IP Version 6: ICMPv6 Group o Management Information Base for IP Version 6: UDP and TCP Groups o Transient Neighbors for IPv6 over ATM o Transmission of IPv6 over IPv4 Domains without Explicit Tunnels o GSE - An Alternate Addressing Architecture for IPv6 o Service Location Modifications for IPv6 o Link Local Addressing and Name Resolution in IPv6 3.3. 本、メーリングリスト、その他 この本の章はまだ乏しいです。しかしながらスタートするためのいくつかをあ げておきます。 Internetworking with TCP/IP, Volume 1, Third Edition - Douglas Comer TCP/IP の古典的な本です、第 3 版には IPv6 の紹介の章があります。 Data and Computer Communications, Fifth Edition - William Stallings もうひとつの古典的な、データ通信全体を視野にいれた本です。 IPv6, ICMPv6 にためになる何ページかを含んでいます。 Routing in the Internet - Christian Huitema 私は持っていませんが(いくつかの理由から手にいれるのがむずかしい のです) しかし、著者の評判は知っていますし、見る価値があるでしょ う。 3.4. 6bone について 6bone はインターネットで IPv6 を IPv4 にカプセル化するプロジェクトで す。 もっと 6bone について詳しく知りたいときは、 6boneのホームページを見て ください。 6bone メーリングリストの内容は IPv6 - 6bone Mailing List で、見ること ができます。 3.5. IPv6 のアドレスの構造 IPv6のアドレスは128ビットの長さで、3つの型がある。ユニキャスト、エニー キャスト、マルチキャストである。ユニキャストアドレスは個々のインター フェースにつけられる。エニーキャストアドレスはインターフェースの集合を 示すが、エニーキャストアドレスに送られるパケットはその集合のうちの一つ のインターフェースに送られる。例えば、一番近いところに送る。マルチキャ ストアドレスもまた、インターフェースの集合を示すが、マルチキャストアド レスに送られるパケットはその集合の全てのインターフェースに送られる。そ の意味で、マルチキャストアドレスはブロードキャストアドレスの子孫である といえる。 IPv6 アドレスの表記 FEDC:BA98:7654:3210:FEDC:BA98:7654:3210 アドレスはしばしばいくつかの「0」を含む。たとえば FF01:0:0:0:0:0:0:43 0 がいくつか連続するときはアドレスを縮めることが許されている。「::」 は、16 ビットの 0 の連続を示す。上の例だと次のようになる。 FF01::43 IPv4とIPv6の混在した環境では、他の表記法も用意されている。たとえば ::10.5.27.200 は IPv6-in-IPv4 のパケットをおくる。 具体的なIPv6のアドレスタイプはそのアドレスの先頭に示される。先頭 bit から構成される可変長フィールドは Format Prefix (FP) といわれる。それら のプリフィックスの先頭の構造は以下。 Allocation Prefix Fraction of (binary) Address Space Reserved 0000 0000 1/256 Unassigned 0000 0001 1/256 Reserved for NSAP Allocation 0000 001 1/128 Reserved for IPX Allocation 0000 010 1/128 Unassigned 0000 011 1/128 Unassigned 0000 1 1/32 Unassigned 0001 1/16 Unassigned 001 1/8 Provider-Based Unicast Address 010 1/8 Unassigned 011 1/8 Reserved for Geographic-based 100 1/8 Unicast Addresses Unassigned 101 1/8 Unassigned 110 1/8 Unassigned 1110 1/16 Unassigned 1111 0 1/32 Unassigned 1111 10 1/64 Unassigned 1111 110 1/128 Unassigned 1111 1110 0 1/512 Link Local Use Addresses 1111 1110 10 1/1024 Site Local Use Addresses 1111 1110 11 1/1024 Multicast Addresses 1111 1111 1/256 15% のアドレス空間がはじめ割当てられていて、のこり 85% は将来のために 残されている。 [RFC-1897] 6bone 上での IPv6 アドレス割当ての方法の記述。アドレス割当 てのプランは一時的なもので、将来変更されることになっている。 4. Linux に特化した情報 4.1. IPv6 の異ったアーキテクチャへの実装 ほとんどのLinux愛好家が知っているように、Linuxの移植はほとんどのアーキ テクチャ - x86, Sparc, PowerPC, and Alpha, などなどに可能だ。理論的に はLinuxのIPv6のコードはアーキテクチャに依存しない。 Alphaでは動くこと がわかっているし、Sparcでも動くという噂だ。しかしこの文書はほかがどう であるかにかかわらず、コードが安定化され、2.2.0が開発されているx86版 のLinuxを参照している。そして私はIPv6のコードが全てに移植されると確信 している。 4.2. カーネルバージョンに関する情報 この文書を書いている時点での最新の開発版のカーネルは 2.1.35 ですが、お そらくこの文書を読むころにはかわっているとおもいます。 IPv6 のサポート は今はカーネルのコンパイル時のオプションです。目標は IPv6 のコードを至 る 2.2.0 で安定させることです。 4.3. メーリングリスト 役にたついくつかのメーリングリストを挙げます。希望すれば参加できます。 The netdev list このリストはLinuxでIPv6を行うための作業にくわわるか、あるいは単 に興味がある人のためのものです。ここには開発者たちが参加していま す。 参加するには majordomo@nuclecu.unam.mx に アーカイブ o o o Linux-net Linuxでのnetworkingに関するメーリングリストです。参加するには linux-net@vger.rutgers.edu . Linux-kernel Linux-netのようなものですが、Linuxのカーネルに関連する内容です。 参加するには linux-kernel@vger.rutgers.edu . 5. どうしたら私のマシンで IPv6 がうごきますか? この章では Linux マシンに IPv6 のソフトウェアをインストールするところ をカバーします。これは、経験のある Linux ユーザが対象です。あなた は、Makefile や、ヘッダファイル、あるいはソースコードを動作させるため に入手しハックすることをおそらく必要とします。しかしながら、IPv6 に特 化した知識は必要としません。 以下のそれぞれのパッケージはその最新版の置いてあるサイトにリンクしてい ます。その次の章にダウンロードのためのミラーサイトが書かれていますの で、ますミラーに行ってください。 5.1. 必要不可欠なソフトウェア これはあなたが Linux マシンで、IPv6 を 6bone 上で動作させるのに入手す る必要がある一連のソフトウェアです。 o IPv6 のつかえるカーネル。あなたは 2.1.x のカーネル をつかわねばなり ません。2.1.44 が最新版です。 5.1.1. 開発用ライブラリ Craig Metz さんからです。 私は Linux libc 5.4.26 と、ヘッダのおきかえと、inet6-apps の libinet6 をつかってIPv6 のアプリを開発している。 Philip は IPv6 のアプリを GNU libc 2.1 で開発している。これは、 彼がマージした適切なヘッダや、いくつかの必要な関数が含まれて いる。 思うに、IPv6 のアプリケーションを使いたい人にはどちらの場合で あっても合理的な方法だろう。どちらかの場合ではうごかないかも しれないが。 あなたは、libc5 with libinet6 か、 a patched glibc 2.0 か or glibc 2.1 が必要です。 libinet6 libinet6 は後述の inet6-apps パッケージに同根されています。 Glibc 2.0 patch Glibc 2.1 5.1.2. 上記以外の必須ソフトウェア net-tools , NET-3 系の Linux ディストリビューションのベースとなっているパッ ケージであり、ifconfig, hostname, route, arp, rarp, netstat, ipfw が含まれます。 現時点での最新版は 1.41 です。 inet6-apps (ftp.inner.net:/pub/ipv6/inet6-apps-0.24.tar.gz) 本書の執筆時点で inet6-apps の最新版は 0.24 です。 注意:このパッケージは web ブラウザで入手することができません。 FTP ク ライアントを用いてください。そのため、リンクしていません。 また、Craig Metz は、独自のソフトウェア熟成計画を彼の FTP サイトに組み 入れています。彼は次にように述べています。 新バージョンのソフトウェアはまず ftp.ipv6.inner.net 上でリリースされる。 この FTP サーバは、IPv6 でしかアクセスできない。そのバージョンのリリース から一週間経つと、ftp.inner.net にコピーされる。これは、IPv4 でアクセス が可能だ。あるバージョンが一週間以内に更新された場合、そのバージョンは IPv4 FTP サーバには登場しない。つまり、IPv6 サーバは、パブリックベータ バージョンを掲載する場であり、IPv4 サーバはもうちょっと年期の入った バージョンを掲載する場だと考えることができる。 どっちかの FTP サーバ上のソフトウェアでトラブルが生じた場合、適当にブーブー 言うだけでもいいし、あるいは、生じた問題を説明して、改善要求を出してくれても いい。どっちの方法が問題解決に適しているかは、言うまでもないと思うけど。 5.2. 役に立つかもしれないソフトウェア これらは必要ではありませんが、持っておくと便利です。 netkit いくつかの BSD ユーティリティが IPv6 に移植されました。 (finger, ftp, telnet, etc...) Netkit は、かならずしも必須の IPv6 ソフト ウェアではないがすくなくとも、いくつかのパッケージでは強く推薦さ れる。 BIND 2 つの理由から BIND がインストールされている必要があります。も し、あなたが最新版の glibc (2.1.x) をもっていないならば、リゾル バのライブラリのため、インストールしなければなりません。 2 つ目 の理由は IPv6 の DNS の仕様である、AAAA レコードのサポートのため です。もし IPv6 のネームサーバを使いたければインストールしなけれ ばなりません。 RADVD RADVD は the Router ADVertisement Daemon (ルータ通知デーモン) の ことです。これは IPv6 のホストの自動設定のために使われます。くわ しい情報は ``ここ''。 rc.inet6 (ftp.inner.net:/pub/ipv6/) あなたのマシンで IPv6 をサポートさせるサンプルのスクリプトです。 inner-apps (ftp.inner.net:/pub/ipv6/) IPv6のサポートのためにスクラッチから書かれた fdsniff, fingerd, netd (inetd/tcp_wrappers とおきかえます)です。 inn-1.5.1+ipv6-1.tar.gz (ftp.inner.net:/pub/ipv6/) INNをIPv6対応にするパッチです。 lmbench ネットワークベンチマークプログラムです。あなたが友人にあなたの IPv6 の Linux マシンが彼の IPv4 マシンより高速であることを見せて くれるでしょう。 RSVP Linux 向け RSVP ポートの始まり。 5.3. ソフトウェアのミラー これは私の知る限りのIPv6のソフトウェアのミラーのリストです。いまのとこ ろ、全てのミラーをまとめるような中心組織はありません。これは、いくつか のサイトが最新版をもっていて、その他のサイトはもっていないことがあるこ とになります。このFAQは最も更新の頻繁なホームとなるサイトにリンクして いなければいけません。おそらく一番良い方法は、はじめにあなたから一番近 いミラーをチェックして、次にホームサイトに行くことです。 5.3.1. アメリカにあるミラー o o o o o 5.3.2. ヨーロッパにあるミラー o o o o o o o Viking BBS in France: +33 4 76 91 81 25: /pub/Systemes/linux/IPv6/ 5.3.3. オーストラリアにあるミラー o o 5.3.4. 南アメリカにあるミラー o 5.3.5. 南アフリカのミラー o 5.4. その他Linuxに特化した情報 A quick 6bone howto 以下は Craig Metz から寄せられたものです。 いくつかの質問に対するわたしのおこなった回答です。 1. IPv6の動作する最新のカーネルをインストールします。 2. ftp.ul.ptからもってきたnet-toolsの最新版をインストールします。 3. ftp.inner.netからもってきたinet6-apps kitの最新版をインストールします。 4. ftp.cityline.netからもってきたradvdの最新版をインストールします。 5. あなたのプリフィックスをRFC 1897のアルゴリズムで計算します。 注意深く読んでください。もし、なぜそうするかわからないときは、 64bitのプリフィックスを計算してください。 6. あなたの接続点をみつけてください。 あなたはどこかトポロジ的に近くて、依存するに十分なとこを望むでしょう。 7. 彼等にトンネリングのセットアップを依頼してください。あなたは 5で計算したプリフィックスとIPv6のルータのIPv4のアドレスを 提供しなければなりません。 8. ftp.inner.netからrc.inet6のスケルトンを入手して、 必要なところを埋めてください。 9. pingをつかって、トンネリングを確認してください 10. あなたのルーティングを接続点に依頼してください。 11. ftp.ripe.netにIPv6のルーティングをputしてください。 12. BIND >4.9.5 をインストールします。 13. IPv6のフォワードをするDNSドメインの設定をAAAAレコードにします。 (おそらく ipv6.foo.com というところのは foo.comがIPv4のドメインでしょう) 14. on-site と off-siteで、テストしてください。 15. IPv6 のreverse DNS domainを設定します。 16. on-siteでテストしてください。 17. 逆引き DNS を要求します。 18. off-siteでテストしてください。 これは面倒なように聞こえるかもしれませんが、それほどむずかしいものでは ありません。必要なのは、安定したネットワークコネクションと、ちょっとした てかがりと、時間だけです。 6. IPv6のアプリケーションの情報 6.1. どのようにしてIPv6のコードを書いたり移植したりするか IPv4/IPv6 用ソフトウェア Matt Aarnio の質問: もしも可能なら、混在した環境ではソフトをどのようにすればいいのか おしえてください。 これはすなわち、IPv4 だけのシステムでも、新しいファンシーなウィジェット ルーチンをすべて備えたIPv6のシステムでもコンパイルできるソフトウェアです。 少なくとも現在においては、ほとんどすべてのアプリケーションがこの分野に 入るものと、私は確信しています。 (それらのシステムにはNRLのライブラリはいれていません) Philip Blundell の答え: 2つの問題があります。ひとつは、どうやってIPv6のつかえる新しい環境と 古いIPv4だけのシステムの両方でコンパイルできるソフトウェアを作るか。 次に一度あなたがコンパイルしたコードが、IPv6、IPv4、あるいは混在に かかわらずおなじコードが動作させることによって問題が生じることです。 2つ目を先にいきましょう。 一番よいのはgetaddrinfo() を名前探索に使うことです。 これはアドレスファミリーとアドレス構造をかえします。すると、あなたは ソケットのソートを作るのにアドレスファミリを socket()に入れることが できます。もしAAAAレコードを聞いたら、あなたは AF_INET6 と struct sockaddr_in6 を得ます。(AレコードのAF_INETと struct sockaddrの かわりに)。getaddrinfo() は getnameinfo() のかわりになるもので、 glibc 2.1にあります。 これらの関数によって、アドレスファミリをつかうことを気にせず、 sockaddr_inやsockaddr_in6を無視できます。 これであなたのコードはIPv6でも、IPv4でも、混在環境でもうれしいでしょう。 たとえばinet6-appsのソースがそうですから、見てください。 ひとつ目の問題はやっかいです。古いバージョンのCは getaddrinfo() が ありません。そして libinet6で提供されています。 あなたはおそらくコンパイル時に #ifdef などをつかった多くのオプションを 用意して、getaddrinfo()と、以前の名前探索関数をわけねばなりません。 getaddrinfo()はNRLに特化しているというより、POSIXの関数ですので 移植可能なコードとしても問題ないでしょう。 6.2. IPv6 のアプリケーション IPv6に移植する人のためのメーリングリストはありますか? あります。bound@zk3.dec.com から、回答をいただきました。参加するには ipv6imp-request@munnari.oz.au まで。 7. (訳注) RADVD Introduction by Lars Fennberg IPv6 は IPv4 よりさらに進んだ自動設定をサポートしている。しかしそのた めには、この自動設定はネットワーク上のホストで動作し、ローカルネットワ ークのルータはホストの自動設定要求に答える動作が必要にである。 Linux ではこのプログラムは radvd (Router ADVertisement Daemon :ルータ 通知デーモン) とよばれる。このデーモンはルータ要請(RS)を聞き、ルータ通 知(RA)を答える。なお、求められない要求も送られる。 これらの RA にはホストのインターフェースの設定に使用される情報を含んで いる。この情報は、アドレスプリフックス、デフォルトルータの経路MTU と情 報が含まれている。 もちろん、ルータ自身は自動設定できないため、ルータ情報はシステムの管理 人によって設定されなければならない。これは、インターフェースと経路の手 動設定と、ルータ通知デーモンの設定によっておこなわれる。 簡単な設定スクリプトは以下のようになる。 interface eth0 { AdvSendAdvert on; prefix 5f15:9100:c2dd:1400:8000::0/80 { AdvOnLink on; AdvAutonomous on; }; }; これは、radvd が、eth0 で80の長さのプリフィックス 5f04:f900:c2dd:1400:8000::0 を流している。プリフィックスは autonomous (AdvAutonomous がon) かつ、on-link (AdvOnLink が on)でる。そのほかのオ プションはデフォルトの値である。 Autonomous はそのプリフィックスが自動アドレス設定につかえてることで、 on-link はそのホストが、全てのこのプリフィックスを使用するマシンが RAを受信したマシンから到達可能と仮定できることを示す。 そのプリフィックスは、この例のようにランダムに選ぶことはできなかった。 それは RFC 1897 (IPv6 のテストアドレス割当て)にもとづいて決定された。 その上、プリフィックス長も自由に選べず、ネットワークメディアによって決 定される。イーサネット用には、プリフィックス長は80であるが、これは 48bit 長のイーサネットハードウェアアドレスと、128bit のIPv6 アドレスを 結びつけるものだ。詳細は、RFC 1971 (IPv6 Stateless Address Autoconfiguration) および、 RFC 1972 (A Method for the Transmission of IPv6 Packets over Ethernet Networks) を参照のこと。 より詳しい radvd の設定に関する情報は radvd の配布に含まれています。 ホスト上のインターフェースが UPed とRA を受信したとき、そのホストはプ リフィックスと、イーサネットハードウェアアドレスを使って、アドレスの設 定ができる。次に1例をあげる。 Announced prefix 5f15:9100:c2dd:1400:8000:0000:0000:0000 Link-layer token 0800:0040:1726 Configured address 5f15:9100:c2dd:1400:8000:0800:0040:1726 ホストは、デフォルトルータの選択を RA を調べて実行できる。これは、IPv6 のみのホストは単にインターフェースに UP をおこなうだけで、それ以外は自 動でおこなわれることを意味する。 そのため、我々が radvd を設定したときは、インターフェースの設定と、ル ータでの経路の設定がまだ必要である。簡便にするため、我々はただ一つのイ ンターフェースがあり、ルータがトンネリングを使って「外の世界」へ通信さ れることにする。 下の例は、IPv6 のルータでの設定のシェルスクリプトである。これは、本当 に私の使っているルータと同じものです。... :) 見ての通り、アドレスと経路を手で加えて、IPv6 over IPv4 のトンネルを設 定しています。 /etc/init.d/functions は、ちょっとした助けになる関数があつまっていて、 radvd を kill するのに "stop" が必要でしょう。 /usr/ipv6/sbin は、IPv6 の net-tools と、radvd の新しいバージョンがインストールされています。 これを PATH の先頭に入れて、IPv6 関連プログラムの以前のバージョンより 先に見つかるようにしています。 このスクリプトは、eth0 のような通常のインターフェースでのもので、すで に IPv4 などで設定されているとします。 #! /bin/sh . /etc/init.d/functions PATH=/usr/ipv6/sbin:/usr/ipv6/bin:/bin:/usr/bin:/sbin:/usr/sbin export PATH case "$1" in start) # enable forwarding echo 1 >/proc/sys/net/ipv6/ipv6_forwarding # get IPv6-over-IPv4 tunnels up (enables automatic tunneling to 0::0/96) ifconfig sit0 up # configure the local interface ifconfig eth0 add 5f15:9100:c2dd:1400:8000:0080:ad1c:22ca/80 route -A inet6 add 5f15:9100:c2dd:1400:8000::0/80 dev eth0 # if you're on the 6bone you can setup tunnels like shown below. # every ifconfig sit0 tunnel 0:: # creates a new sit interface. they're named sequentially (sit1, # sit2, sit3 and so on) # setup a tunnel to NRL ifconfig sit0 tunnel 0::132.250.90.5 ifconfig sit1 up route -A inet6 add 5f00::0/8 gw fe80::132.250.90.5 dev sit1 # setup a tunnel to G6 ifconfig sit0 tunnel 0::129.88.26.1 ifconfig sit2 up route -A inet6 add 5f06:b500::/32 gw fe80::129.88.26.1 dev sit2 # start router advertisement daemon radvd ;; stop) killproc radvd ifconfig sit0 down ;; *) echo "Usage: /etc/init.d/ipv6 {start|stop}" exit 1 esac exit 0 Last changed: Sat Mar 1 19:17:33 MET 1997 Copyright (C)1997 Lars Fennberg