目录
静态nat
静态nat配置
动态nat
动态nat配置
NAPT(Network Address and Port Translation,网络地址端口转换
NAPT配置
Easy IP
Easy IP配置
NAT Server
NAT Server配置
一说到NAT(Network Address Tranlation,网络地址转换技术),很多人都是听说过,但是不怎末了解,我接下来给大家细致的讲一讲,就是以聊天的形式进行,我们都知道当今的互联网发展迅速,网络设备也是以倍数增长,但是我们的IP v4地址是有限的,这是个致命的缺陷,这也就有了以后的IP v6地址,但是IP v4和IPv6也需要有一个过渡的过程,这时候就出现了NAT/网络地址转换技术,就是把私网IP地址转换为公网IP地址,nat技术主要用于实现内部网络的主机访问外部网络,一方面缓解了IP v4地址短缺的问题,同时呢也提高了内网的安全性(外部网络访问内网需要进行转换,无法直接访问,自然就提高了安全性)
我们上面说到的ipv4地址说详细一点其实是IP v4公有地址,因为只有公有地址才可以在Internet上传输通信,私有地址可以让组织和个人任意使用,但是没有办法在Internet上直接通信,想要通信的话必须在网络出口设备配置NAT,将访问Internet的IP数据报文中的私有网络源地址转换为共有网络源地址
A、B、C类地址中各自预留了一些地址专门作为私有IP地址
A类:10.0.0.0 ~ 10.255.255.255
B类:172.16.0.0 ~ 172.31.255.255
C类:192.168.0.0 ~ 192.168.255.255
NAT转换也是分为很多种的,毕竟人家也是有发展历程的,最初的静态NAT后来变为动态NAT,再到后来的NAPT、Easy-IP、NAT Server,这是一个不断完善的发展历程,他们的原理大同小异,只是越来越健全
先来说一下静态nat吧, 他的原理很简单,它想着不就是把私有地址转换为公有地址嘛,我就在nat里建设一张表,里面是每一个私有IP地址和公有IP地址的对应关系, 私有地址想要上网穿上对应的衣服直接上网即可,公有地址想要访问私有地址也换上对应的衣服就可以了
方式一、在接口视图下配置静态NAT
#global-address为共有地址,host-address为私有地址
[huawei-g0/0/0]nat static global {global-address} inside {host-address}
方式二、系统试图下配置静态nat
[huawei]nat static global {global-address} inside {host-address}
配置命令相同,不同的是在系统试图下配置,然后在具体的接口下进行调用
[huawei-g0/0/0]nat static enable
静态nat配置实例
但是,我们发现这样挺浪费公有IP地址,表内一对一对应,但是一旦有主机不上网,对应的公有IP地址就会空闲,造成浪费,于是创造了动态nat
动态nat针对这个问题,于是提出了地址池的概念:就是可用的公有地址组成地址池,当内部主机
想要访问外部网络时,nat会临时分配一个地址池中未使用的地址,并且把此公网IP打上“in use”的标签,把此公网IP和对应的私网IP放入一个新的表内,方便数据流回来时使用,当该主机不在访问外网时,就会收回刚才分配的地址,重新放回地址池内,并且标记为“ not use ”
1.创建地址池
[huawei]nat address-group {group-index} {start-address} {end-address}
#地址池为公有地址,group-indeed为这个地址池的编号(因为有可能会有多个地址池),start-address和end-address为地址池的起始地址和结束地址
2.配置地址转换的acl规则
[huawei]acl {编号}
[huawei-acl-basic-编号] rule permit source {source-address} { source-wildcard}
#ia阶段配置基础acl,进行匹配需要进行动态转换的源地址范围
3.有地址池了,也有了acl,现在就差把他们联系起来进行运用
在接口视图下配置带地址池的NAT Outbound
[huawei-g0/0/0]nat outbound {acl-number} address-group {group-index} no-pat
地址池相对于静态一对一nat是有了很大的改变,但是如果地址池内的地址很少,上网就会变得很慢,多购买地址池内的地址成本也会增长,所以,基于这个需求人们又研发出了一种新的技术NAPT(Network Address and Port Translation,网络地址端口转换))
这项技术可以说是很厉害,思想创新很大,他们想nat的主要目的就是为了将私网IP地址转换为公网IP地址,只要是能区分开不就行了,于是加上了端口号用来区分,这样就可以实现共有地址与私有地址的1:n映射,极大的提高公有地址利用率,佩服佩服
NAPT借助端口可以实现一个公有地址同时对应多个私有地址。该模式同时对IP地址和传输层端口进行转换,实现不同私有地址(不同的私有地址,不同的源端口)映射到同一个公有地址(相同的公有地址,不同的源端口)
配置很简单,和动态nat配置可以说是一摸一样,只不过NAPT可以靠端口号实现一对多嘛,所以转换时必须要有端口号
哈哈哈,简单吧,和动态nat一样,就是结尾少了no-pat(因为它需要进行端口转换啊)
但是细心的小伙伴们应该注意到了,NAPT虽然已经很节省地址了,但是,他还是有地址池的,多多少少还有南无一丝浪费,我们想要的就是一丝浪费都没有,于是又开发出了Easy IP,他与napt的区别就是它没有地址池,它以数据转发出口接口为nat转换接口,这样就做到了真正的一对N,没法再节省了,但是Easy IP适用于不具备固定公网IP地址的场景:如通过DHCP、PPPoE拨号获取地址的私有网络出口,可以直接使用获取到的动态地址进行转换(这个是因为DHCP、PPPOE可以且必须自动分发给局域网出口公网IP地址,正好符合Easy ip需求,完美)。
• DHCP : Dynamic Host Configuration Protocol ,动态主机配置协议• PPPoE : Point-to-Point Protocol over Ethernet ,以太网承载 PPP 协议
注:公有地址只有一个,只是端口号不同
[R1]acl 2000
[R1-acl-basic-2000]rule 5 permit source 192.168.1.0 0.0.0.255
[R1-acl-basic-2000]quit
[R1]interface GigabitEthernet0/0/1
#配置完acl直接调用,前面声明nat(默认Easy ip),贼简单
[R1-GigabitEthernet0/0/1]nat outbound 2000
之前的都是局域网内去访问外面的网络,但是如果外面的网络想要主动访问咱们里面的网络那该怎末办呢,这时候就出现了一个新的技术用于解决此问题,那就是NAT Server
就是指定【公有地址:端口】和【私有地址:端口】的一一对应关系,将内网的服务器映射到公网,其实可以理解为,将自己服务器的一些功能放到公网上,但是只是服务器的其中一些功能,并不想让其他用户全部访问(王者只想让你访问 对局,商城的表层,而商城的底层是不能让你访问的,不然那不就是全皮肤,无限点卷了),所以采用【公有地址:端口】和【私有地址:端口】对应的方式,将私网内的服务通过端口映射到公网,供人们访问
外网主机通过主动访问【公有地址:端口】实现对内网服务器的访问
[R1]interface GigabitEthernet0/0/1
[R1-GigabitEthernet0/0/1]ip address 122.1.2.1 24
[R1-GigabitEthernet0/0/1]nat server protocol tcp global 202.10.10.1(任意公网地址,不一定是接口IP) 8080(随便起的) inside 192.168.1.10 80(对应私网http服务)