第17章 IP服务

2019-02-17  本文已影响0人  潘晓可

17.1 客户端冗余问题

在思科路由器上默认启用了代理地址解析协议(代理ARP),让主机能够获取网关路由器的MAC地址,而网关路由器能够为主机转发分组。如果响应ARP请求的路由器发生故障,源主机将继续把分组发送到原来的MAC地址。然后,由于相应的路由器出现了故障,这将导致通信超时。

超时后,ARP缓存中的代理ARP MAC地址将过期。接下来,主机将发送新的ARP请求,并获得另一台代理ARP路由器的MAC地址。然而,在故障切换期间,主机无法向本地网络外部发送分组。这正是冗余协议的用武之地。

17.2 第一跳冗余协议简介

第一跳冗余协议(First Hop Redundancy Protocol, FHRP)让你能够对多台物理路由器进行配置,让它们就像是一台逻辑路由器。第一跳指的 是默认路由器,这是分组必须经由的第一台路由器(第一跳)。

冗余协议向所有的客户端提供一台虚拟路由器。虚拟路由器有虚拟IP地址和虚拟MAC地址。在每台主机上都将默认网关指定为虚拟IP地址。每当主机发送ARP请求时,都将返回虚拟地址。主机不知道也不关心实际转发数据的是哪台物理路由器。

冗余协议负责分配物理路由器的角色:哪台处于活动状态,主动地转发数据;哪台处于备用状态,以防活动路由器出现故障,活动路由器出现故障时将切换到备用路由器,备用路由器将使用虚拟路由器的虚拟IP地址和MAC地址。主机无需更改默认网关信息,就能继续传输数据。

17.3 热备用路由器协议

HSRP是一种思科专用协议,可用于大部分思科路由器和多层交换机。其缺点在于,只有一台路由器处于活动状态,其他路由器都处于备用状态。仅当活动路由器出现故障时才会用上,因为成本效益和效率都不高。

HSRP不同时使用备用组中的多台路由器。备用组至少需要包含两台路由器,其中的主要角色是活动路由器和备用路由器。它们使用组播Hello消息进行通信。Hello消息让路由器能够进行一切必要的交流,包括完成选举(即决定由谁充当活动路由器以及由谁充当备用路由器)所需的信息,还包含完成故障切换所需的重要信息。如果备用路由器没有收到活动路由器的Hello分组,它将取而代之,承担活动路由器的职责。

17.3.1 虚拟MAC地址

虚拟IP配置起来不难,只需将其指定为主机所属子网中的唯一IP地址,但需要伪造一个MAC地址。在HSRP MAC地址中,只有很小一部分是可变的。下面通过一个示例(0000.0c07.ac0a)来说明HSRP MAC地址是什么样子的。

17.3.2 HSRP定时器

HSRP定时器用于判断路由器之间能否正常通信,在活动路由器出现故障时,让备用路由器接管工作,包括Hello定时器,保持定时器,活动定时器和备用定时器

17.3.3 组角色

在备用组中,每台路由器都扮演特定的角色,执行特定的功能。
虚拟路由器 它并非物理实体,只是定义了物理路由器之一扮演的角色。充当虚拟路由器的物理路由器就是活动路由器。虚拟路由器由独立的IP地址和MAC地址标识,分组将被发送给这些地址。
活动路由器 它接收发送给虚拟路由器的数据,将其路由到目的地。它接收发送给虚拟路由器MAC地址和自己物理MAC地址的所有数据。它也对发送给虚拟路由器IP地址的所有ARP请求做出响应。
备用路由器 负责监视HSRP组的状态,在活动路由器出现故障或失去联系时迅速接管分组转发职责。活动路由器和备用路由器都发送Hello消息,将其角色和状态告知组中的其他所有路由器。
其他路由器 除上述三种路由器外,HSRP组还可包含其他路由器。这些路由器是HSRP组的成员,但未承担活动路由器和备用路由器等主要角色。这些路由器监视活动路由器和备用路由器发送的Hello消息,确保它们所属的HSRP组有活动路由器和备用路由器。这些路由器根据Hello定时器值发送“发言”(Speak)消息,将其选举资历告知其它路由器。

接口跟踪 启用了HSRP的路由器可跟踪外部接口的状态,并在需要时更换活动路由器,从而避免内部主机无法连接上游网络。在路由器的HSRP接口上,默认配置的优先级为100,增大优先级可让路由器优先成为活动路由器。被跟踪的接口出现故障时,路由器的优先级将降低。

17.3.4 配置和验证HSRP

在备用组的路由器上进行如下配置设置

R3(config-if)#standby 1 ip 10.1.1.254  //设置备用组号1和虚拟IP
R3(config-if)#standby 1 name TEST  //设置备用组名字
R3(config-if)#standby 1 priority 110  //设置路由器的优先级

