华三设备上面的端口映射与一对一映射

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

华三设备上面的端口映射与一对一映射

图片

来看看华三上面的配置与注意事项,这里说下,外网环境把PC换成了一台路由器,方便测试,而且华三没有提供可测试的WEB、FTP等服务,只能采用核心交换机的Telnet、WEB服务来测试了,这里把202.100.1.1的23、80映射到核心交换机的192.168.255.1上面(再次说明,这是HCL没有单独提供可模拟服务器的终端,所以采用核心来充当)

端口映射

开启核心的服务[CoreA]telnet  server  enable        //开启Telnet服务[CoreA]ip http enable                  //开启HTTP服务[CoreA]line vty 0 4                      //进入vty线路(远程登录用的)[CoreA-line-vty0-4]authentication-mode none          //认证方式为none,也就是不认证这个就是把核心当成一台telnet以及http的业务服务器,然后vty线路是远程登录虚拟线路,认证方式改为none是方便测试,后期会单独讲解远程登录设备的,这里不用太在意怎么去实现。
端口映射配置 [MSR3600]interface  g0/1[MSR3600-GigabitEthernet0/1] ip address 202.100.1.1 255.255.255.0[MSR3600-GigabitEthernet0/1]nat server protocol tcp global current-interface 23 inside 192.168.255.1 23[MSR3600-GigabitEthernet0/1]nat server protocol tcp global current-interface 80 inside 192.168.255.1 80#将出口地址转换的TCP 23、80端口号转换给192.168.255.1的23跟80(192.168.255.1是核心作为测试设备)

测试下

图片

直接Telnet 202.100.1.1,这里不需要输入23端口号,因为Telnet标准的端口号就是23,可以发现现在直接登录进了<CoreA>核心的设备了,这个表示是映射成功了,这个在实际也用的比较多,比如我们相从外网登录内网的某个设备,可以通过映射的方式对应到公网的某个端口号上面,然后就可以通过Telnet、SSH、WEB等方式登录。

图片

同样的配置了nat server后会自动生成静态的nat server表项,同时当有外网用户访问进来后

图片

还会生成一个动态的NAT 表项,在上面介绍华为的处理过程的时候没有讲到这个,是因为模拟器它生成的表项有点问题,对应不上,华三的模拟器没这个问题,这里就补充下,为什么nat server还需要生成一个动态的NAT会话呢?

当61.128.1.1去telnet 202.100.1.1的时候,源地址是会随机生成一个端口号(比如会话看到的57281),目的地址202.100.1.1,端口号是Telnet的知名端口

这个访问抵达出口路由器后,由于接口配置了nat server,匹配了nat server的表项,目的地址202.100.1.1的23转换成192.168.255.1的23,然后在查询路由转交给255.1

核心收到以后,回应,源是192.168.255.1:23,目的地址     61.128.1.1:57281,交给出口路由器处理

出口路由器收到以后,关键的地方来了,在上面介绍流程的时候,只说看nat     server的表项进行转发,但是其实少考虑了一个内容,就是出接口我们还配置了NAPT的,路由器并不能区分你这个数据包到底是返回去的流量还是主动发出去的,到底要不要做NAPT呢?如果做了,那192.168.255.1:23,可能被转换成202.100.1.1:1588,那自然这个会话就中断了,因为测试设备那发起的是202.100.1.1:23的,你返回的是202.100.1.1:1588,基于这样的情况,路由器必须要生成一条动态的nat会话表,来记录当前的转换信息,当这个会话返回的时候,路由器一看,哦,这里有对应的信息,就直接按照

图片

对应的nat 会话表内容转换了,就不会出现上面提到的"误伤",包括在华为里面也是这样处理的,上面没提到是因为它转换的端口号显示不对,介绍起来会很乱。

在整个映射当中的流程是外网访问过来,查看nat server表项,把目的地址转换成内部inside地址,在查询路由,同时生成动态nat 会话记录当前的信息,当数据返回的时候,先查询路由,找到出接口,直接用nat 会话中的信息进行还原(表项中其实记录了接口信息的,只有从这个接口出去才会匹配上),这样来完成交互。(主流的网络设备都是这样的流程)

一对一映射

图片

假设只有一个公网地址的情况下,来看看华三上面怎么做一对一映射,这里顺便把出口路由器的telnet也打开,我们来演示下实际中会遇到的问题。

​​​​​​​

