NAT マシンの IP アドレスの変更
NAT を行うゲートウェイサーバの内部ネットワークのアドレスを変更するときの作業項目をまとめる. ここでは,内部ネットワークを 192.168.0.0/24 から 192.168.33.0/24 へ変更し,ゲートウェイの内部側アドレスを 192.168.33.1,内部ドメイン名を local.www.kkaneko.jp とする場合を例とする.
ゲートウェイサーバの設定
内部側インタフェースのアドレス変更
- /etc/rc.conf の変更
内部側インタフェースの IP アドレスを 192.168.33.1 に変更する. また,パケット転送を有効にするために
gateway_enable="YES"が設定されていることを確認する. 設定例は次の通り(em0の部分は,実際のインタフェース名に置き換える).ifconfig_em0="inet 192.168.33.1 netmask 255.255.255.0" gateway_enable="YES" - /etc/hosts の変更
自ホストおよび内部ホストのアドレスを 192.168.33.x に変更する.
- /etc/resolv.conf の変更
内部ドメイン名 (local.www.kkaneko.jp) と,参照する DNS サーバのアドレスを設定する.
- 設定の反映
設定ファイルの変更後,次のコマンドを実行してネットワーク設定を反映する.
service netif restart service routing restart
DNS サーバの設定
BIND は FreeBSD の基本システムには含まれておらず,ports/packages (dns/bind9xx) からインストールする. 設定ファイルは /usr/local/etc/namedb/ 以下に置かれる.
- /usr/local/etc/namedb/named.conf の変更
正引きゾーン (local.www.kkaneko.jp) と,逆引きゾーン (33.168.192.in-addr.arpa) の定義を変更する.
- ゾーンファイルの変更
正引きゾーンファイルの A レコードを 192.168.33.x に変更する. 逆引きゾーンファイルは,新しいネットワークアドレスに合わせて作成し直す. どちらのファイルでも,シリアル番号を増加させる.
- 設定の反映
ゾーンファイルの変更後,次のコマンドを実行して設定を再読み込みする.
named-checkconf rndc reload
NAT とパケットフィルタの設定
現在の FreeBSD で標準的に使われるパケットフィルタは pf である.
NAT の設定は /etc/pf.conf に書く.
設定例は次の通り(em1 の部分は,外部側インタフェース名に置き換える).
ext_if = "em1"
int_net = "192.168.33.0/24"
nat on $ext_if from $int_net to any -> ($ext_if)
フィルタルールの中に内部ネットワークのアドレスを直接書いている箇所があれば,192.168.0.0/24 を 192.168.33.0/24 に変更する. 設定の確認と反映は,次のコマンドを実行して行う.
pfctl -nf /etc/pf.conf
pfctl -f /etc/pf.conf
pf を起動時に有効にするには,次のコマンドを実行する.
sysrc pf_enable="YES"
sysrc gateway_enable="YES"
ipfw を使用している場合は,ルールファイル (例: /etc/ipfw.rules) 中の 192.168.0 を 192.168.33 に変更する. ipfilter を使用している場合は,/etc/ipnat.conf 中の 192.168.0 を 192.168.33 に変更し,次のコマンドを実行して反映する.
ipnat -CF -f /etc/ipnat.conf
DHCP サーバの設定
ISC DHCP は開発が終了しており,後継の Kea DHCP (net/kea) が推奨される. Kea の設定ファイルは /usr/local/etc/kea/kea-dhcp4.conf である. サブネット,アドレスプール,デフォルトゲートウェイ (routers),DNS サーバの各項目を,新しいネットワークアドレスに変更する. 設定例は次の通り.
"subnet4": [
{
"id": 1,
"subnet": "192.168.33.0/24",
"pools": [ { "pool": "192.168.33.100 - 192.168.33.200" } ],
"option-data": [
{ "name": "routers", "data": "192.168.33.1" },
{ "name": "domain-name-servers", "data": "192.168.33.1" },
{ "name": "domain-name", "data": "local.www.kkaneko.jp" }
]
}
]
設定の反映は,次のコマンドを実行して行う.
service kea restart
ISC DHCP (net/isc-dhcp44-server) を使用している場合は,/usr/local/etc/dhcpd.conf 中の 192.168.0 を 192.168.33 に変更し,次のコマンドを実行して反映する.
service isc-dhcpd restart
自動マウント (autofs) のマップファイルの更新
FreeBSD の自動マウントは autofs で行う (amd は廃止された).
- /etc/auto_master と,そこから参照されるマップファイル中の,サーバ名およびアドレスの記述を変更する.
- マウントポイントの名前は,サーバの構成変更時に設定変更が少なくて済むよう,統一した命名にしておく.
- マップファイルの変更後,次のコマンドを実行して反映する.
automount -c service automountd restart
NIS のマップの更新
NIS を使用している場合は,NIS マスタ上の /etc/hosts のうち,アドレスを変更したホストの記述を書き換え,次のコマンドを実行してマップを再構築する.
cd /var/yp
make
クライアント側の設定変更
FreeBSD のクライアント
- /etc/rc.conf の変更
IP アドレスを 192.168.33.x に,デフォルトゲートウェイを 192.168.33.1 に変更する. 設定例は次の通り(
em0の部分は,実際のインタフェース名に置き換える).ifconfig_em0="inet 192.168.33.101 netmask 255.255.255.0" defaultrouter="192.168.33.1" - /etc/hosts の変更
自ホストおよび参照するホストのアドレスを 192.168.33.x に変更する.
- /etc/resolv.conf の変更
内部ドメイン名 (local.www.kkaneko.jp) と,DNS サーバのアドレス (192.168.33.1) を設定する.
- 設定の反映
設定ファイルの変更後,次のコマンドを実行してネットワーク設定を反映する.
service netif restart service routing restart
NFS クライアントの設定
- /etc/hosts 中のサーバのアドレスを変更する.
- /etc/fstab あるいは autofs のマップファイル中の,NFS サーバ名およびマウントポイントの記述を変更する.
- 変更後,次のコマンドを実行して自動マウントの設定を反映する.
automount -c
確認
設定変更後,次のコマンドを実行して,アドレス,経路,名前解決,NAT の動作を確認する.
ifconfig
netstat -rn
host www.kkaneko.jp
pfctl -s nat