赞
踩
1.环境假设:
内网服务器的私网地址为192.168.2.251,将服务器的80端口映射至202.101.1.1的80端口上,并申请域名 www.sina.com,内网PC机的IP地址为192.168.2.2,现在我们在路由器的外网口配置如下命令: sys acl number 2000 rule permit source 192.168.2.0 0.0.0.255 quit int g0/0 //外网口 ip address 202.101.1.1 255.255.255.0 nat server protocol tcp global 202.101.1.1 www indise 192.168.2.251 www nat outbound 2000 quit 2.拓朴图如下:经过以上配置后:
一、外网用户通过域名或者公网IP地址应该可以访问服务器,数据流程如下:
1.外网用户发起到202.101.1.1的TCP 80端口的连接,IP报头结构如下:源IP:外网用户的公网IP,目的IP:202.101.1.1 2.数据经过路由,到企业边源路由器,由于外网口上有端口映射,则数据会匹配映射,将IP报头结构改变成:源IP:外网用户的公网IP,目的IP:192.168.2.251 3.数据经过内网路由,交到服务器,服务器回应用户数据,IP报头结构如下:源IP:192.168.2.251,目的IP:外网用户的IP 4.数据经过边界路由器出公司,由于NAT Server的优先级高于NAT Outbound,所以,数据到达路由器后会先匹配NAT Server记录的会话表项,将IP报头转换成:源IP:202.101.1.1,目的IP:外网用户的公网IP 5.数据最终通过公网路由到达访问用户,数据访问成功。 二、内网用户通过域名是不能访问服务器的,数据流程如下: 1.内网用户发起DNS请求,域名解地址为202.101.1.1,客户机发出请求,IP报头结构如下:源IP:192.168.2.2,目的IP:202.101.1.1 2.数据到达路由器后,由于路由器上有202.101.1.1的直连路由,数据直接交到外网口,由于外网口配置有NAT Server,目的IP被转换后发到服务器,IP报头结构如下:源IP:192.168.2.2,目的IP:192.168.2.251 3.服务器收到数据后,发现源IP就是一个本地IP地址,此时服务器就不会以202.101.1.1为ip回复,而是以192.168.2.251为源地址回复。此时的IP数据包结构为:源IP:192.168.2.251,目的IP:192.168.2.2,数据将到客户机后,客户机认为,自己请求的是202.101.1.1的数据,但是收到的是192.168.2.2发送的,则认为这个数据不是自己要的,此时会丢弃掉该数据,从而引起TCP等待超时,导致无法访问。 为了解决该问题,我们在内网口做如下设置: acl number 3000 rule permit ip source 192.168.2.0 0.0.0.255 destination 192.168.2.251 quit int g0/1 //内网口 nat outbound 3000 nat server protocol tcp global 202.101.1.1 www inside 192.168.2.251 www quit 经过以上配置后,我们再在内网使用域名访问该服务器,看看数据流程: 1.内网用户发起DNS请求,域名解析为202.101.1.1地址,客户机发出请求,IP报头结构如下:源IP:192.168.2.2,目的IP:202.101.1.1 2.数据交到路由器的内网口,首先匹配端口映射,将目的IP更换掉,此时IP报头结构如下:源IP:192.168.2.2,目的IP:192.168.2.251 3.路由器发现该数据为内网数据,会再从内网口发出去,此时再匹配nat outbound,将源IP换掉,此时IP报头结构为:源IP:192.168.2.1,目的IP:192.168.2.251 4.服务器收到数据后响应请求,回复数据包IP报头结构为:源IP:192.168.2.251,目的IP:192.168.2.1 5.数据到达路由器后,根据NAT Outbound和NAT Server的记录表项,将源IP和目的IP替换掉,此时IP报头结构为:源IP:202.101.1.1,目的IP为192.168.2.2 6.数据到达客户,目的IP和源IP正确,访问成功。 现在我们假设没有nat server protocol tcp global 202.101.1.1 www inside 192.168.2.251 www,来看一下数据报文是否能完整地走完 :(目前MSR路由器上的端口映射配置全局有效,不需要再在内网口配置该命令了。) 1.内网用户发起DNS请求,域名解析为202.101.1.1地址,客户机发出请求,IP报头结构如下:源IP:192.168.2.2,目的IP:202.101.1.1 2.数据将到路由器,由于外网口上有端口映射,则数据会匹配映射,将IP报文结构改变成: 源IP:192.168.2.2,目的IP:192.168.2.251 3.数据将到路由器内网口,匹配nat outbound,将源IP地址变掉,IP报文结构改变成:源IP:192.168.2.1,目的IP:192.168.2.251 4.数据交至服务器,服务器回复报文,IP报头为:源IP:192.168.2.251,目的IP:192.168.2.1 5.路由器收到后,匹配内网口NAT Outbound的记录表项,将其IP报头改为:源IP:192.168.2.251,目的IP:192.168.2.2 6.数据直接交给客户机,客户机依然认为不是自己请求的数据,丢弃,继续等待,超时,失败。Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。