NAT server之服务器映射(端口映射)--华为篇
创始人
2024-09-26 17:53:08
0

作者:一天,公众号:网络之路博客(ID:NetworkBlog)。让你的网络之路不在孤单,一起学习,一起成长。

技术背景

在很多场景中,比如企业、学校、甚至家里都有一些对外的业务提供,比如门户网址、NAS、ERP等,在实际部署中,这些提供访问的服务器都属于内网,配置的是内网地址,导致的情况是公网用户没法对私网地址直接进行访问,学过上篇内容的源NAT功能是把私网用户的源地址转换成可上网的地址(当然可上网的就分私网跟公网了,由运营商分配的)然后发送出去,那么NAT Server的作用正好相反, 它是当其他公网用户访问我们服务的公网地址时候,进行目的地址转换(注意一定要是公网地址),在华为华三里面的这个功能叫做---NAT server(服务器映射),可能大家都奇怪,为什么标题里面有端口映射、甚至DMZ,这个主要是各个厂商的叫法不一样,可能客户只会某一种叫法,导致在了解需求的时候,有点懵!不过不要紧,学完接下来的几篇后就都会很清晰了,下面来看看多个场景下使用什么样的技术。

图片

比如这样的一个环境,办公区三下面有一个WEB A的服务器,它的地址是192.168.255.6,是私网地址,肯定是不能在公网中路由的,外网无法访问到这个WEB资源,假设企业、学校需要把这个WEB服务发布到外网,让外网能够访问到,这个就是这篇要讲解到的另外一个NAT技术---NAT server(服务器映射)。

三种上网方式对于映射的影响

在讲解各种映射方式之前,我们得先了解一个很重要的东西,那就是公网IP,映射最重要的就是公网IP,因为只有公网IP才能被访问到,这样你就可以在家里、出差、任意的一个地方访问到,但是我们上网是有三种方式对接的,这个对于映射来说其实影响比较大。

  • DHCP方式对接,这种通常猫的LAN口处于192.168.1.0或者2.0这些网段,这个是私网地址,外网是无法访问到的(这种方式不能映射)

  • PPPoE拨号,这个就有两种可能,第一种运营商分配的是私网IP,通常为10.10.X.X或者100开头,第二种是分配的公网地址,但是是动态的,什么是动态呢?就是下一次重新拨号后,它会变化,这个有对应的技术解决,叫做DDNS,后续在实战篇会讲解。

  • 外网专线对接,这种是最适合的,因为它的IP是公网IP,而且是固定的不会变化

  • 总结下来映射的必要条件就是公网IP,三种对接方式里面,固定公网最好,其次PPPoE拨号的动态公网,DHCP方式是不适合(排除极少数,香港那边,DHCP也可以分配公网IP,大陆小运营商极个别也会这样分配公网)

NAT server之服务器映射(端口映射)

图片

上面提到过服务器属于内网里面,本身地址是私网的,是无法被公网访问到,那这个时候公网的访问端能够访问的就是出口路由器的公网IP,服务器映射(端口映射)它的功能就是把出口公网IP地址对应的某个端口号,映射到内网某个地址的端口号上面来,这样当公网终端访出口路由器的公网IP某个端口号的时候,出口路由器就会把它转发给内网服务器,实现资源的访问,这里顺便说一下,不同路由器厂商对于技术的称呼不太一样,有叫端口映射的,有叫服务器映射的,指的都是这个功能。

(1)实际感受下

这里WEB A的地址是192.168.255.6,端口号是80,公网地址是202.100.1.1,实现把公网IP的80,映射到192.168.255.6的80

#修改配置[AR1200]interface  g0/0/1[AR1200-GigabitEthernet0/0/1]ip address 202.100.1.1 24[AR1200-GigabitEthernet0/0/1]quit[AR1200]ip route-static 0.0.0.0 0.0.0.0 202.100.1.2#出口路由改成静态IP的环境,先从最简单的开始,记得写默认路由 [internet]interface  g0/0/1[internet-GigabitEthernet0/0/1]ip address  202.100.1.2 24#互联网设备设置一个地址作为网关。

图片

测试下通信OK就行​​​​​​​

