しかしこの実装は通るプロトコルがそれほど多くなく,あんまり面白くない。 ということで, もっと高機能な NAT を実現した実装系として, junichi 氏による IIJ-PPP 用 NAT パッチがある。これは, FTP, telnet といったのはもちろん, RealAudio とか, Diablo とかにも対応しているという, なかなか素晴らしいものである。 氏に感謝しつつ私もこのパッチを使わせてもらうことにする。
この NAT 機能つき IIJ-PPP を作るには, README にしたがってこのパッチを当ててコンパイルするだけなのだが, ここでトラブってしまった。 リンク時に uucp_* という関数がないといって怒られるのである。 例によってディスクが狭いので, /usr/src.sbin/ppp のディレクトリしか展開しなかったのが原因であろう。FreeBSD のソースツリーのどこかに多分この関数を定義しているところがあるのだろうが, 探すのがめんどくさい。 ということで, この関数を呼んでいる部分をコメントアウトするという, なかなか強引なことをして解決した。 まぁ, 見るからに, UUCP 関係の関数だったので, UUCP なんて多分使わないであろうから, どうでもいいや, ということでこうした (例によって この問題の解決法は FreeBSD FAQ に載っていたのだが…)。
と, 少々強引であったが, IIJ-PPP に高機能な NAT 機能が加わった。 まだ, NIC がないので, NAT 機能のチェックはできないが, とりあえず今までと同じ設定ファイルでダイアルアップできることを確認して, 古い ppp を消した。これで, 一歩近付いた, かな?
NIC をインストール
vnode デバイスを使っでディスクを広くする