Mac OS XでNATの動作を行うには、まず、/etc/hostconfigというファイルを修正する。そのファイルにある「IPFORWARDING=-NO-」を「IPFORWARDING=-YES-」に変更する。そして、再起動する。この設定により起動スクリプトにあるNetworkにおいて「sysctl -w net.inet.ip.forwarding=1」というコマンドが実行される。これはカーネルの設定を行うコマンドであり、もちろん、手でコマンド入力してもいいのだが、hostconfigで設定をして、再起動するという手軽な手段が用意されているので、それを利用しよう。ところで、/etc/hostconfigの編集だが、viやpicoといったTerminal内で使うエディタが得意な人はそちらを使うとして、どうしてもそれは大変という場合には、以下のコマンドを入力して、管理者パスワードを入力すると、TextEditで編集や保存が可能になる。
sudo open -a /Applications/TextEdit.app /etc/hostconfig
ところでnatdのマニュアルを読むと、カーネルの再コンパイルなどと書いてある箇所があり、いきなりびっくりするが、そこでの要件をみたしてMac OS Xのカーネルはコンパイルされているようである。また、/etc/servicesに追加するという設定も、最初から行われている。他にも設定を加えることなどが書いてあるが、それらは行わなくても機能している。つまり、マニュアルに書かれていることはすべてを行う必要はなく、上記のことだけを行えばよいようだ。インターネットでnatdについての説明を検索すると、いろいろ見つかるのだが、比較的古いFreeBSDをベースにした話が多く、やはりそれらでも再コンパイルなどの話から入っている。参考にはもちろんなる場合もあるのだが、Mac OS Xで必要なことと不要なことを見極めないといけないだろう。もっともそれが最初から分かっていれば苦労はしないぞということになるけども…。
さて、こうしたコマンドをいちいち起動するたびに入力するなんてやってられないと思うところだろう。もちろん、起動スクリプトを作るというのが筋ではあるが、もうすぐMac OS X 10.1が出てくる。もしかしたら、チェックボックス1つでNATが実現できるようになっているかもしれないし、マルチホーミングだって同様だ。とりあえずは様子を見てから作る…ということでお許しいただきたい。