更改配置[MSR3600]telnet  server enable [MSR3600]line vty 0 4[MSR3600-line-vty0-4]authentication-mode none#[MSR3600]interface  g0/1[MSR3600-GigabitEthernet0/1]undo nat server protocol tcp global current-interface 23[MSR3600-GigabitEthernet0/1]undo nat server protocol tcp global current-interface 23#这里把出口路由器Telnet开启,可以远程登录的,并且把之前的端口映射删除掉

图片

现在没任何的端口映射,测试设备Telnet 202.100.1.1登录的是出口路由器

​​​​​​​

一对一映射[MSR3600-GigabitEthernet0/1]nat server global 202.100.1.1 inside 192.168.255.1#华三跟华为有点不一样,一对一映射是可以直接使用接口地址的,包括端口映射,而华为如果是接口地址做映射,不管哪种方式都需要用current-interface。

实际测试下

图片

发现了什么,跳转到核心A上面去了,这个就是实际中遇到尴尬的问题,出口路由器自己本身有需要被访问的业务,比如远程管理该设备的、VPN的流量,结果都被转换到inside地址上面去了,解决办法跟华为设备的思路一样,可以在后面跟ACL。

​​​​​​​

解决办法[MSR3600]acl advanced3999[MSR3600-acl-ipv4-adv-3999]rule  deny tcp destination-port eq 23[MSR3600-acl-ipv4-adv-3999]rule  deny icmp[MSR3600-acl-ipv4-adv-3999]rule  permit ip#ACL的意思是 tcp目的端口号23的流量以及ICMP的流量不被转换,其余的都转换[MSR3600]interface  g0/1[MSR3600-GigabitEthernet0/1]natserver global 202.100.1.1 inside 192.168.255.1 acl  3000Theglobal information overlaps with an existing internal server on this interface.#这里要注意看提示哈,提示的内容是说配置的信息有重叠,也就重复了。#interfaceGigabitEthernet0/1port link-mode routecombo enable copperip address 202.100.1.1 255.255.255.0nat server global 202.100.1.1 inside192.168.255.1#这个时候是没有配置上的,所以解决办法就是去掉该一对一,重新配置。[MSR3600-GigabitEthernet0/1]undonat server global 202.100.1.1[MSR3600-GigabitEthernet0/1]natserver global 202.100.1.1 inside 192.168.255.1 acl  3000#这个时候就不报错了

再次测试

图片

这个时候,Telnet的流量就没被转换到核心了,直接登录的出口路由器,那如果内网设备也希望被Telnet到,这个时候怎么办呢?

​​​​​​​

更改出口端口号[MSR3600]telnet  server  port 2323#这个的意思是把telnet服务的端口号改成2323,端口号变了,ACL对应的也要更改
[MSR3600]acl advanced 3999[MSR3600-acl-ipv4-adv-3999]display this #acl advanced 3999 rule 0 deny tcp destination-port eq telnet rule 5 deny icmp rule 10 permit ip
想让内网的Telnet生效,首先得把rule 0的规则去掉,然后加入出口路由器本身更改后的端口号,这样就不会被转换了。
[MSR3600-acl-ipv4-adv-3999]undo rule 0[MSR3600-acl-ipv4-adv-3999]rule  0 deny  tcp destination-port eq 2323

再次测试

图片

当直接Telnet的时候是23端口号,一对一的规则是global端口号多少,就转换到inside多少,23在ACL里面不存在(rule 0更改了),所以直接Telnet到核心A了,然后测试的是telnet 202.100.1.1 2323,后面跟了端口号,这个登录到了出口路由器,因为ACL里面deny了,所以自然就不转换,这个就是实际中比较常见的例子。

最后一个经验分享

实际中,如果这个应用是HTTP、HTTPS、FTP等应用,对外提供服务的,那端口号就用标准默认的,否则会造成访问麻烦的问题,原本只要浏览器输入地址即可,该了其他端口号后,就需要IP+端口号的形式,前提是80、443已经备案好了。

如果只是给公司人员使用,建议使用非知名的端口号,大于8000以上,第一个可以不用备案那么麻烦,第二个是安全性会提高,因为只要接入互联网,并且做了映射,就会有大量的扫描、探测出现,用非知名的端口号安全性相对来说高一点点。

实际中建议使用current-interface来进行映射(华三上面接口地址),这样后续在更换地址的时候更加方便,不需要在去更改NAT相关的配置。

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

  • 21
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值