在我之前的分享中提到,我们在家里或者公司内部使用的IP地址是私有地址。这些地址在internet网中也就是公网中是不合法的地址,也就是说你如果使用一个私网地址是不可能登录到internet中浏览信息的。那么为什么我们的终端(电脑、手机)在家里或者公司中却可以登录到internet中浏览网页,观看视频呢?其实,这里面我们用到了NAT技术(Network Address Translation)网络地址转换技术。把我们的终端获取的私有地址,转换成公司的合法外网共有地址,从而进行网络数据交换。
NAT的实现方式有三种,即静态转换Static Nat、动态转换Dynamic Nat和端口多路复用OverLoad。
1、静态转换:是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。借助于静态转换,可以实现外部网络对内部网络中某些特定设备(如服务器)的访问。
2、动态转换:是指将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。动态转换可以使用多个合法外部地址集。当ISP提供的合法IP地址略少于网络内部的计算机数量时。可以采用动态转换的方式。
3、端口多路复用(Port address Translation,PAT):是指改变外出数据包的源端口并进行端口转换,即端口地址转换(PAT,Port Address Translation).采用端口多路复用方式。内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有主机,有效避免来自internet的攻击。因此,目前网络中应用最多的就是端口多路复用方式。
以上信息摘自百度百科
在我们的日常工作中,通常一个公有的IP地址是很珍贵的,ISP也不会随意地发放。因此如果没有特殊业务需求,通常公司或者组织只会申请一个公网IP地址。因此在实际的应用环境中使用最多的是第3种,端口多路复用PAT,也就是一种多对一的转换。
我们这里就看一下,这种多对一的PAT转换是怎样在网络设备中进行设置的。
本例使用的Cisco的网络设备,模拟平台为GNS3.
通常进行NAT转换的设备是网络的边界设备,如路由器或防火墙,本例进行NAT转换的设备是路由器R1.
逻辑拓扑:
PC1:192.168.10.2
PC2:192.168.20.2
R1和CoreSwitch之间运行OSPF路由协议
R1(公司或组织的外网路由器):
F1/0 口为内网接口ip 10.10.10.2/30
S0/0 口为外网internet接口 ip 202.10.10.2/30 这个是公网IP,也就是你们公司或组织向ISP申请的外网地址。
ISPRouter:S0/0 接口地址202.10.10.1/30
配置内容:
1. R1 的端口IP配置:
interface Serial0/0
description to internet
ip address 202.10.10.2 255.255.255.252
interface FastEthernet1/0
no switchport
ip address 10.10.10.1 255.255.255.252
2. ISPRouter的端口IP配置:
interface Serial0/0
ip address 202.10.10.1 255.255.255.252
3. CoreSwitch的端口IP配置
interface FastEthernet1/0
ip address 10.10.10.2 255.255.255.252
这样基础的端口都已经配置完成,下面我们配置CoreSwitch和R1之间的路由打通。
1. CoreSwitch的OSPF配置如下:
router ospf 10
router-id 1.1.1.1
log-adjacency-changes
network 10.10.10.0 0.0.0.3 area 0
network 192.168.10.0 0.0.0.255 area 0
network 192.168.20.0 0.0.0.255 area 0
2. R1 的OSPF配置如下:
router ospf 10
router-id 2.2.2.2
log-adjacency-changes
redistribute connected subnets --- 此命令是把R1直连的网段重发布到OSPF中即202.10.10.0/30
network 10.10.10.0 0.0.0.3 area 0
CoreSwitch 的路由表:
CoreSwitch#sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is not set
C 192.168.77.0/24 is directly connected, Vlan77
C 192.168.10.0/24 is directly connected, Vlan10
C 192.168.20.0/24 is directly connected, Vlan20
10.0.0.0/30 is subnetted, 1 subnets
C 10.10.10.0 is directly connected, FastEthernet1/0
202.10.10.0/30 is subnetted, 1 subnets
O E2 202.10.10.0 [110/20] via 10.10.10.1, 00:00:03, FastEthernet1/0 -- 这条就是R1重发布到OSPF的路由信息
至此CoreSwitch和R1之间的路由已经连通。
CoreSwitch#ping 202.10.10.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 202.10.10.2, timeout is 2 seconds:
!!!!!
注意:在R1中,作为公司或组织的边界路由器,这里定要有一条默认路由指向网关(ISP路由器),否则上internet的流量是无法转发去internet中的。
R1(config)#ip route 0.0.0.0 0.0.0.0 202.10.10.1
好了,下面我们进行NAT的配置。
1. 在R1中配置ACL ,匹配可以进行NAT转换的内网地址列表。
2. 在R1中配置NAT的出口端口
3. 在R1中的S0/0和F1/0 分别配置NAT的outside和inside
那么我们来看一下具体的配置:
① 配置ACL -- 这里只允许192.168.10.0/24的网段IP地址可以转换成公网IP
ip access-list standard permitinternet
permit 192.168.10.0 0.0.0.255
② 开启在R1 的S0/0端口的NAT的PAT设置
全局模式下:ip nat inside source list permitinternet interface Serial0/0 overload
切记一定要跟上关键字overload,这样才能开启多对一的PAT转换。
③ 分别在S0/0和F1/0端口开始NAT
R1(config)#int s0/0
R1(config-if)#ip nat outside
R1(config-if)#int fa1/0
R1(config-if)#ip nat inside
这样所有的配置都已经完成,我们来看一下效果,
1. PC1 是在Vlan10 中也就是192.168.10.0/24的网络中,我们来ping一下internet 202.10.10.1
可以看到是可以访问internet的,那么它到底有没有进行地址转换呢?我们来在R1上通过show ip nat translation
命令查看一下。
我们可以看到192.168.10.2 被转化成了公网地址202.10.10.2 与202.10.10.1进行数据交换,说明我们NAT 已经转化成功,PC可以访问internet了。
那么我么在来看一下PC2 在Vlan20 192.168.20.0/24的网络中主机可否访问internet呢?
很明显,PC2所在网段192.168.20.0/24并不能访问internet。
因此我们看到我们可以通过NAT,来控制那些网段或者主机可以访问internet,从而进行流量和带宽的限制。把那些需要访问internet的流量或主机放过。
怎么样理解了么?这里再复习一下几个NAT的关键点。(仅针对Cisco网络设备)
1. NAT应用的地点是网络的边界设备(路由器或防火墙)
2. 配置ACL,来控制需要转换的地址列表。
3. 将NAT应用到外网出口,并在最后添加关键字overload。
4. 将NAT功能应用到端口中,对内和对外。
……