2022年8月、ホームページを全面リニューアルしました! 情報を分かりやすくお伝えできるサイト作りを目指してまいります。

DHCPサーバ + 透過型ルータの構築!

目的:192.168.0.0のネットワークと192.168.7.0のネットワークをつなぐセグメントルータを構築する。

構築環境:
OS)Debian Linux 5.0.3
機種)DELL PowerEdge
IPアドレス)192.168.0.27 , 192.168.7.1
ホスト名)router-7f


1.OSのインストール

1)インストーラの起動
Debianのディスクをいれて、CD or DVD BOOTを行う。
※ 画面に従って、操作を行うのみでOK!(詳細は割愛する)
このあとのDHCP機能の円滑な導入にあたり、導入するモジュールにデスクトップ環境のインストールを行う。

2)ネットワークの設定
GUI環境にログイン後 、画面上部にある[システム] → [ネットワーク]からネットワークカードの設定を行う。
[接続タブ eth0のプロパティ] ※192.168.0.0側のネットワークカードの設定
IPアドレス 192.168.0.27
サブネットマスク 255.255.255.0
デフォルトゲートウェイ 192.168.0.1

[接続タブ eth1のプロパティ] ※192.168.7.0側のネットワークカードの設定
IPアドレス 192.168.7.1
サブネットマスク 255.255.255.0
デフォルトゲートウェイ –

[全般 タブ]
ホスト名 router-7f
ドメイン名 xxxxxxxxxxxx.co.jp

[DNS タブ]
DNSサーバ 192.168.0.4


2.DHCPサーバのインストール
1)DHCPサーバのインストールと設定
画面上部にある[システム] → [アプリケーションの追加と削除]から[GADMIN-DHCPD]の導入を行う。
※DHCPはネットワークに接続されたホストに対して、動的にネットワーク環境を割り当てる。
(IPアドレス,サブネットマスク,デフォルトゲートウェイ,DNS,WINSサーバなど)
画面上部にある[アプリケーション] → [システムツール]から[GADMIN-DHCPD]をクリックする。GUIでの設定画面が表示される。

[scopes]タブの設定について
DHCP設定を行う、ネットワークカード、ネットワークアドレス、サブネットマスクを入力し、追加ボタンをクリックする。

Networkcard Networkaddres subnetmask
eth1       192.168.7.0    255.255.255.0

[Range from to Range] 欄にDHCPで割り当てを行うIPアドレスの範囲を指定する。
Range from 192.168.8.55 to 192.168.8.254

[Scope settings]に入力されている内容を確認する
Network card eth1
Network addres 192.168.7.0
subnetmask 255.255.255.0

[Clent settings]の下記項目の編集を行う。 

項目             入力値          備考
Domain name        xxxxxxxxxxxx.co.jp   ホスト名のあとにつく修飾名
Subnet mask        255.255.255.0      サブネットマスク
Broadcast address    192.168.8.255      ブロードキャストアドレス
Routers           192.168.8.1        ルータのアドレス
Domain name servers  192.168.0.4        DNSサーバのアドレス
Netbios name servers  192.168.0.14       winsサーバのアドレス

他のタブで編集を行う必要はない。

画面上部の「Active」ボタンをクリックする。設定が正しく行われていれば、DHCPサーバが起動する。

2)インストール後の確認
DHCPサーバを設定したネットワークカードとHUB経由で端末の接続を行い、正しく割り当てが行われているか確認する。

端末を起動し、コマンドプロンプト画面で、[ipconfig]を実行し、ネットワーク環境の割り当てが行われていると図1のよう表示される。

図1

3.ルータとしての設定(ルーティングの設定)
[ 経路情報 ] (ROUTING)の設定について <192.168.0.xに接続された端末からの問い合わせ用)

1)パケット転送の有効化について
/etc/sysctl.conf の設定を変更する。下記項目の「#」を解除する。
# vi /etc/sysctl.conf
net.ipv4.tcp_syncookies=1
net.ipv4.ip_forward=1
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1

PCの再起動を行う。

下記コマンドを実行し、変更結果が有効になっているか確認する(1が表示されれば有効)
# cat /proc/sys/net/ipv4/ip_forward
1
# cat /proc/sys/net/ipv4/tcp_syncookies
1
# cat /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
1
# cat /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
1

