zebra - みる会図書館


検索対象: BSD magazine No.11 BSDでルータを作ろう! ; システムコールプログラミング入門
9件見つかりました。

1. BSD magazine No.11 BSDでルータを作ろう! ; システムコールプログラミング入門

ロ 0 3 5 0 でルータを作ろう ! /usr/pkg/etc にコピーして改変して使 うことにする。 最後に、 /etc/services にリスト 7 の 7 行を加えておこう。 zebra の設定 zebra は CISCO 社の IOS カ甘是供してい る CLI ( Command Line lnterface ) と 良く似たユーザーインターフェイスを持 っている。そのため、 cisco に慣れてい る人は Command Line から設定するこ リスト 7 ripd r ipngd ospfd bgpd ospf6d V リスト 8 ! zebra 2600 / tcp 2601 / tcp 2602 / tcp 2603 / tcp 2604/tcp 2605 / tcp 2606 / tcp configuration for Router1 zebra. conf とも十分に可能である。本稿では、イ ンタラクテイプな設定方法は記載しない ので、 zebra の info ファイルを参照して ほしい。ⅲ fo ファイルは、 /usr/pkg /info/zebra.info である。 まず zebra の設定をしよう。この zebra daemon が kernel の経路表と各 経路制御 daemon の経路表の統合を行 うので、非常に重要な daemon である。 リスト 8 に今回の zebra の設定を記載 しておく。これは、サンプルから改変 # Zebra # Zebra # Zebra # Zebra Zebra # Zebra ospf6 daemons bgp daemons # Zebra ospf daemons r ipng daemons r ip daemons damon したものである。初期設定段階で不要 なものをすべて削除してある。 みていただければわかるが、 zebra は 実際にはほとんど設定する必要はない。 経路表などを確認するために zebra に アクセスするためのパスワードを設定 するだけである。 さて、次にⅱ pd である。ⅱ pd はもう少 し設定しなければならない項目がある。 設定中の router rip コマンドが RIP の制御のための命令である。 Router1 では、 RIP を利用するイン ターフェイスがⅸ pl だけなので、 fxpl の持つアドレスプロックを指定すれば 良い。 Router2 の場合であれば、同様 にⅸ pO 、 neO 、 pppO に対して設定する 必要があるし、 Router3 ならば、 ppp0 と tlp0 を設定すれば良い。 ! hostname の設定。これは tty アクセスをする際に prompt に利用される hostname Routerl : zebra ! passwordäRÆo login 日寺の password password secret ! ! 管理権限 password の設定。 su と同等の意味を持つ e Ⅱ able コマンドを入力した際の password enable password ultrasecret ! ! パスワードの暗号化設定 password¯encryption マリスト 9 ripd. conf ! RIPd configuration for Router1 hostname Router1 : ripd password secret ! enable passwd ultrasecret ! service password—encryption ! R 工 P の設定 ! R 工 P を利用する Netw 。 rk を設定する。 ! アドレスから設定する network xxx. xxx. xxx . 0 / 29 ! lnterface から設定する network fxpl ! default route を作成する default—infortion originate

2. BSD magazine No.11 BSDでルータを作ろう! ; システムコールプログラミング入門

