• 検索結果がありません。

virt now 2011 1 MST works ZaWorld virt now 2011 1 MST

N/A
N/A
Protected

Academic year: 2018

シェア "virt now 2011 1 MST works ZaWorld virt now 2011 1 MST"

Copied!
26
0
0

読み込み中.... (全文を見る)

全文

(1)

WAN10_0_2_0

WAN10_0_1_0

LAN4 VM Network LAN3

LAN1

LAN2

ESXi 仮想スイッチ

WAN10_0_3_0 WAN10_0_5_0 WAN10_0_4_0

LAN5

0

1 2

VyattaA 0

1 2

VyattaC

0 1

2

VyattaB 0

1 2 3

SEIL/x86

0 1

2 VyattaD FedoraA

FedoraS

きっとピアにもな れ な い

お 前 た ち に 告 げ る

接 続

し ま し ょ う か

非実践Vyatta

からSEIL/x86

まで

terror

a.k.a.

@syonbori

(ZaWorld)著

(2)

― 1 ―

インターネットって便利ですよね。今では、インターネットな しでは生活できないような世の中になってきました。

では、その「インターネット」では、何がどうなって、通販で きたりビデオチャットできたりするのでしょう?

情報系の授業では、きっと「様々なサーバをバケツリレーしな がら目的地まで届けられる」みたいなことを習うでしょう。知識 としてご存じの人も多いはずです。

でも、実際はどうなっているのでしょう?バケツリレー?目的 地ってどうやって調べるの?そもそも隣の人とどうやってやりと りするの? 疑問は尽きません。なら、作ってみましょう!

などと偉そうに書いていますが、筆者がルーティングの仕組み を勉強しながら書いた本になっています。不正確かも知れません。 不十分かも知れません。そこは、便利な「インターネット」で補 いながら…あなたの好奇心を満たす手助けになれば幸いです。

terror / @syonbori 拝

― 1 ―

おはよう

ごSE

※やわらか研の方言で「ぐーてん☆もるげん!」の意

(3)

今回は、こんなネットワークを作ってみましょう。LANポー トが3口あるルータを5つ使って、どれをどうやって繋ぐと、ど ことどこが通信できるようになるか、どうして通信できなくなる のか、という実験をしてみます。

しかし、3本足のルータを実際に用意するのは大変です。ブロー ドバンドルータなどでも数千円するのに、本格的なルータを5台 もそろえたら、いったいいくらかかるでしょうか…

そこで登場するのが

ソフトウェアルータ

です。これなら、仮想

計算機上で試すことができます。これを使えば、仮想計算機が動 かせるPCが1台あれば実験が出来るのです!

こんなネットワークを作ってみよう!

BGPでルーティング

OSPFで ルーティング

0

1 2

VyattaA 0

1 2

VyattaC

0 1

2

VyattaB 0

1 2 3

SEIL/x86

0 1

2 VyattaD FedoraA

(4)

― 3 ―

ソフトウェアルータとは、いわゆるルータの動作をソフト ウェア上で実現したものです。ルータとして動作する OS と言っ ても良いでしょう。今回は、最近人気のオープンソースソフト

ウェアルータの

Vyatta(びやった)

と、某勉強会界隈で人気の

SEIL/x86(ざいる・えっくすはちろく)

を使ってネットワークを作っ

てみます。仮想計算機環境としては、無料で使える VMware 社の

ESXi(vSphere Hypervisor)

を使います。SEIL/x86 は一部の機能 が有料ですが、それを除けば全て無料で試すことができます。良 い時代ですね。

環境

Vy

aのインストール

では、まずは Vyatta を実際にインストールしてみましょう。 ESXi 環境の作り方については、本誌では省略します。