#NAT-server 端口映射[AR1200]interface  g0/0/1[AR1200-GigabitEthernet0/0/1]nat server protocol tcp global current-interface 80 inside 192.168.255.6 80  Warning:The port 80 is well-known port. If you continue it may cause function failure.Are you sure to continue?[Y/N]:Y                            //提示这个是知名端口,是否需要映射 #配置解析  • nat server是一个关键字  • protocl tcp,这个很关键,在实际中我们得了解应用使用的是TCP协议还是UDP,配置错误的话会导致访问失败,该例子中WEB服务属于TCP应用  • global:这个是关键字,定义外网信息,比如IP地址,端口号  • current-interface:在上面的命令里面并没有定义具体的地址,这就是该命令参数的作用,直接调用当前接口的IP地址(202.100.1.1)  • 80:表示外网用什么端口号作为被其他用户访问到,WEB的端口号是80,这里写80  • inside:表示内网真实的服务器地址多少,WEB A的地址为192.168.255.6  • 80:内网的WEB端口号为多少,默认http为80 整体命令下来的意思就是,当有其他外网用户访问接口地址(202.100.1.1)的TCP 80端口号时候,将地址转换成192.168.255.6的80端口号,这就是映射。

测试一下

图片

先检查WEB服务是否开启好了。

图片

客户端的地址设置好

图片

OK了,注意哦,浏览器地址输入的是202.100.1.1,是出口路由器公网的IP地址。

(3)看看是如何完成映射的

图片

1、client5在浏览器输入202.100.1.1后(默认就是80),数据包会抵达202.100.1.1,源是61.128.1.1端口号随机生成

图片

2、出口路由器收到以后,它发现找的是自己(因为目的IP是202.100.1.1,是自己接口地址)

图片

发现接口下面有NAT server的配置,这个配置在路由器会生成一个表项,叫做nat server

图片

当数据包过来后,路由器先查询nat server表是否有对应的信息,没有则表示给自己的,直接处理,如果有,按照nat server表进行处理,按照表信息

  • interface g0/0/1:表示入接口,数据流从该接口进入

  • Global ip/port:202.100.1.1:80,目的地址是202.100.1.1的80端口号

  • Inside ip/port:内网真实的终端IP与端口号,这里为192.168.255.6:80

  • Protocl:协议是TCP

  • 整个表项的意思是,当有数据目的地址是202.100.1.1的TCP 80端口,从G0/0/1进入后,目的地址202.100.1.1转换成192.168.255.6,端口号80转换成80,这个时候的源目变成了,源61.128.1.1--访问192.168.255.6:80

转换后,剩下的就是常见的操作,出口路由器查询路由表看192.168.255.6在哪,然后把数据包通过路由表条目转发给核心A交换机,核心A同样通过三层表项查询,定位到192.168.255.6在哪,从对应接口发出,抵达WEB A。

图片

3、WEB A收到后开始回应,回应的报文会经过办公区三、核心A、最终抵达出口路由器,查询路由,发现去往61.128.1.1从出口G0/0/1出去

图片

发现有nat server表项,于是把192.168.255.6:80,转换成202.100.1.1:80,目的地址61.128.1.1与端口号不变,这样数据包就变成了源:202.100.1.1:80,目的61.128.1.1:1288,互联网收到以后直接返回给client 5。

图片

经验分享

  • 端口映射其实是非常简单的,只要确认客户应用需要的端口号以及传输层协议,然后做nat server即可,需要注意,有的应用是TCP/UDP都需要映射,这个要咨询清楚。

  • 在华为设备里面映射如果端口号是1~1023的知名端口号,每次输入都需要Y确认。

  • 在nat server 端口映射中,global的端口号与inside的端口号是不需要一致的,比如外网可以用9999,内网用80,这样完全OK,只是在访问的时候需要输入端口号

  • 在实际中,需要注意80、443、8080、或者8000~8888这段范围的端口号大部分区域会禁止使用,特别是80、443端口号需要备案,运营商才会开通,所以如果有这样的业务的话,内网可以继续用80,但是外网的端口号只能换一个其他的,可以多尝试几个好记的。

  • 如果实际业务涉及到Telnet、SSH等端口号的映射,建议把设备本身的telnet、SSH服务的端口号改成其他,否则会冲突。

  • 该功能有很多叫法,常见的端口映射、服务器映射,也有冷门的叫做服务器发布,端口转发等,遇到了不用慌,确认下需求跟功能就行。

 

