Skip to main content

tplogin.cn首页 > 路由器问答 >

路由器NAT的另类使用方式

2012-07-19 14:30 浏览:

如果企业边界设备是路由器的话,局域网中有一服务器,并通过端口映射将其发布到公网IP上。外网用户可通过该公网IP访问OA服务器,但内网用户无法通过域名访问、和外网地址访问。通过抓包检查后发现在进行第二次握手时,出现了问题,下面举个简单的例子。

内网一台主机192.168.0.2建了个WEB服务站点端口80,然后在网关(其内网地址是192.168.0.1、公网地址为1.1.1.1)上映射80端口到192.168.0.2的80端口,这样INTERNET上就能以http://1.1.1.1:80的地址访问到192.168.0.2的WEB站点了。

然后出现了个问题,在同网吧的另一台电脑192.168.0.3上,键入http://1.1.1.1:80,却无法访问该WEB站点。

工作过程大概是这样:

192.168.0.3要请求访问1.1.1.1的80端口,根据它掌握的路由表,它本身是不知道电脑1.1.1.1在哪里的,所以把将这个数据包发送给它的默认路由,即电脑192.168.0.1。

注意:这个数据包的源地址是192.168.0.3、源端口假设是1025、目标地址是1.1.1.1、目标端口是80、SYN标志位为1、这是建立TCP连接的第一次握手。

如果“把目标地址为1.1.1.1的数据包发给了192.168.0.1”你听起来觉得有点矛盾,其实这个数据包的目标IP地址是1.1.1.1,目标MAC地址却是192.168.0.1的。

192.168.0.1接收到了这份数据包(因为它的身份是路由器,所以允许接收和转发目标地址不是自已、MAC地址却是自已接口MAC地址的数据包),它分析这个数据包的目标地址,发现这个数据包是需要中转到电脑192.168.0.2:80去的,于是它把这个数据包转发给了电脑192.168.0.2:80。

注意:这个数据包的源地址是192.168.0.3、源端口是1025、目标地址为192.168.0.2、目标端口为80、SYN标志位为1。我们要注意这个数据包在转发后发生了变化了,即目标地址变了。

电脑192.168.0.2顺利接到了数据包,它马上作出回应,发送一个数据包给电脑192.168.0.3。

注意:这个数据包的源地址是192.168.0.2、源端口是80、目标地址192.168.0.3、目标端口为1025、SYN标志位为1、ACK标志位为1、这是建立TCP连接的第二次握手。

电脑192.168.0.3顺利接到了数据包,然而它发现这是一个来自192.168.0.2:80的回应,因为ACK标志位值为1摆在那里呢。它想不起来什么时候给192.168.0.2:80这个目标对象发送过SYN请求,它认为这是一个错误的数据包,于是决定把这个数据包丢弃。然后继续等待1.1.1.1:80的回应,一直等到超时。

而电脑192.168.0.2这边,它等192.168.0.3:1025的第三次握手请求包发送过来,以便建立一个TCP的连接。同样也没有结果,一直等到超时。三次握手在规定的时间内没有完成,访问宣布流产了。

解决方法是:

将常规的ip nat inside source static tcp X.X.X.X 80 X.X.X.X 80更改为ip nat source static tcp X.X.X.X 80 X.X.X.X 80

然后把接口下的ip nat inside、outside 修改为 ip nat enable

就可以达到类似ASA上的DNS刮除的特性,并且可以用外部的IP访问。

至于命令的工作原理还在摸索中,在学习过程中有想法就必须马上付出实践,灵感一没,解决方案可能也会随之消失! 感觉挺艺术家的!哈哈哈!

本文出自 “在物理层的小菜鸟” 博客

相关文章

家里的路由器登录tplogin.cn后,怎么重新设置(修改)密码?

2021-11-24 12:20:24    浏览: 134

家里的tplogin.cn路由器恢复出厂设置后,接下来怎么办

2021-11-19 03:40:11    浏览: 67

家里的路由器太卡了,想换一个路由器有推荐吗?

2021-10-24 03:57:04    浏览: 190

家里拉宽带,第一次设置路由器需要连接网络吗?

2021-10-13 11:16:52    浏览: 88

家里打算装修,路由器怎么布置网络更好?

2021-10-03 11:27:18    浏览: 134