如何通过一个公网固定IP访问内网2台以上的服务器

这是我遇到的实际案例的延伸想法,情况和需求如下:
1、企业有三处分支机构,服务器架设在总部机房,两台服务器,一台提供普通WEB服务,一台处WEB服务之外,还有其他服务需要其他端口访问,这里假设为FTP的21端口。
2、两台服务器均假设在总部内网,只有内网IP地址。
3、总部及分支机构均连接Internet,且各自只有一个公网固定IP(是固定IP),电脑、服务器等均位于各自内网内,配置内网IP
4、需要通过分支机构对两台服务器所有服务进行访问,即第一台服务器的80端口,第二台服务器的80端口和21端口
5、不需要用域名访问
6、总部路由器是企业级路由器

请问如果只通过总部路由器的NAT设置,能实现外网访问内网2台或2台以上的服务器吗?因为对NAT不甚了解,是否可以实现这种访问方式:总部公网IP:218.230.1.18,我通过NAT映射,在外网计算机,通过218.230.1.18:6000端口访问第一台服务器的80端口,218.230.1.18:6010访问第二台服务器的80端口,218.230.1.18:6021访问第二台服务器的21端口

如图中所示,R1和R2模拟成两台服务器并且提供相同的服务(地址分别为172.16.1.1 ,172.16.1.2),R3是交换机,R4是边界路由器也就是内部服务器的网关所在路由器(内网口地址为172.16.1.254 ),R5充当公网并且有环回口5.5.5.5,在R4上的E0/0(地址为222.222.222.1) 接口开启PAT,使得内网服务器可以访问外网R5的 5.5.5.5
如图:

这时就进入关键性阶段了,1:写一条ACL来匹配公网路由,access-list 2 permit 222.222.222.1
2:定义一个以内部服务器为地址的池:ip nat pool ccna 172.16.1.1 172.16.1.2 netmask 255.255.255.0 type rotary (最后这两个一定要有意思就是让这些地址轮循)
3:将ACL跟地址池关连起来:ip nat inside destination (注意这个不是source) list 2 pool ccna

最后就是在R1,R2的line vty 0 4 下打no login 允许外网的登陆。
这时可以检验结果了,,在R5上telnet 222.222.222.1 可以发现第一次时进入R1,第二次就进入R2了,

这 样就达到了两个服务器的负载均衡了。。当然这种情况是在多个服务器提供相同的服务的前提下才好用。

但是对于内部有多台服务器要同时开放一个相同的端口但是又只有一个公网IP时该怎么办呢?

图中标出了拓扑的详细结构,服务器地址分别为172.16.1.2 和172.16.1.3 ,网关为172.16.1.1 ,然后同样的跟上边一个实验一样,在边界路由器做基于接口的PAT转换,使得服务器可以访问公网,然后我们就开始在边界路由器上配置端口跟ip地址的映射,通常情况下我们都认为映射是这样写: ip nat inside source static tcp 172.16.1.2 80 222.222.222.1 80 然后会发现下一台服务器没法再做相同端口的映射了,,因此我们就必需改变上面的命令来使得另一台服务器也可以基于80端口的映射:这进命令就可以改成:ip nat inside source static tcp 172.16.1.2 80 222.222.222.1 100 与
ip nat inside source static tcp 172.16.1.3 80 222.222.222.1 101 这样的两条映射。。那么这样写的映射是否真的可行呢?那就让我们一起来检验下成果,首先必需在两台服务器上面的HTTP上面写上一些内容以做为区分。。

最后就是在最右边的PC上边打开WEB页面,输入地址:222.222.222.1:100 就会看到这个现象,,

说明我们己经可以访问内部的一台服务器了。

然后再输入:222.222.222.1:101 可以看到有

仔细看地址下面的字母两次登陆时结果是不一样的。。。这就说明我们可以利用这一个公网IP来映射多个内网的服务器了。。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-12-16
其实你自己都把解决方案说出来了,只差实践。你的理论是成立的,因为仅有一个外网固定IP。有一个以上的服务,则需要通过端口映射来达到。本回答被提问者和网友采纳
第2个回答  2014-11-20
可以的。只要楼主的路由器配置好相关策略就可以。
第3个回答  2014-11-20
通过端口映射就可以了啊
相似回答