特集
» 2008年05月16日 13時00分 公開

Validation Case Study:イーサネットのセカンドポートの有効な活用法 (2/2)

[Nathan-Willis,Open Tech Press]
SourceForge.JP Magazine
前のページへ 1|2       

ファイアウォールおよびゲートウェイ

 多量なトラフィックが通過するタイプのコンピュータの場合、個々のあて先アドレスを基にしたフィルタリングを施したり、頻繁にリクエストされるWebページをキャッシュするといった、より有用な処理をOSに施させることもできる。また光ファイバないしDSL接続においてアップストリーム側とローカルネットワークとの間にデュアルポートコンピュータを配置すれば、インターネット接続共有用の簡易的なゲートウェイや、ネットワークインタフェース間を通過するパケットを監視するファイアウォールとして利用できるはずだ。

 最初に行うべき準備作業は、双方のネットワークアダプタを有効化してIPアドレスの割り当てを行うことだが、この場合はそれぞれ異なるサブネットのIPアドレスを割り当てておくという点が重要である。1つの設定例としては「sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0」および「sudo ifconfig eth1 192.168.2.100 netmask 255.255.255.0」として、eth0は192.168.1.xのアドレス空間に、eth1は192.168.2.xのアドレス空間に属すようにしておけばいい。この場合はその後ネットワークにほかのデバイスを追加する際にも、こうした使い分けを維持していくことが肝要である。

 インターネット接続用のアダプタとLAN接続用のアダプタとの間でパケット転送を行わせるには、LinuxカーネルにIPフィルタリング用のサブシステムを構成するiptablesというツールを使用すればいい。例えば「sudo iptables -A FORWARD --in-interface eth1 --out-interface eth0 --source 192.168.2.0/255.255.255.0 -m state --state NEW -j ACCEPT」というコマンドは、LAN側のインタフェースとしたeth1に接続されたコンピュータ群での新規接続および、インターネット側のインタフェースとしたeth0でのパケット転送を行わせるための指定である。これに引き続き「sudo iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT」というコマンドを実行すると、これらの接続から出されるパケット送信をスムースに処理させることができるようになる。

 次に「sudo iptables -A POSTROUTING -t nat -j MASQUERADE」によってネットワークアドレス変換(NAT:Network Address Translation)を有効化させ、LAN側からのトラフィックにつけられたIPアドレスをひそかに書き換えることで、これらのトラフィックがルーティング用のLinuxマシンから直接インターネットに出されたものであるかのように擬装させるようにする。こうした擬装工作は一般家庭からインターネットに接続する場合における一種の必要悪であって、これはプライベートIPアドレスである192.168.x.xブロックからのインターネット接続を可能にすると同時に、複数コンピュータからのトラフィック送信を快く思わないインターネット接続プロバイダー(ISP)の目を欺く効果があるのだ。

 最後に「sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward」によって、カーネルによるパケット転送を有効化する。

 以上の処理によりLANからインターネット側へのトラフィック送信は行えるようになるはずだが、LAN上のコンピュータ群におけるネットワーク設定までは行われない。後者については、IPアドレス、ゲートウェイ、ネットワークに関する情報および、有効なDNSサーバアドレスの指定も必要となるはずだ。ただしデュアルアダプタLinuxマシンをNATゲートウェイとして運用する場合、これらの情報をクライアント側に指定する作業はDHCPを用いて簡単に実行させることができる。ディストリビューションによっては標準でdhcpdパッケージが同梱されているはずだが、dhcpdの詳細は本稿の範囲を超える話となるので、その使用法については、ディストリビューションの付属ドキュメントに記載されているインターネット接続共有に関する説明などを参照して頂きたい。

 iptablesを用いた基本的なNATおよびパケット転送のセットアップ法に習熟したユーザーであれば、もう少し掘り下げた設定法を学習し、送信元やあて先アドレスおよびポートやプロトコル別にトラフィックへの細かなフィルタリングを施すためのルールを指定することで、高機能ファイアウォールとして利用することもできるはずである。

