お知らせ

libalias の拡張第一段を公開しました。 今後は、libalias の拡張パッチのページもご覧ください。


今後は、NAT patch にしか存在しなかった機能を、natd など他のプログラムでも汎用的に利用できるように、libalias に入れていくことを考えています。
なお、これにともない NAT patch というかたちでの開発は 3.3-RELEASE 用をもちまして終了したいと思います。 ご了承ください。



端末型でネットワーク型ダイヤルアップIPのように使う

(iij-pppへの The IP Network Address Translator (rfc1631) の実装編)
Error: ipcpLayerDown: が発生する不具合を修正しました。

最新パッチ作成日:1999/11/3



!! 注意 !!

端末型ダイヤルアップIP接続で自宅LAN上のどのマシンからもインターネットを利用しようとした場合、一番楽な方法としては、プライベートアドレスとグローバルアドレスの付け替えを行なってくれるISDNルータを購入するという方法が考えられます。

最近は、ダイヤルアップルータも安くなってきましたが、ここではTAやアナログモデムを使って、端末型ダイヤルアップIP接続で、LANごとインターネット接続を可能にする機能をiij-pppに持たせることを考えました。 これで、お金をかけずに手軽に快適なLAN環境が構築できます。

なお,ここで提供するNATの特徴はこちらです.



例えば,私の家のネットワークは以下のようになっていますが,



自宅内LANでのIPアドレスは以下のように設定しています. 左側のマシンではここで紹介するパッチのあたったiij-pppが動作していますので、 LAN上のIPアドレスと,プロバイダから割り当てられた正式なIPアドレスとの間での変換が行なわれます。 左側のマシンでNAT対応のiij-pppが動作していることで、 右側のマシンの defaultroute は左側のマシンになっているだけで良いことになります。非常に簡単ですね。

例えば、右側のマシンから XXX.XXX.XXX.XXX というアドレスのインターネット上のマシンへアクセスしたとします。この場合、
始点アドレス:192.168.31.2 -> 終点アドレス:XXX.XXX.XXX.XXX
というパケットが送り出されます. しかし、ここで192.168.31.2は,プライベートアドレスなので、 左側のマシンで正式なアドレス(仮にYYY.YYY.YYY.YYYとします)に変換されます。 すると、実際に左側のマシンから外に出るときは、
始点アドレス:YYY.YYY.YYY.YYY -> 終点アドレス:XXX.XXX.XXX.XXX
というパケットに作りかえられます。

逆に、外部のマシンからLAN上の右側のマシンへパケットが戻ってくるときには、
始点アドレス:XXX.XXX.XXX.XXX -> 終点アドレス:YYY.YYY.YYY.YYY
として左側のマシンに届いたパケットが、
始点アドレス:XXX.XXX.XXX.XXX -> 終点アドレス:192.168.31.2
に変換され、最終的に右側のマシンへ届くことになります。 これで右側のマシンは、あたかも外部のマシンと直接通信しているかのようになるわけです。このような変換を行なうのが,NATの基本的な機能です。 実際には内部でさらに様々なパラメータの変更をおこなっているのですが...

ちなみに左側のマシンでは、今まで通りのiij-pppを使った場合と全く同じように利用できます。

右側のマシンでは、どんなプロトコルでもOKというわけではありませんが、 普段使うプロトコルで通らないという物はまず無いと思います。

なお、本パッチに関して詳しくはiij-pppをNAT対応にする技術情報と詳細を御覧下さい。


iij-pppへのパッチとインストール

まずは以下のソースを用意して下さい。 用意ができたら, を当てます。 (FreeBSD 2.1.x 付属のiij-pppに対するパッチはこちらです.また、FreeBSD 2.2.xR 付属のiij-pppに対するパッチはこちらです。)

これらのパッチは、pppディレクトリのあるディレクトリにおいて、つぎのように実行すればあてることができます。 と実行すればあてることができます。 (Windowsのブラウザを用いてパッチをダウンロードする場合は、 改行コードに御注意ください。^Mが入っているとパッチが正常にあたりません。)

本パッチをあてたiij-pppのソースツリーが出来上がったら、pppディレクトリに入り、makeを実行すればコンパイルは終り、NAT機能を持ったiij-pppが完成しているはずです。

最初にも書きましたように、NOROP氏より許可をいただき、OnDemand patch を統合してあります。 このパッチ1つで、NATだけでなく、OnDemand patch の機能も組み込まれます。 ただし、FreeBSD 2.2.8-RELEASE および、FreeBSD 3.0-RELEASE からは、ppp に大幅な変更が加えられて、一部 OnDemand patch にあるような機能も加えられています。 そういった機能は、オリジナルのpppの方のソースコードを利用しています。

OnDemand patch 特有の機能に関してはここでは説明しませんので、 On Demand Dialup IP への道を参照して下さい。なお、OnDemand patch のコードの著作権は、NOROP氏にあります。

以前のNATパッチから何が変ったかは、iij-pppをNAT対応にする技術情報と詳細を御覧下さい。


iij-pppを動作させるマシンの設定

クライアントマシンの設定


利用

上記の設定が終れば,あとはiij-pppを起動するだけです. autoモードで実行しておくと便利でしょう.

ただし,1つだけ起動時の注意事項があります. 2.2.1-RELEASEのiij-pppでは,Packet Aliasing が実装されています. これもNAT機能です. 最初から実装されているNAT機能と,ここで紹介しているパッチのNAT機能は共存 できません.具体的には,つぎの点に注意してください. まあ,このパッチを使う人は,Packet Aliasingは使わないでしょうが...

iij-pppが起動できたら,クライアント側はからは,普通に,
% telnet hogehoge
とか,
% ftp hogehoge
とやれば,接続できるはずです.Netscapeなども問題なく利用できます. もちろん,proxyなんて不用です. 非常に快適な環境が実現できます.

socksで中継する場合と違い,クライアント側の設定がdefaultrouteだけで済んでしまい,アプリケーションを対応させるという作業が不用な点がNATの良いところでしょう. 例えば, といった場合には非常に便利です.


[トップページに戻る] [注意書き]
Powered by FreeBSD 佐藤 淳一
junichi@configure.sh