R3#show standby brief   //查看备用组简要
                     P indicates configured to preempt.
                     |
Interface   Grp  Pri P State   Active          Standby         Virtual IP
Et0/0       1    110   Standby 10.1.1.4        local           10.1.1.254

R3#show standby  //查看备用组详情
Ethernet0/0 - Group 1
  State is Standby
    4 state changes, last state change 00:11:01
  Virtual IP address is 10.1.1.254
  Active virtual MAC address is 0000.0c07.ac01
    Local virtual MAC address is 0000.0c07.ac01 (v1 default)
  Hello time 3 sec, hold time 10 sec
    Next hello sent in 2.656 secs
  Preemption disabled
  Active router is 10.1.1.4, priority 100 (expires in 9.184 sec)
  Standby router is local
  Priority 110 (configured 110)
  Group name is "TEST" (cfgd)

debug standby //开启debug命令
第二台路由器也进行相同的配置,但是不调整默认优先级。仅当两台路由器同时启动时,优先级才会发生作用。
HSRP并不进行真正的负载均衡,但通过配置可让多台路由器分别成为不同VLAN的活动路由器。

17.4 虚拟路由器冗余协议

17.4.1 VRRP和HSRP比较
17.4.2 VRRP的冗余属性

17.5 网关负载均衡协议

虽然HSRP和VRRP都支持基于子网的负载均衡,提高了网关的弹性,但并未使用冗余组中处于备用模式的设备的上行带宽。只有活动路由器负载转发发送给虚拟MAC地址的数据,备用路由器的资源未得到充分利用。使用这些协议时,通常创建多个组,可指定多个默认网关,从而实现一定程度的负载均衡,但这种配置增加了管理负担。
思科开发了一种专用协议:网关负载均衡协议(GLBP),它支持自动选举以及同时使用多个网关,还能自动在这些网关之间进行故障切换。

17.5.1 GLBP组角色

GLBP包含如下组角色

GLBP组成员也使用Hello消息相互通信。这种消息每隔3秒钟发送一次,其目标地址为组播地址224.0.0102,目标端口为UDP端口3222。

17.5.2 GLBP功能

使用HSRP和VRRP时,除非配置多个组和多个网关,否则只使用一条路径,而其他资源都处于空闲状态。这意味着在高峰时期吗,这条路径的输出队列更长,导致性能低下,抖动强烈。GLBP可以缓解抖动的影响,因为使用GLBP可增加上行带宽以及利用其他上行路径。
GLBP自动分配虚拟MAC地址,确定由谁负责转发,并确保网关或被跟踪的接口出现故障时,主机依然有可靠的转发路径。在故障真的发生时,GLBP重新在余下的AVF之间均衡负载,确保资源得到最有效的利用。

17.5.3 基于主机的负载均衡

GLBP使用循环算法来均衡负载,工作原理如下:

  1. 一个客户端发送ARP消息,请求对网关IP地址进行解析时,AVG返回一个AVF的虚拟MAC地址。
  2. 另一个客户端发送ARP消息时,AVG返回下一个AVF的虚拟MAC地址。

通过将默认网关IP地址解析为不同的MAC地址,可让不同的客户端将数据发送给不同的路由器。

17.5.4 配置GLBP
Router(config)# int e0/0
Router(config-if)# glbp 1 ip 10.1.1.20  //GLBP组号1,并配置虚拟IP地址
Router(config-if)# glbp 1 name TEST  //为GLBP组1配置名字
Router(config-if)#  glbp 1 priority 110  //为GLBP组1的本路由器配置优先级
Router# show glbp  //查看GLBP配置详情
Router# show glbp  brief  //查看GLBP配置摘要

17.6 系统日志

要熟悉网络在特定时刻发生的情况,最常见也是最有效的方式是,阅读来自交换机或是路由器内部缓冲区的系统消息。然后,最佳的方式是将这些消息记录到系统日志服务器。它存储来自设备的消息,还可给消息加上时间戳和序列号。
系统日志让你能够对消息进行显示,排序和搜索,因此是最佳的故障排除工具。可以使用关键字乃至严重级别进行搜索,服务器还可以根据消息的严重级别给管理员发送邮件。
可对网络设备进行配置,使其将生成的系统日志消息发送到各种目的地。下面是从思科设备收集消息的四种常见方式:

严重级别

配置和验证系统日志

Router(config)# logging console  // 将系统日志消息写入控制台
Router(config)# logging buffered // 将系统日志消息写入缓冲区

这是所有思科IOS设备的默认设置。可在前面加no来禁用掉。

Router(config)# logging 172.16.10.1  // 将日志发送到服务器
Router(config)# service timestamps log datatime msec  //为日志添加时间戳
Router(config)# service sequence-numbers  //为日志添加序列号

可以限制发送给系统日志服务器的消息量,为此要指定严重级别

