公司内网与机房内网互通解决方案20130106

公司内网与机房内网互通解决方案20130106
公司内网对外互通采用在公司出口路由器pfsense上做端口映射的方式,本文主要介绍在机房那边的设置方法。
本方案的优点:简单、对用户透明、控制性/扩展性强、零成本(节约机房公网ip、硬件资源)、不改变现有网络结构,可以完美解决公司内网与机房内网互通问题。
本方案的缺点:需要用户记住对应关系。

公司出口IP:1.65.148.6

0、查看NAT主机的信息
[root@60 ~]# ifconfig
eth0Link encap:EthernetHWaddr D4:AE:52:9A:A1:E0
inet addr:172.16.1.60Bcast:172.16.1.255Mask:255.255.255.0
inet6 addr: fe80::d6ae:52ff:fe9a:a1e0/64 Scope:Link
UP BROADCAST RUNNING MULTICASTMTU:1500Metric:1
RX packets:1014369055 errors:0 dropped:0 overruns:0 frame:0
TX packets:730213487 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:89201576538 (83.0 GiB)TX bytes:167848900868 (156.3 GiB)
Interrupt:82 Memory:da000000-da012800
eth1Link encap:EthernetHWaddr D4:AE:52:9A:A1:E1
inet addr:2.2.2.108Bcast:2.2.2.127Mask:255.255.255.224
inet6 addr: fe80::d6ae:52ff:fe9a:a1e1/64 Scope:Link
UP BROADCAST RUNNING MULTICASTMTU:1500Metric:1
RX packets:589962437 errors:0 dropped:250980 overruns:0 frame:0
TX packets:416034185 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:85820919214 (79.9 GiB)TX bytes:71968638871 (67.0 GiB)
Interrupt:90 Memory:dc000000-dc012800
[root@60 ~]# iptables -L -n -t nat
Chain PREROUTING (policy ACCEPT)
targetprot opt sourcedestination
DNATtcp--0.0.0.0/02.2.2.108tcp dpt:3361 to:172.16.1.61:3306
DNATtcp--0.0.0.0/02.2.2.108tcp dpt:3364 to:172.16.1.64:3306
Chain POSTROUTING (policy ACCEPT)
targetprot opt sourcedestination
MASQUERADEall--172.16.1.610.0.0.0/0
MASQUERADEall--172.16.1.630.0.0.0/0
MASQUERADEall--172.16.1.640.0.0.0/0
MASQUERADEall--172.16.1.560.0.0.0/0
Chain OUTPUT (policy ACCEPT)
targetprot opt sourcedestination

1、开启ip转发
[root@60 ~]# echo "1" >/proc/sys/net/ipv4/ip_forward
【公司内网与机房内网互通解决方案20130106】或者写入配置文件(推荐)
[root@60 ~]# vim /etc/sysctl.conf
# Controls IP packet forwarding
net.ipv4.ip_forward = 1
2、代理内网指定服务器访问互联网
[root@60 ~]# iptables -t nat -A POSTROUTING -o eth1 -s 172.16.1.61/32 -j MASQUERADE
[root@60 ~]# iptables -t nat -A POSTROUTING -o eth1 -s 172.16.1.63/32 -j MASQUERADE
[root@60 ~]# iptables -t nat -A POSTROUTING -o eth1 -s 172.16.1.64/32 -j MASQUERADE
[root@60 ~]# iptables -t nat -A POSTROUTING -o eth1 -s 172.16.1.56/32 -j MASQUERADE
3、内网需要访问互联网的指定服务器设置默认网关为172.16.1.60
[root@mongo25 ~]# more /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=mongo25
GATEWAY=172.16.1.60
在内网指定服务器172.16.1.56测试:
# ping 8.8.8.8

4、端口映射,对外网开放内部服务器的指定端口
允许公司187访问61和64的3306端口
[root@60 ~]# iptables -t nat -A PREROUTING -p tcp -d 2.2.2.108 --dport 7961 -j DNAT --to 172.16.1.61:6379
[root@60 ~]# iptables -t nat -A PREROUTING -p tcp -d 2.2.2.108 --dport 3361 -j DNAT --to 172.16.1.61:3306
[root@60 ~]# iptables -t nat -A PREROUTING -p tcp -d 2.2.2.108 --dport 3364 -j DNAT --to 172.16.1.64:3306
route add default gw 172.16.1.60

在公司内网服务器测试
[root@vm ~]# mysql -uroot -p -h2.2.2.108 -P3361

5、将以上步骤放到开机启动脚本里
[root@60 ~]# more /usr/local/sbin/fw.sh
#!/bin/bash
# Stop iptables service first
service iptables stop

#代理内网指定服务器访问互联网
/sbin/iptables -t nat -A POSTROUTING -o eth1 -s 172.16.1.61/32 -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -o eth1 -s 172.16.1.63/32 -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -o eth1 -s 172.16.1.64/32 -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -o eth1 -s 172.16.1.56/32 -j MASQUERADE
#3端口映射对外网开放内部服务器的指定端口
#允许公司187访问61和64的3306端口
/sbin/iptables -t nat -A PREROUTING -p tcp -d 2.2.2.108 --dport 3361 -j DNAT --to 172.16.1.61:3306
/sbin/iptables -t nat -A PREROUTING -p tcp -d 2.2.2.108 --dport 3364 -j DNAT --to 172.16.1.64:3306

    推荐阅读