ブログ
これまでに経験してきたプロジェクトで気になる技術の情報を紹介していきます。
CentOS6を使ったルーティング
CentOS6を使って外部と接続されたネットワークを踏み台となるサーバを通じてsshでアクセスするための設定。 ただし上位のルータからは踏み台となるサーバにsshのポートがフォワーディングされていることが前提。
eth0 : 192.168.80.39 (上位のGWは 192.168.80.1)
eth1 : 192.168.100.39 (上位のGWは 192.168.100.1)
①ネットワークの確認
[root@gwrt network-scripts]# ifconfig
eth0 Link encap:Ethernet HWaddr 74:27:EA:AA:36:D6
inet addr:192.168.80.39 Bcast:192.168.80.255 Mask:255.255.255.0
inet6 addr: 240b:250:500:4300:7627:eaff:feaa:36d6/64 Scope:Global
inet6 addr: fe80::7627:eaff:feaa:36d6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5904 errors:0 dropped:0 overruns:0 frame:0
TX packets:392 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:387908 (378.8 KiB) TX bytes:46395 (45.3 KiB)
eth1 Link encap:Ethernet HWaddr 00:0D:0B:48:89:07
inet addr:192.168.100.39 Bcast:192.168.100.255 Mask:255.255.255.0
inet6 addr: 240b:250:500:4300:20d:bff:fe48:8907/64 Scope:Global
inet6 addr: fe80::20d:bff:fe48:8907/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8592 errors:0 dropped:0 overruns:0 frame:0
TX packets:46 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1047909 (1023.3 KiB) TX bytes:7069 (6.9 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
②各設定ファイルの内容
・eth0(外部ネットワーク向け)
[root@gwrt munetika]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
IPADDR=192.168.80.39
#GATEWAY=192.168.80.1
PREFIX=24
NAME="System eth0"
・eth1(内部ネットワーク向け)
[root@gwrt munetika]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
#NM_CONTROLLED=yes
#BOOTPROTO=none
IPADDR=192.168.100.39
#GATEWAY=192.168.100.1
PREFIX=24
NAME="System eth1"
・ルーティングをONにする(net.ipv4.ip_forward = 0 を net.ipv4.ip_forward = 1 に)
[root@gwrt munetika]# cat /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@gwrt munetika]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=gwrt.aska-ltd.jp
FORWARD_IPV4=yes
GATEWAYDEV=eth0
GATEWAY=192.168.80.1
・ルーティングの追加(192.168.80.0を流れてくるパケットは eth1 のゲートウェイを経由させて内部に流す)
[root@gwrt munetika]# cat /etc/sysconfig/network-scripts/route-eth1
192.168.80.0/24 via 192.168.100.1
もし、複数のルートを持たせたい場合は以下のように書く
[root@mitakaucom network-scripts]# cat /etc/sysconfig/network-scripts/route-eth1
192.168.109.0/24 via 192.168.0.254
192.168.10.0/24 via 192.168.0.254
③ルーティングの確認
[root@gwrt munetika]# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.80.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
0.0.0.0 192.168.80.1 0.0.0.0 UG 0 0 0 eth0
[root@gwrt munetika]# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.100.0 * 255.255.255.0 U 0 0 0 eth1
192.168.80.0 * 255.255.255.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 0 0 0 eth1
default 192.168.80.1 0.0.0.0 UG 0 0 0 eth0
④外部からsshでログインし、正常にポートフォワーディングされているかどうか確認する
※参考URL http://www.unix-power.net/linux/route.html
2019/6/13追記 CentOS7でも同様にルータ化できます eth0 -> enp0s16f0u1 に eth1 -> enp1s0 に読み替えます。
/etc/sysctl.conf は以下の1行のみが足されることになります net.ipv4.ip_forward = 1
/etc/sysconfig/network-scripts/route-eth1 は etc/sysconfig/network-scripts/route-enp1s0 と読み替えて内容は 192.168.80.0/24 via 192.168.100.1 のままです。
netstat -nr の結果は Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 192.168.80.1 0.0.0.0 UG 0 0 0 enp0s16f0u1 192.168.80.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s16f0u1 192.168.80.0 192.168.100.1 255.255.255.0 UG 0 0 0 enp1s0 192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 enp1s0 となります
コメントはありません。