3 5 0 でルータを作ろう ! 動すれば OK である。 パッケージでは起動 script は添付され ていないので、リスト 11 に zebra 関係の 起動 script を記載しておく。使い方は、 zebra. sh start で zebra 関係の daemon か 起動され、 zebra. sh st 叩で zebra 関係の V リスト 1 1 zebra. sh zebra 起動 script # ! /bin/sh daemon が終了する。 zebra. sh restart と すると一度 zebra 関係の daemon を終了 させて、再度起動する。 この zebra. sh スクリプトを /usr/pkg/ etc/rc. d に置き、実行バーミッションを 立てた後、 /etc/rc. local にリスト 12 の ように記載しておけば良い。 さあ、 Start あとは、 /bin/sh /usr/pkg/etc/rc. d/ zebra. sh start とすれば zebra 関係の一連 の daemon が起動する。 # Zebra and Zebra daemon start/stop script case $ 1 start) stop) restart) [ -f /usr/pkg/etc/zebra. conf ] & & ( \ /usr/pkg/sbin/zebra —d > /dev/null 2 > & 1 & & \ echO ーⅡー ) -f /usr/pkg/etc/ripd. conf ] & & ( \ /usr/pkg/sbin/ripd -d > /dev/null 2 > & 1 & & \ ech0 ーⅡー ripd' ) [ -f /usr/pkg/etc/ripngd. conf ] & & ( \ /usr/pkg/sbin/ripngd -d > /dev/null 2 > & 1 & & \ echo ーⅡー ripngd ー ) -f /usr/pkg/etc/ospfd. conf ] & & ( \ /usr/pkg/sbin/ospfd —d > /dev/null 2 > & 1 & & \ echO ーⅡー ospfd' ) -f /usr/pkg/etc/ospf6d. conf ] & & ( \ /usr/pkg/sbin/ospf6d -d > /dev/null 2 > & 1 & & \ ech0 ーⅡー ospf6d' ) [ -f /usr/pkg/etc/bgpd. conf ] & & ( \ /usr/pkg/sbin/bgpd -d > /dev/null 2 > & 1 & & \ ech0 ーⅡー bgpd ー ) /var/run/zebra. pid ] & & ( \ /bin/kill 、 cat /var/run/zebra. pid 、 ) -f /var/run/ripd ・ pid ] & & ( \ /bin/kill 、 cat /var/run/ripd. pid 、 ) [ —f /var/run/ripngd. pid ] & & ( \ /bin/kill 、 cat /var/run/ripngd. pid 、 ) [ -f /var/run/ospfd. pid ] & & ( \ /bin/kill 、 cat /var/run/ospfd. pid 、 ) [ -f /var/run/ospf6d. pid ] & & ( \ /bin/kill 、 cat /var/run/ospf6d. pid 、 ) [ -f /var/run/bgpd ・ pid ] & & ( \ /bin/kill 、 cat /var/run/bgpd. pid 、 ) stop ) sleep 1 $ 0 start echo 1 > & 2 exit 1 esac exit 0 $ 0 [restartl startl stop] " 2002 No. 1 1 BSD magazine 031

3. BSD magazine No.11 BSDでルータを作ろう! ; システムコールプログラミング入門

