TOPサーバ構築・運用> Red Hat Enterprise Linux 4で実現するNATルータ
改めて知っておきたいRed Hat Enterprise Linux 4 - ネットワークサービス編
改めて知っておきたいRed Hat Enterprise Linux 4 - ネットワークサービス編

第3回:IPアドレスを管理する「DHCPサーバ」と通信の橋渡し「NATルータ」

著者:日本ヒューレットパッカード  古賀 政純   2006/12/21
前のページ  1  2  3
Red Hat Enterprise Linux 4で実現するNATルータ

   インターネットやLANの世界には、グローバルIPアドレスとプライベートIPアドレスがあります。多数のグローバルIPアドレスを取得するには手間と費用がかかる傾向にあるため、通常はグローバルIPアドレスとプライベートIPアドレスをうまく組み合わせてLANを構成します。

   グローバルIPアドレスはインターネットへ直接接続することが可能である反面、セキュリティを徹底的に考慮する必要があります。一方プライベートIPアドレスは、インターネットに直接接続できないLANセグメントであるため、グローバルIPアドレスを持つLANセグメントに比べると格段にセキュアであるといえます。

   グローバルIPアドレスを持つLANセグメントとプライベートIPアドレスを持つLANセグメントの通信の橋渡しを行う技術の1つに「NAT(Network Address Translation)」があります。NATはLAN上を流れるパケットに含まれる内容を書き換え、グローバルIPアドレスのLANセグメントから来る通信パケットをプライベートLANセグメント用のIPアドレスに変換したり、その逆の作業を行います。

   Red Hat Enterprise Linux 4ではNAT機能を標準装備しており、iptablesコマンドで設定を行うことができます。NAT機能を提供するLinuxマシンは「NATルータ」と呼ばれます。NATルータの基本的なシステム構成例を以下に示します。
基本的なNATルータのシステム構成例
図1:基本的なNATルータのシステム構成例
(画像をクリックすると別ウィンドウに拡大図を表示します)

   ネットワークアドレスが異なるLANセグメントAとBが存在する場合、双方を接続するためのNATルータを設置します。NATルータとなるLinuxマシンは複数のNICを装備している必要があります。図1のNATルータとなるLinuxマシンは、LANセグメントAに繋がるNIC0と、LANセグメントBに繋がるNIC1を搭載しています。

   例のようなシステム構成において、具体的にNATルータを構築する手順を示します。まず想定する前提条件を以下に示します。

  • LANセグメントA:172.16.X.X/255.255.0.0が存在。このLANセグメントAはドメイン名:private.hp.comとする。
  • LANセグメントB:16.175.X.X/255.255.252.0が存在。このLANセグメントBはドメイン名:global.hp.comとする。
  • global.hp.comドメインのマシンは、NATルータを経由しないとprivate.hp.comドメインのマシンと通信できない。
  • private.hp.comドメインのマシンは、NATルータを経由しないとglobal.hp.comドメインのマシンと通信できない。
  • LANセグメントAとLANセグメントBを接続するためのNATルータをLinuxマシンで実現。
  • NATルータとなるLinuxマシンにNICを2枚搭載(eth0、eth1)。
  • ルータとなるLinuxマシンのeth0をprivate.hp.comに所属するようにIPアドレスを設定。
  • NATルータとなるLinuxマシンのeth1をglobal.hp.comに所属するようにIPアドレスを設定。

表2:NATルータ構築のための前提条件

   NATルータの設定はiptablesで行いますが、その前にNATに必要なカーネルパラメータの変更を行います。NATでは複数のNICのパケットをフォワーディングする必要があるため、カーネルパラメータの/proc/sys/net/ipv4/ip_forwardの値を変更する必要があります。

   NATルータを再起動した場合でも変更したカーネルパラメータを保持しておく必要があるので、/etc/sysctl.confファイルにカーネルパラメータnet.ipv4.ip_forward =1を記述しておきます。以下にNATルータを構築する手順を示します。

# vi /etc/sysctl.conf ← カーネルパラメータの編集
net.ipv4.ip_forward = 1 ← IPフォワーディング機能を有効化
# sysctl ?p ← カーネルパラメータの変更を有効化
# sysctl -a |grep ip_forward
net.ipv4.ip_forward = 1

   次にiptablesを使ってNAT機能を実現するための設定を行います。上記システムでは、172.16.0.0/16に所属するLANセグメントのパケットを、eth1のLANで使えるパケットに変換します。

# iptables -t nat -A POSTROUTING -s 172.16.0.0/255.255.0.0 -o eth1 -j MASQUERADE

   上記コマンドのiptablesのオプションの意味は以下の通りです。

-t nat NATを実現するためのオプション
-A パケットの送信元情報を変更する処理を担当する場合POSTROUTINGを指定
-s 送信元のネットワークを指定
-o 送出されるパケットのNICインターフェース名を指定
-j NATによるIPアドレスの変換を行う場合MASQUERADEを指定

表3:iptablesオプション

   上記設定がiptablesに登録されていることを確認します。

# iptables -L -t nat ← NAT設定の確認
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  172.16.0.0/16        anywhere ← 設定した項目

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

   この状態ではNATルータを再起動した場合に設定が消えてしまうため、設定内容をファイルに保存しておきます。

# service iptables save ← NAT設定を保存
Saving firewall rules to /etc/sysconfig/iptables:          [ OK ]

   設定情報が正しく保存されていることを確認します。設定情報は/etc/sysconfig/iptablesファイルに保存されます。

# cat /etc/sysconfig/iptables ← 設定ファイルを確認
# Generated by iptables-save v1.2.11 on Tue Apr 11 16:49:23 2006
*nat
:PREROUTING ACCEPT [53:3056]
:POSTROUTING ACCEPT [4:445]
:OUTPUT ACCEPT [4:445]
-A POSTROUTING -s 172.16.0.0/255.255.0.0 -o eth1 -j MASQUERADE
COMMIT
# Completed on Tue Apr 11 16:49:23 2006

   以上の作業により、プライベートIPアドレスを持つLANセグメントに所属するマシンはグローバルIPアドレスに所属するネットワーク資源にアクセスすることが可能となります。


次回は

   次回はNATルータ利用時のファイアウォールの設定とデータベースサーバについて解説します。

前のページ  1  2  3


日本ヒューレット・パッカード株式会社 古賀 政純
著者プロフィール
日本ヒューレット・パッカード株式会社
古賀 政純

2000年よりUNIXベースのHAクラスタシステム及び、科学技術計算システムのプリセールスに従事。並列計算プログラミング講習会などを実施。その後、大手製造業及び官公庁系の大規模Linuxクラスタの導入、システムインテグレーションを経験。現在は、大規模エンタープライズ環境向けのLinuxブレードサーバ及びHP Serviceguard for Linux(HAクラスタソフトウェア)のプリセールスサポート、システム検証を担当している。毎日、Linuxサーバと寝食を共に(?)しています。


INDEX
第3回:IPアドレスを管理する「DHCPサーバ」と通信の橋渡し「NATルータ」
  DHCPサーバについて
  PXEブートによってブレードサーバを自動設定するブートイメージを付与
Red Hat Enterprise Linux 4で実現するNATルータ