公告

方向:Security or Service Provide ? 哪一个更好?

博客统计信息

51cto推荐博客
用户名:boris.sang
文章数:7
评论数:85
访问量:34499
无忧币:1320
博客积分:682
博客等级:2
注册日期:2007-08-25

CEF采用一个4级每级256条通道结构的转发表来指明转发条目的位置,转发表有next hop等信息,涵盖了整个IPv4的地址范围,并有指针指向另一个邻接表。转发条目(MAC地址之类)都存储在一个单独的邻接表上。这两个表包括了所有的转发信息,而这些转发信息是根据路由表和ARP来构造的。

CEF简化了查询的步骤,提高了单位时间的工作效率。而且从整体上来看,路由信息和转发信息是分离的,数据包的转发只根据转发信息而不用参照路由信息,可以充分利用专用硬件的功能来达到线速转发,而不受路由变化或者其他因素的干扰,保证了转发的高速高效。
..
某日,一过去同事给我打电话,询问关于NAT后的设备访问问题,现解决如下:
如图所示,该企业申请ADSL上网,只获得了一个公有合法IP地址。企业有一个WEB服务器提供访问,可以使用端口地址重定向功能来完成。


Router(config)#int e0                                                      (1)
Router(config-if)#ip add 10.1.1.254 255.255.255.0
Router(config-if)#ip nat inside
Router(config)#int e1
Router(config-if)#ip add 202.1.1.1 255.255.255.252
Router(config-if)#ip nat outside
Router(config)#ip nat inside source static tcp 10.1.1.1  80  202.1.1.1  80           (2)
Router(config)#access-list 1 permit 10.1.1.0 0.0.0.255                            (4)
Router(config)#ip nat inside source list 1 interface e1 overload                     (5)
Router(config)#ip route 0.0.0.0 0.0.0.0 202.1.1.2                                (6)
命令解释:
(1):配置路由器接口IP地址及标记NAT的内部端口和外部端口
(2):当外部用户访问服务器202.1.1.1:80,路由器使用静态NAT的方式转到10.1.1.1:80
(4):配置标准访问控制列表,匹配内部10.1.1.0/24网络的主机
(5):配置PAT,允许内部10.1.1.0/24用户能够进行NAT转换
(6):配置静态路由,使经过NAT转换后的数据包能够发送至ISP
经过这些配置后,企业内部网络用户能够正常访问外部资源,外部Internet用户能够浏览该企业的网站(假设网站地址为[url]www.51jifen.com[/url])。这时候,我们会发现企业内部网络用户无法使用[url]www.51jifen.com[/url]来访问内部网站。
 
现解决该问题办法如下:
Router(config)#ip dns server                                            (1)
Router(config)#ip domain-lookup                                        (2)
Router(config)#ip name-server 202.96.64.68                               (3)
Router(config)#ip host [url]www.51jifen.com[/url] 10.1.1.1                           (4)
内部网络主机的DNS配置成10.1.1.254
命令解释:
(1):启用路由器DNS服务功能
(2):启用DNS的外部查询功能,一般来说,该功能路由器缺省启用
(3):指定所查找的上级DNS服务器地址(根据本地情况确定)
(4):手工配置DNS本地条目
搞定。注意:如果路由器负担较重,请另外建立一个内部DNS服务器。
 
另外,如果企业规模不是很大,还可以让路由器担当DHCP服务器功能。新增配置如下:
Router(config)#server dhcp
Router(config)#ip dhcp excluded-address 10.1.1.254
Router(config)#ip dhcp excluded-address 10.1.1.1
Router(config)#ip dhcp pool  ABC
Router(dhcp-config)#network 10.1.1.0 /24
Router(dhcp-config)#dns-server 10.1.1.254
Router(dhcp-config)#default-router 10.1.1.254
 [/img]..
类别:NAT技术|阅读(3758)|回复(18)|(1)阅读全文>>
2007-09-03 16:02:51

作者注:就NAT技术,已经有四篇文章介绍了,这是最后一篇文章。第一个文章对NAT技术的简单介绍,第二篇文章开始也仅仅是一些普通配置。第三篇文章应该是最有看点的,估计这个解决方案很少有人知道。就文章的难度而言,第四篇是最难理解的,估计很少有人能够看懂。这一次是关于NAT的最后一个问题,大家可能不太关注这些。但是SNAT是NAT技术的重要内容,先写上一些再说吧
冗余链路是很多网络所关注的问题,Cisco公司的NAT技术提供在两种情况下的冗余:
1、  在小型网络中使用的冗余技术,静态NAT和HSRP协议配合使用
2、  ..
类别:NAT技术|阅读(2312)|回复(16)|(0)阅读全文>>
2007-08-30 17:22:35
NAT技术四
一、使用ACL控制转换
如下图所示:网络A和网络B都连接到Internet。由于业务需要,两个网络需要相互访问,因而在路由器A和路由器B之间建立了IPsec VPN。当网络A和网络B之间互访时,则不必做NAT转换。


