IPFilterのNATを使う
2002/6/1
これまでpppにNATオプションをつけてNATを動かしていたのですが、NATテーブルやステータス状態がわからないのでIPFilterのNAT機能を使うことにしました。
#ひょっとしたらpppでNATをかけても状態を確認できたのかもしれませんが・・
変更するファイルは3つです。
| ・/etc/ipnat.rules #NATのルールを定義 ・/etc/ppp/ppp.conf #pppのNATを無効にする ・/etc/rc.conf #起動時にpppのNATを無効にし、ipnatを有効にする |
<ipnat.rules>
<ppp.conf>
# tun0 に対して192.168.1.0/24をグローバルアドレスxxx.xxx.xxx.xxx/32に変換
# /24と/32ではアドレスが足りないので最初の行でポートの再マッピング有効
map tun0 192.168.1.0/24 -> xxx.xxx.xxx.xxx/32 portmap tcp/udp auto
map tun0 192.168.1.0/24 -> xxx.xxx.xxx.xxx/32
<rc.conf>
# pppのNATを無効にします
# auth関連は省略しています。
default:
set device PPPoE:xl0
set MRU 1454
set MTU 1454
set speed sync
set log Phase tun command
set ifaddr xxx.xxx.xxx.xxx/32 10.0.0.2/0 255.255.255.255 0.0.0.0
add default HISADDR
nat enable no
accept chap
accept pap
# 起動時にpppのNATが起動しないようにします
gateway_enable="YES"
ipv6_enable="YES"
router_enable="YES"
hostname="loki.yggdrasil.ad.jp"
ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="NO"
ppp_profile="ocn"
うまく動いたかどうかを確認するためにコマンドが用意されています。
ipnat -lを試してみると現在のNATテーブルが表示されます。