ネットワークからの分離という使用法

 最後に解説するのは、2つ目のネットワークアダプタをLANから完全に隔離した状態で使用するといった使い方である。

 通常の用途に供するコンピュータの場合、こうした使い方で得られるメリットはほとんどないが、特定の相手のみにデータ送信をする目的でイーサネット接続をするデバイスの場合は、むしろこうした使用法が一般的である。例えばデジタルビデオレコーダを自作する場合は、このテクニックを用いることでHDHomerunのHDTV受信機をMythTVのバックエンドに直結させ、帯域幅を専有しかねないMPEGストリーミングをLANから分離させてしまうという使われ方がされている。こうしたトラフィックの分離という手法は、専用のネットワーク接続ストレージ(NAS:Network-Attached Storage)やネットワーク接続型の監視カメラなどの単一目的で作成されたデバイスでも使われているが、世の中は広いもので観葉植物のイーサネット接続なる用途を提案している人間もいるくらいだ。

 多くのケースにおいて2つ目のアダプタをネットワークから分離させる場合は、ゲートウェイとしての使用例でも触れたDHCPサーバ用のコンピュータ設定が必要となるが、そのクライアントとネットワークの残り部分との間に関するNATルールなどは気にする必要がないはずである。

設定変更は自己責任で

 以上、本稿で紹介したうちのどのテクニックを自分は使用するべきだろうか? わたしからのアドバイスは、各自のネットワークにおいて解決すべき最大の問題は何なのかを検討してみなさい、ということである。例えば多量のトラフィックをさばくためのサーバとしてデュアルアダプタの搭載マシンを使用したり、2つのWAN接続間でトラフィックのロードバランスを施したいのであれば、ボンディングが適しているはずだ。そうではなくHDHomeRunを購入してMythTVのバックエンドに接続するのならば、空いているインタフェースを専用化して直結する使用法が適していることになる。

 ブリッジおよびゲートウェイとしての使用法は、デュアルアダプタの搭載マシンを介して各種の異なるデバイスを同一ネットワークに接続するという点において、両者は基本的に共通している。このうちどちらの使用法を採用するべきかを考えている場合は、ブリッジングが機能するのはプロトコルスタックにおけるTCPおよびIPではなくイーサネットリンクレベルである点を考慮に入れなくてはならない。こうしたイーサネットレベルにて唯一実行可能なトラフィック制御は、コンピュータのハードウェアMACアドレスを基にしたものだけなのであって、それ以上の細やかな制御を施すのであれば、より本格的なNATゲートウェイとしての運用が必要となるはずだ。

 いずれのオプションを選ぶにせよ、ネットワーク設定を変更する場合は、何か1つの失敗をするだけで即座にネットワーク接続が絶たれる事態に陥ることも覚悟しておかなくてはならない。そのため本稿で紹介した設定例のコマンドは、いずれもLinuxが起動時に読み込む設定ファイルには手をつけない“ライブ”システムを変更するものばかりにされているのである。つまりこの場合、何らかの設定ミスをしたとしても再起動によりシステムを稼働状態に復帰させることができるのだ。

 あるいは自分の行った設定変更を恒久的なものとしたいケースもあるだろうが、その場合はディストリビューションの付属ドキュメントを参照する必要が生じてくる。ネットワークについての設定スクリプトを格納する方法と場所はディストリビューションごとに異なる場合があるからだ(例えばRed Hatでの格納先は/etc/sysconfig/network-scripts/であるのに対してUbuntuでは/etc/network/とされている)。

 この種の設定法についてより詳しく調べていけば、Linuxを使って2つ目のネットワークアダプタを利用するそのほかの方法が見つかるかもしれない。いずれにせよ本稿で解説したのは、2つのアダプタにてネットワークとの同時通信を行わせる一般的な利用法にすぎないが、それだけの知識であっても無用の長物的な2つ目のネットワークアダプタを何らかの形で有効に利用できるはずだ。

前のページへ 1|2       

Copyright © 2010 OSDN Corporation, All Rights Reserved.

注目のテーマ