路由器A配置如下:
Router(config)#access-list 100 deny ip 192.168.10.0 0.0.0.255 192.168.20.0 0.0.0.255  (1)
Router(config)#access-list 100 permit ip 192.168.10.0 0.0.0.255 any
Router(config)#ip nat inside source list 100 interface e1 overload               (2)
Router(config)#int e0
Router(config-if)#ip add 192.168.10.1 255.255.255.0
Router(config-if)#ip nat inside
Router(config)#int e1
Router(config-if)#ip add 202.1.1.1 255.255.255.252(外部接口地址)
Router(config-if)#ip nat outside
命令详解:
(1)       访问控制列表100是用来匹配出进行NAT转换的数据包,第一个条目中从192.168.10.0到192.168.20.0的数据包不需要进行转换,到其它网络的数据包需要转换(关于VPN内容,以后有机会再说)。
(2)       符合访问控制列表的流量进行PAT转换
 
如果该单位能申请到较多的IP地址,路由器A的配置可能如下:
Router(config)#access-list 100 deny ip 192.168.10.0 0.0.0.255 192.168.20.0 0.0.0.255  (1)
Router(config)#access-list 100 permit ip 192.168.10.0 0.0.0.255 any
Router(config)#ip nat pool Real_add 202.1.1.2 202.1.1.200 netmask 255.255.255.0    (2)
Router(config)#ip nat inside source list 100 pool Real_add                        (3)
Router(config)#int e0
Router(config-if)#ip add 192.168.10.1 255.255.255.0
Router(config-if)#ip nat inside
Router(config)#int e1
Router(config-if)#ip add 202.1.1.1 255.255.255.252(外部接口地址)
Router(config-if)#ip nat outside
命令详解:
(1)       匹配需要进行转换的流量
(2)       配置可以用来转换的地址池
(3)       进行NAT转换配置,符合访问控制列的的流量使用地址池中的地址进行转换。
 
这时候使用访问控制列表来进行NAT转换的时候,NAT转换表中形的条目是这样的:
Pro    Inside global      Inside local      Outside local    Outside global
---     202.1.1.1         192.168.10.10    ----            ----
也就是说,当使用访问控制列表来进行NAT转换时,不能形成一个完整的条目。这在某些应用中会产生问题,所以需要其它的技术,来形成一个完整的NAT转换条目。
 
二、使用路由图控制转换
如图所示,企业为了优化网络访问,申请了两个ISP的宽带线路。可以提高内部用户访问Inbernet的速度。
对于这个企业的需求,对网络的优化方案如下:
1)        当内部用户所需要的资源在ISP1时,需要从E1端口进行通讯;当内部用户所需要的资源在ISP2时,需要从E0端口通讯。
2)        不同ISP网络上所来的访问,需要从各自的线路返回。


在这种拓扑中,如果使用ACL来控制NAT的转换,就会出现问题,比如说我们作了如下配置:(假设从ISP1的网络为100.1.1.0/24,从ISP2的网络地址为200.1.1.0/24)
NAT部分:
Router(config)#ip nat pool isp1 100.1.1.2 100.1.1.254 prefix-length 24
Router(config)#ip nat pool isp2 200.1.1.2 200.1.1.254 prefix-length 24
Router(config)#access-list 100 permit ip 10.1.1.0 0.0.0.255 100.1.1.0 0.0.0.255
Router(config)#access-list 101 permit ip 10.1.1.0 0.0.0.255 200.1.1.0 0.0.0.255
Router(config)#ip nat inside source list 100 pool isp1
Router(config)#ip nat inside source list 101 pool isp2
Router(config)#int e0
Router(config-if)#ip nat inside
Router(config)#int e1
Router(config-if)#ip nat outside
Router(config)#int e2
Router(config-if)#ip nat outside
命令详解:(略)
如果内部一台主机10.1.1.10对外部进行一次telnet访问后,NAT转换表中形的条目如下:
Pro  Inside global      Inside local       Outside local      Outside global
tcp  100.1.1.10:57767   10.1.1.1:57767     100.1.1.3:23       100.1.1.3:23
---   100.1.1.10         10.1.1.1           ---                ---
如果该主机现在想访问ISP2的一个资源,NAT表中会出现如下情况:
Pro Inside global      Inside local       Outside local      Outside global
tcp 100.1.1.10:24597   10.1.1.1:24597     200.1.1.3:23       200.1.1.3:23
tcp 100.1.1.10:26160   10.1.1.1:26160     100.1.1.3:23       100.1.1.3:23
--- 100.1.1.10         10.1.1.1           ---                ---
注意:这时候外出的数据包中的源IP地址是ISP1的地址。因而返回的数据包会从ISP2转到ISP1网络,再回到企业内部。所以在这种情况下,不能使用ACL来进行NAT的过滤。
 