Router(config)# logging trap + 严重级别  // 只有大于等于指定级别的消息才会发送到服务器
Router# show logging  // 查看缓冲区的内容

17.7 SNMP

简单网络管理协议(SNMP)是一种应用层协议,指定了一种消息格式,供各种设备上的代理用来与网络管理工作站(NMS)交流。这些代理将消息发送给NMS,后者再将消息写入其数据库,这种数据库被称为管理信息库(Management Information Base. MIB)。
NMS使用GET消息定期地向设备的SNMP代理查询或轮询,以收集统计信息并进行分析。运行SNMP代理的终端设备出现问题时,将向NMS发送SNMP TRAP消息。管理员还可以使用SNMP SET消息来配置代理。
SNMP有三种版本:

17.7.1 管理信息库

鉴于涉及的设备种类众多,需要处理的数据量庞大,需要采用标准方式来组织数据,MIB应运而生。管理信息库(MIB)一以层次方式组织的信息集,可使用SNMP等协议进行访问。相关RFC定义了一些通用的公用变量,但大多数厂商都在SNMP标准的基础上定义了专用分支。组织ID(OID)按树形结构排列,各层级的OID有不同的组织制定,而顶级MIB OID由各种标准组织指定。 专用分支的OID由厂商指定。
要让NMS能访问交换机,其共同体字符串定义必须至少与交换机的三个共同定义之一匹配。

17.7.2 配置SNMP

要在思科设备上配置SNMP,只需执行如下四个步骤。

  1. 赋予SNMP读写路由器的权限。
  2. 配置SNMP联系信息。
  3. 配置SNMP位置信息。
  4. 配置一个ACL,仅让NMS访问SNMP。

只有共同体字符串是必须配置的,其它配置都是可选的。

Router(config)# snmp-server community Todd rw  //配置共同体字符串为Todd,给予读写权限。
Router(config)# snmp-server location Boulder  //设置地点
Router(config)# snmp-server contact Todd Lammle //设置联系联系人
Router(config)# ip access-list standard Protect_NMS_Station  //设置一个ACL
Router(config)# permit host 192.168.10.254
Router(config)# snmp-server community Todd Protect_NMS_Station rw  //在使用SNMP时调用ACL

SNMP的读写权限

17.8 Netflow

Flexible NetFlow

假定一台主机使用 Telnet连接到了一台服务器,该服务器位于虚构的VLAN Sales中。NetFlow 可对Telnet 进行监视-一记录它收发的分组数和字节数等, 再将这些信息发送给NetFlow采集器。

17.8.1 NetFlow和流概述

对网络中的用户(包括所有的终端和应用程序)来说,NetFlow是完全透明的。并非必须在所大路由器上都运行NetFlow,实际上也不应这样做,因为NetFlow在设备上缓存信息,这需要占用内友给设备带来了额外的开销。NetFlow 几乎让你能够对记录和聚合的流数据进行实时的可视化和分析可指定路由器、聚合方案和数据杳看频率, 进而获取相关的数据并据此绘制出条形图、饼图等。 要使用NetFlow,需要在路由器上启用NetFlow,还需要一个NetFlow采集器。

服务提供商使用NetFlow 来完成如下任务。

市面上有各种分析器,可用于收集NetFlow统计信息,对网络流量进行分析,进而提供如下信息。

NetFlow常用的字段如下:

前四 个字段是用于源主机和目标主机之间的套接字,标识了应用程序。协议字段指出了分组包含的数据类型,而IPv4报头中的 ToS字段指定了如何将 QoS规则应用于分组。假设有两个分组,只要有一个重要字段不同,它们就属于不同的流。下面介绍如何在路由器接口上配置和验证NetFlow。

17.8.2 配置NetFlow

要在路由器上妥善地实现NetFlow, 必须完成如下四个步骤。

下面演示了如何在路由器SF 上配置 NetFlow:

SF(config)#int fa0/0
SF(config-if)#ip flow ingress
SF(config-if)#ip flow egress
SF(config-if)#exit
SF(config)#ip flow-export destination 172.16.20.254 9996
SF(config)#ip flow-export version ?
  1
  5
  9
SF(config)#ip flow-export version 9
SF(config)#ip flow-export source loopback 0

首先在接口 Fa0/0上配置命令 ip flow ingress和ip flow egress, 让路由器记录进出该接口的流的NetFlow信息。接下来,指定NetFlow采集器的IP地址以及要使用的版本,注意只能将版本配置为1、5或9,第9版涵盖了前述所有字段,还有MPLS和IPv6信息和端口。对于发送给采集器的分组,将其源IP地址设置成环回接口的IP地址。

验证NetFlow配置:


Show ip flow interface
Show ip flow export

目标端口为9996,这是思科指定的默认端口。


Show ip cache flow
上一篇下一篇

猜你喜欢

热点阅读