ミロ 99N ルを作 6 NetBSD のパッケージのインストール方 法を参照してほしい。それに合わせて 適切にインストールすれば OK である。 インストールカ鮗了したら、何も考え ずに adsl-setup コマンドを実行し、設定 ファイル作成し、 rp-pppoe を初期化す る。その後、 /etc/ppp/pppoe. conf を開 き、リスト 5 のような設定を行う。前号 でも記載した通り、 CLAMPMSS が 1412 ではうまく動かないことがあるの で、 14 開に設定しておく。 こまで設定できれば、あとは起動 時に pppoe client を起動すれば良い。起 動時に自動で動くように /etc/rc. local に リスト 6 のように記載してほしい。なお、 パッケージをインストールしたディレク トリを / usr / pkg / として扱っているの で、必要に応じて適宜書き変えていた だきたい。 これによって、 ppp0 という I / F が設 定され default route は ppp によって設 定されたアドレスに変更される。 旧 v6 トンネルの設定 いが、今回は IPv6 tunnel サービスを利 接続できるようになることを期待した が多い。今後 tunnel を利用しないでも まだ tunnel を利用して接続を得る場合 でも提供されるようになっているが、 IPv6 の接続性は、近年 PPPoE など IPv6 over IPv4 tunnel は IPv4 を利 用して疑似的に IPv6 のための Data ⅱ nk Layer を作成し、そこを利用して IPv6 を流すための 1 手法である。現在の BSD 系 OS では KAME の作成した IPv6 プロトコルスタックを利用しているの で、 gif を利用すれば良い。設定方法は 簡単で、 NetBSD の場合、 ifconfig gif0 tunnel [ 自分の IPv4 Addr] [ 相手の IPv4 Addr] で良い。その上で、 default 経路を相手 1 LinkLoca1 address%gif0] route add —inet6 default 取得し、 とし、相手側の LinkLocal address を ping6 ーⅡ ff02 : : l%gif0 に向けるために、 [ 相手側の tunnel [ 自分の IPv4 Addr] [ 相手の IPv4 /etc/ifconfig. gif0 に この処理が行われるようにするには、 などとすれば良い。起動時に自動的に Addr] を、 /etc/rc.local に route add —inet6 default LinkLoca1 address%gif0] を記載しておけば良い。 [ 相手側の 用することにする。 マリスト 5 pppoe. conf の変更点 # Ethernet card connected tO ADSL ETH=f xp0 USER=foobar@upstreamisp ・ ne ・ jp CLAMPMSS= 1400 modem マリスト 6 ℃」 oc に記載する pppoe client 起動スクリプト if [ —f /usr/pkg/etc/rc. d/pppoe ] ; then Zebra れに対応するサンプルファイルを ripd. conf 、 ospf6d. conf なので、それぞ のための設定ファイルは、 zebra. conf 、 ripd 、 ospf6d のみ利用すれば良い。そ するので、今回の構成では、 zebra 、 対応する daem 。 n の組み合わせで動作 と、それぞれの経路制御プロトコルに kernel との橋渡しを行うための zebra が存在しているはずである。 zebra は ・ bgpd. comf. sample2 ・ bgpd. comf. sample ・ ospf6d. conf. sample ・ ospfd. conf. sample ・ ripngd. conf. sample ・ ripd. conf. sample ・ zebra. conf. sample みよう。 examples/zebra にあるサンプルをみて lnstall したら、 /usr/pkg/share/ される。 install するだけで zebra がインストール ー要はない。何も考えずに make , make れているので、難しいことを考える必 いっても、 zebra もパッケージで提供さ ます zebra をインストールしよう。と zeb 「 a のインストール だろう。 で、興味のある方は試してみると良い なければ、 mrt などでも制御できるの IPv6 の経路制御に OSPFv3 を利用し することにしたい。 路制御ェンジンとして、 zebra を利用 することにする。その制御のための経 IPv4 は RIPv2 、 IPv6 は OSPFv3 を利用 今回は、経路制御プロトコルとして、 028 f i BSD magazine 2002 NO. 11 /bin/sh /usr/pkg/etc/rc. d/pppoe start

4. BSD magazine No.11 BSDでルータを作ろう! ; システムコールプログラミング入門

ト殘住 99N ルタ 2 特集ー デバッグ情報を表示する。デバッグ 関係の設定をしている場合のみ有効。 ・ show runmng-config 現在実行している設定を表示する。 ・ show startup-config こでは、動作確認のためにしばしば 起動時の設定を表示する。 利用するコマンドや zebra 関係の命令を copy running-config startup-config 項目として挙げておく。詳しい挙動な ・ W141te memory 実行中の設定を起動時の設定にコピー どは man ページを参照するか zebra の ⅲ fo などを参照していただきたい。 する。 ・ configure terminal 設定モードに移行する。 コマンド ・ /usr/bin/netstat -rnf inet ・ enable IPv4 の経路表を見る 特権ユーザーになる。 ・ /usr/bin/netstat -rnf inet6 ・ help 1Pv6 の経路表を見る ヘルプを表示する。 ・ /usr/sbin/arp -an zebra ARP テープルを見る。 MacAddress と ・ show interface [I/F name] IP アドレスの対応表を見たい時に利 その lnterface の情報を表示する。 駆け足で Router の作り方を説明して 用する。なお、 ARP テープルは利用 ・ shOW ip route 0 されなくなって特定時間が経っと消 内容が多く、説明し切れない部分も ・ shOW ipv6 route えてしまうので、 ping などを利用し 1Pv4/1Pv6 の経路表を表示する。 多いが、紙面の関係や、時間の関係、 てプロードキャストバケットを出し 筆者の力量の問題なので、ご容赦をお てから確認すると良いだろう。 願いしたい。 ripd 機会があれば、もう少し突っ込んだ ・ /usr/sbin/ndp -an ・ show ip r1P RIP で交換している経路情報を表示 内容や今回踏み込めなかった内容にも IPv6 における近隣ホスト表を見るた めのコマンド。 ARP と似た機能を提 手を出したいと思っている。 する。 Router の設定や管理は難しいものと 供している。 いわれている。難しい原因は、多分 IP ・ ping6 -w ff02: : 1 %[I/F name] ospf6d の知識がそれなりに必要であり、経路 ICMP neighbor whois を飛ばす。このコ ・ show ipv6 ospf6 OSPF6d で管理している情報のサマ マンドを利用するとこの ICMP に対応 制御プロトコルの知識もそれなりに必 要だからではないかと思うのだが、実 しているホストは自身の名前を返す。 リーを表示する。 際に動かすと案外簡単に作成できたり ・ show ipv6 ospf6 interface OSPF6d が管理しているインターフェ する。運用も実際にはそれほど難しい イスの情報を表示する。 ものではなく、 10 叩を作ったり、規模 が大きくなってしまえばともかく、あ ・ show ipv6 ospf6 database LinkS tate Database を表示する まり大きくないネットワークにおける 。引数 ルータの運用は慣れがものをいうので ある。 本稿が経路制御への一歩目となれば 幸いである。 を設定すると、条件にマッチしたも のが表示される。 ・ show ipv6 ospf6 neighbor OSPF で通信している近隣ルータの状 態を表示する。 ・ show ipv6 ospf6 route OSPF で交換している経路情報を表 示する。 zebra ( 他 zebra 関係の daemon) の インタラクテイプモードは非常に便利 であり、わからなくなったらとにかく ? キーを叩けば大雑把な説明が出るので、 わからなくなったらとにかく ? を叩いて みよラ 9 telnet : : 1 zebra などとして login して みてほしい。 動作確認 まとめ Zebra のコマンド すべてに共通のもの ・ show debugging マリスト 12 if [ -f /usr/pkg/etc/rc . d/zebra. sh ] ; then /bin/sh /usr/pkg/etc/rc . d/zebra. sh st art f i 032 BSD magazine 2002 No. 1 1

5. BSD magazine No.11 BSDでルータを作ろう! ; システムコールプログラミング入門

ロⅡ ト住ル受タ作 6 ーで入手できるルーティングエンジン GateD で EIGRP や IS-IS が利用できるものはな 最も有名なルーティングエンジンで い。また、 OSPFv3 がサポートされて ある。 URL は http ・ //www.gated.org/ で、詳しい情報などはこちらを参照し いるのは zebra だけである。 これらの経路制御工ンジンを簡単にま てほしい。 Zebra とめてみよう。 もともとは、 ミシガン大学および 日本の ISP のエンジニアで経路制御 Merit Networks 社で研究されていた を行っていた石黒邦宏氏が開発してい もので、その後 GateD Consortium を る経路制御ェンジンである。氏は現在、 「 0 ed routed は、 BSD 系 OS であれば必ず 経て現在では NextHop Technologies 米国 IP lnfusion 社の CTO 業務の傍ら、 と言って良いほど実装されている RIP 社に開発、保守が移行された。 Zebra の開発に携わっている。 現在では GateD はフリーな経路制御 のためのルーティングエンジンである。 Zebra は他の経路制御工ンジンと異 最近のフリーな BSD 系 OS では、 RIP 工ンジンであるとは言えないが、歴史的 なり、 kernel と他のルーティングエン に非常に良く使われたエンジンであり、 versionl / 2 共にサポートされているが、 ジンの制御、調整を行う zebra と、そ 古いものでは versionl しかサポートし 現在でも古い version のものを利用して れぞれプロトコル毎の経路制御ェンジ ていないものもある ( たとえば SunOS3 いるところが多いためここに紹介した。 ンである、 ripd 、 ripngd 、 ospfd 、 とか ) 。 NetBSD の package システムでは、 ospf6d 、 bgpd などからなりたっており、 設定は比較的簡単であり、仮に何も それぞれのエンジンは独立で動作する。 pkgsrc/net/gated で version 3.5.11 が 設定しなくても RIP で経路交換できる。 提供されている。 URL は http://www.zebra.org/o ライセンスは BSD であり、自由に利用 NetBSD の package システムでは、 することが可能である。 pkgsrc/net/zebra で version 0.92a が提 MRT Merit が GateD とは別にマルチスレ 供されている。 ッドで動作する経路制御工ンジンの開 Zebra のライセンスは GPL である。 route6d route6d は、各 BSD に KAME が取り 発プロジェクトとしてスタートさせた 込まれた際に追加された、 RI P n g 新しい経路制御工ンジンが MRT であ (RIP for IPv6) のためのルーティング る。現在も開発が続けられており、 2 0 0 2 年 2 月 1 7 日現在の最新版は 工ンジンである。 経路制御を行うには、ルーティング ライセンスは BSD であり、自由に利用 version 2.2.2 alpha である。 URL は プロトコルにのっとった処理を行い、 することが可能である。 kernel の経路表にそれを反映させる必 http://www.mrtd.net/o 要があるが、ルーティングエンジンは NetBSD の package システムでは、 pkgsrc/net/mrt で version 2.2.2a が提 それを行うための実装である。 IP ネットワークにおいて、経路制御 は非常に重要な役割を担っており、さ まざまなルーティングプロトコルやそ の制御工ンジンが利用されている。 れらのエンジンは、それぞれに特徴が あり、用途に応じた利用を行うべきで あろう。 供されている。 ミシガン大学の ライセンスは、 C 叩 yright Notice を参照してほしい。。 まとめ 表 2 Routing P 「 0t0C6 対応表 RIP Engine RlPng verston BGP4 旧 - 旧 BGP4 MPE 旧 - 旧 ( v6 ) OSPFv2 OSPFv3 EIGRP 〇 X X 〇〇 X 〇〇〇〇〇〇 X X X X 〇 X 〇〇〇〇〇〇 X X X X 〇 X 〇 X X X 〇〇 X OS 附属 X OS 附属 X 2000 / 05 / 28 X 2000 / 05 / 1 1 X 2000 / 05 / 03 X 2001 / 08 / 1 9 4 ・ ( 0 4 CD -4 C.D 4 ・ 4 ・ CD 4 ( 0 routed ro ute6d GateD 3.6 GateD ipv6snap M RT 2.2.2a Zebra 0.92a 020 BSD magazine 2002 No. 1 1

6. BSD magazine No.11 BSDでルータを作ろう! ; システムコールプログラミング入門

ロ 99N ル受タを au ・ IPa に対するルート :pppO ( 実際は といえる。 では動的ルーティングの基本概念だけ ppp0 の ifconfig をしたときに自動的に この動的ルーティングで主役となるの を押さえておくことにしよう。 設定される ) が次に述べるルーティングデーモンだ。 図 3 を例にとることにしよう。ここ ・ default ルート :pppl ()P アドレスを使 では、 4 つのルータ XYZW ( 全部 BSD い IPYI と設定することが多い ) box だということにしよう ) が、それぞ ートティングデーモンどトティングプロトコル ルーティングデーモン (routing れ、自分の下に netX 、 netY 、 netZ 、 daemon) とは、ルータの上でアプリケ netW というサプネットを従えており、 動的ルーティング インターネットのもともとの目的は、 ーションとして動作し、ルーティング またそれぞれがⅱ nkXY 、 linkYW 、 完全に分散化され、まったくセンター 情報をやりとりして、その結果、計算 IinkZW 、ⅱ nkXZ で接続されていると がないネットワークの実現にあった。 を行い適切にルーティングテープルを いう状態である。また、それぞれのル (routing socket を使って ) 設定するこ 静的なルート設定にだけ頼っていては、 ータでは、ルーティングデーモンが動 耐故障性を高めることもできないし、 とで、そのマシンのルーティング機能 いており、近接リンク上のセッション を制御するプログラムをいう。 全世界へとネットワークを広げるため ( TCP かもしれないし UDP かもしれな には、全体を統一的に管理しなくても BSD で使用できるルーティングデー い。あるいは独自のプロトコルの場合 よい、という性質が絶対に必要である。 モンとしては も考えられる ) が張られている、とい う状態を示している。 これを実現しているのが、動的ルーテ イング (dynamic routing) である。 ルータは ifcon ⅱ g されたインターフェ ・ routed 古典的なプロコル RIP だけを対象 動的ルーティングとは、リンクやル イスに関する経路情報をそれぞれもっ ータの故障、あるいは、それらの性能、 にしていた、いにしえのプログラム。 ている。すなわち、たとえば、ルータ 距離、コストなどなどといったさまざ 現代的には gated でシミュレーション X では、 netX 、 linkXY 、 linkXZ の 3 つ まなパラメータを近接ルータの間でや されたりする。 に関する経路はダイレクトリンクとし りとりすることで、その時点で最適な て理解している、ということだ。 ・ gated ルートを設定することをいう。 gated consorcium が開発・配布して こで、ルーティングデーモン間で このルーティング情報のやりとりを やりとりすることができる、ルーティ いるルーティングデーモンのリファ 行うプロトコルをルーティングプロト ングプロトコルはさまざまな観点から レンスコード。 コルと呼び、原則として、近接ルータ 分類することができるのだが動的ルー ・ zebra IPinFusion 社が開発・配布している 間でセッションを張ってのやりとりが ティングを実現する基本原理からみる 行われる ( この構成により自動的にル gated の対抗馬。 1Pv6 などへの対応が と、次の 2 種類があるということだけか ーティングプロトコル自体がリンクの 強い。 じっておいてほしい。本稿を書き始め keep alive となることにも注目してお たときはこの解説をしようかとも思っ くこと ) 。 の 3 つが代表的である。もちろを広い たのだが、やはりどうやっても紙幅が 巧妙に設計されたルーティングプロ 世の中、他にもあるのだが、 routed は 足りないし、文章が名著には負けてし トコルを適切に使用することにより、 まうので、参考文献 ( 2 ) を参照して 別にして、実際のところ gated と zebra スケーラブルで robust ( 頑健 : 故障な が多く現実のネットワークでは使われ いただくのが一番いいだろう。 ている。余談だが、商用ルータベンダ どに強い ) で、自立分散したネットワ の中にはルーティングデーモンを自作 ークを作ることができる。 ・リンクステート ネットワークの故障時の迂回経路の しているところも少なくないが、これ ・ディスタンスペクタ 自動選択や、新たなネットワークが追 らのソフトウェアを自らの製品のルー 加されても自動的に最適なルーティン タに組み込んでいる例もまた多い。 ますは、リンクステート型からみてい グを設定すること、および、どのユー これらが具体的に何をしているか、 こう。リンクステート型のルーティング また、どうやって設定をするのかにつ ザーにどのリンクを使わせるかといっ プロトコルとは、あるひとまとまりのル た通信ポリシーの適用なども応用範囲 いては他の方に稿を譲るとして、 ータ群がお互いの持っているネットワー 016 BSD magazine 2002 NO. 1 1

