NAT分析(内网用户通过域名访问服务器)

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.数据直接交给客户机,客户机依然认为不是自己请求的数据,丢弃,继续等待,超时,失败。
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值