フレッツ光プレミアム (NTT 西日本) で固定 IP アドレスが 4 つもらえるプロバイダを契約し,CentOS 5.6 による Linux ルータで PPPoE して使う方法のメモ。 本当は /29 をもらって unnumbered したかったのだが,予算の都合で 4 個になった。
今回の場合,unnumbered すると,ネットワークアドレスとブロードキャストアドレスで 2 つ消費されて残りの 2 つしか使えなくなってしまう。そこで,LAN 型接続という方法で接続し,NAT によりアドレス変換を行なう。
あらかじめ CTU の PPPoE ブリッジ機能 (デフォルトでは無効) を有効にし,adsl-setup コマンド等で PPPoE の接続設定を済ませておく。
仮想ブリッジと仮想 NIC を使えるようにする。
# yum install -y bridge-utils
# rpm -ivh tunctl-1.5-2.el5.x86_64.rpm
仮想ブリッジ (br0) を設定する。
# cd /etc/sysconfig/network-script/
# cp ifcfg-eth0 ifcfg-br0
# vi ifcfg-br0
DEVICE=br0
TYPE=Bridge # (Bは大文字)
#HWADDR=XX:XX:XX:XX:XX:XX
:
# vi ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
BRIDGE=br0
:
# /etc/init.d/network restart
PPPoE 用の仮想 NIC (例: ppp0) が使用する NIC を br0 に変更する。
# ifcfg-ppp0
:
ETH=br0
:
仮想 NIC を設定するシェルスクリプトを作成する。 (ISP から割り当てられたアドレスを XXX.XXX.XXX.A-D とする)
# vi ~/tap.sh
#/bin/sh
tunctl -t tap0
tunctl -t tap1
tunctl -t tap2
brctl addif br0 tap0
brctl addif br0 tap1
brctl addif br0 tap2
ifcfg tap0 XXX.XXX.XXX.B NETMASK 255.255.255.0
ifcfg tap1 XXX.XXX.XXX.C NETMASK 255.255.255.0
ifcfg tap2 XXX.XXX.XXX.D NETMASK 255.255.255.0
サブネットマスクを /30 にすると A と D が使えなくなってしまうので,/24 としている。
# sh tap.sh
以上の手順により,Linux ルータで 4 つの固定グローバル IP アドレスを使用できるようになった。あとは LAN 内のサーバ等に対して,NAT によりアドレスを割り当てれば良い。
コメント