7. BSD magazine No.11 BSDでルータを作ろう! ; システムコールプログラミング入門

ミロ 99N ルを クのリンクに関する情報を交換し、 具体的には RIP や BGP といったプロ 各々のルータが ( ある範囲内での ) ネ トコルがこれに該当する。特徴として ットワークトボロジ全体を把握したう は、収東が遅い、という欠点があり、 えで、どのようなルーティング情報を自 特に AS 内部では使われなくなったが、 以上、駆け足で、ルータとは何か、 らのルーティングテープルに設定したら BSD がルータとして動作するのはどう AS 間のプロトコルである BGP には採用 良いのかを決定する、というタイプの いうことなのかを解説してみたがいか されている。 がだっただろうか。本稿が本特集を読 ルーティングプロトコルである。 さて、いろいろな教科書でけなされ 具体的には OSPF 、 IS - IS といったプ 者が読み解く際に参考となれば幸いで ている RIP であるが、原理的には何も ロトコルがこれに該当し、 ISP の内部、 設定しなくても良いので、現代でも小 ある。 とか、企業ネットワークの内部、とい 規模なネットワークの中であれば、使 用をすることは悪いことではないと筆 った部分で使用されている。特徴とし 参考文献 者は思っている。 ては、後に延べるディスタンスペクタ (1)The Design and lmplementation 型のアルゴリズムと比較して、要は故 例に戻ると、たとえば、それぞれの 0f the 4.4BSD Operating Systems, 障したときにふらっかない、という意 ルータのうえで、 routed を動かしてお Marshall Kirk McKusick at el, 味でいうところの収東が早いという特 くだけで勝手に図のような設定になり、 Addison Wesley RIP が、自動的に最適な経路を選択し 徴があり、現代的なネットワークでは (2)Interconnections - Bridges and 特に AS 内部ではこれを使用する。 てくれ、また、どこか 1 つのリンクが切 Routers - , Radia Perlman, Addision れても自動的に経路が切り替わってい 一方、ディスタンスペクタ型のルー Wesley ティングプロトコルというのは、 くことがわかるので、手元にマシンが 邦訳 : 「プリッジとルータについて」 でいえば「こっちのほうにいくにはど いくつかある場合は試してみるのも良 加藤朗訳、ソフトバンク いだろう。同様に他のプロトコル、た のくらいの距離がありますよ」という とえば OSPF を試してみたい場合には、 ことだけをお互いに伝え、その結果を 一旦自分のところで情報をまとめて、 zebra か gated を使用することとなる。 また隣に伝えあっていく、という ( わ いずれにせよ、具体的な設定方法は他 かりにくいな ) プロトコルである。 の方に譲ることとしよう。 終わりに net Y net X linkXY router X router Y linkYW linkXZ router W ⅱ n kZW router 2 net W net Z 図 3 018 BSD magazine 2002 NO. 1 1

