こんにちは、opensourcetechの鯨井貴博です
久々にLinuxルータを作って、ちょっとハマったので備忘録を残しておこうと思います。
作成するのは、以下の構成中のLinuxルータです。
なお、ディストリビューションはCentOS6を使ってます。
⓪ネットワーク構成
①Linux(CentOS)でルーティング(パケット転送)を有効化
恒久的な有効化
・/etc/sysctl.conf内のnet.ipv4.ip_forwardを1に変更し、
Linuxを再起動します。
[root@localhost ~]# vi /etc/sysctl.conf
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
# sysctl.conf(5) for more details.
#
# Use '/sbin/sysctl -a' to list all possible parameters.
# Controls IP packet forwarding
net.ipv4.ip_forward = 1
[root@localhost ~]# reboot
一時的な有効化
・/proc/sys/net/ipv4/ip_forwardの値を0から1に変更します。
0
[root@localhost ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
[root@localhost ~]# cat /proc/sys/net/ipv4/ip_forward
1
②必要なスタティックルーティングを追加
[root@localhost ~]# route add -net 192.168.12.0/24 gw 10.1.1.2
[root@localhost ~]# route add -net 192.168.13.0/24 gw 10.1.1.3
[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.13.0 10.1.1.3 255.255.255.0 UG 0 0 0 eth0
192.168.12.0 10.1.1.2 255.255.255.0 UG 0 0 0 eth0
192.168.11.0 10.1.1.1 255.255.255.0 UG 0 0 0 eth0
10.1.1.0 * 255.255.255.0 U 1 0 0 eth0
192.168.1.0 * 255.255.255.0 U 1 0 0 eth1
設定自体は対したことはないのですが、
ip_forwardの変更は忘れがちですので注意が必要です。
③NATを実施
これは必須ではないですが、
Linuxルータより上位のルータへルーティングなどを追加できないケースでは、
NATがないと「192.168.11-13.0/24ってどこよ?」となり、
通信が成立しません。