本文欢迎转载,转载请注明出处和作者。
众所周知,私网IP地址是不能在公网上通信的,那么,平日在办公室或者家里使用的都是192.168.1.0或者10.0.0.0的私网地址,是如何与外界通信的呢。这个时候,就需要做通过NAT,做公网地址映射。
1、网络拓扑
实验拓扑如下:
2、预配置
R1:
en
conf t
int lo 0
ip add 1.1.1.1 255.255.255.0
int se2/0
ip add 202.96.1.1 255.255.255.0
clock rate 64000
no shut
int fa0/0
ip add 192.168.1.1 255.255.255.0
no shut
ISP:相当于运营商的路由器
en
conf t
host ISP
int lo 0
ip add 2.2.2.2 255.255.255.0
int s2/0
ip add 202.96.1.2 255.255.255.0
no shut
SW:只做傻瓜式二层交换机,什么都不用配置。
PC0、PC1:分别配置为192.168.1.2、192.168.1.3,然后网关设置为192.168.1.1。
R1模拟公司出口路由器,配置默认路由指向ISP(运营商),就是无论什么不知道的目的IP,都往默认路由指向的下一条地址扔。
R1:
ip route 0.0.0.0 0.0.0.0 202.96.1.2
查看R1路由表,看不到具体到2.2.2.2的路由条目,但是能够看到默认路由。
当前,R1用默认ping通R2上面的2.2.2.2的。但是用扩展ping,用R1上的loopback地址,是ping不通R2的。
前面已经说过,因为默认ping是用R1的接口地址来作为原地址ping R2,而R1的接口地址与R2是直连的,所以R2上面有直连路由,所以R2能够回包。而如果改为扩展ping,采用R1的loopback地址ping 2.2.2.2,R1通过默认路由将包扔给R2,但是R2上面没有到1.1.1.1的路由条目,就会回不了包。
同理,此时PC0、PC1只能ping通在R1上面的网关,但是ping不通R2上面的2.2.2.2。因为包能够到网关,并且通过默认路由扔给R2,但是R2上面没有到192.168.1.0/24这个网段的路由。
现实生产环境,由于内网一般都用私网地址,这些地址是每个公司/用户都可以复用的,不能在公网上路由的,所以也不会采取把该网段通过R1宣告给R2的方法,那么要内网(PC0、PC1)能够访问外网,就必须在R1上面做NAT了。
3、静态NAT
静态NAT,相当于每个私网地址,都要给它转换为一个单独的公网地址。
先将整个网络的IP地址配好,但是不需要在R1上面做任何路由宣告。
此时,内网PC0与PC1是无法访问ISP(公网运营商),模拟公网运营商。
此时,需要在R1上面设置NAT静态映射。R1进入conf t
ip nat inside source static 192.168.1.2 202.96.1.3
ip nat inside source static 192.168.1.3 202.96.1.4
int s2/0
ip nat outside
//设置为出接口
int fa0/0
ip nat inside
//设置为入接口
配置完毕后,PC0立刻可以访问ISP的接口地址了。(相当于可以访问公网的地址了)
而至于ISP后面还有什么其他互联网地址,只需要ISP那边通过动态路由协议,并且将网段宣告过来,路由可达就可以互通了。
4、动态NAT
上面的NAT,非常耗费公网IP地址,因为每个私网地址都要消耗一个公网地址,而公网地址有限,而且需要付费租用,因此,可以动过动态NAT,来建立一个地址池,按需分配。
其实主要命令上面修改一下就可以了,修改为
ip nat pool NAT 202.96.1.3 202.96.1.100 netmask 255.255.255.0
//NAT为公网IP地址池的名字,然后规定开始到结束的地址。
ip nat inside source list 1 pool NAT
//匹配ACL与地址池
access-list 1 permit 192.168.1.0 0.0.0.255
//将死亡地址划入对应的ACL,实现了私网地址段与公网地址池的匹配
然后依然是挂载到出站与入站接口。
int s2/0
ip nat outside
//设置为出接口
int fa0/0
ip nat inside
//设置为入接口
此时,如果,公网地址202.96.1.3~202.96.1.100的地址,会被192.168.1.0/24这个私网地址段的终端共用,有访问外网需求的时候,自动会轮询分配着公网IP使用。
5、PAT
上述动态NAT方案,对于有一大堆笔记本等办公终端要访问外网的企业,还是太亏了。100个公网地址,轮着使用,也就是相当于同一时间访问外网,只能有100个人在线,肯定无法满足要求。因此,有没有更省IP地址的方案呢,答案是有的,就是PAT。
PAT采用1个公网地址,然后后面自动增加端口号,来匹配到私网IP,实现多人通过同一个公网IP来上网。
例如PC0可能使用202.96.1.3:20001,而PC1使用202.96.1.3:20002,端口号有65535个,那么1个公网IP就可以给6万多个人同时使用了。
而且配置命令上,与动态NAT是一致的,只需要增加一个overload单词就可以了。
ip nat pool NAT 202.96.1.3 202.96.1.100 netmask 255.255.255.0 overload
最后增加的overload,会自动启用PAT模式。
网友评论