可使用路由图来形成转换的配置如下:
Router(config)#ip nat pool isp1 100.1.1.10 100.1.1.100 prefix-length 24
Router(config)#ip nat pool isp2 200.1.1.10 200.1.1.100 prefix-length 24
Router(config)#access-list 100 permit ip 10.1.1.0 0.0.0.255 100.1.1.0 0.0.0.255
Router(config)#access-list 101 permit ip 10.1.1.0 0.0.0.255 200.1.1.0 0.0.0.255
Router(config)#route-map isp1-map permit 10                        (1)
Router(config-route-map)#match ip address 100                       (2)
Router(config)#route-map isp2-map permit 10                        (3)
Router(config-route-map)#match ip address 101
Router(config)#ip nat inside source  route-map  isp1-map  pool isp1    (4)
Router(config)#ip nat inside source  route-map  isp2-map  pool isp2
Router(config)#int e0
Router(config-if)#ip nat inside
Router(config)#int e1
Router(config-if)#ip nat outside
Router(config)#int e2
Router(config-if)#ip nat outside
命令详解:
(1)       建立ISP1的路由图
(2)       符合访问控制列表的流量适用于路由图
(3)       建立ISP2的路由图
(4)       调用路由图,建立NAT的转换映射
这种配置时,内部用户访问外部的时候,就形成了完整的NAT转换表。才能达到优化网络的目的。
Pro Inside global      Inside local       Outside local      Outside global
tcp 100.1.1.10:11787   10.1.1.1:11787     100.1.1.3:23       100.1.1.3:23
tcp 200.1.1.10:14877   10.1.1.1:14877     200.1.1.3:23       200.1.1.3:23[/img]..
类别:NAT技术|阅读(2031)|回复(17)|(0)阅读全文>>
2007-08-29 20:23:11
NAT技术三
在第二篇NAT介绍文章中,提供了NAT的负载均衡的配置。但是,那种简单的负载均衡有较多的局限性:
1、      不检查内部服务器的状态,可能会造成路由黑洞。
2、      不能灵活调整服务器的负载
为了解决这些问题,开始提出新的技术,引入了服务器负载平衡(Server Load Balancing)技术。该技术提供两种工作模式:定向模式和分派模式。
 
一、定向模式:
在定向模式中,给服务器指定一个IP地址,真实的服务器不知道这个地址。在数据包进行转发的时候,需修改..
2007-08-26 22:11:22
NAT技术二
一、         端口地址重定向:
如图所示,该企业申请ADSL上网,只获得了一个公有合法IP地址。为了企业的应用,可以使用端口地址重定向功能来完成。


Router(config)#int e0                                                      (1)
Router(config-if)#ip add 10.1.1.254 255.255.255.0
Router(config-if)#ip nat inside
Router(config)#int e1
Router(config-if)#ip add 202.1.1.1 255.255.255.252
Router(config-if)#ip nat outside
Router(config)#ip nat inside source static tcp 10.1.1.1  80  202.1.1.1  80           (2)
Router(config)#ip nat inside source static tcp 10.1.1.2  21  202.1.1.1  21           (3)
Router(config)#ip nat inside source static tcp 10.1.1.2  20  202.1.1.1  20
Router(config)#access-list 1 permit 10.1.1.0 0.0.0.255                            (4)
Router(config)#ip nat inside source list 1 interface e1 overload                     (5)
Router(config)#ip route 0.0.0.0 0.0.0.0 202.1.1.2                                (6)
命令解释:
(1):配置路由器接口IP地址及标记NAT的内部端口和外部端口
(2):当外部用户访问服务器202.1.1.1:80,路由器使用静态NAT的方式转到10.1.1.1:80
(3):当外部用户访问服务器202.1.1.1:21,路由器使用静态NAT的方式转到10.1.1.1:21(由于FTP问题较复杂,这儿仅以一种FTP的应用为例)
(4):配置标准访问控制列表,匹配内部10.1.1.0/24网络的主机
(5):配置PAT,允许内部10.1.1.0/24用户能够进行NAT转换
(6):配置静态路由,使经过NAT转换后的数据包能够发送至ISP
 