8. BSD magazine No.11 BSDでルータを作ろう! ; システムコールプログラミング入門

Open M 耘′ 0 Se ′・′ー を き 4 ン 第 原石は、磨き上 あとはあなた次第ですよーー よりパワフルになって新登場 「 OpenBIockSS 」は、 2 ノードの LAN を接続するルーター機能のほか、 DHCP サーバーや簡易ファイヤーウォールな ども使える、小型で廉価なマイクロサーバーです。今回新たに、好評を博してきた「 OpenBlockS 」の CPU 、メモリー 容量、ネットワークスピードなど、ハード性能を大幅に強化しました。併せて、 PCM ロ A 、 USB の I/F を用意するなど、機 器としての拡張も追及しました。 OS を含めたソフトウェアをすべてソース公開しており、ユーザーの用途に合わせて様々 な使い方が可能です。あなた次第で無限に可能性が広がる、小さなパワフルサーバーマシンの誕生です。 本体仕様 ソフトウェア仕様 PowerPC 405GP ( 旧 M 製 ) 200M Hz を基本ソフトウェア : @CPU: Linux 2.4.2 64MB SDRAM ( 固定、増設不可 ) 'MEMORY: glibc 2.1.3 TCP/IP (L1nux 旧 V4 ) をネットワーク : €FLASH ROM. 8MB 1 OOBase-TX 2 ポート 第アドレス設定 : 固定設定 / DHCP による動的設定 静的ルーティンクノ動的ルーティング (zebra 使用時 ) い N 側 :CPU 内蔵 をノレーティンク : WAN 側 :RTL8139CL iptables による設定 を IP フィルタ : 1 ポート ( RJ45 コネクタ ) をアドレス変換 : を RS232C: 同上 をその他 : ステータス表示用 7 セグメント LED 旧 E コネクタ 1 増設ユニット用コネクタ 1 OpenBlockSS ( オープンプロックスエス ) を名称 コンパクトフラッシュカードスロット 1 を型番 OpenBIockS200B 5V 3A ()C アダブタ ) USB I/F 、 PCMCIA I/F ( いずれかを 1 つを増設可能 ) 2.51NCH IDE HDD ( コンヾクトフランシュカートスロットとの差し替えて搭載可能 ) 118 (mm) x84 (mm) X53 (mm) マルチ OS/PC-UNIX べンダー ※登場する社名及び製品名は各社の商標または登録商標です。 ぶらっとホーム株式会社 本社 : 〒 101-0021 東京都千代田区外神田 2-4-6 ササゲビル TEL. 03-3251-2600 FAX. 03-3251-2602 店舗 : 〒 101-0021 東京都千代田区外神田 1 -11-4 ミッワビル TEL. 03-3251-7611 FAX. 03-3251-7000 お問い合わせはこちらまで 0120-795-123 E-mail factory@plathome.co.jp Plat' Home www.plathome. CO. J p URL http: 000 、引 ( ′ 050 ′ 0 ′ を電源 : をオプション : を大きさ : ろ 9 翡 8S0 magazme 2002 20-1 1 発行人鈴木憲一 編集人土屋信明 発行所株式会社アスキー 〒 151-8024 東京都渋谷区代々木 4-33-10 電話 03-5351-8194 ( 出版営業部 ) Copyright ◎ 2002 ASC Corporatio n Printed in Japan 雑誌 63604-34 定価ー十税 膩Ⅱ川 IIII 川Ⅷ II 9 7 8 4 7 5 6 1 4 0 5 4 8 1 9 2 9 4 0 4 0 1 8 8 6 4 I S B N 4 - 7 5 6 1 - 4 0 5 4 - 8 C 9 4 0 4 \ 1 8 8 6 E

9. BSD magazine No.11 BSDでルータを作ろう! ; システムコールプログラミング入門

router 1 は、他のルータからみて lnternet への出口のルータなので、 default 経路を広報する必要がある。そ のため、 R 0 u t e r 1 では、 d e fa u I t - information originate 命令を利用して、 各ルータにデフォルトを送るようにす る必要がある。もちろん、 Router2 、 Router3 ではこの命令を設定してはい けない。 IPv6 には OSPF を利用するので、リ マリスト 10 ospf6d. conf ! OSPF6d configuration for Router1 hostname Routerl : ospf6d password secret ! enable passwd ultrasecret ! password—encryption ! インターフェース毎のパラメータ設定 interface fxpO ipv6 ospf6 cost 1 ipv6 ospf6 hello—interval 10 ipv6 ospf6 dead-interval 40 ipv6 ospf6 retransmit—interval 5 ipv6 ospf6 priority 1 ipv6 ospf6 transmit—delay 1 ipv6 ospf6 instance—id 0 interface 100 ! OSPF の設定 ipv6 ospf6 ipv6 ospf6 ipv6 ospf6 instance—id 0 ipv6 ospf6 transmit—delay 1 retransmit—interval 5 ipv6 ospf6 dead¯interval 40 ipv6 ospf6 hello—interval 10 cost 1 ipv6 ospf6 priority 1 router ospf6 スト 1 0 に ospf6d. conf を記載する。 OSPF はパラメータや挙動が複雑な ので細かいことはあまり書かないこと にする。詳しい動作を知りたい場合、 OSPF の参考書などをみてほしい。 今回は、 IPv6 のデフォルト経路が kernel に登録されていることを前提と して設定することにした。 OSPF ではエリアという概念があり、 BackBone 工リアと Leaf という区別が存 在する。しかし、現在の OSPF6d では、 Leaf 工リアを設定することはできないの で、 BackBone 工リアだけを利用する。 BackBone 工リアは「エリア 0 」と規定 されているため、インターフェイス命令 の中で area の引数に「 0 」を意味する 「 0.0.0.0 」を記載する必要がある。 こまで設定できたら、 zebra を起 起動 script ! Router-ID0 Network 内で同一の Router-ID の機器があってはならない router—id XXX . XXX . XXX . 1 ! kernel の持つ経路から OSPF6d への経路の取り込み。 default r 。 ute を取り込むのに利用している。 redistribute static route—map defauIt—ospf6 ! OSPF を利用する lnterf ace の設定と、エリア設定。工リアは 0.0.0.0 で良い。 030 BSD magazine 2002 NO. 1 1 set metric—type type—l match ipv6 address prefix¯list default¯route route—map defau1t—ospf6 permit 10 ! default route を抜き出して OSPF に渡すための設定 ipv6 prefix—list default—route seq 10 permit ! default て oute だけを取り出す filter interface 100 area 0 . 0 . 0 . 0 interface fxpO area 0 . 0 . 0 . 0