2)登録されている経路情報の確認
登録されている経路情報(ルーティングテーブル)を参照するには、コンソール画面で「route -n」コマンドを実行する。

カーネルIP経路テーブル (一般的な状態)
受信先サイト ゲートウェイ  ネットマスク フラグ  Metric  Ref  使用数 インタフェース
192.168.0.0  0.0.0.0      0.0.0.0    U     0     0    0    eth0
0.0.0.0     192.168.0.1   0.0.0.0    UG    0     0    0    eth0
192.168.7.0  0.0.0.0      0.0.0.0    U     0     0    0    eth1
192.168.7.1  255.255.255.0  0.0.0.0   UG    0     0    0    eth1

現状の登録されている経路情報に対して、各セグメント宛の経路情報の追加を行う。

3)経路情報の登録
192.168.0.0のネットワークからみた各ネットワークセグメントに対してのゲートウェイは、
ネットワークセグメント 192.168.1.0 192.168.3.0 192.168.5.0 192.168.7.0 192.168.8.0
ゲートウェイ 192.168.0.31 192.168.0.25 192.168.0.26 192.168.0.27 192.168.0.28

この情報をもとに、経路情報の登録を行う。経路情報の追加(削除)には「route add(del) コマンドを使用する。

経路情報の追加と削除の書式
[追加 route add -net 受信先サイト netmask サブネットマスク gateway ゲートウェイアドレス]

各ネットワークセグメントのゲートウェイの経路を登録する。
# route add -net 192.168.1.0 netmask 255.255.255.0 gateway 192.168.0.31
# route add -net 192.168.3.0 netmask 255.255.255.0 gateway 192.168.0.25
# route add -net 192.168.5.0 netmask 255.255.255.0 gateway 192.168.0.26
# route add -net 192.168.8.0 netmask 255.255.255.0 gateway 192.168.0.28


経路情報登録あとに「route -n」を実行する
受信先サイト  ゲートウェイ  ネットマスク  フラグ Metric Ref 使用数 インタフェース
192.168.1.0   192.168.0.31 255.255.255.0 UG   0    0   0    eth0
192.168.3.0   192.168.0.25 255.255.255.0 UG   0    0   0    eth0
192.168.5.0   192.168.0.26 255.255.255.0 UG   0    0   0    eth0
192.168.8.0   192.168.0.28 255.255.255.0 UG   0    0   0    eth0
192.168.0.0   0.0.0.0     255.255.255.0 U    0    0   0    eth0
0.0.0.0 192   168.0.1     255.255.255.0 UG   0    0   0    eth0
192.168.7.0   0.0.0.0     0.0.0.0     U    0    0   0    eth1
192.168.7.1   255.255.255.0 0.0.0.0    UG   0    0   0    eth1

登録を行った経路情報は、OSの再起動を行うと消えてしまうので、スクリプトファイルを作成し、OS起動時に自動起動させるようにする。

# vi router.sh
#!/bin/sh

route del -net 169.254.0.0 netmask 255.255.0.0 gateway 0.0.0.0 → ネットワーク接続されていない時の経路情報

route add -net 192.168.1.0 netmask 255.255.255.0 gateway 192.168.0.31

route add -net 192.168.3.0 netmask 255.255.255.0 gateway 192.168.0.25

route add -net 192.168.5.0 netmask 255.255.255.0 gateway 192.168.0.26

route add -net 192.168.8.0 netmask 255.255.255.0 gateway 192.168.0.28

route -n

chmod コマンドでファイルに実行属性を与え、スクリプトファイルを実行可能な状態にする。
# chmod 755 router.sh
OS起動後、手動でスクリプトファイルを実行し、経路情報の確認を行う。
作成したシェルスクリプトに問題なければ、起動時にこのシェルスクリプトも自動起動するようにrc.localファイル等へ組み込む。

4)パケット転送の確認
異なるネットワークセグメントの端末間で、パケットの送受信(ping)が行えるか確認を行う。
※ パケットの送受信を行うには両方のネットワークで正しく経路情報の設定が行われていないとパケットの送信ができても受信ができないので注意が必要である。

以上

コメント