第五部分 地址转换和防火墙
--------------- 第11章 地址转换 11.1地址转换概述 IETF定义了两个标准,保留了一些私有地址:RFC1918和RFC1631 11.1私有地址: 1918 定义 的私有地址:10.0.0.0-10.255.255.255 172.16.0.0 172.31.255.255 168.192.0.0-192.168.255.255 地址转换: 使用地址转换的原因: 1.当前isp只给我们分配了有限数目的公共地址。这些地址不足分配给所有的 设备 2.当前有足够的公共地址。但是正在换先的isp,新的isp不支持劳动公共地址空间 3.需要合并两个网络,他们使用相同的地址空间 4.正在使用别人分配的公共地址 5.想通过使用一个虚拟的ip地址来代表多个设备的方法设置负载平衡 6.想对进出网络的流量有更好的控制 地址转换的优点: 1.使用一个A类地址,16个B类地址,和256个c类地址,总共超过1千7百万个地址 2.如果更换ISP,工作很简单,只需要改变地址转换设备上的地址转换规则,而无须改变具体 设备的地址 3.ISP旧案 会丢弃带有这些私有地址的数据包,这个使我们对离开网络有了更严格的控制。 4.对外边隐藏了内部网络结构 地址转换的缺点: 1.在执行地址转换的时候增加了处理数据的延迟 2.地址转换设备支持越多的转换,越会给这些设备增加更大 的负担 3.会使排查问题更难,因为源地址和可能目的地址在使用地址转换 4.即使地址转换提供了更坚固的安全,她允许人么通过地址转换来隐藏他们的身份,这同时也 使跟踪攻击更难 5.有些应用在有效载荷中嵌入了地址信息 11.2地址转换的工作原理 路由器,防火墙,服务器都可以执行地址转换。 由于地址转换的术语: ------------------------------------------------基本地址转换术 语------------------------------ 内部(Inside):设备位于网络内部 外部(outside):设备位于网络外部 本地(loacl):这些地址物理被分配诶设备,他们通常是私有地址,但可以是公共地址 全局(global):对于网络外部设备,看上去是使用这些地址,这些地址是公共地址,但不一 定经过了地址转换,因为可能给这些地址分配了公共地址。 内部本地地址(inside local address):这是静态分配或通过dhcp动态分配给内部设备的敌 后子。它可能是公共或者私有地址。这是当网络中的其他设备从网络内部看的时候,从源ip地 址域看到的地址 内部全局地址(inside global address):这看上去是内部设备正在使用的地址。它可能是 由一个地址转换设备分配的,这是外部设备(网络外部的设备),从源ip地址域看到的地址 外本本地地址(outside loacl address):外部设备在生成一个数据包的时候,在它配置中 使用的地址 外部全局地址(outside global address):这是外部设备看上去正在使用的地址。这个地址是 我们的设备从远程设备的数据包的源ip地址域中看到的地址 ---------------------------------------------------------------------------------- -------------------------------------------------- 执行地址转换: 简单转换:一个ip地址被话成另一个ip地址,这种转换常被称为网络地址转换 扩展转换:一个ip地址和端口被映射到另一个ip地址和一个可能不相同的端口号。这样的转换 被称为网络地址端口转换,(network address port Translation,NAT)或端口地址转换 (Port address translation,PAT) 静态转换:在地址转换设备上手动配置了地址转换,将一个地址映射到了另一个地址,这也可 能包括端口映射,使用端口映射,这常被称为端口地址重定向(port address redirection,PAR) 动态转换:通过使用地址池,地址转换设备动态执行地址转换。这也可能包括端口号的动态分 配。 1.网络地址转换。 2.重叠地址转换 3.地址重载:地址重载被称为PAT,使用一个和更多的内部全局地址来包含所有的内部设备,为 了区分不同的内部连接,PAT确保tcp或者udp 报文头中的源端口地址唯一的。 4.流量分配和负载平衡:一个被遗忘的地址转换的使用是流量分配特性,常称为负载平衡。 地址转换的局限性 11.3地址转换的配置: 地址转换必须执行的两个步骤:1.定义地址转换的策略 2.定义哪个接口是内部接口和哪个接口是外部接口; NAT配置:可以静态和动态的执行NAT; 1.使用静态转换时,定义一个内部本地地址到内部全局地址 的一对一映射 2.使用动态地址转换的时,可以建立一个内部全局地址池, 当转换内部本地地址时,内部设备可以使用这些地址 静态NAT:步骤1.定义静态转换:router(config)# ip nat inside source static inside_locall_ip_address inside_global_ip_address router(config)# ip nat inside source static network _inside_local_ip_network_number inside_global_ip_network subnet_mask 配置完后,必须指定什么是内部接口,什么是外部接口,什么接口被认为是外部接口: router (config)# interface type_ router (config-if)# ip nat {inside |outside} 对使用静态配置,强调三点要求:1.确保应用在输入方向的外表ACL允许以内部全局ip地址为 目的的地址的流量,而不是以内部本地地址流量为目的的流量 2.确保我们的DNS服务向外部拥护的请求回复内部全局地址 3.如果一个地址在任何转换中都没有指定,则cisco ios会正 常地转发它 动态NAT:配置步骤:1.定义那些内部(内部本地)地址要被转换 :router(config)# ip nat inside source list _standarde_IP_address_list_#_of_number pool NAT_pool_name pool参数指定了在执行地址转换时使用的全局地址。 2.定义指定一个内部全局地址的地址池,将把这些地址分配给内部本地地 址:router(config)# ip nat pool Nat_pool_name begin_inside_global_ip_address ending_inside_global_ip_address {netmask subnet_mask_of_address | prefix-length #_of_bites} ip nat pool命令指定了内部全局ip地址的列表,将把这些地址分配给使用内部本地地址的数 据包,需要命名这个地址池必须与 ip nat source list命名中使用的名称匹配。 3.指定了哪个接口是内部接口,哪个接口是外部接口:使用ip nat {inside |outside}命令来指定端口是内部的,哪个端口是外部的。 PAT配置: 步骤1.定义那些内部(内部本地)地址要被转换: router(config)# ip nat inside source list stand_ip_access_list_#_or_name pool NAT_pool_name overload router(config)# ip nat inside source list stand_ip_access_list_#_or_name interface interface_name overload overload 参数指定使用NAT转换。 2.定义一个指定了内部全局地址的地址池,这些地址将被分配给内部本地地址:router (config)# ip nat pool NAT_pool_name begin_inside_globale_ip_address ending_inside_global_ip_address {nemask subnet_mask_of_address | prefix-length #_of_bits 3.指定哪个接口是内部,哪些接口是外部的。ip nat {inside |outside } 端口地址重定向配置:在端口重定向(port address redirection ,PAR)中,一台地址转换设 备可以将指向一个设备或端口的连接流量,重定向到一个不同的设备或端口。在cisco ios12. (13)T中引入了PAR的一个新增强功能,称为NAT默认内部服务器(default inside server),NAT默认内部服务器是对端口静态NAT的增强,也许路由器从一未知端口上的外部主机 收到所有请求发送到默认的内部服务器。 PAR的配置:router(config)# ip nat inside source static local_ip_address interface _external_interface router(config)# ip nat inside source static {tcp | udp} local_ip_address local_port#_ interface external_interface global_port_# 使用:ip nat {inside | outside }应用到内外端口。 处理重叠地址 必须处理地址重叠问题:1.两家公司正在合并,并且他们在使用相同的地址空间 2.先前的管理员给网络配置了别人的公共地址 3.正在建立一个到外联网合作者的vpn连接,在这里存在地址重叠问 题,或者合作的一方要求使用地址转换来适用公司的安全策略。 重叠地址问题解决方案:静态的和动态的。 执行的两个方向:内部到外部的和外部到内部的。 静态转换: 当遇到地址重叠问题的时候,先面两种情况下使用静态地址转换 1.在一端或者两端都有服务器,并且远程端都要访问服务器。 2.想通过手动而不是动态地分配网络地址,减少需要进行配置。 从内部到外部:router(config)# ip nat inside source static inside_local_ip_address inside_global_ip_address router(config)# ip nat outside source static network outside_global_ip_network_number inside_local_ip_network_number _subnet_mask [addroute] add-route 参数将为被转换的网络在路由器的路由表中添加一条路由 动态转换:对于外部到内部的配置:router(config)# ip nat pool pool_name starting_global_ip_address ending_ip_address {netmsk subnet_mask_of_address | prefix-length #_of_bits router(config)# access-list ACL_# permit source_ip_address [wildcard_mask] router(config)# ip nat outside source list ACL_# pool _pool_name 流量分配配置:流量分配为流向一个ip地址的流量,重定向连接请求到不同的内部服务器,这 样就提供了一种负载平衡的特性。 配置步骤:1.建立一个地址池,列出用于负载平衡的内部服务器列表:router(config)# ip nat pool _pool_name begining_inside_local_ip_address ending_inside_local_ip_address { netmask subnet_mask_of_address | prefix-length #_of_bits } type rotary type rotary指定使用流量分配。 2.定义外部设备使用哪些地址来房屋内部资源,:router(config)# access-list ACL_# permit IP_address of_internale_server router(config)# ip nat inside destination list standard_ip_access_list_number_or_name pool _pool_name ip nat inside destinantion 命令将ACL和地址关联起来。 3.指定哪个接口是内部的,哪个接口是外部的 : ip nat {inside|outside} 配置转换限制:默认地,对cisco ios将保存在它的地址转换表中的条目数量没有预先的限制。 设置限制: router(config)# ip nat translation max-etntries #_of_enter 条目可以是2到2147483647 设置超时限制:router(config)# ip nat translation timeout_paramenter {seconds |never} ---------------------------------超时参数--------------- 超时参数 -------------------默认超时值(秒数)--------------解释------- timeout 86400 除了地址重载转换外,这默认值可以 用到所有的地址转换 tcp-timeout 86400 这个值可以应用到所有的tcp 连接 finrst-timeout 60 这个值可以应用到FIN和RST数据包, 它可以终止一个数据连接,当到达这个值的时候,这个地址转换将被删除 syn-timeout 60 这个超时值可以应用到半打 开的tcp连接(刚开始三握手过程的连接),如果在这个时间内没有完成这个连接,将从转换 表中删除这个项目 udp-timeout 300 除了DNS UDP连接,这个超时 值可以应用到所有的udp连接 dns-timeout 60 这个超时值可以应用到所有 的udp连接 port-timeout tcp |udp port_# tcp |udp 默认值使用这个参数,可以给tcp | udp 端 口号指定一个特定的超时值,如果没有配置,将使用默认的tcp | udp超时值 icmp-timeout 60 这个超时值可以应用到所有 的icmp pptp-timeout 86400 这个超时值,可以应用到所 有的NAT 点对点隧道协议(PPTP)连接
地址转换的验证和排错: 使用show ,debug,clear命令: show ip nat translations命令: router#show ip nat translations [esp][icmp][pptp][tcp][udp][verbose[vrf _vrf_name] ------------------------------------------------------show ip nat translation 参 数-------------- esp 只显示封装安全有效载荷(encapsulation security Payload ,ESP)条目,这 在IPsec协议中被使用 icmp 只显示icmp条目 pptp 只显示pptp条目 tcp 只显示tcp条目 udp 只显示udp条目 verbose只显示与没个条目的详细信息,包括多长时间之前在表中建立了该条目,以及它被使 用了多长时间 vrf 只显示vpn路由选择和转发(vpn routing and forward,vrf )信息。 ---------------------------------------------------------------------------------- --------------------- clear ip nat translation 命令,可以删除从地址转换列表中动态学习到的条目: router# clear ip nat translation* router# clear ip nat translation inside | outside global_ip_address local_ip_address rotuer# clear ip nat translation protocol inside |outside global_Ip_address global_port _local_IP_address local_port deugp ip nat命令: router# debug ip nat [standard_acl_# ][detals][h323][ipsec][port][pptp][route] [sip][skinny][vrf] 11.4NAT和CBAC的例子 第十二章地址转换的问题 12.1嵌入的地址信息: 转换在有效地址载荷中嵌入地址消息: 1.DNS回复和区域传输 2.路由选择更新 3.IGMP组播消息 4.DHCP和BOOTP协议 5.有些HTML d代码 6.NetBIOS 7.大多数多煤体 8.SQL服务器连接 嵌入地址信息问题: 支持的协议和应用: cisco ios 在执行地址转换时 能查找在数据包载荷中的地址信息,cisco 能为一个连接检查 潜入的地址消息,将其和它的地址转换表中的地址转换表中的信息比较,并做出适当的该表。 默认地,当cisco ios 被配置实施地址转换时,它对任何数据报头信息执行地址转换,包括ip 包头中的源和目的地址以及tcp和udp报文头中的端口号 -----------------------应用层网关(ALG)地址转换支持---------------------------- ICMP 支持NAT和PAT转换,使用PAT的时,因为ICMP不支持端口号,则cisco ios使用序列号 将icmp流量和特定的内部设备相关 FTP 在端口为21的tcp连接上检查PORT和PASV命令 NetBIOS:支持数据报,名称和会话连接检查, RealAudio:为嵌入的地址和端口信息检查附加的连接建立请求 CuSeeMe :为嵌入的地址和端口信息检查附加的俩捏建立请求 StreamWork :为嵌入的地址和端口信息检查附加的俩捏建立请求 DNS :检查DNS回复,并转换A和PTR地址信息 NetMeeting:对于NetMeeting2.x和3.x支持H.323v2并对于2.x支持H323v1,还可以通过 internet定位服务器(internet locator server lls)支持netmeeting目录,这个用来发现 其他netmeeting用户 GRE:检测基本路由封装,(Generic Route Encapsulation ,GRE)隧道数据包,对已经封装的 数据包执行转换。 H.323v2 :检查连接中的Alerting,communicationModeCommand,communicationModeRespone Facility,FastConnect,OpenLogicalChannel,OpenLogicalChannelAck,progress 和setup消 息, H.323v3和h.323v4:支持与h323v3和v4的互操作,但不检查这些新版本中引入的新的消息类型 SIP: 从cisco ios 12.2(8)T开始支持sip Skinny (SCCP):从12.1(5)T开始支持skinny VDOLive:为嵌入的地址和端口信息检查附加的连接建立请求 Vxtreme: 为嵌入的地址和端口信息检查附加的请求连接 --------------------------------------------------------- 非标准的端口号: cisco ios只在众所周知的端口上检查嵌入地址消息的应用 ip nat服务配置: ip nat service命令来配置:router(config)# ip nat service list ACL_#_or_name ftp tcp port _port_# router(config)# ip nat service sip tcp |udp port port_# router(config)# ip nat service skinny tcp port port_# sip的非标准端口是在cisco ios 12.2(8)T中才支持的,默认端口是5060 。Skinny 支持是在 cisco ios 12.1(5)T 中,默认端口是 2000上。 12.2控制地址转换: 使用ACL:使用简单的ACL来定义那些地址不用被转换,那些地址需要被转换。 使用路由映射:动态转换: 路由映射用来在路由器上实施路由选择策略。但cisco 也允许他们用在其他情形中如 地址转 换。 router(config)# ip nat inside source rotue-map _route_map_name pool _Nat_pool_name 使用route-map命令来指定路由映射。 使用路由映射:静态转换:从cisco ios 12.2(4)开始,路由映射也支持和静态NAT一起使 用。router(config)# ip nat inside static _local_ip_address route-map _route_map_name [extendable] router(config)# ip nat inside source static tcp |udp local_ip_address local_port_# global_ip_address global_port# route-map route_map_name [extendable extendable 命令可以将多余一个的全局地址关联到本地 12.3地址转换和冗余: cisco ios为地址转换提供了两钟地址冗余:1.使用热备路由协议(host Standy Router Protocol,HSRP )的静态NAT冗余,在cisco ios 12.2(4)t版本中使用 2.有状态地址转换失败切换,在cisco ios 12.2 (13)t中被支持。 使用HSRP的静态NAT冗余: 使用HSRP的静态NAT冗余常用于小型网络。 HSRP 冗余过程:、在使用HSRP来提供静态NAT冗余,静态NAT配置被镜像到两台路由器上,而 只有活动的路由器处理流量,HSRP被配置在子网的默认网关上,一台路由器被配置成活的路由 器,其余的被配置成备分的。 HSRP冗余配置: 1.配置HSRP: router(config)# interface _type router(config-if)#ip address ip_address subnet router(config-if)# no ip redirects router(config-if)#standby [group_#] name {HSRP_group_name] router(config-if)#standby [hsrp_group] uo ip_address router(config-if)#standby [group_#] preempt router(config-if)#standby [group_#] priority _priority_# router(config-if)#standby [group_#] track _interface decrement_value 2.使用HSRP集成静态NAT配置: router(config)# ip nat inside |outside source static _local_ip_address _global_ip_address redundancy HSRP_group_name router(config-if)# ip nat[inside |outside} 有状态的地址转换失败切换: 从cisco ios 12.2(13)T开始,cisco 引入了有状态的地址转换失败切换阶段1,被称为有状态 的NAT(statefulNAT,SNAT),这个是cisco实施SNAT的第一步,在这个解决方案中,使用两台地 址转换路由器,一台主路由器和一台备分路由器,这些路由器被称为转换组,转换组中的主路 由器执行现行的路由器转换,备份路由器接收来自主路由器的地址转换更新(添加和删除), 并检查主路由器正常工作,如果主路由器失败,备份路由器开始使用它从主路由器那里共享来 的地址转换表处理流量,通过使用tcp连接主路由器和备粉路由器共享地址消息, 使用HSRP的SNAT: 配置步骤: 1.配置HSRP :router(config)# interface _type router(config-if)#ip address ip_address subnet router(config-if)# no ip redirects router(config-if)#standby [group_#] name {HSRP_group_name] router(config-if)#standby [hsrp_group] uo ip_address router(config-if)#standby [group_#] preempt router(config-if)#standby [group_#] priority _priority_# router(config-if)#standby [group_#] track _interface decrement_value 2.配置有状态的失败切换:router(config)# ip nat stateful id router_ID# router(config-ipnat-snat)# redundancy HSRP_group_name router(config-ipnat-snat)# mapping-id mapping_ID_# redundancy命令指定提供冗余的HSRP组名,使用standy在路由器上配置的组名字 mapping-id命令指定一个从1到2147483647的数字,来唯一的标识从活动的路由器将发送到备 分路由器的转换;这些命令必须配置在所有的hsrp组的路由器上,每给路由器有唯一的标识, hsrp组名和映射ID号是相同的 3.配置地址转换:使用HSRP的SNAT地址转换: router(config)# ip nat pool global_pool_name begin_ip_address end_ip_address prefix-length prefix_number# router(config)# ip nat inside source route-map route_map_name pool _global_pool_name mapping-id mapping_ID_# [overload] router(config)# ip nat inside source list ACL_#_or_name pool global_pool_name mapping-id mapping_ID_# [overload] 可以使用ip nat {inside |outside}应用在端口上!! 不使用hsrp的snat:当两个路由器 不能为内部主机提供默认网关的时候,通常使用不使用 hsrp的snat 不使用hsrp的snat的配置: 1.通过定义主要和备用路由器使用下面的命令:router(config)# ip nat stateful id route_ID_# rotuer(config-ipnat-snat)#primary _local_ip_address_to_use rotuer(config-ipnat-snat-red)#peer _backup_router's_ip_address rotuer(config-ipnat-snat-red)#mappingid mapping_ID_# ip nat stateful命令给这台路由器分配了一个唯一的路由器ID, primary命令指定了这个是一台主路由器,必须指定一个ip地址,当她建立到备路由器的tcp连 接tcp连接使使用的ip地址, peer 命令指定了在备用路由器上用来端接tcp连接的ip地址 mapping-id 命令指到将和备用路由器共享的动态条目 router(config)# ip nat stateful id _route_ID_# rotuer(config-ipnat-snat)# backup local_ip_address_to_use rotuer(config-ipnat-snat-red)#peer _primary_router's_ip_address rotuer(config-ipnat-snat-red)#mapping-id mapping_ID_# 2.配置地址转换:router(config)# ip nat stateful id router_ID# router(config-ipnat-snat)# redundancy HSRP_group_name router(config-ipnat-snat)# mapping-id mapping_ID_# SNAT的验证: router# show ip snat [distributed [verbose]| peer IP_address] distribute 参数允许查看分布式NAT的相关信息,以及对 等体连接状态, verbose参数,可以查看关于有状态 转换的本身的详细消息 使用下列命令可以清除用于有状态失效的动态地址转换: clear# clear ip snat translation {distributed * | peer peer_ip_address [refresh] distribute *参数将清除所有的snat动态转换,或者只清除特定snat对等体的转换, 参数refresh,使备用路由器清除它的地址转换表中的动态转换,并请求活动或者主要路由更 新它当前的转换表 使用下面的命令清楚对等体SNAT路哟器的所有会话,或者只清除特定的会话: router#clear ip snat seeion [* |peer_ip_address] 使用debug命令进行排错: router#debug ip snat [detail] :debug ip snat是很消耗cpu资源的。 12.4使用服务器负载平衡来分配流量: cisco在 cisco ios 12.0(7)XE中引入了服务器负载平衡(sever load balancing,SLB)特性。 SLB过程: SLB有两种操作模式:定向模式和分派模式 定向模式:可以给虚拟服务器指定一个想要的ip地址,在 slb组中的真正的服务器不知道这个 地址,相反cisco ios通过执行NAT将虚拟目的地址转换成真正的 服务器的一个地址 分派模式是SLB的默认模式,真正的服务器知道虚拟服务器地址,实际上真正服务器上配置了 两个ip地址,他们自己的ip地址和虚拟ip地址,虚拟ip地址被配置成一个回环地址,或者是一 个次要地址 SLB中使用的负载平衡算法: 1.加权循环(Weighted round robin,WRR); 2.加权最少连接9Weighted lest connection,WLC) 其他负载平衡特性: 1.慢速开始 2.最多连接 3.指定客护端 4.黏性连接 5.自动服务器恢复检测 6.TCP会话重新分配 7.SYN守卫 8.延迟删除TCP连接 9.动态反馈协议(dynamic Feedback protocol,DFP) 10.无转台备份 SLB的优点和局限性: 优点:可以提供一个易于维护的可扩展方案 局限性:1.ftp只被分派模式支持 2.只支持不同子网的负载平衡,不支持相同子网不同设备间的负载平衡 3.对于使用分派模式的路由器,真正服务器必须通过第二层连接到SLB路由器 4.对于使用定向和分派模式的路由器,包交换不能被硬加速 5.SLB只被2690系列和更高系列的路由器支持。 SLB的配置: 必要的SLB命令:router(config)# ip slb serverfarm _server_farm_name router(config-slb-sfarm)#real IP_address router(config-slb-real)# inservice ip slb serverfarm 命令建立一个真正的服务器群组,服务器群组的名称最多不超过15个字符 real命令指定服务器组中的真正的ip地址, inservice命令在这个组中启用这个服务器 在建立一个真正的服务器组后,需要将这个服务器组关联到一台虚拟服务器: router(config)# ip slb vserver _virtual_server_name router(config-slb-vserver)# serverfarm _server_farm_name rotuer(config-slb-vsrver)#virtual _IP_address {tcp | udp} port_# [service _service_name] router(config-slb-vserver)# inservice ip slb vserver命令用来为虚拟服务器建立必要的信息,必须为虚拟服务器指定一个名称,不 能超过15字符, serverfarm命令指定拿个服务器组被用来处理发到虚拟ip地址的流量。 使用virtual命令为虚拟服务器配置 ip地址,还必须使用协议tcp|udp ,以及端口号或者虚拟 服务器要处理的应用名称 service参数知道能够一个客户的所有相关谅解都由相同的真正服务器处理,当前可以选择的 只有ftp。 inservice命令激活虚拟服务器。 可选的slb命令: 负载平衡的算法: slb默认的算法是WRR,可以使用下面的命令来改变:router(config)# ip slb serverfarm _server_farm_name router(config-slb-sfarm)# predictor {roundrobin |lelastconns} roundrobin指定为WRR算法,leastconns 指定为WLC算法 真正服务器属性: router(config)# ip slb serverfarm _serverfarm_name router(config-slb-sfarm)#real _ip_address router(config-slb-real)# faildetect numconns _#_of_connection router(config-slb-real)#maxconns _maxium_#_of_connection router(config-slb-real)#ressign #_of_Syn_request router(config-slb-real)#weiht _weighting_value faildetect numconns命令指定连续失败客户端连接的次数,这个树木会使slb人真正的服务 器不能提供服务。默认的数目是8次,但是可以是1到255 maxconns 命令限制允许到真正服务器的活动连接数目。可以是1到4294967295 ,默认是 4294967295 ressign 命令只定从一个客户端到一 抬真正服务器的连续被忽略的syn数目,这个数目可以允 许slb重新将客户分配到不同的真正的服务器。slb为这个连接建立等待30秒,这个时间后, slb将这个连接从它的表中删除,阀值可以1到4 个syn请求之间,默认是3 retry命令了在检测到一台服务器失败以后,cisco ios应该等待多少秒后允许一个新的连接尝 试,值可以从0到3600秒,默认值是60 秒,如果指定了0,当服务器被认为不能提供服务之 后,不会进行新的连接尝试 weight命令给一台真正的服务器指定一个权重,然后负载平衡算法使用这个值。 虚拟服务器的属性: router(config)# ip slb vserver _virtual_server_name router(config-slb-vserver)#client _ip_address _subnet_mask router(config-slb-vserver)#delay #_of_seconds router(config-slb-vserver)#idle #_od_seconds router(config-slb-vserver)#sticky #_of_seconds [group _gruop_id] router(config-slb-vserver)#synguard #_ofSYN #_of_milliseconds router(config-slb-vserver)#no adverise client命令限制使用虚拟服务器的客户端,默认是允许所有,0.0.0.0 0.0.0.0 delay命令指定在连接终止后,slb将在它的状态表中维护客户端的秒数。默认是10秒,可以是 1到600 秒 idle 命令指定slb中它的 表中保持一个空闲连接的秒数,默认是3600秒,取值范围可以是10 到65535 sticky命令指定一个时间长度,在这段时间内来自同一个客户端的所有连接被发到同一个真正 服务器,默认是关闭的,时间范围是0到65535 group参数将一台虚拟服务器和一个组号相关联,组号范围是1到255 synguard命令控制到新连接的TCP SYN数目,来阻止TCP SYN洪水攻击,半打开连接数目范围是 0到4294967295 ,默认是 0,这个功能被关闭,当被打开的时,默认使用100毫秒时间间隔来 监控SYN洪水攻击,它的范围是50到5000毫秒 advertise 命令将发布一条到虚拟服务器地址的路由,默认地,cisco ios为虚拟服务器器建 立一个静态路由,指到端口null0,保证cisco ios将处理特定虚拟服务器的流量,而不丢弃他 们, NAT配置: 默认地,cisco ios使用分派模式为虚拟服务器地址提供服务,要使用定向模式,须为服务器 群配置下列: router(config)# ip slb serverfarm _server_farm_name router(config-slb-sfarm)# nat server SLB验证:可以使用show和debug命令 -------------------------------------------slb 的show 命 令---------------------------------------------- show ip slb conns [servers virtserver_name] [client _ip_address] [detail] 显示 slb处理的所有连接,可以使用附加的参数来限制输出 show ip slb dfp[agent _ip_address port][detail][weights] : 显 示关于dfp的信息和使用dfp真正的服务器 show ip slb reals[vserver virtserver_name][detail]: 显 示在slb中定义的真正服务器相关信息 show ip slb serverfarms[name _serverfarm_name][detail]: 显示slb中 定义的 服务器群组的相关信息 show ip slb stats 显 示关于slb的统计信息 show ip slb sticky [client _ip_address] 显 示关于客户黏性连接的相关信息 show ip slb servers [name virtserver_name][detail 显示slb的 虚拟服务器的相关消息 ---------------------------------------------------------------------------------- ---------------------------------- 使用debug命令:router# debug ip slb {conns /dfp | icmp /reals /all} ----------------------------------------slb 的debug 参 数--------------------------------------------- conns 显示slb处理的连接的消息 dfp 显示关于dfp消息相关消息 icmp 显示slb使用的所有icmp信息 reals 显示slb使用的真正服务器的所有消息 all 为slb显示所有的debug消息 ---------------------------------------------------------------------------------- ---------- SLB例子
|