Vyatta にはいくつかのエディションがあり、無償で使える Vyatta Core、サポートが受けられる Vyatta SE(Subscription Edition)、Snort のような IDS 機能や Web フィルタリング機能な どを持つ Vyatta PLUS があります。今回は、Vyatta Core を使い ます。Vyatta のサイト [http://www.vyatta.org/downloads] から、 VMware ESX4 用の ODF ファイルをダウンロードしましょう。これ を使うことで、カンタンに Vyatta をインストールすることがで きます。

(5)

まずは、"VyattaA" という仮想マシンを作ってみます。途中で ネットワークのマッピングを聞かれますが、あとで作り直すので 今は気にしなくて構いません。終了をクリックすると、デプロイ 作業が始まります。1 分程度で「正常終了」となるはずです。こ れでインストールは完了です。実際の設定は、この後の章で行い ます。

次に、SEIL/x86 をインストールしてみます。SEIL/x86 を手に 入れるには、SEIL/SMF コミュニティに登録する必要があります。 サイト [https://www.seil.jp/community/] から新規登録を行い、 SEIL/x86 新規ダウンロードリクエストを行います。すると、ダ ウンロード URL と起動キーがメールで送られてきます。ダウン ロード URL を開き、VMware 形式のファイルをダウンロードしま しょう。

ここで、SEIL/x86 のライセンスについて簡単に触れておきま す。SEIL/x86 には 2 種類のライセンスキーがあり、設定の保存

を含む全ての機能を利用するための「

機能キー

」と、設定の保存

以外の機能を利用するための「

起動キー

」です。起動キーは無料

で取得できますが、機能キーは 800 円で購入する必要があります。

SE

IL/x86のインストール

本体だけ

起動キー

起動キー

機能キー

×

×

×

(6)

― 5 ―

もしあなたが

学生であれば、アカデミックライセンスがありま

すので、機能キーを無料で取得することができます

。詳しくは

SEIL のサイトをご参照ください。

さて、ダウンロードしたファイルから早速インストールを…と 行きたいところですが、この VMware 形式のファイルは、ESXi で はなく VMware Player 向けのファイルとなっています。そこで、 VMware から vCenter Converter をダウンロードします。ESXi の ダウンロードと同様ですので省略します。

(7)

さて、実際に各ルータの設定を行う前に、下準備として仮想ネッ トワークの準備をしておきます。

今回作成するネットワークは、具体的にはこのような作りに なっています。ルータとルータや PC の間は、仮想的に作られた ハブ(仮想スイッチ)で繋がる形になります。そのハブを作成し ましょう。

実際にはここまで細かくする必要はないかも知れませんが、わ かりやすくする(そして不慮のミスを防ぐ)ために以下のような 仮想スイッチを作ります。

・LAN1 ~ 5

ルータ配下に隠れる PC を接続するスイッチ ・WAN10_0_1_0 ~ 10_0_5_0

ルータ間のネットワークを接続するスイッチ

vSphere Client のインベントリを開き、ESXi サーバを選択、 構成タブのネットワークを選択します。「ネットワークの追加」 をクリックし、接続タイプを「仮想マシン」に設定し、仮想ス イッチの作成を行います。ネットワークラベルには任意の名前を、 VLAN ID には「なし (0)」を指定します。これを必要な分だけ繰 り返します。

(8)

― 7 ― WAN10_0_2_0 WAN10_0_1_0 LAN4 VM Network LAN3 LAN1 LAN2

ESXi 仮想スイッチ

WAN10_0_3_0 WAN10_0_5_0 WAN10_0_4_0 LAN5 0 1 2 VyattaA AS65001 0 1 2 VyattaC AS65003 0 1 2 VyattaB AS65002 0

1 2 3

(9)

では、さっそくルータを設定してみましょう。仮想マシンを起 動する前に、ネットワーク設定を変更します。仮想マシンの設定 編集画面を開き、ネットワークアダプタを全ていったん削除しま す。その後、イーサネットアダプタを新たに 3 つ作成します。そ のとき、タイプは「フレキシブル」に、ネットワーク接続を接続 先の仮想スイッチの名前に設定します。この作業を行い、詳細図 のように各ネットワークアダプタを構成しましょう。

ここで、設定画面のネットワークアダプタ番号と OS が認識す るデバイス番号は必ずしも一致しないという点に注意する必要が あります。後からデバイスを追加削除するとずれてきます。その 場合は、MAC アドレスなどを参考に再設定するか、開き直って全 て削除して作り直してみましょう。

なお、SEIL/x86 には管理上の都合から 4 つ目のアダプタを設 定しています。ライセンスキーを登録する関係でこうしています が、なくても構いません。

さあ準備は完了です。まず、Vyatta の設定を行いましょう!

VyattaA の電源を入れます。コンソールを開くと、メッセージ が流れた後にログインプロンプトが表示されるはずです。ログイ

ンしてみましょう。

ユーザ名=vyatta、パスワード =vyatta

でログ

インして下さい。すると、 vyatta@vyatta:~$

というプロンプトが出てくるはずです。

(10)

― 9 ―

Vyatta に限らず、コマンドラインから操作する前提のルータ

のほとんどが、「

一般モード

」と「

設定モード

」の 2 つを持って

います。その名前や区別の仕方は機種やメーカによりそれぞれ異 なりますが、Vyatta の場合、プロンプトが "$" で終わっている 場合が一般モード、"#" で終わっている場合が設定モードになっ ています。

一般モードでは「ルータの状態を表示」といったような作業 を、設定モードでは「ルータの設定を変更」といったような作業 を、それぞれ行うことができます。多くのルータでは入力支援機

能があり、入力途中で TAB キーを押すと候補が補完されたり、

"?"

を押すとすぐに入力すべきオプションが補完

されたりするように

なっています。困ったら、とりあえず "?" を入力してみましょう。

Vy

aの基本設定

それでは、Vyatta の基本設定を行いましょう。管理モード に入り、各インタフェースに IP アドレスを設定していきます。 Vyatta は Linux で動作しているため、インタフェースの区別に は見慣れた eth* という名前が付けられていることがわかります。

# 設定モードに入ります

vyatta@vyatta:~$ configure [edit]

# eth0 のアドレスを172.16.1.254/24 に設定 以下同じ

vyatta@vyatta# set interfaces ethernet eth0 address 172.16.1.254/24

# eth1にも

vyatta@vyatta# set interfaces ethernet eth1 address 10.0.1.1/24

# eth2にも

(11)

# インタフェースの情報を表示してみる

# "+"で始まる行が、「変更しようとしている(まだ反映されていない)設定」

vyatta@vyatta# show interfaces +ethernet eth0 {

+ address 172.16.1.254/24 +}

+ethernet eth1 { + address 10.0.1.1/24 +}

+ethernet eth2 { + address 10.0.2.1/24 +}

loopback lo { }

# インタフェースへの変更を反映

vyatta@vyatta# commit

# 一般モードの情報表示コマンド。管理モードから実行するときは"run"をつける

vyatta@vyatta# run show interfaces

Interface IP Address State Link Description eth0 172.16.1.254/24 up up

eth1 10.0.1.1/24 up up eth2 10.0.2.1/24 up up lo 127.0.0.1/8 up up lo ::1/128 up up

# インタフェースの設定を保存

vyatta@vyatta# save

Vyatta では、コマンドを入力しても

すぐに有効にはなりません。

commitコマンドではじめて反映

されます。それまでの間は、show

コマンドを使って差分の形で表示することができます。

commit コマンドによってそれが実際の設定に反映されますが、 その状態で電源を落とすとその設定は消えてしまいます。そうな

らないように、

本体に設定を保存するのが saveコマンド

です。

(12)

― 11 ―

続いて、SEIL/x86 の設定です。まずは SEIL/x86 を起動し、ロ グインプロンプトが表示されることを確認します。

SEIL/x86 では、

一般ユーザと管理ユーザ

という形でモードを

区別します。初期設定では、前者は "user" というユーザ名、後 者は "admin" というユーザ名で、それぞれパスワードなしに設 定されています。一般ユーザのプロンプトは ">"、管理ユーザは "#" です。まずは管理ユーザでログインしましょう。

まずは SEIL/x86 の起動キーを設定する必要があります。起動 キーは長い文字列で、とても手打ちできる物ではありません。コ ピーペーストするために、まずは telnet でログインするための 設定を行います。VMNetwork に接続されているインタフェース に IP アドレスを設定することで、ESXi と同じネットワークにあ る PC からアクセスすることができるようになります。ここでは、 lan2 がそう設定されているので、以下のようにして IP アドレス を設定します。

SE

IL/x86の基本設定

# 実際のLANに繋がっているインタフェースにIPアドレスを設定

# interface lan2 address 192.168.xx.yy

# telnet 経由でアクセスできるようにする

# telnetd enable

(13)

# install-key from stdin

please enter key data ("." for end of key data) Starter0rbW(略) ←起動キー

.←ドットを入力

OK?[y/N]y ←確認

Startup Key:

Distribution ID : 0001-0000-0000-0086-xxxx-xxxx-xxxx-xxxx Memo : Distributed via SEIL Community Site.

Status : VALID and registered.

これで起動キーがインストールされました。同様に、機能キー もインストールします。同じコマンドで、機能キーを貼り付けて ください。インストールされたキーは、次のコマンドで確認でき ます。

# show key Startup Key:

Distribution ID : 0001-0000-0000-0086-xxxx-xxxx-xxxx-xxxx Memo : Distributed via SEIL Community Site.

Status : VALID and registered. Function Key(s):

Function : 'save-to' command Issued : 2011/04/01 08:00:00

Memo : Delivered via LaIT Supply Status : VALID and registered.

続いて、IP アドレスの設定を行います。こちらも Vyatta とほ

ぼ同じような指定の仕方になります。

save-to flashrom コマンド

で本体に保存

します。

(14)

― 13 ―

ネットワークが繋がるか試すだけであればルータの ping コマ ンドを使えばできますが、せっかくなので Linux を接続して試 してみましょう。お好きな OS をインストールして、ネットワー クインターフェイスで LAN1 を指定しましょう。これで VyattaA の下に接続されます。ホスト名はここでは FedoraA、LAN1 側 の IP アドレスは 172.16.1.100/24、デフォルトゲートウェイは 172.16.1.254 に設定します。

同様に、その OS を複製するか新たにインストールして、LAN4 を指定した環境も作りましょう。ホスト名は FedoraS、LAN4 側 の IP アドレスは 172.16.4.40/24、デフォルトゲートウェイは 172.16.4.254 に設定します。これで SEIL/x86 の下に接続される ノードができました。

VyattaA の下に接続された FedoraA で、通信をテストしてみま す。FedoraA から VyattaA の eth0 に ping を打ってみると、スイッ チ一つで直結されているので応答が返ってくるのが確認できま す。しかし、VyattaA より先のルータには届きません。まだルー ティングの設定がされていないからです。

FedoraA から VyattaB の eth1 である 10.0.1.2 に ping を打つ とき、まず FedoraA はデフォルトゲートウェイの 172.16.1.254 に送信します。これは VyattaA の eth0 で、送信先は 10.0.1.2 です。送信先と同じネットワークアドレスを持つインタフェー スが VyattaA にはありますので、そのインタフェースを使って

(15)

10.0.1.2 に送信します。これにより、パケットは 10.0.1.2 に到 着します。

VyattaA から 10.0.1.2 を通してパケットを受け取った VyattaB は、ping 応 答 を 172.16.1.100 に 返 そ う と し ま す。 し か し、

VyattaB は

「172.16.1.100 は VyattaA の下にいる」ことを知りませ

ので、どこに応答を返して良いか分からなくなってしまいます。

そういった理由で、まだ FedoraA から 10.0.1.2 には ping 通信で きないのです。

この問題を解決する一つの方法として、「FedoraA からの通信 を、VyattaA からの通信に見せかける」という方法があります。 NAPT(Network Address Port Translation) や IP マスカレードと 呼ばれる方法で、インターネットに接続する際によく使われます。

VyattaA で、次のような設定を行います。

NAPTの設定

# set service nat rule 10 type masquerade

# set service nat rule 10 source address 172.16.1.0/24 # set service nat rule 10 outbound-interface eth1

(16)

― 15 ―

なお、SEIL/x86 のときは次のような設定を行います。SEIL/ x86 では、IP アドレスレンジをネットマスク表記ではなくハイフ ン表記で行います。

SEIL/x86 は、ルーティングプロトコル(転送するための情報 を交換する取り決め)として、静的設定、RIP、OSPF をサポート しています。

静的設定とは、あのルータへはこの IP アドレスに送信すれば よい、このルータへはこの IP アドレスに送信すればよい、といっ たように、手作業でルーティングテーブルを設定する方法です。 ルータ 3 つ程度のネットワークであれば、静的設定で十分なこと が多いです。

しかし、ある程度規模が大きくなると、

台数が増えるにつれて

どんどん設定量が増えて

いきます。それを自動化するために生ま

れたのが

ルーティングプロトコル

です。

RIP はその中でも古くから使われているものですが、規模が大 きくなると効率が悪いため、最近ではあまり使用されなくなって

# nat napt add private 172.16.4.0-172.16.4.253 interface lan1

このように、NAPT を行うことにより、1 つ先のルータと通信で きるようになりました。しかし、まだ 2 つ以上先のルータと通信

する事ができません。それは、

ルーティングの設定がちゃんとさ

れていない

からです。ルーティングテーブルあってこそのルータ、

早速設定を行いましょう。

(17)

L/x86のルーティング-OSPF-きています。このようにして、ルーティングテーブルの情報を発

信することを「

経路広告

」と言います。

OSPF(Open Shortest Path First)

は、RIP の欠点を解消し、大 規模なネットワークでも安定して利用できるように考えられたプ ロトコルです。詳細は専門書に譲るとして、ある程度の規模を持 つネットワークではこの OSPF が利用されることが多いと思いま す。ルーティングプロトコルを用いてルーティングテーブルを設 定する場合、自分と相手の間で同じように設定を行う必要があり ます。

では、さっそく SEIL/x86 に OSPF の設定を行ってみましょう。 SEIL/x86 の lan1 と VyattaB の eth2 のあいだ (10.0.3.0/24) と、 SEIL/x86 の lan3 と VyattaD の eth2 の あ い だ (10.0.5.0/24) で OSPF を利用するように設定します。OSPF には router-id と呼ば れる ID があり、これを使って互いを識別します。

また、OSPF では効率的にネットワークを管理するために「エ リア」という概念が登場しますが、大規模なネットワークでのみ 使われる物なのでここでは省略します。

# ルータID を設定

# route dynamic ospf router-id 172.16.4.254

# バックボーンエリアを作成

# route dynamic ospf area add 0.0.0.0

# lan1を OSPF 設定(実際は一行)

# route dynamic ospf link add lan1 area 0.0.0.0

authentication auth-key none

# lan3も同様に

# route dynamic ospf link add lan3 area 0.0.0.0

↵ authentication auth-key none

# 直結ノードを OSPF で広告しない

# route dynamic redistribute connected-to-ospf disable

# 有効化!

(18)

― 17 ―

router-id に 172.16.4.254 という値を設定し、lan1 と lan3 を OSPF 設定に追加します。その際の認証はここでは「なし」にし ています。redistribute connected-to-ospf は、直結されたイ ンタフェース (lan0 ~ lan3) を OSPF で経路広告するかというオ プションですが、FedoraS がいるネットワーク (lan0) などを広 告しても意味がないので無効にしています。

こ れ で、SEIL/x86 の 設 定 は OK で す。 続 い て 対 向 ル ー タ の VyattaB と VyattaD の設定を行いましょう。Vyatta でも同様の設 定を行います。VyattaB の例では、次のようにします。

# set protocols ospf parameters router-id 172.16.2.254 # set protocols ospf area 0 network 10.0.1.0/24 # set protocols ospf area 0 network 10.0.3.0/24 # set protocols ospf passive-interface eth0

SEIL/x86 で次のコマンドを入力すると、OSPF で Vyatta とリン クできていることがわかります。

# show status route dynamic ospf neighbor

Neighbor ID Pri State Dead Time Address Interface 172.16.5.254 1 Full/Backup 00:00:32 10.0.5.2 lan3 172.16.2.254 1 Full/Backup 00:00:30 10.0.3.1 lan1

SEIL/x86 では、次のコマンドを使って、ルーティングテーブ ルの情報を見ることができます。Flags が "O" になっている項目 が、OSPF により設定されたルートです。

# show status route

Vyatta では次のコマンドになります。このコマンドは一般モー ド ($) で実行します。設定モードの時は、先頭に "run" を付けます。 ここでも、"O" で始まる項目が OSPF により設定されたルートです。

(19)

Vyatta は、ルーティングプロトコルとして静的設定、RIP、

OSPF のほかに

BGP(Border Gateway Protocol)

をサポートしていま

す。BGP は、

AS(Autonomous System)

と呼ばれるネットワークの間

でルーティングを行う際に使われるプロトコルです。大規模な

ネットワークが AS で、その

大規模なネットワークと別の大規模

なネットワークの間で行われる経路交換のためのプロトコル

だと

思ってもらって良いでしょう。

インターネットプロバイダ (ISP) や大きな大学、企業などが AS として運用されています。AS は番号で識別され、IP アドレス のように IANA から番号を交付してもらいます。これを AS 番号と 言います。

IP アドレスと同じように、AS 番号はインターネット上で重複 しないユニークな 16 ビットの番号です。1 ~ 64495 がグローバ ルな AS 番号で、64512 ~ 55534 がプライベートな AS 番号です。 プライベート IP アドレスのようなものですね。

では、細かいことはひとまず気にしないことにして、VyattaA ~ VyattaD に BGP の設定を行いましょう。VyattaA、VyattaC は 2 つのインタフェースに設定を、VyattaB と VyattaD は SEIL/x86 と隣同士なので SEIL/x86 ではない側のインタフェースに設定を 行います。

VyattaA と VyattaC では次のように設定します。

(20)

-BGP-― 19 -BGP-―

# VyattaA:AS65001の eth1 側 ( 対向 VyattaB:AS65002)に BGP 設定

# set protocols bgp 65001 neighbor 10.0.1.2 password pass10.0.1 # set protocols bgp 65001 neighbor 10.0.1.2 remote-as 65002 # set protocols bgp 65001 neighbor 10.0.1.2

soft-reconfiguration inbound

# VyattaA:AS65001の eth2 側 ( 対向 VyattaC:AS65003)に BGP 設定

# set protocols bgp 65001 neighbor 10.0.2.2 password pass10.0.2 # set protocols bgp 65001 neighbor 10.0.2.2 remote-as 65003 # set protocols bgp 65001 neighbor 10.0.2.2

soft-reconfiguration inbound

# VyattaA が広告する経路を設定

# set protocols bgp 65001 network 10.0.1.0/24 # set protocols bgp 65001 network 10.0.2.0/24

片方が OSPF となる VyattaB と VyattaD では、次のように設定 します。SEIL/x86 との間で OSPF を使って交換した経路を、他の ルータに BGP で再広告するための設定が必要になります。

# VyattaB:AS65002 の eth1 側 ( 対向 VyattaA:AS65001)に BGP 設定

# set protocols bgp 65002 neighbor 10.0.1.1 password pass10.0.1 # set protocols bgp 65002 neighbor 10.0.1.1 remote-as 65001 # set protocols bgp 65002 neighbor 10.0.1.1

soft-reconfiguration inbound

# VyattaB が広告する経路を設定

# set protocols bgp 65002 network 10.0.1.0/24 # set protocols bgp 65002 network 10.0.3.0/24

# OSPF-BGP で相互に経路を広告するように設定

# set protocols bgp redistribute ospf # set protocols ospf redistribute bgp

soft-reconfiguration inbound というオプションは、BGP 設定 を変更する際にセッションの再確立を不要にするためのオプショ ンです。おまじないだと思ってもらっても構いません。

(21)

$ show ip bgp summary

BGP router identifier 10.0.2.1, local AS number 65001 RIB entries 16, using 1024 bytes of memory

Peers 2, using 5048 bytes of memory

Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 10.0.1.2 4 65002 1701 1701 0 0 0 1d04h15m 7

10.0.2.2 4 65003 1700 1705 0 0 0 1d04h15m 7 Total number of neighbors 2

次のコマンドで、BGP で交換された経路の情報が確認できます。

$ show ip route bgp

Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF, I - ISIS, B - BGP, > - selected route, * - FIB route

B>* 10.0.3.0/24 [20/1] via 10.0.1.2, eth1, 1d04h16m B>* 10.0.4.0/24 [20/1] via 10.0.2.2, eth2, 1d04h15m B>* 10.0.5.0/24 [20/11] via 10.0.1.2, eth1, 1d04h16m

次のコマンドで、全ての経路情報が確認できます。VyattaB で の実行結果は次のようになっており、BGP、OSPF で得られた経路 が設定されていることがわかります。

$ show ip route

Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF, I - ISIS, B - BGP, > - selected route, * - FIB route

O 10.0.1.0/24 [110/10] is directly connected, eth1, 1d04h23m C>* 10.0.1.0/24 is directly connected, eth1

B>* 10.0.2.0/24 [20/1] via 10.0.1.1, eth1, 1d04h18m

O 10.0.3.0/24 [110/10] is directly connected, eth2, 1d04h23m C>* 10.0.3.0/24 is directly connected, eth2

O>* 10.0.4.0/24 [110/21] via 10.0.3.2, eth2, 1d04h19m O>* 10.0.5.0/24 [110/11] via 10.0.3.2, eth2, 1d04h23m C>* 127.0.0.0/8 is directly connected, lo

(22)

― 21 ―

OSPF と BGP を使ってルーティングの設定を行ったので、どの ルータのどのインタフェースとの間でも通信ができるようになり ました。ためしに、FedoraA から SEIL/x86 への経路を調べてみ ましょう。

ポート転送設定

[root@FedoraA ~]# traceroute -n 10.0.3.2

traceroute to 10.0.3.2 (10.0.3.2), 30 hops max, 60 byte packets 1 172.16.1.254 0.204 ms 0.836 ms 0.810 ms

2 10.0.1.2 1.300 ms 1.346 ms 1.328 ms 3 10.0.3.2 1.613 ms 1.674 ms 1.688 ms

VyattaA、VyattaB を通って SEIL/x86 へ、という経路が確認で きます。Vyatta 間は BGP、VyattaB と SEIL/x86 の間は OSPF で交 換された経路情報です。

さて、ここで FedoraA から FedoraS までの間で通信を行う場合 には、ルータが邪魔をしてしまいます。NAPT は配下にある PC を 隠して自分が通信しているように見せかける機能ですので、その

0

1 2

VyattaA 0

1 2

VyattaC

0 1

2

VyattaB 0

1 2 3

SEIL/x86

0 1

2 VyattaD FedoraA

FedoraS

ルータ裏のPC間は通信できる? ルータ間は 通信できる

0 1 2

VyattaC

0 11

(23)

配下の PC と通信を行うには設定を行う必要があります。もっと も、各ルータで 172.16.x.0/24 の経路情報を広告すれば直接通信 する事ができますが、今回は省略しています。

NAPT 配下の PC を相手に通信するための設定は、

ポート転送

などと呼ばれます。ルータの IP アドレスに対して、ある特定の ポートへのアクセスが来たときには配下の PC に転送する、とい う設定です。具体的には、10.0.1.1 の TCP10080 番への通信を 172.16.1.100 の TCP80 番に転送するような形を取ります。この 転送は同じポート番号でも構いませんが、ルータ自身が使ってい ないポート番号である必要があります。Vyatta や SEIL/x86 には HTTP サーバ機能があるので、今回は 10080 番を PC の 80 番に転 送してみます。

Vyatta では次のように設定します。

# set service nat rule 100 destination address 10.0.1.1 # set service nat rule 100 destination port 10080 # set service nat rule 100 inbound-interface eth1

# set service nat rule 100 inside-address address 172.16.1.100 # set service nat rule 100 inside-address port 80

# set service nat rule 100 protocol tcp # set service nat rule 100 type destination

一方 SEIL/x86 では、非常にシンプルなコマンドになります。

# nat snapt add protocol tcp listen 10080 interface lan1

forward 172.16.4.40 80

(24)

― 23 ―

・デフォルトアカウント(username/password) V: vyatta / vyatta

S: [一般ユーザ ] user / なし [ 管理者アカウント] admin / なし ・設定一覧を表示

V: $ show configuration または # run show configuration S: # show config

・設定モードにはいる V: $ configure

S: 管理者ユーザでログイン ・インタフェース情報を表示

V: $ show interfaces または # run show interfaces S: # show status interface

・変更を反映させる V: # commit S: (なし)

・設定を本体に保存する V: # save

S: # save-to flashrom

・インタフェースにIPアドレスを設定

V: # set interfaces ethernet eth0 address aaa.bbb.ccc.ddd/nn S: # interface lan0 address aaa.bbb.ccc.ddd/nn

・ルーティングテーブルの表示

V: # show ip route または # run show ip route S: # show status route

・Webインタフェースの有効化 V: # set service https

-> https://ipaddress/ にアクセス S: # httpd enable

-> http://ipaddress/ にアクセス ・ルータ再起動

V: $ reboot S: # reboot

・ルータシャットダウン V: $ shutdown S: (なし)

(25)

というわけで、いかがでしたでしょうか。

ルーティングプロトコルなんて、昔にテクニカルエンジニアのネットワー ク試験のために勉強して以来でした。落ちたけど。知識として、OSPF や BGP といったキーワードは知っていましたが、実際に手を動かして試すためには Cisco のルータを調達して…とハードルが高かったのです。

今では、仮想計算機環境も無料ならソフトウェアルータも無料で手に入る 時代になりました。金をかけずに楽しめる良い世界になってきていますね!

正直、今回の内容は不足している点ガ多いので、冬に完全版を出せればと 考えていますが…研究の進捗次第になりそうです。

ミスのご指摘や感想などは @syonbori までおねがいします。

それでは、また機会がありましたら。

2011年8月 研究室でひとり、JST-6 時間生活を満喫しながら terror / @syonbori 拝

●フォント

 本書では、以下のフォントを使用しています。ありがとうございます。

☆本文ほか:ふい字(作者:ふい様)     http://hp.vector.co.jp/authors/VA039499/ ☆セクションほか:あんずもじ(作者 : 京風子様)     http://www8.plala.or.jp/p_dolce/

☆記号ほか:アームドバナナ(作者:ミリメートル様)   http://calligra-tei.oops.jp/

●奥付

  仮想化なう 2011年夏号 「接続戦略しましょうか」 発行日:2011年08月13日(於:コミックマーケット80) 著者 :terror

発行 :ZaWorld

複製・複写・再頒布等ご自由にどうぞ。ただし、著者はその責任を負(え|い)ません。

(26)

*zaworld*

*101231 *

Z A W O R L D 1 1 0 8 1 3

ISDN 271828-1828-459464 C80 DAY2 alphaSS-52a \100 発行:ZaWorld

定価:本体100円+コミケ期間中 の貴重な時間

WAN10_0_2_0 WAN10_0_1_0 LAN4 VM Network LAN3 LAN1 LAN2

ESXi 仮想スイッチ

WAN10_0_3_0 WAN10_0_5_0 WAN10_0_4_0 LAN5 0 1 2 VyattaA AS65001 0 1 2 VyattaC AS65003 0 1 2 VyattaB AS65002 0

1 2 3

SEIL/x86 0 1 2 VyattaD AS65004 FedoraA FedoraS 172.16.1.100 172.16.1.254 10.0.2.1 10.0.2.2 172.16.4.40 10.0.3.2 10.0.4.2 10.0.5.2 10.0.3.1 10.0.5.1 172.16.4.254 10.0.1.1 10.0.1.2 10.0.4.1

BGP

OSPF

きっとピアにもな れ な い

お 前 た ち に 告 げ る

ソフトウェアルータ

Vyatta

(びやった)と

SEIL/x86

(ざいる・えっくすはちろく)を使って 仮想計算機上に↑あんなネットワークを作って

ルーティングプロトコル

OSPF

BGP

参照

関連したドキュメント

ア詩が好きだから。イ表現のよさが 授業によってわかってくるから。ウ授

2021] .さらに対応するプログラミング言語も作

WAKE_IN ピンを Low から High にして DeepSleep モードから Active モードに移行し、. 16ch*8byte のデータ送信を行い、送信完了後に

このように、このWの姿を捉えることを通して、「子どもが生き、自ら願いを形成し実現しよう

このような情念の側面を取り扱わないことには それなりの理由がある。しかし、リードもまた

海なし県なので海の仕事についてよく知らなかったけど、この体験を通して海で楽しむ人のかげで、海を

この P 1 P 2 を抵抗板の動きにより測定し、その動きをマグネットを通して指針の動きにし、流

 活動回数は毎年増加傾向にあるが,今年度も同じ大学 の他の学科からの依頼が増え,同じ大学に 2 回, 3 回と 通うことが多くなっている (表 1 ・図 1