ネットワーク入門

ネットワーク・コーナ
ご購入はこちら
ダウンロード・データあります
パケットづくりではじめる
ネットワーク入門
第
9 回 自作ルータに基本ルーティング機能を加える
本連載はネットワーク上を流れるパケットを直接扱
うようなソフトウェア・ツールを自作しつつ,ネット
ワークのしくみを勉強していきます.テーマは「自作」
,
「現物ベース」
,
「動く感動」の三つです.ネットワーク
にはイーサーネットと IP を想定しています.
前回(第 8 回,2016 年 3 月号)では,連載中で作成し
た ARP 処理ライブラリや ping 応答ツールを流用して,
簡易ルータを作成しました.しかしこの簡易ルータは,
隣接するネットワークのアドレスのみの処理が可能な
だけで,経路を登録する機能はありませんでした.
坂井 弘亮
● 今回行うこと
前回作成した簡易ルータは自身のインターフェース
のリストを検索し,パケットの宛て先 IP アドレスが
属するネットワークを持つインターフェースにパケッ
トを送出するというものでした.つまりパケットを転
送できるのは,隣接するネットワーク上に存在する
ノードに対してのみになります.
しかしこれだけでは,ルータの動作としては不十分
です.例えば一般的なルータは「デフォルト・ゲート
ウェイ」などの経路情報を持っていて,宛て先 IP アド
レスが自身のインターフェースのネットワーク上に存
在しない場合には,デフォルト・ゲートウェイ宛てに
FreeBSDマシン
仮想PC1
(FreeBSD)
仮想PC2(FreeBSD)
pingコマンド
ユーザ・プログラム
同等
FreeBSD
カーネル
FreeBSD
カーネル
ユーザ・プログラム
FreeBSD
カーネル
パケット直接送受信
TCP/IP処理
デバイス・ドライバ
仮想PC3(FreeBSD)
デバイス・ドライバ
仮想LAN
ケーブル
仮想イーサカード
192.168.10.2/24
パケット直接送受信
デバイス・ドライバ
仮想LAN
三つ ケーブル
仮想イーサカード
仮想イーサカード
192.168.10.1/24
192.168.11.1/24
192.168.11.2/24
192.168.13.1/24
前回作成した簡易ルータ.経路検索&
登録機能を追加して隣接ネットワーク
以外に転送
(ルーティング)できるよう
にする
仮想LAN
ケーブル
仮想LAN
二つ ケーブル
192.168.12.1/24
仮想PC4(FreeBSD)
FreeBSD
カーネル
TCP/IP処理
デバイス・ドライバ
仮想イーサカード
192.168.12.2/24
図 1 簡易ルータの検索 / 追加ルーティング機能の動作確認を行うためのネットワーク構成
3 台の PC(仮想)間のネットワーク通信を行う
134
第 1 回 パケット送受信のライブラリを作成する(2015 年 8 月号)
第 2 回 中継も速度測定も試せる! 指定サイズ・パケット送信ライブラリを作る(2015 年 9 月号)
第 3 回 抽象化しておけば超便利! バッファ付きパケット通信ライブラリを作る(2015 年 10 月号)
2016 年 4 月号