文章版权归网络之路博客/网络之路Blog(公众号/其他平台同名,)所有,转载请标明出处,谢谢,交流群可以加个人微信ciscohuaweih3c,博主拉你进群,Q群 813146133 。(如果群满了,可以公众号后台回复‘加群’获取最新群号)  

相关内容

热门资讯

安卓手机好的系统,安卓手机操作... 你有没有发现,现在手机市场上的安卓手机真是琳琅满目,让人挑花了眼。不过,你知道吗?在这些安卓手机中,...
安卓系统mac电脑配置,打造安... 亲爱的电脑迷们,你是否曾想过,你的苹果笔记本里也能装上安卓系统?是的,你没听错!今天,就让我带你一起...
状元郎平板安卓系统,引领平板教... 你有没有想过,一款平板电脑,竟然能让你在学习之余,还能畅游安卓世界的海洋?没错,今天我要跟你聊聊的就...
安卓系统哪个传奇好玩,畅玩经典... 手机里的游戏可是咱们休闲娱乐的一大法宝,尤其是安卓系统,那丰富的游戏资源简直让人挑花眼。今天,就让我...
联众支持安卓系统吗,“联众PD... 斗地主爱好者们,是不是在为找不到一款好玩的斗地主游戏而烦恼呢?别急,今天我要给大家揭秘一个好消息——...
康佳电视安卓系统太卡,康佳电视... 亲爱的电视迷们,你们有没有遇到过这样的烦恼:家里的康佳电视用着用着就变得像蜗牛一样慢吞吞的,让人抓狂...
ios对比安卓系统流畅,流畅体... 你有没有发现,用手机的时候,有时候iOS系统就像个优雅的舞者,而安卓系统则像个活力四射的少年?没错,...
安卓系统占用内存小,深度解析优... 你有没有发现,手机用久了,就像人一样,会变得“臃肿”起来?尤其是安卓系统,有时候感觉就像一个超级大胃...
安卓系统怎么下载jdk,JDK... 你有没有想过,在安卓手机上也能编写Java程序呢?没错,就是那种在电脑上写代码的感觉,现在也能在手机...
安卓系统调手机亮度,轻松掌握手... 手机屏幕亮度总是让你眼花缭乱?别急,今天就来手把手教你如何轻松调节安卓系统的手机亮度,让你的手机屏幕...
学习机安卓系统双系统,安卓系统... 你有没有想过,学习机也能玩转安卓系统?没错,就是那个我们平时用来刷剧、玩游戏、看新闻的安卓系统!现在...
安卓系统有哪些兼职,盘点热门兼... 你有没有想过,在手机上也能轻松赚钱呢?没错,就是那个我们每天都离不开的安卓系统,它不仅能让你畅游网络...
别致影音下载安卓系统,轻松享受... 你有没有想过,在这个信息爆炸的时代,找到一款既别致又实用的影音下载APP,简直就像在茫茫人海中找到那...
安卓车机系统和手机系统,共筑智... 你有没有发现,现在汽车也越来越智能了?这不,车机系统都开始流行起来,而且很多车企都选择了安卓系统。那...
爱情银行ios系统与安卓系统,... 亲爱的读者们,今天咱们来聊聊一个让无数人心动的话题——爱情银行iOS系统与安卓系统!想象爱情银行就像...
车载wce系统和安卓系统区别,... 亲爱的车友们,你们有没有想过,为什么你的车载导航有时候会像老牛拉车一样慢吞吞,有时候又像兔子一样活泼...
安卓系统常见app取证,深度解... 你有没有想过,手机里的那些小玩意儿,其实可能藏着大大的秘密呢?没错,就是那些我们每天不离手的安卓系统...
苹果云照片安卓系统,苹果云照片... 你有没有想过,那些在苹果手机上美美哒的照片,怎么才能搬到安卓手机上呢?别急,今天就来给你揭秘这个神奇...
ios系统跟安卓系统都是美国,... iOS与安卓:美国科技的双雄争霸在当今这个数字化的世界里,智能手机已经成为了我们生活中不可或缺的一部...
深度系统可以装安卓,系统兼容安... 亲爱的读者们,你是否曾想过,在电脑上也能畅玩安卓游戏,享受安卓应用带来的便捷?现在,这个梦想成真啦!...