ENSP nat
NAT(Network Address Translation,网络地址转换)
首先了解现在IP地址的使用情况,私有 IP 地址是指内部网络或主机的IP 地址,公有IP 地址是指在因特网上全球唯一的IP 地址。RFC 1918 为私有网络预留出了三个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技术缓解了当前互联网IPV4地址匮乏的情况
NAT的实现方式有三种,即静态转换Static Nat、动态转换Dynamic Nat和端口多路复用OverLoad。
静态转换是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。借助于静态转换,可以实现外部网络对内部网络中某些特定设备(如服务器)的访问。
动态转换是指将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。动态转换可以使用多个合法外部地址集。当ISP提供的合法IP地址略少于网络内部的计算机数量时。可以采用动态转换的方式。
端口多路复用(Port address Translation,PAT) 是指改变外出数据包的源端口并进行端口转换,即端口地址转换(PAT,Port Address Translation).采用端口多路复用方式。内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有主机,有效避免来自internet的攻击。因此,目前网络中应用最多的就是端口多路复用方式。
ALG(Application Level Gateway),即应用程序级网关技术:传统的NAT技术只对IP层和传输层头部进行转换处理,但是一些应用层协议,在协议数据报文中包含了地址信息。为了使得这些应用也能透明地完成NAT转换,NAT使用一种称作ALG的技术,它能对这些应用程序在通信时所包含的地址信息也进行相应的NAT转换。例如:对于FTP协议的PORT/PASV命令、DNS协议的 “A” 和 “PTR” queries命令和部分ICMP消息类型等都需要相应的ALG来支持。
如果协议数据报文中不包含地址信息,则很容易利用传统的NAT技术来完成透明的地址转换功能,通常我们使用的如下应用就可以直接利用传统的NAT技术:HTTP、TELNET、FINGER、NTP、NFS、ARCHIE、RLOGIN、RSH、RCP等。
静态转换配置:转换源IP地址(easy ip nat)
首先需要配置好基础的路由,在边缘路由器AR1上配置一个缺省路由
PC1:
IP: 192.168.1.101
Netmask: 255.255.255.0
Gateway: 192.168.1.1
PC2:
IP: 192.168.1.102
Netmask: 255.255.255.0
Gateway: 192.168.1.1
Server2:
IP: 192.168.1.200
Netmask: 255.255.255.0
Gateway: 192.168.1.1
Server3:
IP: 9.9.9.9
Netmask: 255.255.255.0
Gateway: 9.9.9.1
Client1
IP: 8.8.8.8
Netmask: 255.255.255.0
Gateway: 8.8.8.1
AR1配置命令:
system-view
sysname AR1
interface g0/0/0
ip address 192.168.1.1 24
interface g0/0/1
ip address 7.7.7.7 24
quit
display ip interface brief
R2配置命令:
system-view
sysname R2
interface e0/0/0
ip address 7.7.7.1 24
interface e0/0/1
ip address 8.8.8.1 24
interface g0/0/0
ip address 9.9.9.1 24
quit
display ip interface brief
AR1配置缺省路由:
system-view
ip route-static 0.0.0.0 0 7.7.7.1
quit
display ip routing-table
配置好路由尝试在企业内网的PC1
访问运营商外网的Server: 9.9.9.9
还是ping不通,我们在R1
路由器上的E0/0/0
接口上抓包查看对数据包是如何操作的
发现数据包发送到E0/0/0
接口上源地址还是192.168.1.101
内网地址,在外网处理肯定直接丢弃
所以接下来需要把这个源地址转换为AR1
的外网接口地址,这样在R1
的接口地址上才会处理数据包
AR1配置命令:
system-view
acl 2000
rule permit source 192.168.1.0 0.0.0.255
quit
interface g0/0/1
nat outbound 2000
源地址全部转换为了AR1外网接口的地址
思考一个问题:当局域网内多台主机访问同一个外网服务器,在AR1路由器的外网接口上都会转为同一个源地址IP,那回包的时候也是同一个目标IP地址,AR1路由器如何区分局域网的各台主机的数据包
在经过AR1的数据包中会添加一个字段flag,用来标识你是来自局域网中的那台主机(这里的flag字段内容就是AR1路由器的端口号)
在数据包经过AR1路由器的时候,路由器会暂时有一个缓存表
使用命令:dsiplay nat session all
在这缓存表里可以看到是如何区分局域网内部主机的
端口映射
把内网的服务器Server2: 192.168.1.200
的80
端口映射到外网接口7.7.7.7
的80
端口上
AR1命令配置:
system-view
interface g0/0/1
nat server protocol tcp global current-interface 80 inside 192.169.1.200 80
内网服务器添加资源,并启动
访问内网服务器
- 点赞
- 收藏
- 关注作者
评论(0)