NAT的三种形态

这一篇讲NAT,NAT其实就是IP地址转换,转换是不区分公有IP还是私有IP,他只是有转换IP这个功能,灵活使用就可以了。

看一下分类

1、SAT 静态地址转换

一对一的地址转换。

2、DAT动态地址转换

将一个或者多个地址转换成一组地址中的一个或者多个,动态的决定哪两个IP进行转换。

3、PAT端口地址转换

将一个或者多个地址转换成出接口的IP的不同端口(port)。

1和2可能比较好理解,我来举个例子方便理解一下3。

我内网有192.168.1.0/24网段PC10台,网络采用固定IP网络,即网关出接口的IP是一个公网IP 202.99.99.99,PAT就是将内网的10台PC的IP进行转换,192.168.1.1转换成202.99.99.99 port:42000,192.168.1.2转换成202.99.99.99 port:42001,接口是我举例的不是真的,但是原理就是这样,通过不同的接口,区分不同的ip地址转换,当数据流结束以后,这个绑定会解除。

这里说一下,NAT其实很多地方都会用到,所以在ccna里我觉得他也是重点之一。

------------------------------------------------------------------------------------------------------------

废话不多说,我用一个实验,去说一下三种NAT怎么配置


我模拟了一个没有冗余的基本公司环境

1、AccessSW连接pc,DHCP获取1.1.1.100~150

2、WebSW连接的是一个Web服务器集群

3、AloneServer作为一个独立的发布的Server

4、CoreSW是核心三层交换机,上面会配置PC的DHCP

5、GW作为转发层设备,上面会有默认路由,回程路由

6、ISP作为运营商一端的设备,是无法配置路由等等的,我就给他配上IP,其他什么也不动。

我会把这些配置都配好,然后我们看一下,各个pc和Server能ping到哪里?为什么?

----------------------------------------------------------------------------------------------------------------

配置完成!然后测试,发现最远可以ping通GW的e0/0接口192.168.1.1,这时候你就说了,我不是给GW配了默认路由指向ISP么?对的,但是回程路由呢?ISP收到来自1.1.1.0网段,2.2.2.0网段,3.3.3.0网段,这么多私有地址,全世界会有无数个,他怎么知道谁是谁?(讲道理,GW和ISP之间使用的IP也必须是公有IP,大家自己脑补一下)

还有就是,ISP可是运营商的设备,他不可能让你去配置。那怎么办?内部网络不通,那我再试一下,从GW去pingISP所拥有的所有网段,发现没有问题,这是为什么?因为,GW和ISP是直连路由,ISP当然知道GW的存在,也知道怎么去GW。说道这里,我就简单的解释一下NAT到底做了些什么。

NAT会把一个指定的IP或者网段,转换成一个或者多个与对端设备可以通信的IP地址,也就是同网段,这个网段可以是私有,可以是公有,并且NAT会记录下这些转换,当接收到回程数据包的时候,就会一一的转发。

那么我内部有各种不同的IP环境,需要转换的方式不一样,这就需要NAT的三种模式解决这个问题。

接下来我会完成三种NAT

1、AloneServer做Static NAT(SAT)

2、WebServer集群做Dynamic NAT(DAT)

3、PC做Port NAT(PAT)

-------------------------------------------------------------------------------------------------------------

不管什么NAT都要先确定内部接口和外部接口(NAT是在GW上做的)

GW#conf t
GW(config)#int e0/1
GW(config-if)#ip nat inside                        //确定内部接口
GW(config-if)#int e0/0                           
GW(config-if)#ip nat outside                      //确定外部接口

---------------------------------------------------------------------------------------------------------------

先做SAT

GW(config)#ip nat inside source static 3.3.3.10 192.168.1.10
命令就这一句,我解释一下

ip nat-------创建nat

inside source---------内部源

static---------静态

3.3.3.10---------AloneServer的IP地址(内部本地IP---Inside local IP address)

192.168.1.10-----------------转换之后的IP(内部全局IP---Inside Global IP address)

注意:这里我再强调一下,192.168.1.0这个网段,如果是真实情况,应该是一个公有地址的网段

然后从AloneServer ping 一下 202.96.209.133就通了,我在ISP上起了debug ip icmp看一下收到的ping包是从哪里发来的

*Mar  1 00:45:02.911: ICMP: echo reply sent, src 202.96.209.133, dst 192.168.1.10

可以看到目标地址已经变成了192.168.1.10,转换成功

--------------------------------------------------------------------------------------------------------------------

接下来做DAT

1、做一个访问控制列表,之后会将网段和DAT进行绑定,由于一个路由器上未必只有一个DAT。

GW(config)#access-list 1 permit 2.2.2.0 0.0.0.255      //注意反掩码

2、设置转换之后的地址池(公网的)。

GW(config)#ip nat pool Web 192.168.1.100 192.168.1.200 prefix-length 24

Web是这个地址池的名字可以自定义

prefix-length是子网掩码\也可以用Netmask(可以打问号看一下,效果是一样的)

3、绑定

GW(config)#ip nat inside source list 1 pool Web

list1和Web进行绑定,然后从Web1和Web2 PING 202.96.209.133,就可以通了

检查debug

*Mar  1 01:02:35.783: ICMP: echo reply sent, src 202.96.209.133, dst 192.168.1.101
*Mar  1 01:02:39.847: ICMP: echo reply sent, src 202.96.209.133, dst 192.168.1.100

可以发现,他已经接收到了之前我规定的地址池网段,所发来的ICMP包

----------------------------------------------------------------------------------------------------------------

最后给PC做PAT

1、GW(config)#access-list 2 permit 1.1.1.0 0.0.0.255
1.1.1.0是pc的网段

2、GW(config)#ip nat inside source list 2 interface e0/0 overload

绑定NAT outside接口,并且设置复用(overlord)

PING测试

pc1和pc2都ping一下ISP的202.96.209.133,结果是通然后查看一下ISP的debug信息

*Mar  1 01:16:21.339: ICMP: echo reply sent, src 202.96.209.133, dst 192.168.1.1
*Mar  1 01:16:22.363: ICMP: echo reply sent, src 202.96.209.133, dst 192.168.1.1
发现都是GW的e0/0接口的IP,我在GW上使用查看NAT转换的命令

GW#sh ip nat translations
Pro Inside global      Inside local       Outside local      Outside global
icmp 192.168.1.1:1024  1.1.1.100:22733    202.96.209.133:22733 202.96.209.133:1024
icmp 192.168.1.1:23245 1.1.1.100:23245    202.96.209.133:23245 202.96.209.133:23245
icmp 192.168.1.1:23501 1.1.1.100:23501    202.96.209.133:23501 202.96.209.133:23501
icmp 192.168.1.1:22221 1.1.1.101:22221    202.96.209.133:22221 202.96.209.133:22221
icmp 192.168.1.1:22477 1.1.1.101:22477    202.96.209.133:22477 202.96.209.133:22477
我截取了一下,1.1.1.100是PC1           1.1.1.101是pc2

可以看到他们被转换成了192.168.1.1的不同端口(port),他就是这么工作的。发过去是这个端口,回复也是这个端口,这样NAT就能知道,到底应该转发给谁了。

---------------------------------------------------------------------------------------------------------------




好了NAT就全部完成了,正常的CCNA其实也就到这里。之后我还会有一片HSRP和端口聚合的实验,基本上这个实验我会按照最真实的环境去配置,保证物理上的冗余,和线路上的冗余。

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值