IP Masquerade で Balthazer 経由で Casper をお外に出そう!
2001.03くらい

新しく買った牛君のモデムがどうやっても Linux で使えない。
っていうか、認識してくれない。
たぶん、これがよく言われているソフトウエアモデム問題なのだろう。
プレインストールされていた WinMe では問題なく使えるのが腹だたしい。
シリアルじゃなくて PCI 接続って時点で気が付くべきだった。
で、しょうがないので balthazer(VAIO) 経由でお外にでる事にした。
それには ip-masquerade を使う必要がある、と何かの本に書いてあった。
でも ip-masq なんて必要無いと思っていたからなーーんも知らない。
ナツメ社 スタークラスター著の Linux ネットワーク入門を立ち読み、参考になると思って即購入。
RunRun のネットワークも見た(立ち読み)けどネットワークカードの2枚挿しについての記述だったと思う。
オイラの環境ではノート内蔵モデムで外に出て、PCカードでLANにする事になるので、良く分からなかった。
  (01/04/03 今考えれば原理は同じだから RunRun も十分参考になったはずなんだけどね)

まず、balthazer (ホスト、モデムの使える方)の設定
カーネルオプションの設定。  vine linux ver 2.2.14-1vl6
# make menuconfig で項目を確認、必要ならチェックを入れる。
下が、今の(設定後の)状態。
[Code Maturity level options]
 [*]Prompt for development and/or incomplete code/drivers
[Loadable modules support]
 [*]Enable loadable module support
 [*]kernel module loader
[Networking options]
 [*]Network firewalls
 [*]TCP/IP networking
    IP:forwarding/gatewaying  (項目が出て来なかった)
 [*]IP:firewalling
    IP:always defragment  (項目が出て来なかった)
 [*]IP:masquerading
 [*]IP:ICMP masquerading
 [*]IP:masquerading special modules support
 <M>IP:ipautofw masq support(EXPERIMENTAL)
 <M>IP:ipportfw masq support(EXPERIMENTAL)
 <M>IP:ip fwmark masq-forwarding support
 [ ]IP:optimize as router not host
(参考にした本にはチェックが入っていたけど、入れ忘れたみたい。問題なく動いているからいじるのやめた)
 [*]IP:TCP syncookie supoort
[Network device support]
 <M>Dummy net driver supoort
これを確認、チェックした後に、
# make dep; make clean
# make bzImage
# make modules
# make modules_install
# /sbin/installkernel VER arch/i386/boot/bzImage System.map
をする必要があるけど Vine は始めからこの状態になっていたので何もする必要が無かった。
さすが。

モジュールの組み込み。
/sbin/depmod -a
/sbin/modprobe ip_masq_ftp.o
/sbin/modprobe ip_masq_raudio.o
/sbin/modprobe ip_masq_irc.o
なーんのメッセージも無し。
うまくいったのでしょう。
便りの無いのは良い便り、ということにして起動スクリプトに /etc/rc.local に上の内容を追加した。
これでカーネルの設定は終了。

次にIPフォワードの設定を行う。
最前提として、LANが設定されていないといけない。
で、この設定をちょこっといじることでIP-masqが出来るようになる。
/etc/sysconfig/network の設定。
# cat /etc/sysconfig/network
  NETWORKING=yes
  FORWARD_IPV4=true  <-追加
      これで/proc/sys/net/ipv4/ip_forwardの内容が0から1になる。
  HOSTNAME=balthazer.libra.co.jp
  GATEWAY=
  GATEWAYDEV=

ipchains の設定。
  /sbin/ipchains -P forward DENY
  /sbin/ipchains -A forward -s 192.168.1.0/24 -j MASQ
基本ポリシーは全て否定( -P forward DENY )して、
追加内容( -A )として、マスカレードで( -j MASQ )、
LANからのみ転送する( -s 192.168.1.0/24 )  と言う意味。
/etc/rc.d/rc.local にこの2行を追加。
これでホストの設定は終了。

肝心のcasper(クライアント)の設定。
まず、LANの設定がしてあることが前提。
ホストと同じくこの設定をいじることになる。
/etc/sysconfig/network
古い内容
  NETWORKING=yes
  HOSTNAME=casper
をこうする。
  NETWORKING=yes
  FORWARD_IPV4=false    <- 追加。
  HOSTNAME=casper.libra.co.jp  <- 修正。
  DOMAINNAME=rim.or.jp  <- 追加。
  GATEWAY=192.168.1.2   <- 追加 IP-masqが動作しているホストのip address。
  GATEWAYDEV=eth0       <- 追加 IP-masqの接続方法を記述。
あとは
 /etc/sysconfig/network-script/ifcfg-eth0
をチョコっと修正するだけなんだけど、そのやり方を忘れたので ifcfg-eth0の内容を下記に示す。
DEVICE=eth0
BOOTPROTO=none
IPADDR=192.168.1.3
NETMASK=255.255.255.0
HOSTNAME=casper.libra.co.jp
DOMAIN=libra.co.jp
ONBOOT=yes
IPXNETNUM_802_2=""
IPXPRIMARY_802_2="no"
IPXACTIVE_802_2="no"
IPXNETNUM_802_3=""
IPXPRIMARY_802_3="no"
IPXACTIVE_802_3="no"
IPXNETNUM_ETHERII=""
IPXPRIMARY_ETHERII="no"
IPXACTIVE_ETHERII="no"
IPXNETNUM_SNAP=""
IPXPRIMARY_SNAP="no"
IPXACTIVE_SNAP="no"
BROADCAST=
NETWORK=
USERCTL=no
コントロールパネルを使って設定したと思うけどこの内容をそのままペーストしても行けると思う。
とにかく、今はこの内容でマスカレード出来ている。

ちゃんとマスカレード出来ているかの確認をpingを使ってしましょう。
on balthazer
 $ ping casper
on casper
 $ ping balthazer
LAN接続を確認したら、balthazerからダイアルアップ接続して、
on balthazer
 $ ping 202.247.130.5  <- リムネット
on casper
 $ ping 202.247.130.5  <- これが通ればO.K.

そ、れ、と、ここまで書いていていながらLAN設定のやり方をすっかり忘れている自分に気が付いた。
これをしておかないと、ip masquerade は出来ません。
 たぶん、Window Maker の「ルートメニュー」-「管理ツール」-「コントロールパネル」-
 「Network configuration」を開く。
これは、ktermからルートで
 # /usr/bin/control-panel
とするのと同じ。
で、
「名前」-「ホスト名」 casper.libra.co.jp
「名前」-「ドメイン」 libra.co.jp
「ホスト」
   「IP」        「名前」                 「ニックネーム」
    127.0.0.1    localhost.localdomain  localhost
    192.168.1.3  casper.libra.co.jp     casper
    192.168.1.1  melchior.libra.co.jp   melchior
    192.168.1.2  balthazer.libra.co.jp  balthazer
「インターフェース」
   「インターフェース」「IP」         「プロトコル」「ブート時」「活動状態」
    eth0           192.168.1.3   none       yes 停止中
の各項目を入れて行って最後に「インターフェース」の活動させるをチェックして「活動状態」を「活動中」
にした。ような気がする。
この操作で
/etc/sysconfig/network-scripts/ifcfg-eth0
が作成されるはず。


戻る