Answers:
NAT当然可以使用CEF。这来自Cisco自己的指南,网址为:http : //www.cisco.com/en/US/tech/tk648/tk361/technologies_q_and_a_item09186a00800e523b.shtml
Q. What kind of routing performance can be expected when using Cisco IOS NAT?
A. Cisco IOS NAT supports Cisco Express Forwarding switching, fast switching, and process switching. For 12.4T release and later, fast-switching path is no longer supported. For Cat6k platform, the switching order is Netflow (HW switching path), CEF, process path.
Performance depends on several factors:
The type of application and its type of traffic
Whether IP addresses are embedded
Exchange and inspection of multiple messages
Source port required
The number of translations
Other applications running at the time
The type of hardware and processor
运行IOS-XR的更大平台(FIB分配给线卡)也支持运营商级NAT,因此它的用途不仅限于LAN。
另外,许多思科的L3交换机根本根本不做NAT
CEF是思科对其FIB的代名词。当在L3交换机中执行“ sh ip cef”时,这些信息实际上根本没有用于推送数据包,这只是用于填充硬件ASIC的软件树。
CEF仅是思科用来描述其优化数据存储/检索代码的术语,不是具有特定功能的特定技术。
在大多数硬件平台中,如果没有CEF,就不能简单地运行该框,因为需要CEF数据结构来编译硬件特定信息。
诸如MPLS之类的某些功能也依赖于CEF数据结构,因此如果没有它就无法使用。
LAN(L2)交换没有通过CEF进行抽象,因此它完全不依赖于CEF。
我推荐这本书以获取有关CEF的最新信息(这是在主要的CEF重写约12.2S之后编写的)
如果限制IP Trie FIB的CEF定义,那么显然不能将其用于NAPT,因为您无法预先确定什么是natted以及在何处。但是正如所解释的那样,CEF不是特定技术,它是更广泛的概念,因此,如果CEF是否具有NAT功能,则值得商it,我会误以为它是CEF功能:
bu.ip.fi#sh cef features global | b Local
Global Local features not attached to a specific interface:
NAT
bu.ip.fi#
如果没有CEF,我将永远不会运行任何程序,这可能仅是由于遗留原因而选择禁用它。考虑瞻博网络,他们没有用于描述同一概念的特定术语,因为他们不需要将其与某些替代方法区分开,因为不存在劣等替代方法。
这是否意味着边缘路由器和边缘L3交换机不使用CEF?CEF的用途是否仅限于LAN?
CEF很有用,因为它允许路由器在第3层转发操作期间快速重写第2层信息。WAN路由器必须像LAN交换机一样重写Layer2标头信息。CEF对两种类型的路由器都非常有用。
CEF在较高级别上执行两项功能:
例:
考虑此路由器在Serial1 / 0上具有WAN HDLC链接,并通过FastEthernet0 / 0进行LAN连接...
R1#show adjacency internal
Protocol Interface Address
IP Serial1/0 point2point(5)
0 packets, 0 bytes
0F000800 <--------- HDLC Header rewrite info
CEF expires: 00:02:17
refresh: 00:00:17
Epoch: 0
Fast adjacency disabled
IP redirect enabled
IP mtu 1500 (0x0)
Fixup disabled
Adjacency pointer 0x6663D3E0, refCount 5
Connection Id 0x000000
Bucket 6
假设去往192.0.2.1的IPv4数据包从LAN上的FastEthernet0 / 0进入路由器,并且必须在WAN上退出Serial1 / 0(在CEF表中找到了退出Serial1 / 0的事实...和CEF表引用邻接表)。
当路由器从FastEthernet0 / 0接收IPv4数据包时,路由器必须剥离以太网头,并在HDLC头之前添加HDLC头,这是0F000800
因为它是IPv4目的地(0x0800
作为HDLC“类型”值存在,表示下一个头是IPv4)。
如果CEF尚未为Serial1 / 0缓存(平凡的)报头重写信息,则必须在进程切换级别(非常慢)手动查找该信息。只要Serial1 / 0上的封装不变,这些邻接表的值就不会改变。因此,Cisco IOS在邻接表中缓存邻接重写信息。
当您查看帧中继或ATM PVC时,重写信息会涉及到更多。
这份有关CCO的文档(文档ID:17812)通过重新散布大量CCO内容,可能比我能更好地解释事情
fast-switching
)之间的实质区别在于CEF是预先计算的。但是,CEF仍然必须缓存信息,否则必须在过程交换级别上查找信息……非常慢,这是LAN和WAN接口都需要CEF的原因。