Deprecated : The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
NAT(IP Masquerade) router for HOME Local Area Network(LAN) (in Japanese)
ip filter を用いた FreeBSD での NAT(IP Masquerade) について
--プライベートな家庭内 LAN を CATV を使って Internet--
[your access is
(since 1997/June/16)]
( last updated 1998/August/6 )
目次
What's new!!
August 6, 1998
現在は, 東急ケーブルテレビで同様な方法を実験しています.
IP_Filter の 3.2.9 を用いています.
nat スクリプトを update しました.
FreeBSD-2.2 系の ftp コマンドの仕様変更に対応
March 28, 1998
現在は, CATV の利用規定のため, NAT の利用は止めています.
このページは, 技術的な例として残してあります.
nat スクリプトを update しました.
ある条件では無限に dhcpc を起動する bug
www.towntv.co.jp から www.seaple.icc.ne.jp へ
Oct 3, 1997
Aug 7, 1997
IP Filter 3.2beta2 が公開されました.
APOP の説明を追加(別ページで)
July 20, 1997
Web page 自動更新プログラム nat に bug がありました。
修正したのを起きました。
IP Filter の ipnat.conf を修正。Private LAN から ping ができるように
した。(bimap のサンプルも追加)
June 25, 1997
IP Masquerade の typo を fix
June 21, 1997
写真を追加
wide dhcp の設定ファイルを追加
IP Filter 3.2a9 が公開される(でもつかっているのはまだ 3.2a8)
June 11, 1997
大幅な書き直し
router の OS を 2.2-970422-RELENG に変更
IP Filter 3.2a7 を使う(ipnat.conf の記述が楽だから)
IP FIlter 関連の設定 shell script を作り直しました.
January 13, 1997
RealAudio と StreamWorks の話
January 10, 1997
IP Filter 3.1.3 が release された
IP Filter 3.1.4 が release された
新しい nat 設定 perl スクリプトを公開
3.1.2 での問題(多分 ipnat -l をすると reboot しやすい)が
3.1.4 で解決した模様. 現在は安定運用中
December 30, 1996
December 15, 1996
ネットワーク構成図
{dhcp server}
^
\
\ UP-link 768Kbps (shared)
\ Down-link 30Mbps(shared)
\保安器 ---------------------- TV へ
\引き込み部
\
/-----------\
|Cable Modem |
\-----------/
| 10BASE-T +-------------------+
+----------------|FreeBSD NAT |
| router machine |
+-------------------+
| [192.168.3.1]
|10BASE-T
|
/-------\ Private Address
| | [192.168.3.0/24]
\-------/
| | 10BASE-T
| | テーブルの下の情報コンセント(松下製)
| |
PC PC
上記のように FreeBSD を用いた NAT(IP Masquerade) router を設置する事に
より, CATV からは 1 台分しかもらいない IP アドレスを家庭内の複数台の
Win95 や PC-UNIX で共有利用することが出来ました.
RFC などによると正しくは, NAT と IP Masquerade は別のものです. しか
し, 本ページでは, NAT には IP masquerade を含まれていると解釈して,
NAT という言葉を使っています. (IP masquerade までできる IP Filter の
コマンド名が ipnat だったりするので^^;)
基本的に配布されている IP_Filter のパッケージ
内の INST.FreeBSD-2.2 の通りに作業すれば, IP Filter に対応したカーネ
ル, if_ipl.o(modload 用モジュール), ipnat(ipnat の設定をするプログラム)
をつくり出せます. 不明な点があればお手伝いできるかも知れません.
ちなみに, Full Tower の古い機械を「おうちるーた」に使っている関係で,
夜や自宅に私が居ない時は, 電源を切っています. 上記の「FreeBSD NAT」から
リンクが張られている自宅の Web Page に繋がらない事もあります. 御了承くだ
さい. (CATV の実験期間終了のため, 現在は Web Server を止めています)
NAT の設定
nat.sh
/usr/local/etc/rc.d/nat.sh に置いて,
NAT router 起動時に次の処理をしています.
IP_Filter の module を load (modload)
Private LAN 側の Ethernet Interface の設定(ifconfig)
Private LAN 用の DHCP Server の起動(dhcps)
CATV 側の Ethernet Interface の DHCP client の起動(dhcpc)
IP_Filter の NAT の設定(ipnat)
DHCP で配布された CATV 側の IP アドレスを WWW で自動公開
更新するプログラム (nat) の起動
nat
DHCP で配布された CATV 側の IP アドレスを WWW で
自動公開更新するプログラムです.
/etc/sysconfig
/etc/sysconfig 内では, gateway="YES" としています.
ipnat.conf
nat.sh で使われる IP_Filter の NAT の設定ファイルです.
/etc/dhcpdb.pool
WIDE dhcp の dhcp サーバ(dhcps)用 設定ファイル その 1
/etc/dhcpdb.relay
WIDE dhcp の dhcp サーバ(dhcps)用 設定ファイル その 2
アプリケーション編
S/KEY の install (telnet/rlogin)
ssh
APOP for mail
ncftp2
anonymous ftp server の立ち上げ
Real Audio
StreamWorks
TCP_Wrappers
o telnet/rlogin
利用するマシンへの S/KEY の install
o ssh (通信内容を暗号化できる telnet/rlogin プログラム)
Private LAN から ssh すると, ある理由でコネクションが切れる
そこで, 次のオプションで実行し, Private LAN 側は socket 番号を
静的にする.
ssh -L 2000:2.2.2.2:2000 your_login_hostname
(この記述は誤っていました, 現在はこのような事をせずとも普通に
実現できています)
o APOP
APOP 対応 popper (qpop 2.2)
MH の APOP 対応にコンパイル(FreeBSD-2.2.0-RELEASE 以降の
jp-mh は APOP がデフォルトで対応しています)
詳しい説明
o ncftp2
ncftp のサイト毎の設定で PASV モードで ftp するようにする
$HOME/.ncftp/prefs 内の ftp-mode 1 とする必要があるかも
o in.coming 用に NAT router に anonymous ftp を設定
o RealAudio を プライベート LAN 内で使う
View--> Preferences..
[別 window]
Transport
Select network transports:
-->Change Settings
[別 window]
Network Transport で
Attempt to use TCP for all content. だけを
選択
でうまくなりました. (結局 udp をあきらめて tcp で繋げる)
o StreamWorks (with FreeBSD-2.2 later elf-Linux emulator)
デフォルトの設定で動きました
o tcp_wrappers を用いて, Router マシンには Internet から telnet/rlogin
できないようにした. (ssh だけは許可)
/usr/local/etc/hosts.allow
ALL: 192.168.3.0/255.255.255.0
/usr/local/etc/hosts.deny
ALL EXCEPT sshd: ALL: (/usr/bin/mail -s %d-%h sanpei) &
/etc/inetd.conf の設定
telnet stream tcp nowait root /usr/local/libexec/tcpd telnetd
shell stream tcp nowait root /usr/local/libexec/tcpd rshd
login stream tcp nowait root /usr/local/libexec/tcpd rlogind
Future work
ssh などを使った secure rsh の実現
1 枚の Floppy に NAT 機能 FreeBSD を入れて, HDD 不用な NAT router を
作る
関連ページへのリンク
FreeBSD 用 NAT を実現するプログラム群
Edited by
Yoshiro MIHIRA
<sanpei@yy.cs.keio.ac.jp>
<sanpei@seaple.icc.ne.jp>
<sanpei@jp.freebsd.org>