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 。(如果群满了,可以公众号后台回复‘加群’获取最新群号)  

相关内容

热门资讯

安卓系统怎么注册Spotify... 你有没有想过,在安卓手机上听歌,怎么才能像在电脑上一样方便呢?没错,我要说的就是Spotify这个音...
安装安卓系统是什么,开启智能设... 你有没有想过,为什么你的手机总是那么卡,而别人的手机却流畅得像风一样?是不是觉得自己的手机被时代抛弃...
红米安卓哪个系统,深度解析红米... 你有没有想过,你的红米手机里那个安卓系统,它到底是个啥样子?是不是每次更新都让你觉得有点晕头转向?别...
导航安卓最新系统,导航功能革新... 你有没有发现,你的安卓手机最近是不是有点儿不一样了?是不是觉得操作起来更加流畅,界面也更加美观了呢?...
安卓系统就是骁龙系统吗,性能与... 你有没有想过,安卓系统和骁龙系统是不是一回事呢?是不是觉得这两个名字听起来有点像,所以它们可能就是同...
安卓系统怎样不更新系统,如何避... 你有没有想过,为什么有时候安卓系统的更新会让你头疼不已?是不是觉得每次更新后,手机变得又慢又卡,而且...
安卓系统怎么使用obs,并在录... 你有没有想过,用安卓系统玩转OBS(Open Broadcaster Software)直播或者录制...
安卓系统图标怎么变小,轻松实现... 手机屏幕越来越大,可图标却还是那么大,看着是不是有点不舒服呢?别急,今天就来教你怎么把安卓系统的图标...
安卓系统与ios系统互通吗,探... 你有没有想过,为什么你的安卓手机和朋友的iPhone总是不能无缝对接呢?今天,就让我带你一探究竟,揭...
安卓系统标志图案图片,系统标志... 你有没有注意到,每次打开安卓手机,那熟悉的标志图案就会出现在屏幕上,仿佛在向你招手呢?没错,就是那个...
obbo是安卓系统吗,安卓系统... 哦,你有没有听说过一个叫做Obbo的操作系统?是不是好奇它是不是安卓系统的一部分?今天,我们就来一探...
安卓系统壁纸带声音,安卓系统中... 你有没有想过,手机壁纸除了好看,还能有声音呢?是的,你没听错,就是那种安卓系统里的壁纸,竟然能带声音...
小米安卓原生系统体验,流畅与创... 亲爱的读者们,你是否厌倦了那些花哨却不够实用的手机系统?想要一次不一样的安卓体验吗?那就跟着我一起,...
电脑安卓系统如何恢复苹果系统,... 你是不是也和我一样,曾经因为各种原因,把安卓手机换成了苹果手机?结果,哎呀妈呀,数据丢失得让人心疼!...
安卓系统sd卡受损,原因分析及... 手机里的安卓系统突然告诉你SD卡受损了?别慌张,让我来给你详细说说这个棘手的问题,让你轻松应对!SD...
麒麟1.0系统兼容安卓,开启全... 你知道吗?最近科技圈可是炸开了锅,因为麒麟1.0系统宣布兼容安卓了!这可不是什么小道消息,而是实实在...
安卓系统mp0.900,功能升... 你有没有发现,最近你的安卓手机突然变得超级流畅,运行速度像是吃了加速丹一样?这可不只是错觉哦,因为安...
安卓充值哪个系统便宜,揭秘哪家... 你有没有想过,给安卓手机充值的时候,哪个系统最划算呢?是不是每次充值都感觉钱包在“瘦身”,但又不想错...
安卓系统手绘平板电脑,创新与便... 你有没有想过,在繁忙的生活中,找一款既能满足工作需求,又能让你尽情创作的平板电脑呢?今天,就让我带你...
安卓平板烧写系统,轻松升级与优... 你有没有遇到过安卓平板烧写系统的烦恼?别急,今天就来给你详细说说这个话题,让你一次性搞懂怎么解决安卓...