前文我们了解了包过滤工具ACL相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15156308.html;今天我们来聊一聊地址转换技术NAT相关话题;

  NAT技术背景

  我们知道互联网上能够路由的地址都是公网地址,但随着互联网的发展和应用的增多,ipv4地址已经枯竭;尽管ipv6可以从根本上解决IPv4地址空间不足的问题,但目前众多的网络设备和网络应用仍是基于ipv4的,因此在ipv6广泛应用之前,一些过度技术的使用是解决这个问题的主要技术手段;NAT(network address translation)网络地址转换,主要用于实现位于内部网络的主机访问外部网络的功能。当局域网内的主机需要访问外部网络时,通过NAT技术可以将其私网地址转换为公网地址,并且多个私网地址用户可以共用一个公网地址,这样既可保证网络互通,同时也节省了公网地址;简单讲NAT主要作用就是用于把内网地址转换为公网地址,使得内网主机能够正常和外部主机通信;从转换地址的方向来讲,我们把转换源地址叫做SNAT(source network address translation),把转换目标地址叫做DNAT(destination network address translation);

  NAT应用场景

HCNA Routing&Switching之地址转换技术NAT-LMLPHP

  提示:现在用nat最多的场景就是上述通过转换源ip地址,使得内网主机能够正常上外网;像这种SNAT一般我们也叫作正向代理;一般部署在连接内网和外网的网关设备上,如上图RTA;主机A要上外网,它首先把数据包发送给网关RTA,当RTA收到主机A发送的访问外部网络的请求时,首先它会把对应主机A的源地址转换为对应的公网地址(可以是某个接口上的公网地址,也可以是某个地址池中的公网地址),然后RTA就把对应转换的信息记录在一个NAT表中;然后把主机A的数据包再次封装后,发送出去;当对应公网主机回复的包到达RTA时,首先RTA会查询NAT表,看看对应的记录,然后根据记录把对应目标地址为公网地址再次转换为私网地址,然后把对应的数据包重新封装以后,发送给对应的私网地址主机(主机A);

HCNA Routing&Switching之地址转换技术NAT-LMLPHP

  提示:上图为NAT的另一种应用场景,主要用于外部主机访问内部某台服务器(或某些服务等);这个时候需要做DNAT;把对应目标地址为公网地址转换为对应的私网地址;通常我们叫这种DNAT技术为端口映射,或者叫反向代理;这里说明一点,在SNAT中是内网主机主动访问外部主机,在外部主机回复报文中对应目标地址转换为私网地址,这个是根据对应nat表中的记录转换的,是对应路由器自动维护的;我们这里说的DNAT是外部主机主动访问内部主机,此时在对应的路由器上是没有对应的转换信息的,所以需要我们管理手动去配置;

  NAT类型

  1、静态NAT

HCNA Routing&Switching之地址转换技术NAT-LMLPHP

  提示:静态NAT实现了私网地址和公网地址的一对一转换;一个公网ip只会分配给唯一且固定的内网主机;通常这种静态NAT一般用于一台优先使用某个关联地址,或者想要外部网络使用一个指定的公网地址访问内部服务器时;在大型网络中,这种一对一的ip地址转换是无法缓解公网地址短缺的问题,所以这种不适用大型网络环境中;

  实验:如下拓扑图,在R1上手动配置静态NAT,实现内部pc1能够正常访问pc3

 

  分析:要想实现pc1能够正常和pc3通信,首先对应链路上的路由必须得通;从上面的拓扑我们可以看到pc1和pc3首先不在同一个网段内,所以pc1和pc3通信首先得找网关;其次pc1发包,pc3能能正常收到,pc3回包,pc1能够收到;在不配置任何NAT的情况下,pc发包,对应经过R1时,会将数据包转发出去,因为r1有默认路由;R2有对应pc3所在网段的直连路由,但是pc3回包,源地址是pc3,目标地址是pc1,在数据包到达R2时,因为r2没有对应pc1的路由,所以pc3回包,pc1收不到;但是R2有到达R1的直连路由,而R1又有对应pc1所在网络的直连路由,所以我们只需要将对应pc1发送出来的包在R1上修改对应源地址,对应pc3的回包就能正常到达pc1;

  验证:按照上图先配置好R1,R2和各pc地址,抓包看看对应通信过程

  配置R1

HCNA Routing&Switching之地址转换技术NAT-LMLPHPHCNA Routing&Switching之地址转换技术NAT-LMLPHP
sys
sys R1
int g0/0/0
ip add 192.168.10.254 24
int g0/0/1
ip add 2.0.0.1 24
q
ip route-s 0.0.0.0 0 2.0.0.2
08-21 11:34