NAT详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CCN A学习指南-640-
802
第11章网络地址转换
在本章中,我打算简要介绍网络地址转换(Network Address Translation,N AT)、动态网络地址转换和端口地址转换(Port Address Translation,PAT),也称为网络地址转换复用。
当然,我将使用本书中已经用过的网络结构来举例说明网络地址转换,
你将看到使用SDM 配置NAT 是非常容易的。
在开接着以使用SDM 结束本章,
始本章之前,阅读第10 章将很有帮助,因为在我们的NAT 配置中需要使用访问列表。
何时使用NAT
类似于无类域间路由选择(Classless InterDomain Routing,CIDR),NAT 的
最初目的是允许把私有IP 地址映射到外部网络的合法IP 地址,以减缓可
用IP 地址空间的消耗。
从那时开始发现,在移植和合并网络、服务器负载共享以及创建“虚拟服务器”中,NAT 是一个很有用的工具。
因此本章中,我打算描述NAT 的基本功能和NAT 的常用术语。
有些时候,NAT 真的减少了网络环境对公网IP 地址数量的需要。
当两个
具有相同内网地址配置的公司网络合并时,NAT 必不可少。
当一个组织更换
它的互联网服务提供商(Internet Service Provider,ISP),而网络管理员不希
望更改内网配置方案时,NAT 同样很有用处。
以下是适于使用NAT 的各种情况:
你需要连接到因特网,但是你的主机没有公网IP 地址。
你更换了一个新的ISP,需要重新组织网络
你需要合并两个具有相同网络地址的内网。
NAT 一般应用在边界路由器中。
图11.1 说明了NAT 的应用位置。
现在你“NAT 真的很棒。
它是最帅、最好的网络配件,我要拥有可能认为:
它。
”好的,等一会儿。
在NAT 使用中有一些真正的障碍。
哦—不要搞错我的意思:有时我真的可以挽救你,但是有一些悲观的方面你必须要知道。
关于使用NAT 的优缺点,请对照表11.1。
图11.1 配置NAT 的地
方
表11.1 实施NAT 的优点和缺点优点缺点
节约合法注册地址减少地
址重叠出现增加连接因特
网的灵活性
网络变更时避免地址的重新分配地址转换产生交换延迟无
法进行端到端的IP 跟踪
某些应用无法在实施NAT 的网络中运行
说明:NAT 的最显著优点是节约你的合法注册地址。
这也是我们为什么没有用完IPv4 地址的原因—想一想。
网络地址类型转换
在这一节,我打算和你一起学习三种类型的NAT。
静态NAT 这种类型的NAT 是为了在本地和全球地址间允许一对一映射而设计的。
需要记住的是,静态NAT 需要网络中的每台主机都拥有一个真实的因特网IP 地址。
动态NAT 这种类型的NAT 可以实现映射一个未注册IP 地址到注册IP 地址池中的一个注册IP 地址。
你不必要像使用静态NAT 那样,在路由器上静态映射内部到外部的地址,但是你必须保证拥有足够的真实IP,保证每个在因特网中收发包的用户都有真实的IP 可用。
复用这是最流行的NAT 配置类型。
复用实际上是动态NAT 的一种形式,
它映射多个未注册的IP 地址到单独一个注册的IP 地址—一多对—通过使用不同的端口。
现在,这种方式为什么这么特别?好的,因为它也被称为端口地址映射(PAT)。
通过使用PAT(NAT 复用),可实现上千个用户仅通过一个真实的全球IP 地址连接到因特网—多么聪明,不是吗?认真地讲,使用NAT 复用是我们至今在互联网上没有使用完合法IP 地址的真实原囚。
真的—我不是在开玩笑。
说明:别担心,在本章的后面将展示如何配臵这三种类型的NAT。
NAT命名
在NAT 中,使用的地址的名字描述起来很简单。
在NAT 转换后使用的地址叫做全局地址。
它们通常是使用在因特网上的公网地址,但是请记住,如果你不进入因特网,就不需要公网地址。
在NAT 转换之前的地址叫做本地地址。
因此,内部本地地址实际上是尝试连接到因特网的发送端主机的私有地址,而外部本地地址则是目标主机的地址。
目标主机地址通常是一个公网地址(网页地址、E-mail 服务器,等等),并且也是数据包如何开始其旅程的地方。
在转换之后,内部本地地址叫做内部全局地址,而且外部全局地址变为目标主机的名字。
查看表11.2,表中列出了所有这些术语,让你对NA T 中使用的各种名字有一个更清晰的认识。
表11.2 NAT 术语
名字意义
内部本地外部本地内部全局外部全局转换之前内部源地址的名字转换之前目标主机的名字转换之后内部主机的名字
转换之后外部目标主机的名字
NAT工作原理
好的,现在我们看一下整个NAT 的工作过程。
图11.2 描述了NAT 的基本
转换。
在图11.2 展示的例子中,主机10.1.1.1 发送一个外出数据包到配置了NAT 的边界路由器。
边界路由器识别出此IP 地址为内部本地IP 地址。
目标
是外部网络,它要转换内部本地IP 地址,并把转换结果记录到NAT 表中。
图11.2 基本的NAT 转换这个数据包使用转换后新
的源地址被发送到外部接口。
外部主机返回此包到
目标主机,NAT 路由器使用NAT 表转换内部全局IP 地址为内部本地IP 地址。
整个过程就是这么简单。
让我们看一个使用复用或被称为端口地址转换的比较复杂的配置。
我将使用
图11.3 示范PAT 如何工作。
使用复用,全部的内部主机被转换为一个单独的IP 地址,因此叫做复用。
再次强调,我们没有使用完因特网上可用IP 地址的原因就是因为复用(PAT)。
再看一次图11.3 的NAT 表。
除了内部本地IP 地址和外部全局IP 地址外,我们用到了端口号。
这些端口号帮助路由器识别哪一台主机接收返回的流量。
在此例中,端口号被用在传输层,用于识别本地主机。
如果我们必须要使用
IP 地址来识别源主机,那将被称为静态NAT,而且我们将会使用完所有可用IP 地址。
PAT 允许我们使用传输层来识别主机,同时允许多达65000 台主机(理论
上)使用一个真实的IP。
图11.3 NAT 复用示例(PAT)
静态NAT 配置
让我们来看一个简单的基本静态NAT 配置:
ip nat inside source static 10.1.1.1 170.46.2.2
!
interface Ethernet0
ip address 10.1.1.10 255.255.255.0
ip nat inside
!
interface Serial0
ip address 170.46.2.1 255.255.255.0
ip nat outside
!
在上面的路由器输出中,ip nat inside source 命令识别哪一个IP 地址将被转换。
在这个配置例子中,ip nat inside source 命令在内部本地IP 地址10.1.1.1 与外部全局IP 地址170.46.2.2 之间配置了一个静态转换。
在配置中继续向下看,我们会看到每个接口下方都有ip nat 命令。
命令ip nat inside 识别接口为内部接口,命令ip nat outside 识别接口为外部接口。
当你回过去看ip nat inside source 命令,会看到这个命令把内部接口作为源地址或转换的
开始点。
这个命令也可能这样使用—ip nat outside source—把你指定的接口作为外部接口,并把这个外部接口作为源地址或是转换的开始点。
动态NAT 配置
动态NAT 意味着我们可以为内部的用户组提供真实的IP 地址池。
我们不使用端口号,因此我们必须为每个尝试连接外网的用户提供真实的IP 地址。
下面是一个动态NAT 配置的示例输出:
ip nat pool todd 170.168.2.2 170.168.2.254 netmask 255.255.255.0
ip nat inside source list 1 pool todd
!
interface Ethernet0
ip address 10.1.1.10 255.255.255.0
ip nat inside
!
interface Serial0
ip address 170.168.2.1 255.255.255.0
ip nat outside
!
access-list 1 permit 10.1.1.0 0.0.0.255
!
命令ip nat inside source list 1 pool todd 告诉路由器把匹配access-list 的IP 地址转换为名字叫todd 的IP NAT 地址池中的一个地址。
在此情况中,访问列表并不像以往那样,为了安全原因通过允许或拒绝来过滤流量。
在这里,访问列表被用来选择或指定触发流量。
当触发流量与访问列表匹配时,触发流量被放入NAT 过程进行转换。
这是访问列表常见的使用方法,访问列表并不是始终只在接口上做阻塞流量这种枯燥的工作。
命令ip nat pool todd 170.168.2.2 170.168.2.254 创建了一个地址池,这个地址池为那些需要NAT 的主机提供地址。
PAT(复用)配置
最后一个示例展示如何配置内部全局地址复用。
这是今天我们使用的典型的NAT。
现在很少使用静态或动态NAT,除非我们静态地映射一个服务器。
下面是一个PAT 配置的示例输出:
ip nat pool globalnet 170.168.2.1 170.168.2.1
netmask 255.255.255.0
ip nat inside source list 1 pool globalnet overload
!
interface Ethernet0/0
ip address 10.1.1.10 255.255.255.0
ip nat inside
!
interface Serial0/0
ip address 170.168.2.1 255.255.255.0
ip nat outside
!
access-list 1 permit 10.1.1.0 0.0.0.255
PAT 的好处是,存在于这种配置和前面的动态NAT 配置间的仅有差异是IP 地址池被缩减为一个IP 地址,并且在ip nat inside source 命令之后包含overload 命令。
注意,在示例中被用做地址池的那个IP 地址是外部接口IP 地址。
在家里或是一个小的办公室里,你的ISP 仅为你提供一个ip,配置NAT 复用真的很棒。
然而,你可以使用如170.168.2.2 这样的另外一个地址,如果地址是可用的。
这在拥有很多内部用户以至于必须在外部接口有一个以上的复用IP 地址的大规模网络配置中非常有用。
NAT 的简单验证
一旦你配置一种需要类型的NAT,典型的是复用(PAT),你就要有能力对配置进行验证。
为了查看基本IP 地址转换信息,使用下面的命令:
Router#show ip nat translation
当查看IP NAT 转换信息的时候,你将看到许多转换是从相同的主机到相同的目的主机之间的转换。
这是典型的到Web 的多个连接。
另外,可以使用debug ip nat 命令验证NAT 配置。
输出结果中的每个调试行将显示发送端地址、转换、目的地址:
Router#debug ip nat
如何从转换表中清除NAT 条目?使用clear ip nat translation 命令。
为了从
NAT 表中清除所有的条目,在命令的结尾使用星号(*)。
测试并诊断NAT故障
Cisco 的NAT 给你一些重要的能力—并且不需要费太多的力气,因为配置真的比较简单。
但是我们都知道,没有什么事是完美的,因此为了防止出现错误,你需要对下列可能的障碍做出判断:
检查动态地址池—它们是否由正确的地址范围组成
检查动态地址池是否有重叠
检查被用来静态映射的地址与动态地址池中的地址是否重叠
确定你的访问列表指定正确的转换地址
确信列表中该出现的地址没有遗漏,不该出现的地址没有被加入
确信内部和外部接口都已经恰当地界定
需要记住的一点是,在配置新的NAT 时,最常见的问题和NAT 没有特别
的关系—它通常涉及到路由选择的问题。
因此,确信那是因为你正在改变包中的
源和目的地址,路由器在转换后才知道如何处理新的地址!
想像NAT 表可以控制没有限制数量的映射。
实际上,无论如何,这涉及到类似内存和CPU 或是可用地址或端口的边界设置等,实事上,正是这些因素导致在条目数量上有一些限制。
每个NAT 映射占用大约160 字节的内存,并且有时候—但是不是很经常—条目的数景由于性能或是因为策略约束而必须被限制。
对于此类情况,需要使用ip nat translation max-entries 命令来帮助。
另一个便于用来排除故障的命令是show ip nat statistics。
执行此命令你会得到NAT 配置的汇总情况,并且对活动的转换类型进行计数。
同时,会把计数
结果与存在的映射匹配,对于没有的—后来会为它尝试创建一个映射。
这个命令
也会显示超过期限的转换。
如果你想检查动态地址池,包括它们的类型、可用地址的总数、已经分配了多少地址和失败了多少,加上已经转换的个数,可使用pool (refcount)命令。
你知道可以手工从NAT 表中清除动态NAT 条目吗?这样做非常方便,如果你需要去除一个特定的无用条目,就不用坐着等待其过期。
手工清除在清除整个NAT 表重新配置地址池的时候非常有用。
你同样也需要知道,如果地址池中的地址已经被映射,Cisco IOS 软件便不
允许你更改或删除NAT 表中的地址池。
命令clear ip nat translations 用来清除条
目—经由全局或本地地址,或是通过TCP 和UDP 转换(包括端口)指定一个单独条目,或者输入星号(*)删除整个条目表。
但是要知道,如果你这么做了,仅动态条目被删除,因为此命令不删除静态条目。
哦,还有更多—对任何内部设备有响应的任何外部设备的数据包目的地址就是通常所说的IG 地址。
这意味必须在NAT 表中保存初始化映射,这样,所有从特定连接到达的数据包才能一直被转换。
在NAT 表中保存条目也将减少相同的机器发送数据包到相同的外部目标时进行重复查找的次数。
这就是我要表达的意思:当一个条目第一次被放入NAT 表中,计时器开始计时,计时器持续的时间就是转换的有效时间。
每次包经过路由器被特定条目转换后,计时器被重置。
如果计时器计时期满,条目将从NAT 表中删除,并且动态分配的地址将回到地址池中等待再次分配。
Cisco 默认转换超时为86400 秒(24 小时),但是可以使用ip nat translation timeout 命令对此进行更改。
在我们继续介绍配置内容之前,实际使用一下刚刚讲到的命令,通过一些NAT 示例看看你是否可以根据需求规划配置。
正式开始,观察图11.4 并且问自己两个问题:此例中在哪里实施NAT,配置何种类型的NAT?
图11.4 NAT 示例
在图11.4 中,NAT 配置被放在公司路由器上,并且使用动态NAT 复用(PAT) 配置。
在这个NAT 示例中,使用了何种类型NAT?
ip nat pool todd-nat 170.168.10.10 170.168.10.20 netmask 255.255.255.0
上面的命令使用动态NAT。
命令中pool 给出了答案,另外在地址池中有不止一个地址,也意味着我们可能不使用PAT 配置。
在下一个NAT 示例中,我们在图11.5 中观察,测试是否可以规划出所需的配置。
图 11.5 的示例中展示了需要配置 NAT 的边界路由器,并且允许使用 6 个公
网 IP 地址,192.1.2.109~192.1.2.114。
然而,在内部网络中,我们拥有 63 台主机, 使用的私有地址为 192.168.10.65~192.168.10.126。
在边界路由器上应该使用什么 NAT 配置呢?
图 11.5 另一个 NAT 示例 这里两个不同的
答案都可以工作,但是下面的将是我的第一选择:
ip nat pool Todd 192.1.2.109 192.1.2.109 netmask 255.255.255.248
access-list 1 permit 192.168.10.64 0.0.0.63 ip nat inside source list 1 pool Todd overload
命令 ip nat pool Todd 192.1.2.109 192.1.2.109 netmask 255.255.255.248 设置地 址池的名字为 Todd ,并且为 NAT 使用地址 192.1.2.109 创建了一个动态地址池。
为了替换 netmask 命令,你可以使用 prefix-length 29 语句(我知道你在想什么, 但是不行,不能在路由器的接口上也这么做)。
第二个答案将与第一个具有相同 的结果,也仅使用 192.1.2.109 作为你的内部全局地址,但是你可以这么输入并 使它工作:ip nat pool Todd192.1.2.109 192.1.2.114 netmask 255.255.255.248。
这么 做是在浪费,因为第二个到第六个地址只有在 TCP 端口号冲突的情况下才会被 使用。
如果你不理解设置 access-list 的第二行命令,请查看第 10 章“安全”。
命令 ip nat inside source list 1 pool Todd overload 通过 overload 命令使用端口 地址转换(PAT)设置了动态地址池。
但是要根据适当的接口确定添加 ip nat inside 和 ip nat outside 语句。
在网络中配置NAT
好的,现在继续开始配置,并且使用64.1.1.4/30 网络连接Corp 路由器和R3 路由器,使用64.1.l.8/30 网络把LAN F0/0 连接至R3 路由器。
在NAT 开始工作后,通过本章,你将学会如何使用验证命令。
网络如图11.6 所示,在表11.3 中列出了正在使用的内部本地地址。
图11.6 用新地址的互联网络
我知道—图11.6 展示了我们曾使用的相同的网络,但是这里有一些不同。
在Corp 路由器和R3 路由器之间的连接现在使用了全局PAT 地址。
它们不能通信,因为其他的Corp 连接使用私有IP 地址。
(在真实的环境中,ISP 将会阻塞这些私有IP 地址,对吗?所以让我们使它们工作吧!)记住,当使用NAT 时,我们称
它们为“内部本地”
,意思是在转换之前,我们的ISP 阻塞私有IP 地址范围。
我们将怎么办?我们首先需要在Corp 路由器上配置NAT,让我们开始吧。
表11.3 IP 网络中的网络地址
路由器网络地址接口地址Corp
Corp Corp Corp Corp Corp
R1
R1
R1
R1
R1
R2
R2
R2
R2
R3
R3
R3
R3 871W 871W 871W 1242AP 1242AP 10.1.1.0
10.1.2.0
10.1.3.0
10.1.4.0
64.1.1.4/30
10.1.2.0
10.1.3.0
10.1.6.0
10.1.7.0
10.1.4.0
10.1.8.0
10.1.9.0
64.1.1.4/30
64.1.1.8/30
10.1.11
10.1.11.0
10.1.12.0
10.1.1.0
F0/1
S0/0/0
S0/0/1(DCE)
S0/1/0
S0/2/0
S0/0/0 (DCE)
S0/0/1
F0/0
F0/1
S0/2/0 (DCE)
D0/3/0
F0/0
S0/0/1 (DCE)
F0/0
F0/1
Vlan 1
Dot11radio0
BVI 1
10.1.1.1
10.1.2.1
10.1.3.1
10.1.4.1
64.1.1.5/30
10.1.2.2
10.1.3.2
10.1.6.1
10.1.7.1
10.1.4.2
10.1.8.1
10.1.9.1
64.1.1.6/30
64.1.1.9/30
10.1.11.1
10.1.11.2
10.1.12.1
10.1.1.2
现在我们都知道,我们需要所有连接到 Corp 路由器的网络可以和所有连接到使用64.1.1.5/30 新全局地址的R3 路由器的网络进行通信,对吗?你点头认为是—好的!我们开始吧:
Corp#config t
Corp(config)#ip nat pool Todd 64.1.1.5 64.1.1.5 net 255.255.255.252
Corp(config)#access-list 1 permit 10.1.0.0 0.0.255.255
Corp(config)#ip nat inside source list 1 pool Todd overload
在添加接口配置之前,
注意我使用Corp 路由器的外部接口的IP 地址64.1.1.5 作为地址池的开始和结束地址。
我这么做是因为,使用PAT 时它可以很好地工
作。
无论如何,不要忘记在所有接口配置NAT:
Corp(config)#int s0/2/0
Corp(config-if)#ip nat outside
Corp(config-if)#int f0/1
Corp(config-if)#ip nat inside
Corp(config-if)#int s0/0/0
Corp(config-if)#ip nat inside
Corp(config-if)#int s0/0/1
Corp(config-if)#ip nat inside
Corp(config-if)#int s0/1/0
Corp(config-if)#ip nat inside
Corp(config-if)#
现在PAT 已经配置,而且所有的接口已经设置完毕,让我们从主机 C 远程登录到主机D 等等,首先应该从一台主机ping 另一台主机,接着再telnet:Corp#sh ip nat trans
Pro Inside global Inside local Outside local Outside global icmp 64.1.1.5:271 10.1.9.2:271 64.1.1.10:271
64.1.1.10:271 tcp 64.1.1.5:11000 10.1.9.2:11000 64.1.1.10:23
64.1.1.10:23
Corp#
现在我将在Corp 路由器上开始debug ip nat,接着从主机 B telnet 至主机D。
我们看一看Corp 路由器的输出:
Corp#debug ip nat
*May 9 22:57:47.679: NAT*: TCP s=11000->1024, d=23
*May 9 22:57:47.679: NAT*: s=10.1.6.2->64.1.1.5, d=64.1.1.10 [0]
*May 9 22:57:47.683: NAT*: TCP s=23, d=1024->11000
*May 9 22:57:47.683: NAT*: s=64.1.1.10, d=64.1.1.5->10.1.6.2 [0]
*May 9 22:57:47.699: NAT*: TCP s=11000->1024, d=23
*May 9 22:57:47.699: NAT*: s=10.1.6.2->64.1.1.5, d=64.1.1.10 [1]
*May 9 22:57:47.703: NAT*: TCP s=23, d=1024->11000
*May 9 22:57:47.703: NAT*: s=64.1.1.10, d=64.1.1.5->10.1.6.2 [1]
*May 9 22:57:47.707: NAT*: TCP s=11000->1024, d=23
*May 9 22:57:47.707: NAT*: s=10.1.6.2->64.1.1.5, d=64.1.1.10 [2]
*May 9 22:57:47.711: NAT*: TCP s=11000->1024, d=23
*May 9 22:57:47.711: NAT*: s=10.1.6.2->64.1.1.5, d=64.1.1.10 [3]
*May 9 22:57:47.719: NAT*: TCP s=23, d=1024->11000
*May 9 22:57:47.719: NAT*: s=64.1.1.10, d=64.1.1.5->10.1.6.2 [2]
*May 9 22:57:47.723: NAT*: TCP s=23, d=1024->11000
*May 9 22:57:47.723: NAT*: s=64.1.1.10, d=64.1.1.5->10.1.6.2 [3]
*May 9 22:57:47.723: NAT*: TCP s=11000->1024, d=23
*May 9 22:57:47.723: NAT*: s=10.1.6.2->64.1.1.5, d=64.1.1.10 [4]
*May 9 22:57:47.731: NAT*: TCP s=11000->1024, d=23
*May 9 22:57:47.731: NAT*: s=10.1.6.2->64.1.1.5, d=64.1.1.10 [5]
*May 9 22:57:47.735: NAT*: TCP s=23, d=1024->11000
*May 9 22:57:47.735: NAT*: s=64.1.1.10, d=64.1.1.5->10.1.6.2 [4]
*May 9 22:57:47.735: NAT*: TCP s=11000->1024, d=23
*May 9 22:57:47.735: NAT*: s=10.1.6.2->64.1.1.5, d=64.1.1.10 [6]
*May 9 22:57:47.747: NAT*: TCP s=11000->1024, d=23
*May 9 22:57:47.747: NAT*: s=10.1.6.2->64.1.1.5, d=64.1.1.10 [7]
*May 9 22:57:47.951: NAT*: TCP s=11000->1024, d=23
*May 9 22:57:47.951: NAT*: s=10.1.6.2->64.1.1.5, d=64.1.1.10 [8]
*May 9 22:57:48.103: NAT*: TCP s=23, d=1024->11000
*May 9 22:57:48.103: NAT*: s=64.1.1.10, d=64.1.1.5->10.1.6.2 [5]
Corp#
好的,至少这是一个很有趣的输出结果!在第一行显示主机 B 使用的源和目的端口号。
第二行显示通过使用最后列出的外部本地/全局地址,将内部源地址转换为内部全局地址—接着,从外部主机返回到主机B。
我们使用show ip nat translation 命令验证所有的转换:
Corp#sh ip nat trans
Pro Inside global Inside local Outside local Outside global tcp 64.1.1.5:11000 10.1.9.2:11000 64.1.1.10:23 64.1.1.10:23 Corp#
现在,我们在Corp 路由器上使用show ip nat statistics 命令:
Corp#sh ip nat stat
Total active translations: 2 (0 static, 2 dynamic; 2 extended)
Outside interfaces:
Serial0/2/0
Inside interfaces:
FastEthernet0/1, Serial0/0/0, Serial0/0/1, Serial0/1/0
Hits: 269 Misses: 13
CEF Translated packets: 227, CEF Punted packets: 0
Expired translations: 27
Dynamic mappings:
-- Inside Source
[Id: 1] access-list 1 pool Todd refcount 2
pool Todd: netmask 255.255.255.252
start 64.1.1.5 end 64.1.1.5
type generic, total addresses 1, allocated 1 (100%), misses 0 Queued Packets: 0
Corp#
这里我们可以看到我们的配置汇总、两个活动的转换,以及正在使用的内部和外部接口。
输出结果的底部列出了地址池。
所有这些看起来都很正常,因此是使用SDM 配置NAT 的时候了。
使用SDM配置NAT
使用SDM 配置NAT 比想像的要容易得多—当然对你来说更是如此,因为通过第10 章学习你对此已有所了解。
无论如何,你所要做的就是单击Configure→NAT,出现很方便的向导,它会手把手教你创建一个NAT 规则。
这个向导类似于第 10 章中创建防火墙时的那个向导,同时也像第 10 章一样,有不止一个向导,你需要选择基本的和高级的向导。
基本NAT 如果你的可信网需要访问因特网,且可信网中有一些基本PC/ 主机,则使用这个向导。
此向导将引导你创建一个基本的NAT 配置。
高级NAT 如果你的内部网络中拥有隔离区(DMZ)或是服务器,同时接受外网的访问,你绝对需要选择高级NAT 配置。
第一个屏幕是创建NAT 配置屏幕。
从这里开始,我将简单地连接并创建一个基本NAT。
之后,单击Launch the Selected Task 按钮,得到下一个屏幕,告诉我们基本NAT 向导接下来要做的事。
像你猜到的一样,它很棒—所有我要做的就是单击Next 按钮,得到一个可以选择内部和外部地址的屏幕。
看起来熟悉?好的—这说明你很用心。
在选择了内部和外部接口之后,单击Next 按钮。
NAT 地址池创建完成,所有接口指派了内部或外部配置,就像刚才一样!
最后,单击Finish 按钮。
让我们看一看路由器上都做了什么。
下面是接口的配置:
!
interface FastEthernet0/0
ip address 1.1.1.1 255.255.255.0
ip nat inside
ip virtual-reassembly
duplex auto
speed auto
!
interface FastEthernet0/1
description Connection to 1242 AP
ip address 10.1.1.1 255.255.255.0
ip nat inside
ip virtual-reassembly
duplex auto
speed auto
!
[output cut]
!
interface Serial0/2/0
description Connection to R3$FW_OUTSIDE$
ip address 64.1.1.5 255.255.255.252
ip access-group 103 in
ip verify unicast reverse-path
ip nat outside
ip inspect SDM_LOW out
ip virtual-reassembly
clock rate 2000000
!
[output cut]
下面是ip nat inside source list 被创建:
ip nat inside source list 2 interface Serial0/2/0 overload
!
[output cut]
最后,为每一个内部网络接口创建访问列表:
access-list 2 remark SDM_ACL Category=2
access-list 2 permit 1.1.1.0 0.0.0.255
access-list 2 permit 10.1.4.0 0.0.0.255
access-list 2 permit 10.1.1.0 0.0.0.255
access-list 2 permit 10.1.2.0 0.0.0.255
access-list 2 permit 10.1.3.0 0.0.0.255
我知道我已经在本书中重复了一遍又一遍,但是我喜欢重复这个是因为要确
保你知道,SDM 在创建类似ACL、VPN、NAT 的高级配置中,真的是一个非常有用的工具。
这点就是我需要你牢牢记住的,接下来的两章也会再次证明这一点!
本章小结
这确实是非常有趣的章节。
快点—承认它吧!你学到了许多关于网络地址转换(NAT)以及如何配置静态NAT、动态NAT 和端口地址转换(PAT)—也叫做NAT 复用的配置。
我也描述了如何在网络中应用每种类型NAT,以及每种类型的配置方法。
另外,为了便于你理解,我还使用了本书中已经出现的网络,简单地在上面添加了NAT 复用(PAT)。
同时,本章还使用了一些验证和故障排除命令,最后还展示了如何使用SDM 快速容易地完成NAT 的配置。
考试要点
理解NAT 术语。
这对你来说像是新闻一样,因为之前我没有提及,但是NAT 有很多别名。
在行业中,它被认为是网络伪装,IP 伪装,但其实就是Native Address Translation (本机地址转换)的缩写。
无论你叫它什么,基本上,它们都涉
及到IP 包经过路由器或是防火墙时,重新改写IP 包的源/目的地址的过程。
把
重点放在发生的过程上并理解它(例如,重要的部分),你就可以确信掌握它了!
记住NAT 的三种方式。
三种方式是静态、动态和复用,也叫做端口地址
转换(PAT)。
理解静态NAT。
这种类型的NAT 被设计为允许本地和全局地址一对一映射。
理解动态NAT。
此类型使得你可以在一个未注册的IP 地址与注册IP 地址池中的一个注册IP 地址之间进行映射。
理解复用。
复用实际是动态NAT 的一种形式,通过使用不同的端口,映射
多个未注册IP 到一个注册的IP 地址—多对一,也被称为端口地址转换(PAT)。