Fedora Linuxサーバーをルーターにする

QMACloneが夜間に重くなる原因を調査しているのだが、ネットワークに詳しい人に聞いたところ、Corega製の安物ルーターのせいではないかとアドバイスを頂いた。そこで、YAMAHANTT-ME製のルーターに買い換えようと思ったのだが、近くのPCショップには置いていなかった。仕方なく、LinuxサーバーにNICを2枚差してルーターにすることにした。設定方法を備忘録として書いておく。

Linuxサーバーに追加した設定は以下の通り。

  • PPPoEを用いてネットに繋ぐ
  • 新しく差したNICにstaticなIPを割り当てる
  • DHCPサーバーを立ち上げる
  • LANの内側からWANに繋がるようにする

PPPoEを用いてネットに繋ぐ

"rp-pppoe"というパッケージをインストールすると"pppoe-*"というコマンドが使えるようになる。このうち"pppoe-setup"というコマンドで、PPPoEの設定ができる。"pppoe-start"でPPPoE接続を開始、"pppoe-stop"で切断。
WAN側のNICの設定ファイル"/etc/sysconfig/network-scripts/ifcfg-*"は以下のようにしておくと、起動時にDHCPクライアントがタイムアウトするのを待たずに済むようになるらしい。

DEVICE="(インターフェース名)"
ONBOOT="yes"

新しく差したNICを立ち上げる

Fedora15からはNICのインターフェース名の命名規則が変わったため、若干分かりにくい。"ifconfig -a"でインタフェース名が確認できるのでメモ。"/etc/sysconfig/network-scripts/ifcfg-*"を以下のように設定する。

DEVICE="(インターフェース名)"
ONBOOT="yes"
BOOTPROTO="static"
TYPE="Ethernet"
IPADDR="192.168.0.1"
NETMASK="255.255.255.0"
NETADDR="192.168.0.0"
BROADCAST="192.168.0.255"
PEERDNS="no"

"sudo /etc/init.d/network restart"して設定を反映させる。

DHCPサーバーを立ち上げる

DHCPサーバーをインストールする。

$ sudo yum install dhcp

設定ファイル"sudoedit /etc/dhcp/dhcpd.conf"の内容は以下の通り。

subnet 192.168.0.0 netmask 255.255.255.0 {
       option routers      192.168.0.1;
       option subnet-mask  255.255.255.0;
       option domain-name-servers       143.90.130.39, 143.90.130.165, 8.8.8.8, 8.8.4.4;
       range  dynamic-bootp     192.168.0.128   192.168.0.191;
       default-lease-time       21600;
       max-lease-time           43200;
}

DNSサーバーを立ち上げるのが面倒だったため、ISPDNSサーバーを直書きしてしまった。後半二つはGoogleが提供しているDNS
起動時に起動するようにする。

$ sudo systemctl enable dhcpd.service

LANの内側からWANに繋がるようにする

iptablesIPマスカレードを行う。設定はwebmin経由が楽。以下のコマンドを打っておく。

echo "1" > /proc/sys/net/ipv4/ip_forward

127.0.0.1にアクセスできなくなった場合はiptablesを再起動してみる。

参考リンク