二、         地址交叉(地址重叠):
如果两个网络当前的网络地址出现相同的情况,且目前又需要两个网络之间相互直接通讯。这种情况被称之为地址重叠。如下图所示:


这时候可能出现多种情况:两个网络中都有双方需要访问的服务器
                        只有一方网络中有双方需要访问的服务器(如上图)
不同的网络情况,配置时略有不同。概括起来讲,解决这个问题有两种方案:
1、  静态转换
 Router(config)#ip nat inside source static network 10.1.1.0 192.168.1.0 /24   (1)
 Router(config)#ip nat outside source static network 10.1.1.0 192.168.2.0 /24  (2)
 Router(config)#ip route 0.0.0.0 0.0.0.0 e1
 Router(config)#int e0
 Router(config-if)#ip add 10.1.1.254 255.255.255.0
 Router(config-if)#ip nat inside
 Router(config)#int e1
 Router(config-if)#ip nat outside
 注解:(1):把内部网络10.1.1.0转换成192.168.1.0,也就是说,对于外部网络而言,内部网络的地址是192.168.1.0/24
       (2):把外部网络10.1.1.0传输来的数据全部修改成192.168.2.0网段,也就是说,对于内部网络而言,外部真实10.1.1.0网络被认为是192.168.2.0网络。
2、  动态转换
 Router(config)#access-list 1 permit 10.1.1.0 0.0.0.255
 Router(config)#ip nat pool in-pool 192.168.1.1 192.168.1.254 netmask 255.255.255.0
 Router(config)#ip nat pool out-pool 192.168.2.1 192.168.2.254 netmask 255.255.255.0
 Router(config)#ip nat inside list 1 pool in-pool
 Router(config)#ip nat outside list 1 pool out-pool
 Router(config)#ip route 0.0.0.0 0.0.0.0 e1
 Router(config)#int e0
 Router(config-if)#ip add 10.1.1.254 255.255.255.0
 Router(config-if)#ip nat inside
 Router(config)#int e1
 Router(config-if)#ip nat outside
 该配置所得到的效果静态转换一样。在此不再多说。
 
三、         负载分担(流量分配):
随着企业的发展,企业的WWW服务器访问的用户越来越多,一台服务器已经不能满足当前的需要,更换一台高端服务器价格不菲,这时候可以使用NAT的流量分担功能。来解决企业当前的问题。如图所示:两台Web服务器承担着相当的WWW服务功能。对于外部用户而言,他们只知道该企业的WWW地址是200.1.1.1

基本配置如下:
Router(config)#ip nat pool wwwserver 10.1.1.1 10.1.1.2 prefix-length 24 type rotary
Router(config)#access-list 1 permit 200.1.1.1 0.0.0.0
Router(config)#ip nat inside destination list 1 pool wwwserver
Router(config)#int e0
Router(config-if)#ip nat inside
Router(config)#int e1
Router(config-if)#ip nat outside
第一条命令是用来建立一个内部服务器的地址池,一定要注意后面的type rotary,该参数用来分配流量。Access-list用来指定虚拟服务器地址。第三条命用来定义转换关系。最后在两个接口上调用NAT转换表。
注意,使用这种方法时,并不是最好的解决方案,相同的场景,以后会介绍更好的解决方案。
四、         控制NAT转换表大小:
1、  设置连接最大数量:该命令用来限制动态产生的转换表的条目
Router(config)#ip nat translation max-entries 最大数目
2、  设置超时值:动态产生的NAT转换条目,根据不同的服务有不同的超时值。
Router(config)#ip nat translation 协议时间 超时值[/img]..
2007-08-26 16:19:53
NAT技术(一)
一、概述
NAT技术,中文翻译为网络地址转换。该技术产生的原因:IPv4地址危机,在Internet上应用广泛的IPv4技术,由于其先天性不足,在九十年代初期时,已经预计到了IPv4地址不足,从而开始开发IPv6技术。但开发IPv6需要足够的时间,为了延长IPv4技术的使用时间,产生了NAT技术。
 
二、工作原理
修改IP数据包中的源IP地址,或目的IP地址。主要目的是把RFC1918所提议的私有地址转变成在Internet上可路由的公有合法地址。对于某些有限的应用(如DNS、FTP等),它也可以修改IP数据包有效载荷中的地址。由于应用..
类别:NAT技术|阅读(3759)|回复(13)|(5)阅读全文>>