信创交换机(S5300G/S6300G)

信锐技术自主研发的千兆盒式交换机产品,支持主流协议标准和应用程序,可方便快速的部署和管理,满足下一代企业网、数据中心、城域网和超融合等多种应用场合需求。
信创交换机(S5300G/S6300G) 文档 功能配置 命令行配置指导-S5300G-52X-EI-48T&S6300G-34Q-EI-16T8X8V
{{sendMatomoQuery("信创交换机(S5300G/S6300G)","命令行配置指导-S5300G-52X-EI-48T&S6300G-34Q-EI-16T8X8V")}}

命令行配置指导-S5300G-52X-EI-48T&S6300G-34Q-EI-16T8X8V

更新时间:2024-08-09

1 基础配置指导 

1.1 系统管理配置

1.1.1 概述

1.1.1.1 功能简介

banner功能提供给设备管理员一个配置提示信息的渠道,可以配置任意想要提示该设备其他使用者的信息。 一些不当的操作会影响到所有用户,甚至引起业务中断等严重后果。因而提前给出提示是非常必要的(例如,请勿重启该设备)。

目前支持三种选择:

  1. MOTD(全称message-of-the-day)。在用户连接到系统时显示在终端上。
  2. login banner,在用户登录设备时候显示。注意这里必须使用login模式,登录模式相关的信息,请参考《用户管理配置》。
  3. exec banner,在用户进入exec模式的时候显示。

1.1.1.2 原理描述

本功能通过在终端上显示的提示信息,期望达到尽量减少人为误操作的目的。

1.1.2 配置

1.1.2.1 配置消息Banner

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建提示信息

用户可以创建一行或多行提示信息,这些信息将会显示在登录用户的终端上。该例子中第一个#号表示指定终止符为#号,也可以选用其他任何字符作为消息的起止符。在第一个#号之后输入需要的提示信息,全部输完以后再次输入一个#号。消息最多为99行,每行最多1023个字符。

Switch(config)# banner motd # This is a switch #

 步骤3 退出配置模式

Switch(config)# exit

 步骤4 检查配置

使用下列命令查看配置

switch# show running
banner motd ^C
This is a switch
^C

1.1.2.2 配置登录Banner

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建提示信息

用户可以创建一行或多行提示信息,在用户登录到系统的时候显示在终端上。请参考《用户管理配置》,必须使用login模式才会显示。该例子中第一个#号表示指定终止符为#号,也可以选用其他任何字符作为消息的起止符。在第一个#号之后输入需要的提示信息,全部输完以后再次输入一个#号。消息最多为99行,每行最多1023个字符。

banner login # admin login #

 步骤3 退出配置模式

Switch(config)# exit

 步骤4 检查配置

使用下列命令查看配置

switch# show running
banner login ^C
admin login
^C

1.1.2.3 配置退出Banner

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建提示信息

用户可以创建一行或多行提示信息,用户可以创建一行或多行提示信息,在用户进入exec模式时候显示在终端上。该例子中第一个#号表示指定终止符为#号,也可以选用其他任何字符作为消息的起止符。在第一个#号之后输入需要的提示信息,全部输完以后再次输入一个#号。消息最多为99行,每行最多1023个字符。

Switch(config)# banner exec # do not reboot! #

 步骤3 退出配置模式

Switch(config)# exit

 步骤4 检查配置

使用下列命令查看配置

switch# show running
banner exec ^C
do not reboot!
^C

1.1.3 应用场景配置举例

1.1.3.1 应用场景一:说明设备用途

MOTD信息设置为这是某某区域(部门)的交换机”,用户在连接到系统时就能看到该提示,如果因为IP地址错误而连错了设备,看到此条提示可以防止进一步误操作该设备。

 配置过程

Switch# configure terminal
Switch(config)# banner motd # This is a switch of IT DEPARTMENT !!! #
Switch(config)# exit

 配置文件

switch# show running
banner motd ^C
This is a switch of IT DEPARTMENT !!!
^C

1.2 用户管理配置

1.2.1 概述

1.2.1.1 功能简介

用户管理功能可用来增加系统的安全性,用户可以通过密码来登录。系统会限制登录用户的数量。

交换机上有三种模式登录:

“no login”模式:直接登录交换机并且不需要密码。

“login”模式:需要输入密码登录交换机。

“login local”模式,使用本地创建的用户名和密码登录交换机。支持32个账户,用户可以为每个用户名设置不同的密码。用户名最大长度为32个字符。在用户启用本地账户验证之前,必须提前创建一个账户。用户可以设置每个账户的等级,有效的等级1-4

同一时刻只有一个用户可以进入配置模式。

1.2.1.2 原理描述

1.2.2 配置

1.2.2.1 配置用户等级

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建用户名和密码

Switch(config)# username testname privilege 4 password 123abc<>

 步骤3 进入用户管理模式并设置验证模式,然后退出

Switch(config)# line vty 0 7
Switch(config-line)# login local
Switch(config-line)# exit

 步骤4 退出配置模式

Switch(config)# exit

 步骤5 检查配置

经过以上配置,登录交换机时,系统会首先提示用户输入用户名:

Username:

在输入用户名之后,会提示输入密码:

Username: testname
Password:

登录成功:

Password:

Switch#

1.2.2.2 配置用户管理

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入用户管理模式并设置验证模式和登陆密码,然后退出

Switch(config)# line vty 0 7
Switch(config-line)# line-password abc
Switch(config-line)# login

 步骤3 退出配置模式

Switch(config)# exit

 步骤4 检查配置

经过以上配置后,登录交换机时系统会提示类似如下的验证信息,用户可以使用之前创建的密码来登录交换机。

Password:

1.2.2.3 密码恢复

用户忘记交换机密码的时候,可以用以下方法恢复:

 步骤1 通过Console线连接交换机并加电,console显示如下

CPU:   MPC8247 (HiP7 Rev 14, Mask 1.0 1K50M) at 350 MHz
Board: 8247 (PCI Agent Mode)
I2C:   ready
DRAM:  256 MB
In:    serial
Out:   serial
Err:   serial
Net:   FCC1 ETHERNET, FCC2 ETHERNET [PRIME]
Press ctrl+b to stop autoboot: 3

 步骤 2 ctrl + b进入Uboot模式

Bootrom#

 步骤 3 使用没有密码的空配置文件启动系统

Bootrom# boot_flash_nopass
Bootrom# Do you want to  revert  to the default config file ? [Y|N|E]:

 请牢记您的用户名和密码。

忘记用户名和密码后通过串口恢复,可能会导致配置丢失及业务中断,所以请务必牢记您的用户名和密码。

1.2.3 应用场景配置举例

1.3 FTP 配置

1.3.1 概述

1.3.1.1 功能简介

用户可从FTP服务器下载一个交换机配置文件,或从交换机上传文件到FTP服务器上。 从FTP服务器下载一个交换机的配置文件以升级交换机的配置,只需用新的文件覆盖当前的启动配置文件即可。交换机配置文件上传到服务器可以起到备份作用,如后续需要,可下载到本交换机或者相同类型的交换机,以更新交换机的配置。

1.3.1.2 原理描述

1.3.2 配置

用户可以复制或上传文件到FTP服务器。

FTP协议要求FTP客户端每次发送FTP请求到服务器时都要包含远程用户名和密码。在用户开始使用FTP上传或下载一个配置文件前,必须完成以下操作:

确保交换机到FTP服务器之间有一个可达路由。如果用户的网络中不存在子网间路由通信,交换机和FTP服务器就必须要在同一网络中,通过ping命令检查FTP服务器的连通性。

如果用户正通过控制台或Telnet访问交换机,需确保当前的FTP用户名有效,是一个可以使用FTP下载功能的用户名。

当用户上传配置文件到FTP服务器,用户必须正确配置FTP服务器以接受来自交换机用户的写请求。

更多相关信息请依据选用的FTP服务器,查看相关参考资料。

1.3.2.1 IPv4网络下载配置文件

 步骤1 拷贝配置文件

Switch# copy mgmt-if ftp://test:test@10.10.10.163/ startup-config.conf  flash:/startup-config.conf

 步骤2 检查配置

使用下列命令查看配置

Switch# show startup-config

1.3.2.2 IPv4网络上传配置文件

 步骤1 拷贝配置文件

Switch# copy flash:/startup-config.conf mgmt-if ftp://test:test@10.10.10.163/startup-config.conf

1.3.2.3 IPv6网络下载配置文件

用户名和密码的配置与IPv4网络环境相同,不再赘述。

 步骤1 拷贝配置文件

Switch# copy ftp://root: root@2001:1000::2/startup-config.conf  flash:/startup-config.conf

1.3.2.4 IPv6网络上传配置文件

用户名和密码的配置与IPv4网络环境相同,不再赘述。

 步骤1 拷贝配置文件

Switch# copy flash:/startup-config.conf mgmt-if ftp://root:root@2001:1000::2 startup-config.conf

1.3.3 应用场景配置举例

1.4 FTP SERVER配置

1.4.1 概述

1.4.1.1 功能简介

FTP(File Transfer Protocol)即文件传输协议,是一种基于TCP的协议,采用客户/服务器模式,占用端口号为2021。通过FTP协议,用户可以在FTP服务器中进行文件的上传或下载等操作。交换机可以配置为FTP服务端,为其它客户端提供FTP服务。

1.4.1.2 原理描述

1.4.2 配置

在配置FTP server前,必须完成以下操作:

确保交换机到FTP server之间有一个可达路由。如果用户的网络中不存在子网间路由通信,交换机和FTP服务器就必须要在同一网络中,通过ping命令检查FTP服务器的连通性。

确保端口打开,FTP serverclient会在随机端口建立数据连接,需要确保端口状态打开。

FTP server通过交换机配置的用户登录,需要配置登录用户。

1.4.2.1 FTP SERVER配置

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 在管理口使能FTP server

Switch(config)# ftp server mgmt-if enable

 步骤3 配置交换机系统用户

用户需要配置密码且权限为4

Switch(config)# username admin privilege 4 password admin

 步骤4 检查配置

客户端连接FTP server并输入用户名和密码,其中server的管理口IP10.10.10.10.

Switch# ftp mgmt-if 10.10.10.10
Connected to 10.10.10.10.
220---------- Welcome to FTP-SERVER ----------
220-You are user number 1 of 50 allowed.
220-Local time is now 06:41. Server port: 21.
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
Name (10.10.10.10:LOGIN): admin
331 User admin OK. Password required
Password:
230 OK. Current directory is /
Remote system type is UNIX.
Using binary mode to transfer files.

1.4.2.2 其它可选配置

 配置FTP server监听端口,默认21端口

Switch# ftp server port 10000

 配置FTP server静默时间,默认15分钟

Switch# ftp server time-out 5

 指定FTP server带内模式源vrf或源IP。指定源IP1.1.1.1,指定源vrftest,指定vrftestIP2.2.2.2

Switch# ftp server source address 1.1.1.1
Switch# ftp server source address vrf test 0.0.0.0
Switch# ftp server source address vrf test 2.2.2.2

1.4.3 应用场景配置举例

1.5 TFTP 配置

1.5.1 概述

1.5.1.1 功能简介

TFTPTrivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。 此协议设计的时候是进行小文件传输的。因此它不具备通常的FTP的许多功能,它只能从文件服务器上获得或写入文件,不能列出目录,不进行认证,它传输8位数据。

1.5.1.2 原理描述

1.5.2 配置

在进行上传下载之前,需要执行如下操作:

确保作为TFTP服务器的工作站配置正确。

确保SwitchTFTP服务器的路由可达。如果子网间不存在进行路由通信的路由器,交换机和TFTP服务器必须在同一网络中。ping命令可以检查是否能连接到TFTP服务器。

确保要下载的配置文件在TFTP服务器上的正确目录下。

下载操作,确保该文件的权限设置正确。

上传操作,如果要覆盖服务器上现有的文件(包括空文件),确保该文件的权限设置正确。

1.5.2.1 IPv4网络下TFTP下载配置文件

Switch# copy mgmt-if tftp://10.10.10.163/startup-config.conf flash:/startup-config.conf

1.5.2.2 IPv4网络下TFTP上传配置文件

Switch# copy flash:/startup-config.conf mgmt-if tftp://10.10.10.163/startup-config.conf

1.5.2.3 IPv6网络下TFTP下载配置文件

Switch# copy mgmt-if tftp://2001:1000::2/startup-config.conf flash:/startup-config.conf

1.5.2.4 IPv6网络下TFTP上传配置文件

Switch# copy flash:/startup-config.conf mgmt-if tftp://2001:1000::2/startup-config.conf

1.5.3 应用场景配置举例

1.6 SCP 配置

1.6.1 概述

1.6.1.1 功能简介

SCPSecure Copy,安全拷贝)是SSH协议的一部分,是基于SSH协议的远程文件复制技术,包括从SCP服务器下载文件至本地,或者从本地上传文件至远端scp服务器。用户可以从远程SCP 服务器下载文件到本地来更新交换机的配置,也能够覆盖当前已经存在的文件。用户可以上传配置文件到server作为备份,这个备份也可用作其它同类型的交换机。

1.6.1.2 原理描述

1.6.2 配置

在进行上传下载之前,需要执行如下操作:

确保作为SCP服务器的工作站配置正确。

确保SwitchSCP服务器的路由可达。如果子网间不存在进行路由通信的路由器,交换机和SCP服务器必须在同一网络中。ping命令可以检查是否能连接到SCP服务器。

确保要下载的配置文件在SCP服务器上的正确目录下。

下载操作,确保该文件的权限设置正确。

上传操作,如果要覆盖服务器上现有的文件(包括空文件),确保该文件的权限设置正确。

1.6.2.1 IPv4网络下SCP 下载配置文件

Switch# copy mgmt-if scp://10.10.10.163/startup-config.conf flash:/startup-config.conf

1.6.2.2 IPv4网络下SCP 上传配置文件

Switch# copy flash:/startup-config.conf mgmt-if scp://10.10.10.163/startup-config.conf

1.6.2.3 IPv6网络下SCP 下载配置文件

Switch# copy mgmt-if scp://2001:1000::2/startup-config.conf flash:/startup-config.conf

1.6.2.4 IPv6网络下SCP 上传配置文件

Switch# copy flash:/startup-config.conf mgmt-if scp://2001:1000::2/startup-config.conf

1.6.3 应用场景配置举例

1.7 Telnet配置

1.7.1 概述

1.7.1.1 功能简介

Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程登录主机工作的能力。在终端用户的电脑上使用Telnet程序,用它连接到服务器。终端用户可以在Telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。通过Telnet程序,用户在本地就能控制服务器。要开始一个Telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。

1.7.1.2 原理描述

1.7.2 配置

1.7.2.1 配置通过带内口Telnet到其他交换机

 1 IPv4网络

Switch# telnet 10.10.29.247
Entering character mode
Escape character is '^]'.
Switch #

 2 IPv6网络

Switch# telnet 2001:1000::71
Entering character mode
Escape character is '^]'.
Switch #

1.7.2.2 配置通过管理口Telnet到其他交换机

 1 IPv4网络

Switch# telnet mgmt-if 10.10.29.247
Entering character mode
Escape character is '^]'.
Switch #

 2 IPv6网络

Switch# telnet mgmt-if 2001:1000::2
Entering character mode
Escape character is '^]'.
Switch #

1.7.2.3 配置交换机的Telnet服务

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 使能Telnet服务

Switch(config)# service telnet enable

 步骤3 退出配置模式

Switch(config)# exit

1.7.3 应用场景配置举例

1.8 SSH配置

1.8.1 概述

1.8.1.1 功能简介

安全shellSSH)是一种协议,可为用户提供一个安全环境,远程连接到设备。当设备进行远程访问时,SSH提供了比Telnet更强大的加密功能,SSH支持数据加密标准(DES)加密算法,三重DES3DES)加密算法,并且提供基于密码的用户认证。

1.8.1.2 原理描述

1.8.2 配置

SSH system application

1.8.2.1 创建SSH key

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建一个key

Switch(config)# rsa key a generate

 步骤3 Flash里面取一个名字为a.pri的私钥

Switch(config)# rsa key a export url flash:/a.pri private ssh2

 步骤4 Flash里面取一个名字为a.pub的公钥

Switch(config)# rsa key a export url flash:/a.pub public ssh2

 步骤5 退出配置模式

Switch(config)# exit

1.8.2.2 导入SSH key

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 导入一个名字为a.pub的公钥

Switch(config)# rsa key importKey import url flash:/a.pub public ssh2

 步骤3 创建用户名密码

Switch(config)# username aaa privilege 4 password abc

 步骤4 指定SSH用户名为aaa

Switch(config)# username aaa assign rsa key importKey

 步骤5 退出配置模式

Switch(config)# exit

1.8.2.3 使用SSH连接设备

 步骤1 SSH客户端下载a.pri key

 步骤2 连接交换机

[root@test1 tftpboot]# ssh -i a.pri aaa@10.10.39.101
aaa@10.10.39.101's password:
Switch#

1.8.3 应用场景配置举例

1.9 时间配置

1.9.1 概述

1.9.1.1 功能简介

为了保证与其他设备协调工作,用户需要将系统时间设置准确。在没有其他外部时间源的情况下,您可以在系统启动后手动的设置时间和日期。如果您还有其他的同步时间的方式,比如NTP,不建议您进行手动设置。

1.9.1.2 原理描述

1.9.2 配置

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置时间和时区

Switch(config)# clock set datetime 11:30:00 10 26 2013
Switch(config)# clock set summer-time dst date 6 1 2013 02:00:00 10 31 2013 02:00:00 120

 步骤3 退出配置模式

Switch(config)# exit

 步骤4 检查配置

使用下列命令显示当前的时间日期信息

Switch# show clock detail
13:31:10 dst Sat Oct 26 2013
Time zone: (GMT + 08:00:00)  beijing
Summer time starts at beijing 02:00:00  06/01/2013
Summer time ends at dst 02:00:00  10/31/2013
Summer time offset:  120 minutes

1.9.3 应用场景配置举例

1.10 证书配置

1.10.1 概述

1.10.1.1 功能简介

交换机的高级功能特性需要使用证书认证才可以使用,每台交换机有自己专属的证书来防止未授权的用户使用高级特性造成未知错误。一共有3类证书:Enterprise Base, Metro Service, and Metro Advanced。不同种类的证书包含不同的功能特性,用户可以根据需要来申请不同种类的证书。如果交换机没有证书,该交换机只能使用L2相关的功能特性。 不同的交换机不能共享同一份证书,为了能够获得指定交换机的证书,首先需要生成指定交换机的设备唯一标识符(UDI), 将UDI发送给设备商来申请该交换机的证书。获得证书后将其应用到对应交换机上即可。

1.10.1.2 原理描述

1.10.2 配置

 步骤1 为当前交换机创建UDI并且发送到FTP服务器上

Switch# generate device identifier mgmt-if ftp://test:test@10.10.25.33/device.udi

 步骤2 申请证书

UDI文件发送给设备商,设备商将根据客户需求来生成相应的证书并发送给客户。

 步骤3 使用证书

将证书从FTP 服务器拷贝到本地,然后重启系统。

Switch# copy mgmt-if ftp://test:test@10.10.25.33/device.lic flash:/device.lic
Switch# reload

必须重启交换机才能让证书生效。

如果交换机没有有效证书,只能使用L2相关功能特性

如果交换机有多张有效证书,则可以使用所有证书中包含的功能特性。

 步骤4 命令验证

使用下列命令,显示当前的证书信息:

Switch# show license
License files:
======================================================================
flash:/ma.lic:
  Created Time: Fri Dec  6 17:22:23 CST 2013
  Vendor:       switchVendor
  Customer:     switchCustomer
  Device MAC:   00:1E:08:09:03:00
  Feature Set:  QINQ MVR ERPS MEF ETHOAM
                VPWS VPLS HVPLS SMLK TPOAM
                OSPF PIM_SM IGMP VRF MPLS
                LDP BGP RSVP OSPF_TE EXTEND_ACL
                PTP BFD SSM IPV6 OSPF6
                PIM_SM6 MVR6 RIPNG TUNNEL_V6

1.11 RPC API配置指导

1.11.1 概述

1.11.1.1 功能简介

RPC API服务给用户通过软件远程控制交换机的能力, 目前只支持JSON-RPC over HTTP HTTP基本认证。

1.11.1.2 原理描述

RPC API 规范:

RPC API服务, 使用了标准的JSON-RPC规范。可以通过JSON RPC method: ‘executeCmds’执行交换机的CLI命令行。默认初始模式为EXEC(#)特权模式。

用户需要通过发送JSON-RPC (over HTTP)请求URL: http://:/command-api, 请求和返回的JSON-RPC格式如下:

 JSON-RPC Request

{
    "params":[                                         命令参数
        {
            "format":"text",                           期望命令返回格式, 可以是’text’或者’json’, 默认’text’
            "version":1,                               命令版本号
            "cmds":[                                   命令列表
                "show run",                            命令行1
                "config t",                            命令行2
                "vlan database",                       命令行3
                "vlan 1-8",                            命令行4
                "interface eth-0-1",                   命令行5
                "switchport mode trunk",               命令行6
                "switchport trunk allowed vlan add 2", 命令行7
                "shutdown",                            命令行8
                "end",                                 命令行9
                "show interface switchport"            命令行10
            ]
        }
    ],
    "jsonrpc":"2.0",                                   JSON RPC协议版本号
    "method":"executeCmds",                            运行交换机CLI命令的方法
    "id":"70853aff-af77-420e-8f3c-fa9430733a19"        JSON RPC协议中的UID
}

 JSON-RPC Response

{
    "jsonrpc":"2.0",                                        JSON RPC协议版本号
    "id":"70853aff-af77-420e-8f3c-fa9430733a19",            JSON RPC协议中的UID
    "result":[                                              JSON RPC返回值列表
        {
            "sourceDetails":"version 5.1.6.fcs\n!\n …",     命令行1的返回值。
                                                            如果运行成功, 原始文本输出在”sourceDetails” 属性中。
            "errorCode":-1003,                              如果有错, 会输出在
            "errorDesc":"unsupported command…",             warnings/errorCode/errorDesc属性中。
            "warnings":"% Invalid …",                             
                                                            JSON格式化对象也会输出到这里。
        },
        { },                                                命令行2的返回值。
        { },                                                命令行3的返回值。
        { },                                                命令行4的返回值。
        { },                                                命令行5的返回值。
        { },                                                命令行6的返回值。
        { },                                                命令行7的返回值。
        { },                                                命令行8的返回值。
        { },                                                命令行9的返回值。
        {
            "sourceDetails":" Interface name          : eth-0-1\n Switchport mode         : trunk\n …\n"
        }                                                   命令行10的返回值。
    ]
}

 Python Client代码示例

pyjsonrpc库为例, 示例代码如下:

import pyjsonrpc
import json

http_client = pyjsonrpc.HttpClient(
    url = "http://10.10.39.64:80/command-api",
    username = "username",
    password = "password"
)

cmds = {}
cmd_list = ["show run", "config t", "vlan database", "vlan 1-8", "interface eth-0-1", "switchport mode trunk", "switchport trunk allowed vlan add 2", "shutdown", "end", "show interface switchport"]

cmds['cmds'] = cmd_list
cmds['format'] = 'text'
cmds['version'] = 1

try:
    response = http_client.call("executeCmds", cmds)
    print("json response:");
    json_result = json.dumps(response, indent=4)
    print(json_result)
except Exception, e:
    if e.code == 401:
        print "Unauthorized user"
    else:
        print e.message
        print e.data

 错误码

下面列出了JSON-RPC 2.0的错误码:

错误码

描述

-32700

JSON 解析错误

-32600

无效请求

-32601

方法无效

-32602

无效参数

-32603

内部错误

下面列出了RPC-API的错误码:

错误码

描述

-1000

普通错误

-2001

不支持的JSON RPC API版本

-2002

JSON RPC中必须指定’params’ ‘cmds’

-2003

不支持的JSON返回格式

-3001

命令执行错误: 超时

-3002

命令执行错误: 不支持该命令

-3003

命令执行错误: 该命令未授权

-3004

命令执行错误: 找不到该命令

-3005

命令执行错误: 不能够转换为JSON格式

-3006

命令执行错误: 命令行数目太少

-3007

命令执行错误: 命令行数目太多

1.11.2 配置

1.11.2.1 配置RPC API服务

用户可以按照下列步骤启用RPC API服务, 默认使用80端口。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 启动RPC API 服务

Switch(config)# service rpc-api enable

 使用下列命令停止RPC API服务:

Switch(config)# service rpc-api disable

 步骤3 退出配置模式

Switch(config)# end

1.11.2.2 配置RPC API服务的HTTP

用户可以配置RPC API服务器的HTTP认证。 目前只支持HTTP Basic基本认证, 用户认证失败将会返回401 状态码。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置用户名和密码,启用HTTP认证

Switch(config)# username myuser password mypass privilege 4
Switch(config)# service rpc-api auth-mode basic

 使用下列命令关闭认证:

Switch(config)# no service rpc-api auth-mode

 启用或关闭HTTP认证后, 用户需要手动重启RPC API服务, 或者重启交换机,配置才能生效。启用RPC API后会占用2imish资源下发命令,当是有show usersRPC API占用imishidle time一直是0

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch# show services rpc-api
RPC API service configuration:
Server State        : enable
Port                : 80
Authentication Mode : basic
VRF                 : default

1.11.3 应用场景配置举例

1.12 HTTP 配置

1.12.1 概述

1.12.1.1 功能简介

本章介绍交换机HTTP相关配置,便于通过WEB登录设备。

1.12.1.2 原理描述

1.12.2 配置

1.12.2.1 准备工作

将一个合法的web镜像上传到flash:目录。 参考FTPTFTP用法介绍。

1.12.2.2 配置交换机的HTTP服务

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 加载WEB镜像

Switch(config)# http server load flash:/webImage.bin

 步骤3 配置HTTP服务器地址 (可选)

此步骤用于配置Web服务器的源地址,仅支持环回口地址。 Web服务器的源地址指定以后,只能通过该地址登陆web。 如不指定Web服务器的源地址,可使用telnet登陆设备时相同的IP地址来登陆web。 不管是否指定,都需要在设备和PC客户端之间有路由可达。

Switch(config)# interface loopback 0
Switch(config-if)# ip address 192.168.1.100/32
Switch(config-if)# quit
Switch(config)# http server source address 192.168.1.100
This operation will cause all the online HTTP(S) users to be offline.
Continue? [yes/no]: yes
Switch(config)# ip route 0.0.0.0/0 192.168.1.1

 步骤4 使能HTTP服务

Switch(config)# service http enable
This operation will cause all the online HTTP(S) users to be offline.
Continue? [yes/no]: yes

 步骤5 退出配置模式

Switch(config)# exit

 步骤6 通过浏览器登录web页面

在地址栏输入设备IP地址,登录页面。

1.12.3 应用场景配置举例

2   以太网配置指导  

2.1 接口配置

2.1.1 概述

2.1.1.1 功能简介

端口支持手工打开和关闭,支持配置速率和双工模式。

当端口状态为打开状态时,正确的连接线缆即可正常工作。当端口状态为关闭状态时,无论是否连接线缆,端口都是不工作的。

部分设备版型支持Combo端口(光电复用),用户可根据实际组网情况选择其中的一个使用,但两者不能同时工作,当激活其中的一个端口时,另一个端口就自动处于禁用状态。当combo端口工作在光口模式下时,配置速度或双工是无效的。

设备物理端口的命名与编号方式:接口名为eth-[slot]-[port]; [slot]即槽位号,盒式交换机单板槽位号为0stacking状态下根据配置决定。[port]即端口号,编号从1开始,从上至下,从左至右排序。参见下图示意:

Interface Name

设备支持的端口类型及数量,请参考产品spec

2.1.1.2 原理描述

2.1.2 配置

2.1.2.1 配置端口状态

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 打开一个端口

Switch#(config)# interface eth-0-1
Switch(config-if)# no shutdown

 步骤3 关闭一个端口

Switch(config-if)# interface eth-0-2
Switch(config-if)# shutdown

 步骤4 退出配置模式

Switch(config-if)# end

 步骤5 检查配置

使用下列命令显示端口的状态:

Switch# show interface status
Port       Status     Duplex   Speed    Mode    Type
------------------------------------------------------------
eth-0-1    up         a-full   a-1000   access  1000BASE_T
eth-0-2    admin down auto     auto     access  1000BASE_T

2.1.2.2 配置端口速率

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入端口模式并配置速率

配置端口1速率为100M

Switch(config)# interface eth-0-1
Switch(config-if)# speed 100
Switch(config-if)# no shutdown

配置端口2速率为1000M

Switch(config-if)# interface eth-0-2
Switch(config-if)# no shutdown
Switch(config-if)# speed 1000

配置端口3速率为自适应模式

Switch(config-if)# interface eth-0-3
Switch(config-if)# no shutdown
Switch(config-if)# speed auto

 步骤3 退出配置模式

Switch(config-if)# end

 步骤4 命令验证

使用下列命令,显示端口状态:

Switch# show interface status
Port       Status     Duplex   Speed    Mode    Type
------------------------------------------------------------
eth-0-1    up         a-full   100      access  1000BASE_T
eth-0-2    up         a-full   1000     access  1000BASE_T 
eth-0-3    up         a-full   a-1000   access  1000BASE_T 

2.1.2.3 配置接口duplex

设置端口的双工模式时存在三种情况:

  1. 当需要端口在发送数据包的同时可以接收数据包时,可以将端口设置为全双工(full)属性。
  2. 当需要端口同一时刻只能发送数据包或接收数据包时,可以将端口设置为半双工(half)属性。
  3. 当需要端口的双工属性由本端接口和对端接口自动协商决定时,可以将端口设置为自协商(auto)属性。

用户可以根据实际组网情况选择端口的双工模式。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入端口模式并配置duplex

配置端口1为全双工

Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# duplex full

配置端口2为半双工

Switch(config-if)# interface eth-0-2
Switch(config-if)# no shutdown
Switch(config-if)# duplex half

配置端口3为自适应

Switch(config)# interface eth-0-3
Switch(config-if)# no shutdown
Switch(config-if)# duplex auto

 步骤4 命令验证

使用下列命令,显示端口状态:

Switch# show interface status
Port       Status     Duplex   Speed    Mode    Type
------------------------------------------------------------
eth-0-1    up         full     a-1000   access  1000BASE_T
eth-0-2    up         half     a-100    access  1000BASE_T 
eth-0-3    up         a-full   a-1000   access  1000BASE_T

2.1.3 应用场景配置举例

2.2 接口组速率配置

2.2.1 概述

2.2.1.1 功能简介

对于接口组中的接口,任一接口配置完速率模式后,同一接口组内的所有接口都会被配置相同的速率。

2.2.1.2 原理描述

2.2.2 配置

2.2.2.1 查看端口的组ID信息

设置接口组端口速率时需要知道哪些端口属于接口组,哪些端口是在一个接口组内;不属于接口组内的端口需要使用speed命令设置端口的速率模式,属于接口组内的端口需要使用group-speed命令设置端口的速率模式。

如果端口group-id等于0,表示端口不属于接口组,不等于0表示端口属于接口组,group-id相等的端口则属于同一接口组。

 步骤1 显示端口接口组信息

使用下列命令,显示端口接口组信息:

Switch# show group-id info
Group Id    Member Ports                   
-----------+--------------------
0           eth-0-1   eth-0-2  
            eth-0-3   eth-0-4  
            eth-0-5   eth-0-6  
            eth-0-7   eth-0-8  
            eth-0-9   eth-0-10 
            eth-0-11  eth-0-12 
            eth-0-13  eth-0-14 
            eth-0-15  eth-0-16 
            eth-0-17  eth-0-18 
            eth-0-19  eth-0-20 
            eth-0-21  eth-0-22 
            eth-0-23  eth-0-24 
            eth-0-25  eth-0-26 
            eth-0-27  eth-0-28 
            eth-0-29  eth-0-30 
            eth-0-31  eth-0-32 
            eth-0-33  eth-0-34 
            eth-0-35  eth-0-36 
            eth-0-37  eth-0-38 
            eth-0-39  eth-0-40 
            eth-0-41  eth-0-42 
            eth-0-43  eth-0-44 
            eth-0-45  eth-0-46 
            eth-0-47  eth-0-48 
----------------------------------
1           eth-0-49  eth-0-50 
            eth-0-51  eth-0-52 
Switch#

 步骤2 配置接口组速率

Switch# configure terminal
Switch(config)# interface eth-0-49
Switch(config-if)# group-speed 1000
% Warning: Speed of Port eth-0-49, eth-0-50, eth-0-51, eth-0-52 will all be switched to 1000M after entering this CLI

2.2.3 应用场景配置举例

2.3 三层接口配置

2.3.1 概述

2.3.1.1 功能简介

系统支持3种类型的三层接口:

  1. VLAN接口:具有三层特性的逻辑接口,通过配置VLANIF接口的IP地址,实现Vlan间互访。VLAN接口可以被创建和删除。
  2. 路由端口:使用no switchport将物理端口切换为路由端口。
  3. 三层link aggregation端口:链路聚合接口,由路由端口组成。

每一个三层接口都至少会拥有一个IP地址,所有三层接口都需要一个IP地址进行路由,此文档描述如何配置三层接口,以及如何分配一个IP地址到接口。

2.3.1.2 原理描述

2.3.2 配置

2.3.2.1 配置路由端口

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入端口配置模式并设置三层接口、配置IP地址

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 1.1.1.1/24

 步骤3 退出配置模式

Switch(config-if)# end

 步骤4 检查配置

使用下列命令,显示端口摘要信息:

Switch# show ip interface brief
Interface             IP-Address      Status                Protocol
eth-0-1                1.1.1.1         up                     up
Switch# show ip interface
Interface eth-0-1
  Interface current state: UP
  Internet address(es):
    1.1.1.1/24 broadcast 1.1.1.255
  Joined group address(es):
    224.0.0.1
  The maximum transmit unit is 1500 bytes
  ICMP error messages limited to one every 1000 milliseconds
  ICMP redirects are always sent
ICMP unreachables are always sent
  ICMP mask replies are always sent
  ARP timeout 01:00:00,  ARP retry interval 1s
  VRRP master of:  VRRP is not configured on this interface

2.3.2.2 配置VLAN端口

在一个以太网接口上可以配置多个虚拟VLAN接口,一旦创建,任何VLAN接口和物理接口功能相同,它们可以像任何物理接口一样进行配置和显示。动态路由协议,如:RIPOSPFBGP,都可以在整个网络使用VLAN接口。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan模式创建一个vlan

Switch(config)# vlan database
Switch(config-vlan)# vlan 10
Switch(config-vlan)# exit

 步骤3 进入端口配置模式并设置二层端口属性

Switch(config)# interface eth-0-2
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan all
Switch(config-if)# no shutdown
Switch(config-if)# exit

 步骤4 进入vlan接口模式,配置IP地址

Switch(config)# interface vlan10
Switch(config-if)# ip address 2.2.2.2/24

 步骤5 退出配置模式

Switch(config-if)# end

 步骤6 检查配置

使用下列命令,显示端口摘要信息:

Switch# show ip interface brief
Interface             IP-Address      Status                Protocol
vlan10                2.2.2.2         up                    up

Switch# show ip interface
Interface vlan10
  Interface current state: UP
  Internet address(es):
    2.2.2.2/24 broadcast 2.2.2.255
  Joined group address(es):
    224.0.0.1
  The maximum transmit unit is 1500 bytes
  ICMP error messages limited to one every 1000 milliseconds
  ICMP redirects are always sent
  ICMP redirects are always sent
  ICMP unreachables are always sent
  ICMP mask replies are always sent
  ARP timeout 01:00:00,  ARP retry interval 1s
  VRRP master of :  VRRP is not configured on this interface

2.4 接口Errdisable配置

2.4.1 概述

2.4.1.1 功能简介

Errdisable是一种通过关闭异常接口来保护系统的机制。

如果一个接口进入Errdisable状态,有两种方法从errdisabled状态恢复。

第一个方法是在Errdisable检测之前使能Errdisable恢复,接口在被设定的时间之后自动恢复。但如果Errdisable先发生,然后Errdisable恢复功能才使能,Errdisable将不会自动恢复。

第二个方法是在Errdisable接口上配置“no shutdown”命令。

接口链路状态的摆动是潜在的硬件或线路问题造成的错误。管理员可以配置接口的链路摆动的检测条件,用来抑制链路摆动。

2.4.1.2 原理描述

2.4.2 配置

2.4.2.1 配置Errdisable检测

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 使能检测链路摆动抑制errdisable

Switch(config)# errdisable detect reason link-flap

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

使用下列命令,显示error disable 检查的配置:

Switch# show errdisable detect
ErrDisable Reason        Detection status
-----------------        ----------------
bpduguard                Enabled
bpduloop                 Enabled
link-monitor-failure     Enabled
oam-remote-failure       Enabled
port-security            Enabled
link-flap                Enabled
monitor-link             Enabled
udld                     Disabled
fdb-loop                 Disabled
loopback-detection       Enabled
reload-delay             Enabled

2.4.2.2 配置Errdisable恢复

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 使能Errdisable并设置恢复时间段

Switch(config)# errdisable recovery reason link-flap
Switch(config)# errdisable recovery interval 30

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

使用下列命令,显示error disable恢复配置:

Switch# show errdisable recovery
ErrDisable Reason        Timer Status
-----------------        --------------
bpduguard                Disabled
bpduloop                 Disabled
link-monitor-failure     Disabled
oam-remote-failure       Disabled
port-security            Disabled
link-flap                Enabled
udld                     Disabled
fdb-loop                 Disabled
loopback-detection       Disabled
Timer interval: 30 seconds

2.4.2.3 配置Errdisable摆动抑制

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 设置链路抖动的条件

 Switch(config)# errdisable flap reason link-flap 20 60

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

使用下列命令,显示error disable摆动抑制的配置:

Switch# show errdisable flap
ErrDisable Reason        Flaps     Time (sec)
-----------------        ------    ----------
link-flap                20        60 

2.4.2.4 检查Errdisable 状态

管理员可以通过两种命令来检查接口errdisable状态。

 1 链路摆动抑制errdisable使能

如果errdisable使能恢复,命令行将显示恢复所剩时间,否则将显示没有恢复。

Switch# show errdisable recovery
ErrDisable Reason        Timer Status
-----------------        --------------
bpduguard                Disabled
bpduloop                 Disabled
link-monitor-failure     Disabled
oam-remote-failure       Disabled
port-security            Disabled
link-flap                Enabled
udld                     Disabled
fdb-loop                 Disabled
loopback-detection       Disabled
Timer interval: 300 seconds
Interfaces that will be enabled at the next timeout:
Interface Errdisable Reason Time Left(sec)
--------- ----------------- --------------
eth-0-3   link-flap         25

 2 链路摆动抑制 errdisable去使能

Switch# show errdisable recovery
ErrDisable Reason        Timer Status
-----------------        --------------
bpduguard                Disabled
bpduloop                 Disabled
link-monitor-failure     Disabled
oam-remote-failure       Disabled
port-security            Disabled
link-flap                Disabled
udld                     Disabled
fdb-loop                 Disabled
loopback-detection       Disabled
Timer interval: 300 seconds

 3 接口状态命令显示简短的信息来表示接口的errdisable状态

Switch# show interface status
Port       Status     Duplex   Speed    Mode    Type         Description    
-----------------------------------------------------------------------------
eth-0-1    up         a-full   a-1000   TRUNK   1000BASE_SX                 
eth-0-2    down       auto     auto     TRUNK   Unknown                     
eth-0-3    errdisable a-full   a-1000   TRUNK   1000BASE_SX                 
eth-0-4    down       auto     auto     ACCESS  Unknown         

2.4.3 应用场景配置举例

2.5 MAC表配置

2.5.1 概述

2.5.1.1 功能简介

MAC地址表中包含交换机端口之间转发流量的地址信息。地址表包括地址类型如下:

动态地址:根据交换机的源地址学习,如果该地址在老化时间后未学习到,进入老化状态。我们只支持IVL的学习模式。

静态地址:由管理员手动添加源地址。

以下是用来形容MAC地址表中的术语和概念的简要描述:

IVL:独立VLAN学习:对于一个给定的VLAN,如果某个特定的MAC地址是在一个VLAN学习的,它不能被作为任何其他VLAN地址转发决策。

SVL:共享VLAN学习:对于一个给定的VLAN,如果某个特定的MAC地址是在一个VLAN中学习的,它可以作为任何其他VLAN地址转发决策。

参考:IEEE 802.1DIEEE 802.1Q

2.5.1.2 原理描述

2.5.2 配置

2.5.2.1 地址老化时间配置

Mac address aging

老化时间不是精确的时间。如果老化时间设置为N,动态地址将在N - 2N间隔后老化。默认的老化时间为300秒。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 设置动态地址老化时间

Switch(config)# mac-address-table ageing-time 10

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

使用下列命令,显示动态地址老化时间:

Switch# show mac address-table ageing-time
MAC address table ageing time is 10 seconds

2.5.2.2 静态单播地址配置

Static mac address table

单播地址表只能绑定在一个端口上.如图所示,mac-da 0000.1234.5678 转发出口为eth-0-1

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置静态mac地址表

Switch(config)# mac-address-table 0000.1234.5678 forward eth-0-1 vlan 1

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

使用下列命令查看mac地址表:

Switch# show mac address-table
Mac Address Table
-------------------------------------------
(*) - Security Entry
Vlan    Mac Address      Type      Ports
----   --------------   -------   --------
1       0000.1234.5678   static    eth-0-1

2.5.2.3 静态组播地址配置

Static multicast mac address table

组播地址可以绑定在多个端口上。如图所示,eth-0-1eth-0-2都加入了mac地址为0100.0000.0000的组播。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置静态组播mac地址表

Switch(config)# mac-address-table 0100.0000.0000 forward eth-0-1 vlan 1
Switch(config)# mac-address-table 0100.0000.0000 forward eth-0-2 vlan 1

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

使用下列命令查看mac地址表:

Switch# show mac address-table
   Mac Address Table
-------------------------------------------
(*) - Security Entry
Vlan    Mac Address       Type        Ports
----   --------------    -------     -------
1      0100.0000.0000    static      eth-0-1
                                     eth-0-2

2.5.2.4 MAC地址过滤配置

mac address filter

MAC过滤会丢弃那些源或目的地址设置为丢弃数据帧。MAC过滤的优先级高于MAC地址。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置需要丢弃的mac地址表

Switch(config)# mac-address-table 0000.1234.5678 discard

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

使用下列命令查看mac地址过滤表:

Switch# show mac-filter address-table
     MAC Filter Address Table    
----------------------------------
Current count       : 1
Max count           : 128
Left count          : 127
Filter address list :
----------------------------------
0000.1234.5678

2.5.2.5 指定VLAN的MAC地址过滤配置

mac address filter with VLAN

MAC过滤会丢弃那些源或目的地址匹配设置的MAC,并且VLAN也匹配的数据帧。MAC过滤的优先级高于MAC地址。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建VLAN

Switch(config)# vlan 2

 步骤3 退出VLAN视图

Switch(config-vlan)# exit

 步骤4 配置需要丢弃的mac地址表

Switch(config)# mac-address-table 0000.1234.5678 discard vlan 2

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

使用下列命令查看指定VLANmac地址过滤表:

Switch# show mac address-table blackhole
          Mac Address Table
-------------------------------------------
(*)  - Security Entry     (M)  - MLAG Entry
(MO) - MLAG Output Entry  (MI) - MLAG Input Entry
(E)  - EVPN Entry         (EO) - EVPN Output Entry
(EI) - EVPN Input Entry  
Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
2       0000.1234.5678    blackhole   drop

2.5.3 应用场景配置举例

2.6 VLAN配置

2.6.1 概述

2.6.1.1 功能简介

VLAN(虚拟局域网)是一个逻辑上分割成不同广播域的网络,使数据包只能在被指定为同一个VLAN的端口之间进行交换。每个VLAN都被视为一个逻辑网络,目的地不属于同一个VLAN的数据包必须通过路由转发。

参考IEEE 802.1Q

2.6.1.2 原理描述

根据以下术语来描述VLAN

VIDVLAN标识符

LAN:本地局域网

VLAN:虚拟局域网

PVIDPort Vlan ID,也就是端口的虚拟局域网ID号,关系到端口收发数据帧时的VLAN TAG 标记

Tagged Frame:带有4字节的VLAN标签,如下图所示:

Tagged Frame

Trunk 链路:带TAG帧和不带TAG帧都可以在此链路上传输,Trunk允许多个VLAN在链路上转发,具体如下图所示:

Trunk link

Access链路:只有不带TAG的帧能通过ACCESS链路,Access链路只能连接网络的边缘, 也就是所谓的工作站,具体如下图所示:

Access link

2.6.2 配置

2.6.2.1 配置Access端口

Access link

Access端口只接收未标记的帧,传输不带TAG的帧。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式并创建vlan

Switch(config)# vlan database
Switch(config-vlan)# vlan 2
Switch(config-vlan)# exit

 步骤3 进入端口模式设置端口模式并指定相应的vlan

Switch(config)# interface eth-0-1
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 2

 步骤4 退出配置模式

Switch(config-if)# end

 步骤5 检查配置

使用下列命令显示交换机接口的信息:

Switch# show interface switchport interface eth-0-1
Interface name          : eth-0-1
Switchport mode         : access
Ingress filter          : enable
Acceptable frame types  : vlan-untagged only
Default Vlan            : 2
Configured Vlans        :    2

使用下列命令显示vlan的简要配置信息:

Switch# show vlan brief
VLAN ID  Name            State   STP ID      Member ports                  
                                                 (u)-Untagged, (t)-Tagged
======= ================ ======= =======  ========================
1       default          ACTIVE  0       eth-0-2(u) eth-0-3(u)
                                                 eth-0-4(u) eth-0-5(u)
                                                 eth-0-6(u) eth-0-7(u)
                                                 eth-0-8(u) eth-0-9(u)
                                                 eth-0-10(u) eth-0-11(u)
                                                 eth-0-12(u) eth-0-13(u)
                                                 eth-0-14(u) eth-0-15(u)
                                                 eth-0-16(u) eth-0-17(u)
                                                 eth-0-18(u) eth-0-19(u)
                                                 eth-0-20(u) eth-0-21(u)
                                                 eth-0-22(u) eth-0-23(u)
2       VLAN0002         ACTIVE  0       eth-0-1(u)

2.6.2.2 Trunk端口配置

Trunk端口能接收标记、无标记的、优先级标记的帧,并发送未标记和标记的帧。如果端口收到一个未标记的帧,此帧将分配端口的PVIDVLAN ID;如果一个帧的VID与端口的PVID相等,此帧发送时会剥掉VLAN标签。

Trunk link

组网如上拓扑所示。

以下配置步骤,Switch1Switch2相同。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式并创建vlan

Switch(config)# vlan database
Switch(config-vlan)# vlan 10,20
Switch(config-vlan)# exit

 步骤3 进入端口模式设置端口模式并指定相应的vlan

eth-0-1 本地vlan10,允许所有vlan通过

Switch(config)# interface eth-0-1
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan all
Switch(config-if)# switchport trunk native vlan 10
Switch(config-if)# exit

eth-0-2access模式,加入vlan 10

Switch(config)# interface eth-0-2
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 10
Switch(config-if)# exit

 步骤4 退出配置模式

Switch(config-if)# end

 步骤5 检查配置

使用下列命令显示交换机接口的信息:

Switch# show interface switchport
Interface name          : eth-0-1
Switchport mode         : trunk
Ingress filter          : enable
Acceptable frame types  : all
Default Vlan            : 10
Configured Vlans        :    1   10   20
Interface name          : eth-0-2
Switchport mode         : access
Ingress filter          : enable
Acceptable frame types  : vlan-untagged only
Default Vlan            : 10
Configured Vlans        :   10

使用下列命令显示vlan的简要配置信息:

Switch# show vlan brief
VLAN ID  Name            State   STP ID      Member ports                  
                                                 (u)-Untagged, (t)-Tagged
======= ================ ======= =======  ========================
1       default          ACTIVE  0       eth-0-1(t) eth-0-3(u)
                                                 eth-0-4(u) eth-0-5(u)
                                                 eth-0-6(u) eth-0-7(u)
                                                 eth-0-8(u) eth-0-9(u)
                                                 eth-0-10(u) eth-0-11(u)
                                                 eth-0-12(u) eth-0-13(u)
                                                 eth-0-14(u) eth-0-15(u)
                                                 eth-0-16(u) eth-0-17(u)
                                                 eth-0-18(u) eth-0-19(u)
                                                 eth-0-20(u) eth-0-21(u)
                                                 eth-0-22(u) eth-0-23(u)
10      VLAN0010         ACTIVE  0       eth-0-1(t) eth-0-2(u)
20      VLAN0020         ACTIVE  0       eth-0-1(t)

2.6.3 应用场景配置举例

2.7 VOICE VLAN配置

2.7.1 概述

2.7.1.1 功能简介

随着语音技术的日益发展,IP电话、IADIntegrated Access Device,综合接入设备)应用越来越广泛,尤其在宽带小区,网络中经常同时存在语音数据和业务数据两种流量。语音数据在传输时需要具有比业务数据更高的优先级,以减少传输过程中可能产生的时延和丢包现象。

提高语音数据传输优先级的传统处理方法是使用ACL对语音数据进行区分,并使用QoS保证传输质量。为简化用户配置、更方便的管理语音流的传输策略,设备机提供了Voice VLAN功能。Voice VLAN的主要特点就是可以通过报文的源MAC地址自动识别出语音流量,保证语音流量传输。

2.7.1.2 原理描述

2.7.2 配置

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式并创建vlan

Switch(config)# vlan database
Switch(config-vlan)# vlan 2
Switch(config-vlan)# exit

 步骤3 设置voice vlancos值(可选)

默认值是5

Switch(config)# voice vlan set cos to 7

 步骤4 指定voice vlan,添加voice vlanmac 条目

Switch(config)# voice vlan 2
Switch(config)# voice vlan mac-address 0055.0000.0000 ffff.ff00.0000 description test

 步骤5 进入端口配置模式,配置端口属性并启用 voice vlan

Switch(config)# interface eth-0-1
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan all
Switch(config-if)# voice vlan enable

Switch(config-if)# interface eth-0-2
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan all

 步骤6 检查配置

eth-0-1发送报文,报文格式为(Vlan tag字段当中的priority0):

    0x0000:  0000 0a02 0001 0055 0000 0011 8100 0002  ........k.......
    0x0010:  0800 aadd aadd aadd aadd aadd aadd aadd  ................
    0x0020:  aadd aadd aadd aadd aadd aadd aadd aadd  ................
    0x0030:  aadd aadd aadd aadd aadd aadd            ............

eth-0-2接收报文,收到报文的格式为(vlan tag字段当中的priority被修改为了5):

    0x0000:  0000 0a02 0001 0055 0000 0011 8100 a002  ........k.......
    0x0010:  0800 aadd aadd aadd aadd aadd aadd aadd  ................
    0x0020:  aadd aadd aadd aadd aadd aadd aadd aadd  ................
    0x0030:  aadd aadd aadd aadd aadd aadd            ............

2.7.3 应用场景配置举例

2.8 VLAN Classification 配置

2.8.1 概述

2.8.1.1 功能简介

VLAN分类是基于协议或子网标准的具体规则将数据包发送到选定的VLAN。每一个接口可以应用一种规则集。

VLAN分类规则有3种类型:基于MAC、基于IP和基于协议的分类。基于MACVLAN分类规则是根据传入数据包的源MAC地址将数据包进行分类;基于IPVLAN分类规则将根据传入数据包的源IP地址进行分类;基于协议的VLAN分类规则将根据数据包的三层协议类型进行分类,以下三层类型可以支持ARPIPV4)、MPLSMCAST MPLSPPPoE协议和RARP

不同类型的VLAN分类规则,可以添加到同一VLAN的分类组。只有一个VLAN分类规则可以在一个交换机端口生效。

2.8.1.2 原理描述

2.8.2 配置

vlan classification

在下面配置的例子中,创建三个VLAN分类规则:

1条是基于MAC的规则,它将源MAC 2222.2222.2222 分类到VLAN 5

2条是基于IP的规则,它将源IP 1.1.1.1 分类到VLAN 5

3条是基于协议的规则,它将ARP的协议数据包分类到VLAN 5

把规则123加入到组31,并且在三个接口上应用组31。在eth-0-1eth-0-2eth-0-3三个接口上应用不同的分类策略。eth-0-1 基于IP分类,意味着匹配IP的数据包在这个接口上将转发到规则对应的VLAN

eth-0-2 基于MAC分类,意味着匹配MAC地址的数据包将转发到规则对应的VLANeth-0-3 基于协议的分类,意味着匹配协议的数据包将转发到规则对应的VLAN

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式并创建vlan

Switch(config)# vlan database
Switch(config-vlan)# vlan 5
Switch(config-vlan)# vlan 6
Switch(config-vlan)# exit

 步骤3 创建分类规则,并把规则加到组里

Switch(config)# vlan classifier rule 1 mac 2222.2222.2222 vlan 5
Switch(config)# vlan classifier rule 2 ip 1.1.1.1 vlan 5
Switch(config)# vlan classifier rule 3 protocol arp vlan 5

Switch(config)# vlan classifier group 31 add rule 1
Switch(config)# vlan classifier group 31 add rule 2
Switch(config)# vlan classifier group 31 add rule 3

 步骤4 在端口应用

端口eth-0-1

Switch(config)# interface eth-0-1
Switch(config-if)# switchport access vlan 6
Switch(config-if)# switchport access allowed vlan add 5
Switch(config-if)# vlan classifier activate 31 based ip
Switch(config-if)# exit

端口eth-0-2

Switch(config)# interface eth-0-2
Switch(config-if)# switchport access vlan 6
Switch(config-if)# switchport access allowed vlan add 5
Switch(config-if)# vlan classifier activate 31 based mac
Switch(config-if)# exit

端口eth-0-3

Switch(config)# interface eth-0-3
Switch(config-if)# switchport access vlan 6
Switch(config-if)# switchport access allowed vlan add 5
Switch(config-if)# vlan classifier activate 31 based protocol
Switch(config-if)# exit

端口eth-0-6

Switch(config)# interface eth-0-6
Switch(config)#switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 5
Switch(config-if)# exit

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

验证VLAN分类规则:

Switch# show vlan classifier rule
vlan classifier rule 1 mac 2222.2222.2222 vlan 5
vlan classifier rule 2 ip 1.1.1.1 vlan 5
vlan classifier rule 3 protocol arp vlan 5

验证VLAN分类规则组:

Switch# show vlan classifier group
vlan classifier group 31 add rule 1
vlan classifier group 31 add rule 2
vlan classifier group 31 add rule 3

验证VLAN分类规则接口应用:

Switch# show vlan classifier interface grou
vlan classifier group 31 on interface eth-0-2, based mac
vlan classifier group 31 on interface eth-0-1, based ip
vlan classifier group 31 on interface eth-0-3, based protocol

2.8.3 应用场景配置举例

2.9 VLAN Mapping配置

2.9.1 概述

2.9.1.1 功能简介

服务供应商的业务客户往往有特定的VLAN ID的要求,同一个网络服务提供商的不同客户的要求的VLAN可能会重叠,并且通过服务商设备的用户流量也可能会混合。通过给每一个客户分配不同的VLAN ID来映射自己的VLAN ID,能够将不同应用的客户的通讯相分开。

使用VLAN转换功能,服务提供商可以使用一系列的VLAN来服务拥有自己VLAN ID的客户。客户VLAN ID被转换,来自不同应用的客户的流量在服务提供商的设备上被分开,甚至当他们出现在同一VLAN

QinQ技术通过在以太帧中堆叠两个802.1Q包头,有效地扩展了VLAN数目,使VLAN的数目最多可达4096 × 4096个。同时,多个VLAN能够被复用到一个核心VLAN中。ISP通常为每个客户建立一个VLAN模型,用通用属性注册协议/通用VLAN注册协议(GARP/GVRP)自动监控整个主干网络的VLAN,并通过扩展生成树协议(STP)来加快网络收敛速度,从而为网络提供弹性。 QinQ技术作为初始的解决方案是不错的,但随着用户数量的增加,SVLAN模型也会带来可扩展性的问题。因为有些用户可能希望在分支机构间进行数据传输时可以携带自己的VLAN ID,这就使采用QinQ技术的MSP面临以下两个问题:第一,第一名客户的VLAN标识可能与其他客户冲突;第二,服务提供商将受到客户可使用标识数量的严重限制。如果允许用户按他们自己的方式使用各自的VLAN ID空间,那么核心网络仍存在4096VLAN的限制。

QinQ Tunnel

QinQ是指将用户私网VLAN tag封装在公网VLAN tag中,使报文带着两层VLAN tag穿越运营商的骨干网络(公网)。在公网中报文只根据外层VLAN tag(即公网VLAN tag)传播,用户的私网VLAN tag被屏蔽。这样,不仅对数据流进行了区分,而且由于私网VLAN标签被透明传送,不同的用户VLAN标签可以重复使用,只需要外层VLAN标签的在公网上唯一即可,实际上也扩大了可利用的VLAN标签数量。 封装外层VLAN标签有两种方法,一种是标准QINQ封装,即基于端口打外层标签的,该端口下所有的用户数据统一封装一个共同的VLAN标签,在实际应用中局限性太大,另外一种是灵活QINQ封装方法,既可以根据一些特性对用户数据进行流分类,然后不同的类别封装不同的外层VLAN标签。

2.9.1.2 原理描述

2.9.2 配置

2.9.2.1 配置VLAN转换

vlan mapping

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式并创建vlan

Switch(config)# vlan database
Switch(config-vlan)# vlan 2,3
Switch(config-vlan)# exit

 步骤3 创建EVC并关联 vlan

Switch(config)# ethernet evc evc_c1
Switch(config-evc)# dot1q mapped-vlan 2
Switch(config)# ethernet evc evc_c2
Switch(config-evc)# dot1q mapped-vlan 3

 步骤4 创建vlan mapping表,并将vlan映射到evc

Switch(config)# vlan mapping table vm
Switch(config-vlan-mapping)# raw-vlan 10 evc evc_c1
Switch(config-vlan-mapping)# raw-vlan 20 evc evc_c2
Switch(config-vlan-mapping)# exit

 步骤5 在接口使能vlan translation并应用vlan mapping

Switch(config)# interface eth-0-1
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk vlan-translation
Switch(config-if)# switchport trunk vlan-translation mapping table vm
Switch(config-if)# switchport trunk allowed vlan add 2,3

Switch(config-if)# interface eth-0-2
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 2,3
Switch(config-if)# exit

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

使用下列命令显示端口配置:

Switch# show interface switchport interface eth-0-1
Interface name          : eth-0-1
Switchport mode         : trunk
VLAN traslation         : enable
VLAN mapping table      : vm
Ingress filter          : enable
Acceptable frame types  : all
Default Vlan            : 1
Configured Vlans        : 1    2    3

使用下列命令显示vlan mapping表:

Switch# show vlan mapping table
Table Name        EVC Name          Mapped VLAN Raw VLAN
================ ================  =========== =======================
vm                evc_c1            2           10
                  evc_c2            3           20

2.9.2.2 配置802.1Q Tunneling (基本QinQ)

QinQ Tunnel

 步骤1 进入配置模式

Switch# configure terminal

2.9.2.3 步骤2 进入端口配置模型,配置接口为dot11 tunnel 模式

Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# switchport mode dot1q-tunnel

 步骤3 退出配置模式

Switch(config-if)# end

 步骤4 检查配置

这个例子显示了如何配置一个基本的802.1q隧道口的交换机端口。可用显示命令显示接口上的配置:

Switch# show interface switchport interface eth-0-1
Interface name           : eth-0-1
Switchport mode         : dot1q-tunnel(basic)
Ingress filter          : enable
Acceptable frame types  : all
Default Vlan            : 1
Configured Vlans        : 1

2.9.2.4 配置802.1Q Tunneling (灵活QinQ,U-tag报文加一层TAG)

QinQ Tunnel

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式并创建vlan

Switch(config)# vlan database
Switch(config-vlan)# vlan 2,3,20,30
Switch(config-vlan)# exit

 步骤3 创建EVC并关联vlan

Switch(config)# ethernet evc evc_c1
Switch(config-evc)# dot1q mapped-vlan 2
Switch(config)# ethernet evc evc_c2
Switch(config-evc)# dot1q mapped-vlan 3
Switch(config)# ethernet evc evc_c3
Switch(config-evc)# dot1q mapped-vlan 20
Switch(config)# ethernet evc evc_c4
Switch(config-evc)# dot1q mapped-vlan 30
Switch(config-evc)# exit

 步骤4 创建vlan mapping表,并关联EVC

Switch(config)# vlan mapping table vm
Switch(config-vlan-mapping)# raw-vlan 10 evc evc_c1
Switch(config-vlan-mapping)# raw-vlan 30-40 evc evc_c2
Switch(config-vlan-mapping)# raw-vlan untagged evc evc_c3
Switch(config-vlan-mapping)# raw-vlan out-of-range evc evc_c4
Switch(config-vlan-mapping)# exit

 步骤5 配置端口属性,设置为灵活QinQ并使用Vlan Mapping

eth-0-1:

Switch(config-if)# switchport mode dot1q-tunnel
Switch(config-if)# switchport dot1q-tunnel type selective
Switch(config-if)# switchport dot1q-tunnel vlan mapping table vm
Switch(config-if)# switchport dot1q-tunnel allowed vlan add 2,3,20,30

eth-0-2:

Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 2,3,20,30

 步骤6 退出配置模式

Switch(config-if)# end

 步骤7 检查配置

这个例子显示了如何配置一个灵活QINQ。可用显示命令显示接口上的配置。 注意:如果eth-0-1tpideth-0-2tpid不同,用户需要全局启用qos并且将eth-0-2设置为replace cos来替换从eth-0-2出去的stagtpid:

Switch# show interface switchport interface eth-0-1
Interface name          : eth-0-1
Switchport mode         : dot1q-tunnel(selective)
VLAN mapping table      : vm
Ingress filter          : enable
Acceptable frame types  : all
Default Vlan            : 1
Configured Vlans        : 1    2    3    20   30

使用下列命令行显示vlan mapping表:

Switch# show vlan mapping table
Table Name       EVC Name         Mapped VLAN Raw VLAN
================ ================ =========== ===========================
vm               evc_c1           2           10
                  evc_c2           3           30-40
                  evc_c3           20          untagged
                  evc_c4           30          out-of-range

2.9.2.5 配置802.1Q Tunneling (灵活QinQ,U-tag报文加两层TAG的配置)

QinQ Tunnel

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式并创建vlan

Switch(config)# vlan database
Switch(config-vlan)# vlan 2,3,10,20,30
Switch(config-vlan)# exit

 步骤3 创建EVC并关联vlan

Switch(config)# ethernet evc evc_c1
Switch(config-evc)# dot1q mapped-vlan 2
Switch(config-evc)# exit
Switch(config)# ethernet evc evc_c2
Switch(config-evc)# dot1q mapped-vlan 3
Switch(config-evc)# exit
Switch(config)# ethernet evc evc_c3
Switch(config-evc)# dot1q mapped-double-vlan 10 20
Switch(config-evc)# exit
Switch(config)# ethernet evc evc_c4
Switch(config-evc)# dot1q mapped-vlan 30
Switch(config-evc)# exit

 步骤4 创建vlan mapping表,并关联EVC

Switch(config)# vlan mapping table vm
Switch(config-vlan-mapping)# raw-vlan 10 evc evc_c1
Switch(config-vlan-mapping)# raw-vlan 30-40 evc evc_c2
Switch(config-vlan-mapping)# raw-vlan untagged evc evc_c3
Switch(config-vlan-mapping)# raw-vlan out-of-range evc evc_c4
Switch(config-vlan-mapping)# raw-vlan 10 20 egress-vlan untag
Switch(config-vlan-mapping)# exit

 步骤5 配置端口属性,设置为灵活QinQ并使用Vlan Mapping

eth-0-1:

Switch(config)# interface eth-0-1
Switch(config-if)# switchport mode dot1q-tunnel
Switch(config-if)# switchport dot1q-tunnel type selective
Switch(config-if)# switchport dot1q-tunnel vlan mapping table vm
Switch(config-if)# switchport dot1q-tunnel native inner-vlan 10
Switch(config-if)# switchport dot1q-tunnel allowed vlan add 2,3,20,30
Switch(config-if)# exit

eth-0-2:

Switch(config)# interface eth-0-2
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 2,3,20,30
Switch(config-if)# exit 

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

这个例子显示了如何配置一个灵活QINQ。可用显示命令显示接口上的配置:

Switch# show interface switchport interface eth-0-1
Interface name          : eth-0-1
Switchport mode         : dot1q-tunnel(selective)
VLAN mapping table      : vm
Ingress filter          : enable
Acceptable frame types  : all
Default Vlan            : 10
Configured Vlans        : 1    2    3    20   30  

使用下列命令行显示vlan mapping表:

 Table Name       EVC Name         Mapped VLAN Raw VLAN
================ ================ =========== =================================
vm               evc_c1           2           10
                  evc_c2           3           30-40
                  evc_c3           20(10)      untagged
                  evc_c4           30          out-of-range

2.9.3 应用场景配置举例

2.10 Link Aggregation配置

2.10.1 概述

2.10.1.1 功能简介

本章包含了一个链路聚合控制协议(LACP)配置示例。LACP协议是基于802.3adIEEE规范。它允许多个物理接口的捆绑,形成一个单一的逻辑通道,提供增强的性能和冗余。聚合接口被视为单一链路接到每个交换机上。生成树将它视为一个接口。当有一个物理接口出现故障,其他接口正常连接,链路不会中断。此实现在单一的逻辑通道上支持最多16个物理以太网链路。 LACP协议使我们的设备可以管理与符合802.3ad的协议的其他设备之间的链接聚合组。使用LACP协议,交换机学习支持LACP成员识别的每个端口的能力。然后,具有相同的属性动态组端口捆绑到一个单一逻辑链路。

参考:LACP基于IEEE 802.3ad标准协议。

2.10.1.2 原理描述

2.10.2 配置

2.10.2.1 配置动态LACP

Dynamic LACP

Switch1 Switch2 配置如下:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 LACP全局属性

开启动态lacp模式。

Switch1配置:

Switch(config)# port-channel 1 lacp-mode dynamic

Switch2配置:

Switch(config)# port-channel 1 lacp-mode dynamic

 步骤3 进入端口配置模式,将端口添加到Channel Group

Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# channel-group 1 mode active
Switch(config-if)# exit
Switch(config)# interface eth-0-2
Switch(config-if)# channel-group 1 mode active
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-3
Switch(config-if)# channel-group 1 mode active
Switch(config-if)# no shutdown
Switch(config-if)# exit

 步骤4 退出配置模式

Switch(config)# end

 步骤5 检查配置

显示channel group摘要信息:

Switch# show channel-group summary
port-channel load-balance hash-arithmetic: xor
port-channel load-balance hash-field-select:
     macsa
Flags:  s - suspend           T - standby
        D - down/admin down   B - in Bundle
        R - Layer3            S - Layer2
        w - wait              U - in use
Mode:   SLB  - static load balance
        DLB  - dynamic load balance
        SHLB - self-healing load balance
        RR   - round robin load balance
Aggregator Name  Mode      Protocol     Ports
----------------+---------+--------------+---------------------------------------------
agg1(SU)         SLB       LACP(Dynamic)  eth-0-1(B) eth-0-2(B) eth-0-3(B)

显示AGG端口信息:

Switch1# show interface agg1
Interface agg1
  Interface current state: UP
  Hardware is AGGREGATE, address is cce3.33fc.330b (bia cce3.33fc.330b)
  Bandwidth 3000000 kbits
  Index 1025 , Metric 1 , Encapsulation ARPA
  Speed - 1000Mb/s , Duplex - Full  , Media type is Aggregation
  Link speed type is autonegotiation, Link duplex type is autonegotiation
  Input flow-control is off, output flow-control is off
  The Maximum Frame Size is 1534 bytes
  VRF binding: not bound
  Label switching is disabled
  No virtual circuit configured
  ARP timeout 01:00:00,  ARP retry interval 1s
  5 minute input rate 0 bits/sec, 0 packets/sec
  5 minute output rate 2 bits/sec, 0 packets/sec
    13 packets input, 1184 bytes
    Received 0 unicast, 0 broadcast, 0 multicast
    0 runts, 0 giants, 0 input errors, 0 CRC
    0 frame, 0 overrun, 0 pause input
    0 input packets with dribble condition detected
    20 packets output, 2526 bytes
    Transmitted 0 unicast, 0 broadcast, 0 multicast
    0 underruns, 0 output errors, 0 pause output

2.10.2.2 配置静态LACP

Static LACP

Switch1 Switch2 配置如下:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 LACP全局属性

设置系统优先级,用于决定系统解决在选择聚合组中的冲突。数值越低,优先级越高。设置负载均衡的模式,这个例子中使用源mac地址实现。

Switch1配置:

Switch(config)# lacp system-priority 2000
Switch(config)# hash-field port-channel
Switch(config-hash-field)# l2 macsa

Switch2配置:

Switch(config)# lacp system-priority 1000
Switch(config)# hash-field port-channel
Switch(config-hash-field)# l2 macsa

 步骤3 进入端口配置模式,将端口添加到Channel Group

Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# channel-group 1 mode active
Switch(config-if)# exit
Switch(config)# interface eth-0-2
Switch(config-if)# channel-group 1 mode active
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-3
Switch(config-if)# channel-group 1 mode active
Switch(config-if)# no shutdown
Switch(config-if)# exit

 步骤4 退出配置模式

Switch(config)# end

 步骤5 检查配置

显示channel group摘要信息:

Switch# show channel-group summary
port-channel load-balance hash-arithmetic: xor
port-channel load-balance hash-field-select:
     macsa
Flags:  s - suspend           T - standby
        D - down/admin down   B - in Bundle
        R - Layer3            S - Layer2
        w - wait              U - in use
Mode:   SLB  - static load balance
        DLB  - dynamic load balance
        SHLB - self-healing load balance
        RR   - round robin load balance
Aggregator Name  Mode      Protocol     Ports
----------------+---------+------------+-----------------------------------------------
agg1(SU)         SLB       LACP         eth-0-1(B) eth-0-2(B) eth-0-3(B)

显示AGG端口信息:

Switch1# show interface agg1
Interface agg1
  Interface current state: UP
  Hardware is AGGREGATE, address is cce3.33fc.330b (bia cce3.33fc.330b)
  Bandwidth 3000000 kbits
  Index 1025 , Metric 1 , Encapsulation ARPA
  Speed - 1000Mb/s , Duplex - Full  , Media type is Aggregation
  Link speed type is autonegotiation, Link duplex type is autonegotiation
  Input flow-control is off, output flow-control is off
  The Maximum Frame Size is 1534 bytes
  VRF binding: not bound
  Label switching is disabled
  No virtual circuit configured
  ARP timeout 01:00:00,  ARP retry interval 1s
  5 minute input rate 0 bits/sec, 0 packets/sec
  5 minute output rate 2 bits/sec, 0 packets/sec
    13 packets input, 1184 bytes
    Received 0 unicast, 0 broadcast, 0 multicast
    0 runts, 0 giants, 0 input errors, 0 CRC
    0 frame, 0 overrun, 0 pause input
    0 input packets with dribble condition detected
    20 packets output, 2526 bytes
    Transmitted 0 unicast, 0 broadcast, 0 multicast
    0 underruns, 0 output errors, 0 pause output

2.10.2.3 配置静态AGG

Static Agg

Switch1 Switch2 配置如下:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入端口配置模式,将端口添加到静态Channel Group

Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# static-channel-group 1
Switch(config-if)# exit
Switch(config)# interface eth-0-2
Switch(config-if)# static-channel-group 1
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-3
Switch(config-if)# static-channel-group 1
Switch(config-if)# no shutdown
Switch(config-if)# exit

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

显示channel group摘要信息:

Switch1# show channel-group summary
port-channel load-balance hash-arithmetic: xor
port-channel load-balance hash-field-select:
     macsa
Flags:  s - suspend           T - standby
        D - down/admin down   B - in Bundle
        R - Layer3            S - Layer2
        w - wait              U - in use
Mode:   SLB  - static load balance
        DLB  - dynamic load balance
        SHLB - self-healing load balance
        RR   - round robin load balance
Aggregator Name  Mode      Protocol     Ports
----------------+---------+------------+-----------------------------------------------
agg1(SU)         SLB       Static         eth-0-1(B) eth-0-2(B) eth-0-3(B)

显示AGG端口信息:

Switch1# show interface agg 1
Interface agg1
  Interface current state: UP
  Hardware is AGGREGATE, address is cce3.33fc.330b (bia a876.6b2c.9c01)
  Bandwidth 3000000 kbits
  Index 1025 , Metric 1 , Encapsulation ARPA
  Speed - 1000Mb/s , Duplex - Full  , Media type is Aggregation
  Link speed type is autonegotiation, Link duplex type is autonegotiation
  Input flow-control is off, output flow-control is off
  The Maximum Frame Size is 1534 bytes
  VRF binding: not bound
  Label switching is disabled
  No virtual circuit configured
  ARP timeout 01:00:00,  ARP retry interval 1s
  5 minute input rate 0 bits/sec, 0 packets/sec
  5 minute output rate 140 bits/sec, 0 packets/sec
    0 packets input, 0 bytes
    Received 0 unicast, 0 broadcast, 0 multicast
    0 runts, 0 giants, 0 input errors, 0 CRC
    0 frame, 0 overrun, 0 pause input
    0 input packets with dribble condition detected
    1080 packets output, 60614 bytes
    Transmitted 0 unicast, 0 broadcast, 0 multicast
0 underruns, 0 output errors, 0 pause output

2.10.3 应用场景配置举例

2.11 流量控制配置

2.11.1 概述

2.11.1.1 功能简介

流量控制在直连的以太端口上启用,在拥塞期间允许另一端拥塞的节点暂停链路运作来控制 流量速率。当本地设备在本地检测到了任何拥塞,他能够发送一个暂停帧通知链路伙伴或者远程设备已发生拥塞。紧随收到暂停帧之后,远程设备停止发送任何数据包,这样防止在拥塞期间丢弃任何一个数据包。在自协商链路上,本地的流控制能力能通过链路断开/连接来通知对方。

流量控制只在全双工链路上有效

2.11.1.2 原理描述

2.11.2 配置

Flow control

2.11.2.1 配置发送流量控制报文

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,并使能发送流量控制

Switch(config)# interface eth-0-1
Switch(config-if)# flowcontrol send on

 步骤3 退出配置模式

Switch(config-if)# end

 步骤4 检查配置

使用下列命令查看流量控制状态:

Switch# show flowcontrol
Port       Receive FlowControl  Send FlowControl   RxPause      TxPause    
           admin    oper        admin    oper   
---------  -------- --------    -------- --------  -----------  -----------
eth-0-1    off      off         on       on        0            0          
eth-0-2    off      off         off      off       0            0          
eth-0-3    off      off         off      off       0            0     

使用下列命令查看指定端口的流量控制状态:

Switch# show flowcontrol eth-0-1
Port       Receive FlowControl  Send FlowControl   RxPause      TxPause    
           admin    oper        admin    oper   
---------  -------- --------    -------- --------  -----------  -----------
eth-0-1    off      off         on       on        0            0          

2.11.2.2 配置接收流量控制报文

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,并使能发送流量控制

Switch(config)# interface eth-0-1
Switch1(config-if)# flowcontrol receive on

 步骤3 退出配置模式

Switch(config-if)# end

 步骤4 检查配置

使用下列命令查看流量控制状态:

Switch1# show flowcontrol
Port       Receive FlowControl  Send FlowControl   RxPause      TxPause    
           admin    oper        admin    oper   
---------  -------- --------    -------- --------  -----------  -----------
eth-0-1    on       on           off      off       0            0          
eth-0-2    off      off         off      off       0            0          
eth-0-3    off      off         off      off       0            0          

使用下列命令查看指定端口的流量控制状态:

Switch1# show flowcontrol eth-0-1
Port       Receive FlowControl  Send FlowControl   RxPause      TxPause    
           admin    oper        admin    oper   
---------  -------- --------    -------- --------  -----------  -----------
eth-0-1    on       on           off      off       0            0         

2.11.3 应用场景配置举例

2.12 风暴控制配置

2.12.1 概述

2.12.1.1 功能简介

风暴控制是指在指定接口上,通过对接收的最大广播、最大未知组播以及最大未知单播流量进行限制,防止泛洪消耗过多的交换机资源,确保业务正常运行。

可以使用以下两种方式之一进行风暴控制:

百分比模式 (Level)

包速率模式 (PPS)

PPSPackets per second的首字母缩写,每秒传输的报文数,即包速率。

2.12.1.2 原理描述

2.12.2 配置

2.12.2.1 使用百分比(LEVEL)模式配置风暴控制

Percentage Storm Control

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入端口模式,设置风暴控制的百分比

未知单播、组播、广播报文可以分别设置:

Switch(config)# interface eth-0-1
Switch(config-if)# storm-control unicast level 0.1
Switch(config-if)# storm-control multicast level 1
Switch(config-if)# storm-control broadcast level 10

 步骤3 退出配置模式

Switch(config-if)# end

 步骤4 检查配置

Switch# show storm-control interface eth-0-1
Port      ucastMode ucastlevel   bcastMode bcastLevel   mcastMode mcastLevel
-------------------------------------------------------------------------------
eth-0-1   Level     0.10         Level     10.00        Level     1.00

2.12.2.2 使用包速率(PPS)模式配置风暴控制

PPS Storm Control

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入端口模式,设置风暴控制的包速率

未知单播、组播、广播报文可以分别设置:

Switch(config)# interface eth-0-1
Switch(config-if)# storm-control unicast pps 1000
Switch(config-if)# storm-control multicast pps 10000
Switch(config-if)# storm-control broadcast pps 100000

 步骤3 退出配置模式

Switch(config-if)# end

 步骤4 检查配置

Switch# show storm-control interface eth-0-1
Port      ucastMode ucastlevel   bcastMode bcastLevel   mcastMode mcastLevel
-------------------------------------------------------------------------------
eth-0-1   PPS       1000         PPS       100000       PPS       10000

2.12.3 应用场景配置举例

2.13 Loopback Detection配置

2.13.1 概述

2.13.1.1 功能简介

网络中的环路会导致设备对广播、组播以及未知单播等报文进行重复发送,造成网络资源的浪费甚至导致网络瘫痪。为了能够及时发现二层网络中的环路,以避免对整个网络造成严重影响,需要提供一种检测功能,使网络中出现环路时能及时通知用户检查网络连接和配置情况,并能够将出问题的接口受控。

Loopback Detection(环回检测)功能可以检测设备的接口是否发生环回,它通过从接口定时发送检测报文,并检测该报文是否会从发出去的接口收到,如果收到从该接口发出的检测报文,则认为当设备的此接口存在环路,可以及时通过发送告警信息到网管系统,使管理人员及时发现并解决网络环路问题,避免长时间的网络异常。此外,设备还可以进行接口受控,根据需求选择配置Trap、关闭接口等处理方式,能迅速将环回对网络的影响降低至最小。

2.13.1.2 原理描述

2.13.2 配置

2.13.2.1 配置使能Loopback Detect

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入端口配置模式,使能 Loopback Detect

Switch(config)# interface eth-0-1
Switch(config-if)# loopback-detect enable

 步骤3 退出配置模式

Switch(config-if)# end

 步骤4 检查配置

默认情况下,loopback detection功能未使能,使能接口Loopback Detection 功能后,接口才会发送环回检测报文来进行接口环回检测。默认检测报文发送间隔为5秒。

使用下列命令查看loopback detection状态:

Switch# show loopback-detect
Loopback detection packet interval(second): 5
Loopback detection recovery time(second):   15
Interface        Action            Status
eth-0-2          shutdown          NORMAL

2.13.2.2 配置Loopback Detect报文发送周期

由于网络时刻处于变化中,因此环回检测是一个持续的过程,接口以一定的时间间隔发送环回检测报文,这个时间间隔即Loopback Detection 报文发送周期。

系统支持配置Loopback Detection报文的发送间隔(1-300秒)。Loopback状态默认恢复的时间为发送间隔的3倍。Loop消失后,接口状态会自动恢复到之前的状态。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 设置 Loopback Detect 报文发送间隔

Switch(config)# loopback-detect packet-interval 10

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

使用下列命令查看loopback detection的报文周期:

Switch# show loopback-detect packet-interval
Loopback detection packet interval(second): 10

2.13.2.3 配置Loopback Detect处理动作

如果发现接口有环回,设备会将该接口设置为处于环回检测工作状态,可配置发送告警、关闭接口、阻塞端口等处理动作。

开启Loopback Detection 功能后,接口会周期性地检测是否收到环回报文。用户可以配置检测到有环回报文时的处理方式,尽量减轻环路对本设备和整个网络的影响

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入端口配置模式,配置loopback detect 处理动作

Switch(config)# interface eth-0-1
Switch(config-if)# loopback-detect action shutdown

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

使用下列命令查看端口上的loopback detection配置:

Switch# show loopback-detect interface eth-0-1
Interface        Action            Status
eth-0-1          shutdown          NORMAL

2.13.2.4 配置对指定VLAN 的Loopback Detection 功能

接口开启Loopback Detection 功能后,系统默认发送的为Untag 检测报文,即不对任何指定VLAN 进行环回检测。当接口是以Tagged 方式加入VLAN,接口发出去Untag 检测报文在链路上会被丢弃,接口将收不到环回回来的报文,因此需要配置对指定的VLAN进行环回检测。配置对指定VLAN Loopback Detection 功能,接口会定时发送1Untagged 检测报文和多份带指定VLAN Tag 的检测报文,一个接口最多可发送8 份带指定VLAN Tag 的检测报文。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入端口配置模式,配置vlan在此接口的loopback detect功能

Switch(config)# interface eth-0-1
Switch(config-if)# loopback-detect packet vlan 20

 步骤3 退出配置模式

Switch(config-if)# end

 步骤4 检查配置

使用下列命令显示loopback detect配置:

Switch# show running-config interface eth-0-1
Building configuration...
!
interface eth-0-1
loopback-detect enable
loopback-detect packet vlan 20
!

2.13.3 应用场景配置举例

2.14 L2 Protocol Tunnel配置

2.14.1 概述

2.14.1.1 功能简介

在不同站点上通过运营商网络连接的客户需要能正常运行二层协议。这一需求希望运营商网络能透明传输STP/RSTP/MSTP报文,因此客户可以跨越运营商网络构建自己的STP树,切断冗余链路。

当二层协议报文透传功能被启用后,在运营商网络边缘的交换机会使用一个新的二层头封装二层协议报文,然后向运营商网络传输。在运营商的网络里,该封装后的报文作为普通报文传输。当报文到达运营商网络边缘时,该报文新加的二层头被剥去,然后二层协议报文被转发给用户交换机处理。

二层协议报文透传功能可以独立使用也可以和QinQ功能一起使用。

2.14.1.2 原理描述

2.14.2 配置

2.14.2.1 配置透传指定的二层协议报文

L2 protocol tunnel

指定的二层协议报文包括STP BPDU报文,Slow proto报文,802.1X EAPOL报文, CFM报文。

在下面的例子中,Switch1 eth-0-1Switch2 eth-0-1配置成tunnel端口。Switch1 eth-0-2Switch2eth-0-2配置成上联口。如果在Switch1eth-0-1口上收到上面三种协议报文,协议报文会加上新的二层头然后从上联口发出。在新的二层头中:目的MACtunnel dmac;源MAC是交换机的route-macVLAN idtunnel evc所对应的VLAN idVLAN priority是配置的Layer 2 protocol cosEthertype0xFFEE。如果在Switch2eth-0-2上收到带上新二层头的协议报文,协议报文上所带的新二层头会被剥去,然后从Switch2eth-0-1发出。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式并创建vlan

Switch(config)# vlan database
Switch(config-vlan)# vlan 2-4
Switch(config-vlan)# exit

 步骤3 创建EVC并关联 vlan

Switch(config)# ethernet evc evc_c1
Switch(config-evc)# dot1q mapped-vlan 2
Switch(config-evc)# exit

Switch(config)# ethernet evc evc_c2
Switch(config-evc)# dot1q mapped-vlan 3
Switch(config-evc)# exit

Switch(config)# ethernet evc evc_c3
Switch(config-evc)# dot1q mapped-vlan 4
Switch(config-evc)# exit

 步骤4 全局使能l2 protocol,配置tunnel destination mac和允许透传的二层协议mac地址

Switch(config)# l2protocol enable
Switch(config)# l2protocol tunnel-dmac 0100.0CCD.CDD2
Switch(config)# l2protocol mac 3 0180.C200.0008
Switch(config)# l2protocol mac 4 0180.C200.0009
Switch(config)# l2protocol full-mac 0100.0CCC.CCCC

 步骤5 进入端口模式,配置端口属性。将二层协议报文透传到指定evc

Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 2-4
Switch(config-if)# spanning-tree port disable
Switch(config-if)# l2protocol mac 3 tunnel evc evc_c1
Switch(config-if)# l2protocol mac 4 tunnel evc evc_c2
Switch(config-if)# l2protocol full-mac tunnel evc evc_c3
Switch(config)# interface eth-0-2
Switch(config-if)# no shutdown
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 2-4
Switch(config-if)# l2protocol uplink enable

 步骤6 退出配置模式

Switch(config-if)# end

 步骤7 检查配置

使用下列命令,查看tunnel口的属性:

switch1# show l2protocol interface eth-0-1
Interface  PDU Address        MASK            Status    EVC            
           (u)-Untagged
           (t)-Tagged
=========  =================  ==============  ========  ================
eth-0-1    0180.c200.0008(u)  ffff.ffff.ffff  Tunnel    evc_c1         
eth-0-1    0180.c200.0008(t)  ffff.ffff.ffff  Tunnel    evc_c1         
eth-0-1    0180.c200.0009(u)  ffff.ffff.ffff  Tunnel    evc_c2         
eth-0-1    0180.c200.0009(t)  ffff.ffff.ffff  Tunnel    evc_c2         
eth-0-1    0100.0ccc.cccc(u)  ffff.ffff.ffff  Tunnel    evc_c3         
eth-0-1    0100.0ccc.cccc(t)  ffff.ffff.ffff  Tunnel    evc_c3         
eth-0-1    stp(u)             ffff.ffff.ffff  Peer      N/A            
eth-0-1    stp(t)             ffff.ffff.ffff  Peer      N/A            
eth-0-1    slow-proto(u)      ffff.ffff.ffff  Peer      N/A            
eth-0-1    slow-proto(t)      ffff.ffff.ffff  Peer      N/A            
eth-0-1    dot1x(u)           ffff.ffff.ffff  Peer      N/A            
eth-0-1    dot1x(t)           ffff.ffff.ffff  Peer      N/A            
eth-0-1    cfm(u)             ffff.ffff.ffff  Peer      N/A            
eth-0-1    cfm(t)             ffff.ffff.ffff  Peer      N/A            
eth-0-1    lldp(u)            ffff.ffff.ffff  Peer      N/A            
eth-0-1    lldp(t)            ffff.ffff.ffff  Peer      N/A            
eth-0-1    cdp(u)             ffff.ffff.ffff  Peer      N/A            
eth-0-1    cdp(t)             ffff.ffff.ffff  Peer      N/A            
eth-0-1    vtp(u)             ffff.ffff.ffff  Peer      N/A            
eth-0-1    vtp(t)             ffff.ffff.ffff  Peer      N/A    

使用下列命令,查看上联口的属性:

switch1# show l2protocol interface eth-0-2
Interface  PDU Address        MASK            Status    EVC            
           (u)-Untagged
           (t)-Tagged
=========  =================  ==============  ========  ================
eth-0-2    0180.c200.0008(u)  ffff.ffff.ffff  Peer      N/A            
eth-0-2    0180.c200.0008(t)  ffff.ffff.ffff  Peer      N/A            
eth-0-2    0180.c200.0009(u)  ffff.ffff.ffff  Peer      N/A            
eth-0-2    0180.c200.0009(t)  ffff.ffff.ffff  Peer      N/A            
eth-0-2    0100.0ccc.cccc(u)  ffff.ffff.ffff  Peer      N/A            
eth-0-2    0100.0ccc.cccc(t)  ffff.ffff.ffff  Peer      N/A            
eth-0-2    stp(u)             ffff.ffff.ffff  Peer      N/A            
eth-0-2    stp(t)             ffff.ffff.ffff  Peer      N/A            
eth-0-2    slow-proto(u)      ffff.ffff.ffff  Peer      N/A            
eth-0-2    slow-proto(t)      ffff.ffff.ffff  Peer      N/A            
eth-0-2    dot1x(u)           ffff.ffff.ffff  Peer      N/A            
eth-0-2    dot1x(t)           ffff.ffff.ffff  Peer      N/A            
eth-0-2    cfm(u)             ffff.ffff.ffff  Peer      N/A            
eth-0-2    cfm(t)             ffff.ffff.ffff  Peer      N/A            
eth-0-2    lldp(u)            ffff.ffff.ffff  Peer      N/A            
eth-0-2    lldp(t)            ffff.ffff.ffff  Peer      N/A            
eth-0-2    cdp(u)             ffff.ffff.ffff  Peer      N/A            
eth-0-2    cdp(t)             ffff.ffff.ffff  Peer      N/A            
eth-0-2    vtp(u)             ffff.ffff.ffff  Peer      N/A            
eth-0-2    vtp(t)             ffff.ffff.ffff  Peer      N/A            
eth-0-2    N/A                N/A             Uplink    N/A 

使用下列命令,查看tunnel的目的mac地址

Switch1# show l2protocol tunnel-dmac
Layer2 protocols tunnel destination MAC address is 0100.0ccd.cdd2

2.14.3 应用场景配置举例

2.15 MSTP配置

2.15.1 概述

2.15.1.1 功能简介

MSTMultiple Spanning Tree)多生成树(MST)是把IEEE802.1w的快速生成树(RST)算法扩展而得到的。MST能够通过trunk链路建立多个生成树,关联VLANs到相关的生成树实例,并且每个生成树实例可以具备区别于其他实例的拓扑结构。MST提供了多个数据转发路径和负载均衡,提高了网络容错能力。因为一个实例(转发路径)的故障不会影响其他实例(转发路径)。一个生成树实例只能存在于一致的VLAN实例分配的桥中,必须用同样的MST配置信息来配置一组桥,这使得这些桥能属于同一组生成树实例,具备同样的MST配置信息的互连的桥构成多生成树区(MST Region)。 MSTP将环路网络修剪成为一个无环的树型网络,避免报文在环路网络中的增生和无限循环,同时还提供了数据转发的多个冗余路径,在数据转发过程中实现VLAN数据的负载均衡。MSTP兼容STPRSTP,并且可以弥补STPRSTP的缺陷。它既可以快速收敛,也能使不同VLAN的流量沿各自的路径分发,从而为冗余链路提供了更好的负载分担机制。

2.15.1.2 原理描述

2.15.2 配置

MSTP

Switch1-Switch4配置如下步骤所示。如无特别说明,则4台设备配置相同。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置STP模式

Switch(config)# spanning-tree mode mstp

 步骤3 进入vlan配置模式并创建vlan

Switch(config)# vlan database
Switch(config-vlan)# vlan 10
Switch(config-vlan)# vlan 20
Switch(config-vlan)# exit

 步骤4 进入MSTP配置模式,创建域和实例,将vlan关联到实例

Switch(config)# spanning-tree mst configuration
Switch(config-mst)# region RegionName
Switch(config-mst)# instance 1 vlan 10
Switch(config-mst)# instance 2 vlan 20
Switch(config-mst)# exit

 步骤5 进入端口配置模式,配置端口属性和允许通过的vlan

Switch(config)# interface eth-0-9
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan all
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-10
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan all
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-17
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan all
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-18
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan all
Switch(config-if)# no shutdown
Switch(config-if)# exit

 步骤6 在不同设备分别配置STP优先级并使能STP

Switch1 配置:

Switch# configure terminal
Switch(config)# spanning-tree priority 0
Switch(config)# spanning-tree enable

Switch2 配置:

Switch# configure terminal
Switch(config)# spanning-tree instance 1 priority 0
Switch(config)# spanning-tree enable

Switch3 配置:

Switch# configure terminal
Switch(config)# spanning-tree instance 2 priority 0
Switch(config)# spanning-tree enable

Switch4 配置:

Switch# configure terminal
Switch(config)# spanning-tree enable

 步骤7 退出配置模式

Switch(config)# end

 步骤8 检查配置

使用下列命令显示Switch1mstp端口状态:

Switch# show spanning-tree mst brief
##### MST0:  Vlans: 1
Multiple spanning tree protocol Enabled
Root ID     Priority       0 (0x0000)
            Address     2225.fa28.c900
            Hello Time  2 sec  Max Age  20 sec Forward Delay 15 sec
Bridge ID   Priority       0 (0x0000)
            Address     2225.fa28.c900
            Hello Time  2 sec  Max Age  20 sec Forward Delay 15 sec
            Aging Time  300 sec
Interface    Role          State            Cost      Priority.Number     Type
--------------------------------------------------------------------------------
eth-0-9     Designated     Forwarding      20000           128.9        P2p  
eth-0-10    Designated     Forwarding      20000           128.10       P2p  
eth-0-17    Designated     Forwarding      20000           128.17       P2p  
eth-0-18    Designated     Forwarding      20000           128.18       P2p  
##### MST1:  Vlans: 10
Root ID     Priority       1 (0x0001)
            Address     9c9a.7d91.9f00
Bridge ID   Priority    32769 (0x8001)
            Address     2225.fa28.c900
Interface    Role          State            Cost      Priority.Number     Type
--------------------------------------------------------------------------------
eth-0-9     Rootport       Forwarding      20000           128.9         P2p
eth-0-10    Alternate      Discarding      20000           128.10        P2p
eth-0-17    Designated     Forwarding      20000           128.17        P2p
eth-0-18    Designated     Forwarding      20000           128.18        P2p
##### MST2:  Vlans: 20
Root ID     Priority       2 (0x0002)
            Address     304c.275b.b200
Bridge ID   Priority    32770 (0x8002)
            Address     2225.fa28.c900
Interface    Role          State            Cost      Priority.Number     Type
--------------------------------------------------------------------------------
eth-0-9     Alternate      Discarding      20000           128.9         P2p
eth-0-10    Alternate      Discarding      20000           128.10        P2p
eth-0-17    Rootport       Forwarding      20000           128.17        P2p
eth-0-18    Alternate      Discarding      20000           128.18        P2p

使用下列命令显示Switch2mstp端口状态:

Switch# show spanning-tree mst brief
##### MST0:  Vlans: 1
Multiple spanning tree protocol Enabled
Root ID     Priority       0 (0x0000)
            Address     2225.fa28.c900
            Hello Time  2 sec  Max Age  20 sec Forward Delay 15 sec
Bridge ID   Priority    32768 (0x8000)
            Address     9c9a.7d91.9f00
            Hello Time  2 sec  Max Age  20 sec Forward Delay 15 sec
            Aging Time  300 sec
Interface    Role          State            Cost      Priority.Number     Type
--------------------------------------------------------------------------------
eth-0-9     Rootport       Forwarding      20000           128.9        P2p  
eth-0-10    Alternate      Discarding      20000           128.10       P2p  
eth-0-17    Designated     Forwarding      20000           128.17       P2p  
eth-0-18    Designated     Forwarding      20000           128.18       P2p  
##### MST1:  Vlans: 10
Root ID     Priority       1 (0x0001)
            Address     9c9a.7d91.9f00
Bridge ID   Priority       1 (0x0001)
            Address     9c9a.7d91.9f00
Interface    Role          State            Cost      Priority.Number     Type
--------------------------------------------------------------------------------
eth-0-9     Designated     Forwarding      20000           128.9         P2p
eth-0-10    Designated     Forwarding      20000           128.10        P2p
eth-0-17    Designated     Forwarding      20000           128.17        P2p
eth-0-18    Designated     Forwarding      20000           128.18        P2p
##### MST2:  Vlans: 20
Root ID     Priority       2 (0x0002)
            Address     304c.275b.b200
Bridge ID   Priority    32770 (0x8002)
            Address     9c9a.7d91.9f00
Interface    Role          State            Cost      Priority.Number     Type
--------------------------------------------------------------------------------
eth-0-9     Designated     Forwarding      20000           128.9         P2p
eth-0-10    Designated     Forwarding      20000           128.10        P2p
eth-0-17    Rootport       Forwarding      20000           128.17        P2p
eth-0-18    Alternate      Discarding      20000           128.18        P2p

使用下列命令显示Switch3mstp端口状态:

Switch# show spanning-tree mst brief
##### MST0:  Vlans: 1
Multiple spanning tree protocol Enabled
Root ID     Priority       0 (0x0000)
            Address     2225.fa28.c900
            Hello Time  2 sec  Max Age  20 sec Forward Delay 15 sec
Bridge ID   Priority    32768 (0x8000)
            Address     304c.275b.b200
            Hello Time  2 sec  Max Age  20 sec Forward Delay 15 sec
            Aging Time  300 sec
Interface    Role          State            Cost      Priority.Number     Type
--------------------------------------------------------------------------------
eth-0-9     Rootport       Forwarding      20000           128.9        P2p  
eth-0-10    Alternate      Discarding      20000           128.10       P2p  
eth-0-17    Alternate      Discarding      20000           128.17       P2p  
eth-0-18    Alternate      Discarding      20000           128.18       P2p  
##### MST1:  Vlans: 10
Root ID     Priority       1 (0x0001)
            Address     9c9a.7d91.9f00
Bridge ID   Priority    32769 (0x8001)
            Address     304c.275b.b200
Interface    Role          State            Cost      Priority.Number     Type
--------------------------------------------------------------------------------
eth-0-9     Designated     Forwarding      20000           128.9         P2p
eth-0-10    Designated     Forwarding      20000           128.10        P2p
eth-0-17    Rootport       Forwarding      20000           128.17        P2p
eth-0-18    Alternate      Discarding      20000           128.18        P2p
##### MST2:  Vlans: 20
Root ID     Priority       2 (0x0002)
            Address     304c.275b.b200
Bridge ID   Priority       2 (0x0002)
            Address     304c.275b.b200
Interface    Role          State            Cost      Priority.Number     Type
--------------------------------------------------------------------------------
eth-0-9     Designated     Forwarding      20000           128.9         P2p
eth-0-10    Designated     Forwarding      20000           128.10        P2p
eth-0-17    Designated     Forwarding      20000           128.17        P2p
eth-0-18    Designated     Forwarding      20000           128.18        P2p

使用下列命令显示Switch4mstp端口状态:

Switch# show spanning-tree mst brief
s##### MST0:  Vlans: 1
Multiple spanning tree protocol Enabled
Root ID     Priority       0 (0x0000)
            Address     2225.fa28.c900
            Hello Time  2 sec  Max Age  20 sec Forward Delay 15 sec
Bridge ID   Priority    32768 (0x8000)
            Address     80a4.be55.6400
            Hello Time  2 sec  Max Age  20 sec Forward Delay 15 sec
            Aging Time  300 sec
Interface    Role          State            Cost      Priority.Number     Type
--------------------------------------------------------------------------------
eth-0-9     Designated     Forwarding      20000           128.9        P2p  
eth-0-10    Designated     Forwarding      20000           128.10       P2p  
eth-0-17    Rootport       Forwarding      20000           128.17       P2p  
eth-0-18    Alternate      Discarding      20000           128.18       P2p  
##### MST1:  Vlans: 10
Root ID     Priority       1 (0x0001)
            Address     9c9a.7d91.9f00
Bridge ID   Priority    32769 (0x8001)
            Address     80a4.be55.6400
Interface    Role          State            Cost      Priority.Number     Type
--------------------------------------------------------------------------------
eth-0-9     Alternate      Discarding      20000           128.9         P2p
eth-0-10    Alternate      Discarding      20000           128.10        P2p
eth-0-17    Rootport       Forwarding      20000           128.17        P2p
eth-0-18    Alternate      Discarding      20000           128.18        P2p
##### MST2:  Vlans: 20
Root ID     Priority       2 (0x0002)
            Address     304c.275b.b200
Bridge ID   Priority    32770 (0x8002)
            Address     80a4.be55.6400
Interface    Role          State            Cost      Priority.Number     Type
--------------------------------------------------------------------------------
eth-0-9     Rootport       Forwarding      20000           128.9         P2p
eth-0-10    Alternate      Discarding      20000           128.10        P2p
eth-0-17    Designated     Forwarding      20000           128.17        P2p
eth-0-18    Designated     Forwarding      20000           128.18        P2p
 

2.15.3 应用场景配置举例

2.16 MLAG配置

2.16.1 概述

2.16.1.1 功能简介

在高可靠性的数据中心拓扑中,典型的会通过两台聚合交换机来连接TOR交换机和服务器以提供冗余保护。在这样的拓扑结构中,生成树协议通过block聚合交换机的一半的端口来防止网络环路,但这样做会降低50%的带宽。

通过部署MLAG可以解决这个问题。在两台聚合交换机的中间通过一条MLAG链路进行连接,使其在逻辑上如同一台设备。两台设备上的端口共同形成聚合口,使得所有端口可以共同参与数据流量的转发。 MLAG提供了如下好处:

在网络流量增加的时候提供了更高的带宽;

通过减少被STP block的端口的方式更加高效的利用了网络带宽;

使用静态LAG或者LACP来连接其他交换机或者服务器,而不需要借助其他协议;

支持双活(active-active)的二层冗余

2.16.1.2 原理描述

2.16.2 配置

MLAG

Switch1-Switch2配置如下步骤所示。如无特别说明,则2台设备配置相同。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式并创建vlan

Switch(config)# vlan database
Switch(config-vlan)# vlan 10,4094
Switch(config-vlan)# exit

 步骤3 创建静态AGG属性

Switch(config)# interface eth-0-1
Switch(config-if)# static-channel-group 1
Switch(config-if)# no shutdown
Switch(config-if)# exit

 步骤4 提前准备配置peer link interface的属性

eth-0-9将用作peer link,提前配置如下属性:

Switch(config)# interface eth-0-9
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan all
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit

 步骤5 AGG口加入mlag

Switch(config)# interface agg1
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10
Switch(config-if)# mlag 1
Switch(config-if)# exit

 步骤6 配置vlan interface的属性

Switch1

Switch(config)# interface vlan4094
Switch(config-if)# ip address 12.1.1.1/24
Switch(config-if)# exit

Switch2

Switch(config)# interface vlan4094
Switch(config-if)# ip address 12.1.1.2/24
Switch(config-if)# exit

 步骤7 进入MLAG模式,配置相关属性

Switch1

Switch(config)# mlag configuration
Switch(config-mlag)# peer-link eth-0-9
Switch(config-mlag)# peer-address 12.1.1.2
Switch(config-mlag)# exit

Switch2

Switch(config)# mlag configuration
Switch(config-mlag)# peer-link eth-0-9
Switch(config-mlag)# peer-address 12.1.1.1
Switch(config-mlag)# end

 步骤8 检查配置

使用下列命令查看Switch1mlag状态:

Switch# show mlag
MLAG configuration:
-----------------
role        : Master
local_sysid : ea90.aecc.cc00
mlag_sysid  : ea90.aecc.cc00
peer-link   : eth-0-9
peer conf   : Yes

Switch# show mlag interface
mlagid  local-if  local-state    remote-state  
1       agg1      up             up          

Switch# show mlag peer
MLAG neighbor is 12.1.1.2, MLAG version 1
MLAG state = Established, up for 00:13:07
Last read 00:00:48, hold time is 240, keepalive interval is 60 seconds
Received 17 messages,Sent 19 messages
Open     : received 1, sent 2
KAlive   : received 15, sent 16
Fdb sync : received 0, sent 0
Failover : received 0, sent 0
Conf     : received 1, sent 1

Connections established 1; dropped 0
Local host: 12.1.1.1, Local port: 61000
Foreign host: 12.1.1.2, Foreign port: 46157
remote_sysid: baa7.8606.8b00

使用下列命令查看Switch1mac表:

Switch# show mac address-table
          Mac Address Table
-------------------------------------------
(*) - Security Entry
Vlan    Mac Address       Type        Ports
----    -----------       --------    -----

使用下列命令查看Switch2mlag状态:

Switch# show mlag
MLAG configuration:
-----------------
role        : Slave
local_sysid : baa7.8606.8b00
mlag_sysid  : ea90.aecc.cc00
peer-link   : eth-0-9
peer conf   : Yes

Switch# show mlag interface
mlagid  local-if  local-state    remote-state  
1       agg1      up             up            

Switch# show mlag peer
MLAG neighbor is 12.1.1.1, MLAG version 1
MLAG state = Established, up for 00:14:29
Last read 00:00:48, hold time is 240, keepalive interval is 60 seconds
Received 19 messages,Sent 19 messages
Open     : received 1, sent 1
KAlive   : received 17, sent 17
Fdb sync : received 0, sent 0
Failover : received 0, sent 0
Conf     : received 1, sent 1

Connections established 1; dropped 0
Local host: 12.1.1.2, Local port: 46157
Foreign host: 12.1.1.1, Foreign port: 61000
remote_sysid: ea90.aecc.cc00

使用下列命令查看Switch2mac表:

Switch# show mac address-table
          Mac Address Table
-------------------------------------------
(*) - Security Entry
Vlan    Mac Address       Type        Ports
----    -----------       --------    -----

2.16.3 应用场景配置举例

2.17 Hash Load-balance配置

2.17.1 Linkagg Hash配置

2.17.1.1 简介

linkagg功能可以将多个物理接口捆绑,形成单一的逻辑通道,提供增强的性能和冗余。当使用linkagg转发数据时,由于两端设备之间有多条物理链路,可能会导致同一数据流的连续数据帧在不同的物理链路上传输的情况。这样可能数据帧在到达对端设备产生接收数据包乱序的情况。 为避免这种状况,linkagg采用负载均衡,根据报文的属性通过hash算法得到hash值,然后根据hash值去选择对应的linkagg的出接口。这样就同时兼顾了同一数据流的帧在同一条物理链路转发,又实现了流量在linkagg各个物理链路上负载均衡。

2.17.1.2 Linkagg Hash全局配置

全局配置linkagg output方向计算负载均衡的方式,针对单播和非单播。其优先级最低,新创建和未单独指定output方向hashlinkagg会自动获得全局配置。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置hash field属性

Switch(config)# hash-field user
Switch(config-hash-field)# l2 macsa
Switch(config-hash-field)# ip ipsa
Switch(config-hash-field)# exit

 步骤3 配置hash value global属性

Switch(config)# hash-value global
Switch(config-hash-value-global)# port-channel select user
Switch(config-hash-value-global)# end

 步骤4 检查配置

显示hash field user的信息:

Switch# show hash-field user
hash-field name: user
Option                             Control type                      
----------------------------------------------------------------------
ipv6 address compress              xor                               
hash seed                          user set (0)
hash arithmetic                    xor
hash symmetry                      disable
ip                                 enable
ipv6                               enable
mpls                               enable
----------------------------------------------------------------------
hash field select
Packet                HashField          
----------------------------------------------------------------------
l2:                   macsa              

ip:                   ipsa               

ipv6:                 ipsa                  ipda               
                       l4-sourceport         l4-destport        
                       ip-protocol        

gre:                  ipsa                  ipda               
                       gre-key            

vxlan:                vni                   outer-l4-sourceport
                       outer-ipda            outer-ipsa         
                    
nvgre:                vsid                  outer-ipda         
                       outer-ipsa         

mpls:                 top-label             2nd-label          
                    
vpws:                 top-label             2nd-label          
                    
vpls(inner-l2):       inner-macda           inner-macsa        
                    
vpls(inner-l3):       inner-ipda            inner-ipsa         
                    
l3vpn:                inner-ipsa            inner-ipda         
                       inner-ip-protocol     inner-l4-sourceport
                       inner-l4-destport  

显示hash value global的信息:

Switch# show hash-value global
LBT:load balance type         LBM :load balance mode
PT :packet type               HF  :hash field
HA :hash arithmetic
hash-value global
LBT            LBM            PT             HF             HA
----------------------------------------------------------------------
port-channel   -              all            user           xor
ecmp           -              all            ecmp           xor
ecmp           flow id        all            ecmp           xor
entropy        -              all            ecmp           xor
----------------------------------------------------------------------
Efd hash field select:
  macsa                 macda              
  ipsa                  ipda               
  sourceport            destport           
  ip-protocol        

2.17.1.3 Unicast Linkagg Hash Input配置

下面步骤演示了如何在端口上配置linkagg input方向计算负载均衡的方式,仅针对单播报文。其优先级高于output方向配置。在绑定hash valuelinkagginput方向时,其实际作用相当于为linkagg的每个物理成员口绑定input方向。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置hash field 属性

Switch(config)# hash-field user
Switch(config-hash-field)# l2 macsa
Switch(config-hash-field)# ip ipsa
Switch(config-hash-field)# exit

 步骤3 配置hash value 属性

Switch(config)# hash-value aaa
Switch(config-hash-value)# port-channel unicast select user
Switch(config-hash-value)# exit

 步骤4 在接口上配置hash value

Switch(config)# interface range eth-0-1 - 2
Switch(config-if-range)# no shutdown
Switch(config-if-range)# static-channel-group 1
Switch(config-if-range)# exit
Switch(config)# interface agg 1
Switch(config-if)# load-balance hash-value aaa input
Switch(config-if)# exit
Switch(config)# interface eth-0-3
Switch(config-if)# load-balance hash-value aaa input
Switch(config-if)# end

 步骤5 检查配置

显示hash field user的信息:

Switch# show hash-field user
hash-field name: user
Option                             Control type                      
----------------------------------------------------------------------
ipv6 address compress              xor                               
hash seed                          user set (0)
hash arithmetic                    xor
hash symmetry                      disable
ip                                 enable
ipv6                               enable
mpls                               enable
----------------------------------------------------------------------
hash field select
Packet                HashField          
----------------------------------------------------------------------
l2:                   macsa              

ip:                   ipsa               

ipv6:                 ipsa                  ipda               
                       l4-sourceport         l4-destport        
                       ip-protocol        

gre:                  ipsa                  ipda               
                       gre-key            

vxlan:                vni                   outer-l4-sourceport
                       outer-ipda            outer-ipsa         
                    
nvgre:                vsid                  outer-ipda         
                       outer-ipsa         

mpls:                 top-label             2nd-label          
                    
vpws:                 top-label             2nd-label          
                    
vpls(inner-l2):       inner-macda           inner-macsa        
                    
vpls(inner-l3):       inner-ipda            inner-ipsa         
                    
l3vpn:                inner-ipsa            inner-ipda         
                       inner-ip-protocol     inner-l4-sourceport
                       inner-l4-destport  

显示hash value的信息:

Switch# show hash-value aaa
LBT:load balance type         LBM:load balance mode
PT :packet type               HF :hash field
HA :hash arithmetic
hash-value name: aaa
LBT            LBM            PT             HF             HA
----------------------------------------------------------------------
port-channel   unicast        all            user           xor
port-channel   non-unicast    all            NOCFG          NOCFG
ecmp           -              all            NOCFG          NOCFG
ecmp           flow id        all            NOCFG          NOCFG

显示hash value在端口上的应用:

Switch# show hash-value interface-applied
eth-0-3
hash-value aaa input
agg1
hash-value aaa input

2.17.1.4 Unicast Linkagg Hash Output配置

下面步骤演示了如何在端口上配置linkagg output方向计算负载均衡的方式,仅针对单播报文。其优先级低于input方向配置,且只能应用在agg口。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置hash field属性

Switch(config)# hash-field user
Switch(config-hash-field)# l2 macsa
Switch(config-hash-field)# ip ipsa
Switch(config-hash-field)# exit

 步骤3 配置hash value属性

Switch(config)# hash-value aaa
Switch(config-hash-value)# port-channel unicast select user
Switch(config-hash-value)# exit

 步骤4 在接口上配置hash value

Switch(config)# interface range eth-0-1 - 2
Switch(config-if-range)# no shutdown
Switch(config-if-range)# static-channel-group 1
Switch(config-if-range)# exit
Switch(config)# interface agg 1
Switch(config-if)# load-balance hash-value aaa output
Switch(config-if)# exit

 步骤5 检查配置

显示hash field user的信息:

Switch# show hash-field user
hash-field name: user
Option                             Control type                      
----------------------------------------------------------------------
ipv6 address compress              xor                               
hash seed                          user set (0)
hash arithmetic                    xor
hash symmetry                      disable
ip                                 enable
ipv6                               enable
mpls                               enable
----------------------------------------------------------------------
hash field select
Packet                HashField          
----------------------------------------------------------------------
l2:                   macsa              

ip:                   ipsa               

ipv6:                 ipsa                  ipda               
                       l4-sourceport         l4-destport        
                       ip-protocol        

gre:                  ipsa                  ipda               
                       gre-key            

vxlan:                vni                   outer-l4-sourceport
                       outer-ipda            outer-ipsa         
                    
nvgre:                vsid                  outer-ipda         
                       outer-ipsa         

mpls:                 top-label             2nd-label          
                    
vpws:                 top-label             2nd-label          
                    
vpls(inner-l2):       inner-macda           inner-macsa        
                    
vpls(inner-l3):       inner-ipda            inner-ipsa         
                    
l3vpn:                inner-ipsa            inner-ipda         
                       inner-ip-protocol     inner-l4-sourceport
                       inner-l4-destport  

显示hash value的信息:

Switch# show hash-value aaa
LBT:load balance type         LBM:load balance mode
PT :packet type               HF :hash field
HA :hash arithmetic
hash-value name: aaa
LBT            LBM            PT             HF             HA
----------------------------------------------------------------------
port-channel   unicast        all            user           xor
port-channel   non-unicast    all            NOCFG          NOCFG
ecmp           -              all            NOCFG          NOCFG
ecmp           flow id        all            NOCFG          NOCFG

显示hash value在端口上的应用:

Switch# show hash-value interface-applied
agg1
hash-value aaa output

2.17.1.5 Linkagg Hash ACL配置

下面步骤演示了如何在端口上添加ACL控制,并使得ACL规则命中的报文使用ACL选择的hash-value进行负载均衡。注意将policy-map应用于interface时只允许配置input

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置hash field属性

Switch(config)# hash-field user
Switch(config-hash-field)# l2 macsa
Switch(config-hash-field)# ip ipsa
Switch(config-hash-field)# exit

 步骤3 配置hash value属性

Switch(config)# hash-value aaa
Switch(config-hash-value)# port-channel unicast select user
Switch(config-hash-value)# exit

 步骤4 在接口上添加acl并配置hash value

Switch(config)# mac access-list mac
Switch(config-mac-acl)# permit src-mac host 0.0.1 dest-mac any
Switch(config-mac-acl)# exit
Switch(config)# class-map cmap1
Switch(config-cmap)# match access-group mac
Switch(config-cmap)# exit
Switch(config)# policy-map pmap1
Switch(config-pmap)# class cmap1
Switch(config-pmap-c)# load-balance hash-value aaa
Switch(config-pmap-c)# port-channel load-balance round-robin disable
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit  
Switch(config)# interface eth-0-3
Switch(config-if)# no shutdown
Switch(config-if)# service-policy input pmap1
Switch(config-if)# end

 步骤5 检查配置

显示hash field user的信息:

Switch# show hash-field user
hash-field name: user
Option                             Control type                      
----------------------------------------------------------------------
ipv6 address compress              xor                               
hash seed                          user set (0)
hash arithmetic                    xor
hash symmetry                      disable
ip                                 enable
ipv6                               enable
mpls                               enable
----------------------------------------------------------------------
hash field select
Packet                HashField          
----------------------------------------------------------------------
l2:                   macsa              

ip:                   ipsa               

ipv6:                 ipsa                  ipda               
                       l4-sourceport         l4-destport        
                       ip-protocol        

gre:                  ipsa                  ipda               
                       gre-key            

vxlan:                vni                   outer-l4-sourceport
                       outer-ipda            outer-ipsa         
                    
nvgre:                vsid                  outer-ipda         
                       outer-ipsa         

mpls:                 top-label             2nd-label          
                    
vpws:                 top-label             2nd-label          
                    
vpls(inner-l2):       inner-macda           inner-macsa        
                    
vpls(inner-l3):       inner-ipda            inner-ipsa         
                    
l3vpn:                inner-ipsa            inner-ipda         
                       inner-ip-protocol     inner-l4-sourceport
                       inner-l4-destport  

显示hash value的信息:

Switch# show hash-value aaa
LBT:load balance type         LBM:load balance mode
PT :packet type               HF :hash field
HA :hash arithmetic
hash-value name: aaa
LBT            LBM            PT             HF             HA
----------------------------------------------------------------------
port-channel   unicast        all            user           xor
port-channel   non-unicast    all            NOCFG          NOCFG
ecmp           -              all            NOCFG          NOCFG
ecmp           flow id        all            NOCFG          NOCFG

显示ACL相关信息:

Switch# show running-config
mac access-list mac
  10 permit src-mac host 0000.0000.0001 dest-mac any
!
hash-field user
l2 macsa
ip ipsa
!
hash-value aaa
port-channel unicast select user
!
class-map match-any cmap1
match access-group mac
!
policy-map pmap1
class cmap1
  port-channel load-balance round-robin disable
  load-balance hash-value aaa
!
interface eth-0-3
service-policy input pmap1
!
interface null0
!
 
 
 
 
 
 

2.17.1.6 Non-unicast Linkagg Hash 配置

下面步骤演示了如何在端口上配置linkagg input方向计算负载均衡的方式,仅针对非单播报文。不支持output方向配置。在绑定hash valuelinkagginput方向时,其实际作用相当于为linkagg的每个物理成员口绑定input方向。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置hash field属性

Switch(config)# hash-field user
Switch(config-hash-field)# l2 macsa
Switch(config-hash-field)# ip ipsa
Switch(config-hash-field)# exit

 步骤3 配置hash value属性

Switch(config)# hash-value aaa
Switch(config-hash-value)# port-channel non-unicast select user
Switch(config-hash-value)# exit

 步骤4 在接口上配置hash value

Switch(config)# interface range eth-0-1 - 2
Switch(config-if-range)# no shutdown
Switch(config-if-range)# static-channel-group 1
Switch(config-if-range)# exit
Switch(config)# interface agg 1
Switch(config-if)# load-balance hash-value aaa input
Switch(config-if)# exit
Switch(config)# interface eth-0-3
Switch(config-if)# load-balance hash-value aaa input
Switch(config-if)# end

 步骤5 检查配置

显示hash field user的信息:

Switch# show hash-field user
hash-field name: user
Option                             Control type                      
----------------------------------------------------------------------
ipv6 address compress              xor                               
hash seed                          user set (0)
hash arithmetic                    xor
hash symmetry                      disable
ip                                 enable
ipv6                               enable
mpls                               enable
----------------------------------------------------------------------
hash field select
Packet                HashField          
----------------------------------------------------------------------
l2:                   macsa              

ip:                   ipsa               

ipv6:                 ipsa                  ipda               
                       l4-sourceport         l4-destport        
                       ip-protocol        

gre:                  ipsa                  ipda               
                       gre-key            

vxlan:                vni                   outer-l4-sourceport
                       outer-ipda            outer-ipsa         
                    
nvgre:                vsid                  outer-ipda         
                       outer-ipsa         

mpls:                 top-label             2nd-label          
                    
vpws:                 top-label             2nd-label          
                    
vpls(inner-l2):       inner-macda           inner-macsa        
                    
vpls(inner-l3):       inner-ipda            inner-ipsa         
                    
l3vpn:                inner-ipsa            inner-ipda         
                       inner-ip-protocol     inner-l4-sourceport
                       inner-l4-destport  

显示hash value的信息:

Switch# show hash-value aaa
LBT:load balance type         LBM:load balance mode
PT :packet type               HF :hash field
HA :hash arithmetic
hash-value name: aaa
LBT            LBM            PT             HF             HA
----------------------------------------------------------------------
port-channel   unicast        all            NOCFG          NOCFG
port-channel   non-unicast    all            user           xor
ecmp           -              all            NOCFG          NOCFG
ecmp           flow id        all            NOCFG          NOCFG

显示hash value在端口上的应用:

显示hash value在端口上的应用:

Switch# show hash-value interface-applied
eth-0-3
hash-value aaa input
agg1
hash-value aaa input
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

2.17.2 ECMP Hash配置

2.17.2.1 简介

ecmp(等价多路径路由)应用于多条不同的链路到达同一目的地址的网络环境中。如果使用传统路由技术,发往该目的地址的数据包只能应用其中的一条链路,其它链路处于备份或者无效状态,而ecmp可以在该网络环境同时使用多条链路,不仅增加传输带宽,而且可以无延时无丢包的备份失效链路的数据传输。 ecmp采用负载均衡,根据报文的属性通过hash算法得到hash值,然后根据hash值去选择对应的转发链路。

2.17.2.2 ECMP Hash全局配置

全局配置ecmp计算hash的方式,其优先级最低。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置hash field 属性

Switch(config)# hash-field user
Switch(config-hash-field)# l2 macsa
Switch(config-hash-field)# ip ipsa
Switch(config-hash-field)# exit

 步骤3 配置hash value global属性

Switch(config)# hash-value global
Switch(config-hash-value-global)# ecmp select user
Switch(config-hash-value-global)# end

 步骤4 检查配置

显示hash field user的信息:

Switch# show hash-field user
hash-field name: user
Option                             Control type                      
----------------------------------------------------------------------
ipv6 address compress              xor                               
hash seed                          user set (0)
hash arithmetic                    xor
hash symmetry                      disable
ip                                 enable
ipv6                               enable
mpls                               enable
----------------------------------------------------------------------
hash field select
Packet                HashField          
----------------------------------------------------------------------
l2:                   macsa              

ip:                   ipsa               

ipv6:                 ipsa                  ipda               
                       l4-sourceport         l4-destport        
                       ip-protocol        

gre:                  ipsa                  ipda               
                       gre-key            

vxlan:                vni                   outer-l4-sourceport
                       outer-ipda            outer-ipsa         
                    
nvgre:                vsid                  outer-ipda         
                       outer-ipsa         

mpls:                 top-label             2nd-label          
                    
vpws:                 top-label             2nd-label          
                    
vpls(inner-l2):       inner-macda           inner-macsa        
                    
vpls(inner-l3):       inner-ipda            inner-ipsa         
                    
l3vpn:                inner-ipsa            inner-ipda         
                       inner-ip-protocol     inner-l4-sourceport
                       inner-l4-destport  

显示hash value global的信息:

Switch# show hash-value global
LBT:load balance type         LBM :load balance mode
PT :packet type               HF  :hash field
HA :hash arithmetic
hash-value global
LBT            LBM            PT             HF             HA
----------------------------------------------------------------------
port-channel   -              all            port-channel   xor
ecmp           -              all            user           xor
ecmp           flow id        all            user           xor
entropy        -              all            ecmp           xor
----------------------------------------------------------------------
Efd hash field select:
  macsa                 macda              
  ipsa                  ipda               
  sourceport            destport           
  ip-protocol        

2.17.2.3 ECMP Hash Input配置

下面步骤演示了如何在端口input方向配置ecmp计算hash的方式,其优先级高于全局配置。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置hash field属性

Switch(config)# hash-field user
Switch(config-hash-field)# l2 macsa
Switch(config-hash-field)# ip ipsa
Switch(config-hash-field)# exit

 步骤3 配置hash value属性

Switch(config)# hash-value bbb
Switch(config-hash-value)# ecmp select user
Switch(config-hash-value)# exit

 步骤4 在接口上配置hash value

Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# load-balance hash-value bbb input
Switch(config-if)# end

 步骤5 检查配置

显示hash field user的信息:

    Switch# show hash-field user
hash-field name: user
Option                             Control type                      
----------------------------------------------------------------------
ipv6 address compress              xor                               
hash seed                          user set (0)
hash arithmetic                    xor
hash symmetry                      disable
ip                                 enable
ipv6                               enable
mpls                               enable
----------------------------------------------------------------------
hash field select
Packet                HashField          
----------------------------------------------------------------------
l2:                   macsa              

ip:                   ipsa               

ipv6:                 ipsa                  ipda               
                       l4-sourceport         l4-destport        
                       ip-protocol        

gre:                  ipsa                  ipda               
                       gre-key            

vxlan:                vni                   outer-l4-sourceport
                       outer-ipda            outer-ipsa         
                    
nvgre:                vsid                  outer-ipda         
                       outer-ipsa         

mpls:                 top-label             2nd-label          
                    
vpws:                 top-label             2nd-label          
                    
vpls(inner-l2):       inner-macda           inner-macsa        
                    
vpls(inner-l3):       inner-ipda            inner-ipsa         
                    
l3vpn:                inner-ipsa            inner-ipda         
                       inner-ip-protocol     inner-l4-sourceport
                       inner-l4-destport  

显示hash value的信息:

Switch# show hash-value bbb
LBT:load balance type         LBM:load balance mode
PT :packet type               HF :hash field
HA :hash arithmetic
hash-value name: bbb
LBT            LBM            PT             HF             HA
----------------------------------------------------------------------
port-channel   unicast        all            NOCFG          NOCFG
port-channel   non-unicast    all            NOCFG          NOCFG
ecmp           -              all            user           xor
ecmp           flow id        all            NOCFG          NOCFG

显示hash value在端口上的应用:

Switch# show hash-value interface-applied
eth-0-1
hash-value bbb input

2.17.2.4 ECMP Hash ACL配置

下面步骤演示了如何在端口上添加ACL控制,并使得ACL规则命中的报文使用ACL选择的hash-value进行负载均衡。注意将policy-map应用于interface时只允许配置input

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置hash field属性

Switch(config)# hash-field user
Switch(config-hash-field)# l2 macsa
Switch(config-hash-field)# ip ipsa
Switch(config-hash-field)# exit

 步骤3 配置hash value属性

Switch(config)# hash-value bbb
Switch(config-hash-value)# ecmp select user
Switch(config-hash-value)# exit

 步骤4 在接口上添加acl并配置hash value

Switch(config)# mac access-list mac
Switch(config-mac-acl)# permit src-mac host 0.0.1 dest-mac any
Switch(config-mac-acl)# exit
Switch(config)# class-map cmap1
Switch(config-cmap)# match access-group mac
Switch(config-cmap)# exit
Switch(config)# policy-map pmap1
Switch(config-pmap)# class cmap1
Switch(config-pmap-c)# load-balance hash-value bbb
Switch(config-pmap-c)# ecmp load-balance round-robin disable
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# service-policy input pmap1        
Switch(config-if)# end

 步骤5 检查配置

显示hash field user的信息:

Switch# show hash-field user
hash-field name: user
Option                             Control type                      
----------------------------------------------------------------------
ipv6 address compress              xor                               
hash seed                          user set (0)
hash arithmetic                    xor
hash symmetry                      disable
ip                                 enable
ipv6                               enable
mpls                               enable
----------------------------------------------------------------------
hash field select
Packet                HashField          
----------------------------------------------------------------------
l2:                   macsa              

ip:                   ipsa               

ipv6:                 ipsa                  ipda               
                       l4-sourceport         l4-destport        
                       ip-protocol        

gre:                  ipsa                  ipda               
                       gre-key            

vxlan:                vni                   outer-l4-sourceport
                       outer-ipda            outer-ipsa         
                    
nvgre:                vsid                  outer-ipda         
                       outer-ipsa         

mpls:                 top-label             2nd-label          
                    
vpws:                 top-label             2nd-label          
                    
vpls(inner-l2):       inner-macda           inner-macsa        
                    
vpls(inner-l3):       inner-ipda            inner-ipsa         
                    
l3vpn:                inner-ipsa            inner-ipda         
                       inner-ip-protocol     inner-l4-sourceport
                       inner-l4-destport  

显示hash value的信息:

Switch# show hash-value bbb
LBT:load balance type         LBM:load balance mode
PT :packet type               HF :hash field
HA :hash arithmetic
hash-value name: bbb
LBT            LBM            PT             HF             HA
----------------------------------------------------------------------
port-channel   unicast        all            NOCFG          NOCFG
port-channel   non-unicast    all            NOCFG          NOCFG
ecmp           -              all            user           xor
ecmp           flow id        all            NOCFG          NOCFG

显示ACL相关信息:

mac access-list mac
  10 permit src-mac host 0000.0000.0001 dest-mac any
!
hash-field user
l2 macsa
ip ipsa
!
hash-value bbb
ecmp select user
!
class-map match-any cmap1
match access-group mac
!
policy-map pmap1
class cmap1
  ecmp load-balance round-robin disable
  load-balance hash-value bbb
!
interface eth-0-1
service-policy input pmap1
!
interface null0
!

2.17.3 Efd Hash配置

2.17.3.1 简介

efd就是大象流检测,据悉,9%的流发送的数据占到了总流量数据的90%,相同的流总是具有时间连续性,大流容易导致网络拥塞以及网络安全问题。大象流的检测有助于应用负载均衡以及应对DDOS网络攻击。通过应用多个不同的hash空间、hash函数和多个过滤器来降低误判率。通过hit的方式直接处理已学习到的大象流,缓解处理压力。

2.17.3.2 EFD Hash配置

下面步骤演示了如何配置efd参与hash计算的hash-key

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置hash value global

Switch(config)# hash-value global
Switch(config-hash-value-global)# efd select ipsa macsa
Switch(config-hash-value-global)# end

 步骤3 检查配置

显示hash value global的信息:

Switch# show hash-value global
LBT:load balance type         LBM :load balance mode
PT :packet type               HF  :hash field
HA :hash arithmetic
hash-value global
LBT            LBM            PT             HF             HA
----------------------------------------------------------------------
port-channel   -              all            port-channel   xor
ecmp           -              all            ecmp           xor
ecmp           flow id        all            ecmp           xor
entropy        -              all            ecmp           xor
----------------------------------------------------------------------
Efd hash field select:
  macsa                 ipsa   

2.18 PORT-XCONNECT配置

2.18.1 概述

2.18.1.1 功能简介

该功能能够根据配置的目的端口对报文进行直接转发,而不用查任何表项再做转发。

目前只能配置在物理端口和聚合端口。

2.18.1.2 原理描述

2.18.2 配置

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入端口模式并打开端口

Switch(config)# interface range eth-0-1 , eth-0-2
Switch(config-if-range)# no shutdown

 步骤3 设置eth-0-1端口port-xconnect的目的端口

Switch(config)# interface eth-0-1
Switch(config-if)# port-xconnect destination-interface eth-0-2
Switch(config-if)# end

 步骤4 查看配置情况

Switch# show running-config
Building configuration...
version 5.3.9.18
!
no service password-encryption
!
!
!
!
!
!
!
temperature 0 0 0
!
vlan database
!

interface eth-0-1
port-xconnect destination-interface eth-0-2
!
interface eth-0-2
!
interface eth-0-3
Switch#

2.18.3 应用场景配置举例

3   IP业务配置指导  

3.1 ARP配置

3.1.1 概述

3.1.1.1 功能简介

ARPAddress Resolution Protocol,地址解析协议)用于将网络层的IP 地址解析为数据链路层的物理地址(MAC 地址)。 ARP缓存IPMAC地址的映射。当一个接口请求的地址映射不在缓存中,则设备将会缓存接收到的报文并在相应的子网内广播一个地址请求,如果获得响应,则生成新的地址映射并且发送缓存的报文。ARP在等待地址映射回应消息的时候最多缓存一个报文,而且只有最近传输的报文才会被保存。如果目的主机在3次请求后都无法响应,则主机被认为故障,同时相应的错误消息将被返回。如果目的主机在一段时间内(通常为一小时)不发送消息,主机被认为可能出现问题,在删除ARP表项之前几个请求(一般为6个,3个是单播和3个是广播)将被发送到主机上。 ARP表项可以通过手工添加、删除、修改。手工添加的表项是永久的。

3.1.1.2 原理描述

3.1.2 配置

arp

在这个配置例子中,接口eth-0-1被分配地址为11.11.11.1/24,子网地址为11.11.11.0/24。有两个主机,IP地址分别为11.11.11.211.11.11.3MAC地址分别为001a-a011-eca2001a-a011-eca3。主机IP11.11.11.2 ARP条目通过手工添加,主机IP11.11.11.3 ARP条目通过动态添加。 接口eth-0-1ARP条目老化时间配置为20分钟,ARP请求重发延迟配置为2秒。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置一个三层接口,并配置IP地址

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.11.1/24

 步骤3 配置arp老化时间和请求重发延迟时间

Switch(config-if)# arp timeout 1200
Switch(config-if)# arp retry-interval 2
Switch(config-if)# exit

 步骤4 添加静态arp条目

Switch(config)# arp 11.11.11.2 1a.a011.eca2

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

使用下列命令查看arp条目:

Switch# show ip arp
Protocol    Address          Age (min)  Hardware Addr   Interface
Internet    11.11.11.2              -   001a.a011.eca2     eth-0-1

Switch# show ip arp summary
1 IP ARP entries, with 0 of them incomplete
(Static:0,  Dyamic:0, Interface:1)
ARP Pkt Received is: 0
ARP Pkt Send number is: 0
ARP Pkt Dicard number is: 0

使用下列命令查看ARP请求重发延迟和老化时间:

Switch# show interface eth-0-1
Interface eth-0-1
  Interface current state: Administratively DOWN
  Hardware is Ethernet, address is 6c02.530c.2300 (bia 6c02.530c.2300)
  Bandwidth 1000000 kbits
  Index 1 , Metric 1 , Encapsulation ARPA
  Speed - Auto , Duplex - Auto  , Media type is 1000BASE_T
  Link speed type is autonegotiation, Link duplex type is autonegotiation
  Input flow-control is off, output flow-control is off
  The Maximum Frame Size is 1534 bytes
  VRF binding: not bound
  Label switching is disabled
  No virtual circuit configured
  VRRP master of :  VRRP is not configured on this interface
  ARP timeout 00:20:00,  ARP retry interval 2s
  5 minute input rate 0 bits/sec, 0 packets/sec
  5 minute output rate 0 bits/sec, 0 packets/sec
    0 packets input, 0 bytes
    Received 0 unicast, 0 broadcast, 0 multicast
    0 runts, 0 giants, 0 input errors, 0 CRC
    0 frame, 0 overrun, 0 pause input
    0 input packets with dribble condition detected
    0 packets output, 0 bytes
    Transmitted 0 unicast, 0 broadcast, 0 multicast
0 underruns, 0 output errors, 0 pause output

3.1.3 应用场景配置举例

3.2 ARP代理配置

3.2.1 概述

3.2.1.1 功能简介

代理ARPARP协议的一个变种。 对于没有配置缺省网关的计算机要和其他网络中的计算机实现通信,网关收到源计算机的 ARP 请求会使用自己的 MAC 地址与目标计算机的 IP地址对源计算机进行应答。代理ARP就是将一个主机作为对另一个主机ARP进行应答。它能使得在不影响路由表的情况下添加一个新的Router,使得子网对该主机来说变得更透明化。同时也会带来巨大的风险,除了ARP欺骗,和某个网段内的ARP增加,最重要的就是无法对网络拓扑进行网络概括。proxy ARP的最主要的一个优点在于能够在不影响其他router的路由表的情况下在网络上添加一个新的router,这样使得子网的变化对主机是透明的 。代理ARP的使用一般是使用在没有配置默认网关和路由策略的网络上的。 代理ARP又分为普通的ARP代理和本地ARP代理。 同一网段内连接到设备的不同VLAN 接口的主机,可以利用设备的代理ARP功能,通过三层转发实现互通。 为了实现三层互通,如果以太网交换机或其下挂的交换机开启了二层端口隔离功能,则需要开启本地代理ARP功能。注意:本地ARP代理功能开启后,ICMP重定向功能将自动关闭。

3.2.1.2 原理描述

3.2.2 配置

3.2.2.1 配置普通ARP

arp proxy

如上图所示,PC1属于VLAN10PC2属于VLAN20,在VLAN interface10VLAN interface 20上各自配置ARP代理以实现PC1PC2之间的互通。 按照下面的配置步骤在VLAN10VLAN 20上使能ARP代理功能。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式并创建vlan

Switch(config)# vlan database
Switch(config-vlan)# vlan 10,20
Switch(config-vlan)# exit

 步骤3 进入接口配置模式并将接口加入vlan

Switch(config)# interface eth-0-22
Switch(config-if)# switchport access vlan 10
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-23
Switch(config-if)# switchport access vlan 20
Switch(config-if)# no shutdown
Switch(config-if)# exit

 步骤4 创建三层接口并配置ip地址,然后使能arp代理功能

Switch(config)# interface vlan 10
Switch(config-if)# ip address 192.168.10.1/24
Switch(config-if)# proxy-arp enable
Switch(config-if)# exit

Switch(config)# interface vlan 20
Switch(config-if)# ip address 192.168.20.1/24
Switch(config-if)# proxy-arp enable
Switch(config-if)# exit

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

使用下列命令查看交换机上的arp proxy配置:

Switch# show ip interface vlan 10
Interface vlan10
  Interface current state: UP
  Internet address(es):
    192.168.10.1/24 broadcast 192.168.10.255
  Joined group address(es):
    224.0.0.1
  The maximum transmit unit is 1500 bytes
  ICMP error messages limited to one every 1000 milliseconds
  ICMP redirects are always sent
  ICMP unreachables are always sent
  ICMP mask replies are always sent
  ARP timeout 01:00:00,  ARP retry interval 1s
  ARP Proxy is enabled, Local ARP Proxy is disabled
  VRRP master of :  VRRP is not configured on this interface

Switch# show ip interface vlan 20
Interface vlan20
  Interface current state: UP
  Internet address(es):
    192.168.20.1/24 broadcast 192.168.20.255
  Joined group address(es):
    224.0.0.1
  The maximum transmit unit is 1500 bytes
  ICMP error messages limited to one every 1000 milliseconds
  ICMP redirects are always sent
  ICMP unreachables are always sent
  ICMP mask replies are always sent
  ARP timeout 01:00:00,  ARP retry interval 1s
  ARP Proxy is enabled, Local ARP Proxy is disabled
  VRRP master of :  VRRP is not configured on this interface

使用下列命令查看arp表项:

Switch# show ip arp
Protocol    Address          Age (min)  Hardware Addr   Interface
Internet    192.168.10.1            -   7cc3.11f1.aa00  vlan10   
Internet    192.168.10.111          5   0cf9.11b6.6e2e  vlan10   
Internet    192.168.20.1            -   7cc3.11f1.aa00  vlan20   
Internet    192.168.20.222          6   5a94.031f.2357  vlan20

使用下列命令检查PC1的状态:

[Host:~]$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 0C:F9:11:B6:6E:2E 
          inet addr:192.168.10.111  Bcast:192.168.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1600  Metric:1
          RX packets:11 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:588 (588.0 b)  TX bytes:700 (700.0 b)
          Interrupt:5

[Host:~]$ arp –a
? (192.168.20.222) at 7c:c3:11:f1:aa:00 [ether] on eth0
[Host: ~]$ route -v
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     *               255.255.0.0     U     0      0        0 eth0

[Host:~]$ ping 192.168.20.222
PING 192.168.20.222 (192.168.20.222) 56(84) bytes of data.
64 bytes from 192.168.20.222: icmp_seq=0 ttl=63 time=189 ms
64 bytes from 192.168.20.222: icmp_seq=1 ttl=63 time=65.2 ms
--- 192.168.20.222 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 65.209/127.226/189.244/62.018 ms, pipe 2

使用下列命令检查PC2的状态:

[Host:~]$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 5A:94:03:1F:23:57 
          inet addr:192.168.20.222  Bcast:192.168.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1600  Metric:1
          RX packets:14 errors:0 dropped:0 overruns:0 frame:0
          TX packets:17 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:784 (784.0 b)  TX bytes:1174 (1.1 KiB)
          Interrupt:5

[Host:~]$ arp -a
? (192.168.10.111) at 7c:c3:11:f1:aa:00 [ether] on eth0

[Host: ~]$ route -v 
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     *               255.255.0.0     U     0      0        0 eth0

[Host: ~]$ ping 192.168.10.111
PING 192.168.10.111 (192.168.10.111) 56(84) bytes of data.
64 bytes from 192.168.10.111: icmp_seq=0 ttl=63 time=53.8 ms
64 bytes from 192.168.10.111: icmp_seq=1 ttl=63 time=65.8 ms
--- 192.168.10.111 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1007ms
rtt min/avg/max/mdev = 53.832/59.842/65.852/6.010 ms, pipe 2

3.2.2.2 配置本地ARP

local arp proxy

如上图所示,Switch B上的32层端口eth2eth3eth4都属于VLAN10,其中端口3和端口4在同一个隔离组1,所以端口3和端口4不能互相通信。端口2在隔离组3,所以端口2能和端口34互相通信。PC1PC2分别连接到Switch Beth3eth4口,它们都属于VLAN10。 通过如下配置步骤,使PC1PC2之间实现3层互通。

以下配置如无特殊说明则SwitchASwitchB的配置相同。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式并创建vlan

Switch(config)# vlan database
Switch(config-vlan)# vlan 10
Switch(config-vlan)# exit

 步骤3 进入接口配置模式并将接口加入vlan

Switch A配置:

Switch(config)# interface eth-0-1
Switch(config-if)# switchport access vlan 10
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch B配置:

Switch(config)# interface range eth-0-2 - 4
Switch(config-if-range# switchport access vlan 10
Switch(config-if-range# no shutdown
Switch(config-if-range# exit

 步骤4 创建三层接口并配置ip地址,然后使能本地arp代理功能

Switch A配置:

Switch(config)# interface vlan 10
Switch(config-if)# ip address 192.168.10.1/24
Switch(config-if)# local-proxy-arp enable
Switch(config-if)# exit

 步骤5 配置端口隔离(可选)

Switch B配置:

通过以下配置,使Switch Beth-0-3eth-0-4之间不能二层互通,但是eth-0-3eth-0-4分别可以和eth-0-2二层互通。

Switch(config)# port-isolate mode l2
Switch(config)# interface eth-0-3 - 4
Switch(config-if-range# port-isolate group 1
Switch(config-if-range# exit

Switch(config)# interface eth-0-2
Switch(config-if)# port-isolate group 3
Switch(config-if)# exit

 步骤6 检查配置

使用下列命令查看Switch A上的arp表项:

Switch# show ip arp
Protocol    Address          Age (min)  Hardware Addr   Interface
Internet    192.168.10.1            -   eeb4.2a8d.6c00  vlan10   
Internet    192.168.10.111          0   34b0.b279.5f67  vlan10   
Internet    192.168.10.222          0   2a65.9618.57fa  vlan10   

使用下列命令查看Switch A上的arp proxy相关配置:

Switch# show ip interface vlan 10
Interface vlan10
  Interface current state: UP
  Internet address(es):
    192.168.10.1/24 broadcast 192.168.10.255
  Joined group address(es):
    224.0.0.1
  The maximum transmit unit is 1500 bytes
  ICMP error messages limited to one every 1000 milliseconds
  ICMP redirects are never sent
  ICMP unreachables are always sent
  ICMP mask replies are always sent
  ARP timeout 01:00:00,  ARP retry interval 1s
  ARP Proxy is disabled, Local ARP Proxy is enabled
  VRRP master of :  VRRP is not configured on this interface

使用下列命令检查PC1的状态:

[Host: ~]$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 34:B0:B2:79:5F:67 
          inet addr:192.168.10.111  Bcast:192.168.10.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1600  Metric:1
          RX packets:22 errors:0 dropped:0 overruns:0 frame:0
          TX packets:28 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1344 (1.3 KiB)  TX bytes:2240 (2.1 KiB)
          Interrupt:5

[Host: ~]$ arp -a
? (192.168.10.222) at ee:b4:2a:8d:6c:00 [ether] on eth0

[Host: ~]$ ping 192.168.10.222
PING 192.168.10.222 (192.168.10.222) 56(84) bytes of data.
64 bytes from 192.168.10.222: icmp_seq=0 ttl=63 time=131 ms
64 bytes from 192.168.10.222: icmp_seq=1 ttl=63 time=159 ms
--- 192.168.10.222 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1003ms
rtt min/avg/max/mdev = 131.078/145.266/159.454/14.188 ms, pipe 2

使用下列命令检查PC2的状态:

[Host:~]$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 2A:65:96:18:57:FA 
          inet addr:192.168.10.222  Bcast:192.168.10.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1600  Metric:1
          RX packets:19 errors:0 dropped:0 overruns:0 frame:0
          TX packets:20 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1148 (1.1 KiB)  TX bytes:1524 (1.4 KiB)
          Interrupt:5

[Host:~]$ arp -a
? (192.168.10.111) at ee:b4:2a:8d:6c:00 [ether] on eth0

[Host: ~]$ ping 192.168.10.111
PING 192.168.10.111 (192.168.10.111) 56(84) bytes of data.
64 bytes from 192.168.10.111: icmp_seq=0 ttl=63 time=198 ms
64 bytes from 192.168.10.111: icmp_seq=1 ttl=63 time=140 ms
64 bytes from 192.168.10.111: icmp_seq=2 ttl=63 time=146 ms
--- 192.168.10.111 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2008ms
rtt min/avg/max/mdev = 140.196/161.959/198.912/26.267 ms, pipe 2

3.2.3 应用场景配置举例

3.3 DHCP Client配置

3.3.1 概述

3.3.1.1 功能简介

DHCPDynamic Host Configuration Protocolclient通过DHCP协议从DHCP server动态获得ip地址和配置参数。若客户端和服务器都在一个子网内,则客户端和服务器之间可以直接进行DHCP协议的交互,否则需要有DHCP relay agent转发DHCP消息。 DHCP client通过DHCP广播报文向DHCP server请求ip地址,在获得ip地址和相应的租期后,配置地址并设置租期的时间。在租期过半的时候开始发送DHCP报文请求继续使用当前的ip地址,并期望获得新的租期。在成功续租后,DHCP client更新租期的时间。 DHCP client可以向server请求的选项包括:routerstatic-routeclassless-static-routeclassless-static-route-mstftp-server-addressdns-nameserver domain-namenetbios-nameservervendor-specific。选项routerstatic-routeclassless-static-routeclassless-static-route-mstftp-server-address默认是被请求的,可以通过命令取消这些请求。

3.3.1.2 原理描述

3.3.2 配置

dhcp client

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,设置接口属性并使能接口

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown

 步骤3 取消static-route选项请求并启用DHCP client

Switch(config-if)# no dhcp client request static-route
Switch(config-if)# ip address dhcp

 步骤4 退出配置模式

Switch(config-if)# end

 步骤5 检查配置

检查接口配置

Switch# show running-config interface eth-0-1
Building configuration...
!
interface eth-0-1
no switchport
ip address dhcp
no dhcp client request static-route
!

检查DHCP client工作状态

Switch# show dhcp client verbose
DHCP client informations:
============================================================
eth-0-1 DHCP client information:
  Current state: BOUND
  Allocated IP: 4.4.4.199 255.255.255.0
  Lease/renewal/rebinding: 1187/517/1037 seconds
  Lease from 2011-11-18 05:59:59 to 2011-11-18 06:19:59
  Will Renewal in 0 days 0 hours 8 minutes 37 seconds
  DHCP server: 4.4.4.1
  Transaction ID: 0x68857f54
  Client ID: switch-7e39.3457.b700-eth-0-1

显示DHCPclient统计

Switch# show dhcp client statistics
DHCP client packet statistics:
============================================================
DHCP OFFERS    received: 1
DHCP ACKs      received: 2
DHCP NAKs      received: 0
DHCP Others    received: 0
DHCP DISCOVER      sent: 1
DHCP DECLINE       sent: 0
DHCP RELEASE       sent: 0
DHCP REQUEST       sent: 2
DHCP packet send failed: 0

3.3.3 应用场景配置举例

3.4 DHCP Relay配置

3.4.1 概述

3.4.1.1 功能简介

DHCP服务器和客户端都在一个子网内,则客户端和服务器之间可以直接进行DHCP协议的交互,这时不需要启动DHCP Relay功能。如果DHCP服务器和客户端不在一个子网内,则需要启动DHCP Relay功能将DHCP报文转发到外部的DHCP服务器。

DHCP Relay转发同正常的IP路由转发不同,IP路由转发的IP数据包在网络之间透明交换,而DHCP Relay代理接收DHCP消息同时产生一个新的DHCP消息发送到另一个接口。DHCP Relay代理在报文中设置网关地址,添加中继代理信息(option82),转发到DHCP服务器端。通过DHCP Relay代理,在收到服务器响应的消息时,会移除消息中option82内容后,转发给客户端。

3.4.1.2 原理描述

3.4.2 配置

DHCP relay

上图为测试DHCP中继代理功能的网络拓扑,需要两台PC机和一台交换机构建测试环境。

计算机A作为DHCP服务器

计算机B作为DHCP客户端

交换机作为DHCP中继代理

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性和ip地址

Switch(config)# interface eth-0-12
Switch(config-if)# no switchport
Switch(config-if)# ip address 4.4.4.2/24
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# ip address 5.5.5.2/24
Switch(config-if)# no shutdown
Switch(config-if)# exit

 步骤3 创建DHCP服务器

Switch(config)# dhcp-server 1 4.4.4.1

 步骤4 端口使能DHCP服务器、启用option82

Switch(config)# interface eth-0-1
Switch(config-if)# dhcp relay information trusted
Switch(config-if)# dhcp-server 1
Switch(config-if)# exit

 步骤5 全局使能DHCP服务器和DHCP relay功能

Switch(config)# service dhcp enable
Switch(config)# dhcp relay

 步骤6 检查配置

检查接口配置。

 Switch# show running-config interface eth-0-12
!
interface eth-0-12
  no switchport
  ip address 4.4.4.2/24
!
Switch# show running-config interface eth-0-1
!
interface eth-0-1
  no switchport
  dhcp relay information trusted
  dhcp-server 1
  ip address 5.5.5.2/24
!

检查DHCP服务器状态。

Switch# show services
Networking services configuration:
Service Name         Status      
===========================================================
dhcp                   enable      

检查DHCP服务器组配置。

Switch# show dhcp-server
DHCP server group information:
===========================================================
group 1 ip address list:
[1] 4.4.4.1

显示DHCP中继统计检查DHCP中继统计。

Switch# show dhcp relay statistics
DHCP relay packet statistics:
===========================================================
Client relayed packets:  20
Server relayed packets:  20
Client error packets:     20
Server error packets:     0
Bogus GIADDR drops:       0
Bad circuit ID packets:   0
Corrupted agent options:  0
Missing agent options:    0
Missing circuit IDs:      0

检查计算机从DHCP服务器获取的IP地址。

Ipconfig /all
Dhcp Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
IP Address. . . . . . . . . . . . : 5.5.5.1
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 5.5.5.2
DHCP Server . . . . . . . . . . . : 4.4.4.1
DNS Servers . . . . . . . . . . . : 4.4.4.1

3.4.3 应用场景配置举例

3.5 DHCP server配置

3.5.1 概述

3.5.1.1 功能简介

DHCP server 通过DHCP协议为client提供ip地址和网络配置参数。为了能够给客户端提供DHCP服务,DHCP server需要完成一些基本的配置,例如,地址池的分配,默认网关的设置,网络参数的设置。在实际工作的时候,DHCP server会从设置的地址池内找到可用的地址分配给请求地址的DHCP client,同时,将client请求的网络配置参数发送给client。这些分配的地址和参数都有一个有效期限(租约),client需要在到期之前向server发出续约请求,保留自己的ip地址,同时更新租约。

在实际环境中,若DHCP serverDHCP client在同一子网内,则DHCP server在直接相连后就可以正常工作。若它们不在同一网段内,则DHCP server需要DHCP relay协助转发DHCP 消息,才能为client提供DHCP 服务。

DHCP server支持的主要option包括:bootfile-namedns-serverdomain-namegatewaynetbios-name-servernetbios-node-typetftp-server-address。同时,支持部分raw option

3.5.1.2 原理描述

3.5.2 配置

3.5.2.1 配置 DHCP server

DHCP server

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局启用DHCP服务,配置地址池

dut1上配置:

Switch(config)#service dhcp enable
Switch(config)#dhcp server
Switch(config)#dhcp pool pool5
Switch(dhcp-config)#network 5.5.5.0/24
Switch(dhcp-config)#gateway 5.5.5.1
Switch(dhcp-config)#exit

 步骤3 进入接口配置模式,配置接口属性和IP地址

dut1上配置:

Switch(config)#interface eth-0-9
Switch (config-if)#no switchport
Switch (config-if)# no shutdown
Switch (config-if)# ip address 5.5.5.1/24
Switch (config-if)# dhcp server enable
Switch (config-if)#exit

dut2上配置:

Switch#configure terminal
Switch(config)#interface eth-0-9
Switch (config-if)#no switchport
Switch (config-if)# no shutdown
Switch (config-if)# ip address dhcp
Switch (config-if)#exit

 步骤4 检查配置

查看DHCP Serverdut1)配置:

Switch# show running-config
!
service dhcp enable
!
interface eth-0-9
no switchport
dhcp server enable
ip address 5.5.5.1/24!
!
dhcp server
dhcp pool pool5
network 5.5.5.0/24
gateway 5.5.5.1

DHCP Clientdut2)上查看DHCP client状态:

Switch# show dhcp client verbose
DHCP client informations:
============================================================
eth-0-9 DHCP client information:
  Current state: BOUND
  Allocated IP: 5.5.5.2 255.255.255.0
  Lease/renewal/rebinding: 1194/546/1044 seconds
  Lease from 2012-02-04 07:40:12 to 2012-02-04 08:00:12
  Will Renewal in 0 days 0 hours 9 minutes 6 seconds
  DHCP server: 5.5.5.1
  Transaction ID: 0x45b0b27b
  Default router: 5.5.5.1
  Classless static route:
    Destination: 5.5.4.0, mask: 255.255.255.0, Nexthop: 5.5.5.1
  TFTP server addresses: 5.5.5.3
Client ID: switch-6e6e.361f.8400-eth-0-9

DHCP Serverdut1)上查看DHCP server统计:

Switch# show dhcp server statistics
DHCP server packet statistics:
============================================================
Message Received: 
BOOTREQUEST:  0
DHCPDISCOVER:  1
DHCPREQUEST:  1
DHCPDECLINE:  0
DHCPRELEASE:  0
DHCPINFORM:  0
Message Sent: 
BOOTREPLY:  0
DHCPOFFER:  1
DHCPACK:  1
DHCPNAK:  0

DHCP Serverdut1)上查看DHCP server地址分配及接口信息:

Switch# show dhcp server binding all
IP address      Client-ID/            Lease expiration             Type  
                 Hardware address    
5.5.5.2         6e:6e:36:1f:84:00     Sat 2012.02.04 08:00:12      Dynamic
Switch# show dhcp server interfaces
List of DHCP server enabled interface(s):
DHCP server service status: enabled
Interface Name         
============================================================
eth-0-9    

3.5.2.2 配置有DHCP relay的dhcp server

DHCP relay

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局启用DHCP服务,配置地址池,配置DHCP relay

dut1上配置:

Switch(config)#service dhcp enable
Switch(config)#dhcp server
Switch(dhcp-config)#dhcp pool pool4
Switch(dhcp-config)#network 4.4.4.0/24
Switch(dhcp-config)#gateway 4.4.4.1
Switch(dhcp-config)#exit

dut2上配置:

Switch(config)#service dhcp enable
Switch(config)#dhcp relay
Switch(config)#dhcp-server 1 5.5.5.1

 步骤3 配置路由

dut1上配置:

Switch(config)#ip route 4.4.4.0/24 5.5.5.2

 步骤4 进入接口配置模式,配置接口属性和IP地址

dut1上配置:

Switch(config)#interface eth-0-9
Switch (config-if)#no switchport
Switch (config-if)# no shutdown
Switch (config-if)# ip address 5.5.5.1/24
Switch (config-if)# dhcp server enable
Switch (config-if)#exit

dut2上配置:

Switch(config)#interface eth-0-17
Switch (config-if)#no switchport
Switch (config-if)# no shutdown
Switch (config-if)# ip address 4.4.4.1/24
Switch (config-if)# dhcp-server 1

Switch (config-if)#interface eth-0-9
Switch (config-if)#no switchport
Switch (config-if)# no shutdown
Switch (config-if)# ip address 5.5.5.2/24
Switch (config-if)#exit

dut3上配置:

Switch(config)#interface eth-0-17
Switch (config-if)#no switchport
Switch (config-if)# no shutdown
Switch (config-if)# ip address dhcp
Switch (config-if)#exit

 step 5 Exit the configure mode

Switch(config)# end

 step 6 Validation

查看DHCP Serverdut1)配置:

Switch# show running-config
!
service dhcp enable
!
interface eth-0-9
no switchport
dhcp server enable
ip address 5.5.5.1/24!
!
ip route 4.4.4.0/24 5.5.5.2
!
dhcp server
dhcp pool pool4
network 4.4.4.0/24
gateway 4.4.4.1

DHCP Serverdut1)上查看DHCP client状态:

Switch# show dhcp client verbose
DHCP client informations:
============================================================
eth-0-17 DHCP client information:
  Current state: BOUND
  Allocated IP: 4.4.4.5 255.255.255.0
  Lease/renewal/rebinding: 1199/517/1049 seconds
  Lease from 2012-02-06 05:23:09 to 2012-02-06 05:43:09
  Will Renewal in 0 days 0 hours 8 minutes 37 seconds
  DHCP server: 5.5.5.1
  Transaction ID: 0x192a4f7d
  Default router: 4.4.4.1
  Classless static route:
    Destination: 5.5.4.0, mask: 255.255.255.0, Nexthop: 4.4.4.1
  TFTP server addresses: 5.5.5.3
  Client ID: switch-3c9a.b29a.ba00-eth-0-17

DHCP Serverdut1)上查看DHCP server统计:

Switch# show dhcp server statistics
DHCP server packet statistics:
============================================================
Message Received: 
BOOTREQUEST:  0
DHCPDISCOVER:  1
DHCPREQUEST:  1
DHCPDECLINE:  0
DHCPRELEASE:  0
DHCPINFORM:  0
Message Sent: 
BOOTREPLY:  0
DHCPOFFER:  1
DHCPACK:  1
DHCPNAK:  0

DHCP Serverdut1)上查看DHCP server地址分配及接口信息:

Switch# show dhcp server binding all
IP address      Client-ID/            Lease expiration             Type  
                 Hardware address    
4.4.4.5         3c:9a:b2:9a:ba:00     Mon 2012.02.06 05:43:09      Dynamic
Switch# show dhcp server interfaces
List of DHCP server enabled interface(s):
DHCP server service status: enabled
Interface Name         
============================================================
eth-0-9    

3.5.3 应用场景配置举例

3.6 DNS配置

3.6.1 概述

3.6.1.1 功能简介

DNS是域名系统(Domain Name System)的缩写,通过这个分布式数据库,你可以将主机名称映射到IP地址。当你在交换机上配置DNS时,你可以在所有与IP相关的命令,如pingtelnetconnect以及telnet支持的其他相关操作中用主机名代替IP地址。 IP被定义为一个有层次的名称摘要。这些域名使用点(.)分隔。 要解析域名,必须要定义一个域名服务器,该服务器保存了将域名解析为IP地址的域名缓存(或数据库)。为了能够将域名解析为ip地址,用户必须指定本网络中有效的服务器,然后再启用DNS

3.6.1.2 原理描述

3.6.2 配置

DNS

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置dns域名和服务器地址

Switch(config)#dns domain server1
Switch(config)#dns server 202.100.10.20

 步骤3 设置静态域名解析表中主机名及其对应的主机IPv4地址(可选)

Switch(config)# ip host www.example1.com 192.0.2.141

 步骤4 检查配置

Switch# show dns server
Current DNS name server configuration:
     Server                 IP Address
--------------------------------------------------------------
1    nameserver             202.100.10.20 

3.6.3 应用场景配置举例

4   IP路由配置指导  

4.1 IP单播路由配置

4.1.1 概述

4.1.1.1 功能简介

静态路由是一种特殊的路由,由管理员手工配置。当网络结构比较简单时,只需配置静态路由就可以使网络正常工作。合理设置和使用静态路由可以改进网络性能,并可为重要的网络应用保证带宽。静态路由的缺点在于:当网络发生故障或者拓扑发生变化后,可能会出现路由不可达,从而导致网络中断。此时必须由网络管理员手工修改静态路由的配置。

静态路由在小型网络中非常有用,提供使几个目的地可达的简单解决方案。大型网络建议使用动态路由协议。

静态路由是由网络前缀(主机地址)和下一跳(网关)组成。

4.1.1.2 原理描述

4.1.2 配置

ip unicast routing

这个例子说明在一个简单的网络拓扑结构下如何使能静态路由。

路由器Switch1配置三个静态路由,一个是远程网络10.10.12.0/24,另外两个是到路由器Switch2Switch3的环回地址(主机地址)。路由器Switch3配置了一条默认静态路由,相当于单独的静态路由配置使用相同的网关或下一跳地址。路由器Switch2有两条路由,每一条路由的目的地都是远端路由器的环回口地址。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性和ip地址

Switch1配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.10.10.1/24
Switch(config-if)# exit

Switch(config)# interface loopback 0
Switch(config-if)# ip address 192.168.0.1/32
Switch(config-if)# exit

Switch2配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.10.10.2/24
Switch(config-if)# exit

Switch(config)# interface eth-0-17
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.10.12.2/24
Switch(config-if)# exit

Switch(config)# interface loopback 0
Switch(config-if)# ip address 192.168.0.2/32
Switch(config-if)# exit

Switch3配置:

Switch(config)# interface eth-0-17
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.10.12.3/24
Switch(config-if)# exit

Switch(config)# interface loopback 0
Switch(config-if)# ip add 192.168.0.3/32
Switch(config-if)# exit

 步骤3 配置静态路由

Switch1配置:

说明:指定目的前缀和掩码网关所需网络,例如,10.10.12.0/24,为他们每个添加网关(对此所有情况下位 10.10.10.2)。由于Switch2是唯一可用的下一跳,可以配置默认路由而不是配置为单独的地址

Switch(config)# ip route 10.10.12.0/24 10.10.10.2
Switch(config)# ip route 192.168.0.2/32 10.10.10.2
Switch(config)# ip route 192.168.0.3/32 10.10.10.2

Switch2配置:

Switch(config)# ip route 192.168.0.1/32 10.10.10.1
Switch(config)# ip route 192.168.0.3/32 10.10.12.3

Switch3配置:

说明:指定10.10.12.2作为到达任意网络的默认网关,因为10.10.12.2是唯一的一条可以指定默认网关,而不是单个网络或主机的网关指定。

Switch(config)# ip route 0.0.0.0/0 10.10.12.2

 步骤4 退出配置模式

Switch(config)# end

 步骤5 检查配置

使用下列命令,查看Switch1上的路由:

Switch# show ip route
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       [*] - [AD/Metric]
       * - candidate default
C       10.10.10.0/24 is directly connected, eth-0-9
C       10.10.10.1/32 is in local loopback, eth-0-9
S       10.10.12.0/24 [1/0] via 10.10.10.2, eth-0-9
C       192.168.0.1/32 is directly connected, loopback0
S       192.168.0.2/32 [1/0] via 10.10.10.2, eth-0-9
S       192.168.0.3/32 [1/0] via 10.10.10.2, eth-0-9

使用下列命令,查看Switch2上的路由:

Switch# show ip route
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       [*] - [AD/Metric]
       * - candidate default
C       10.10.10.0/24 is directly connected, eth-0-9
C       10.10.10.2/32 is in local loopback, eth-0-9
C       10.10.12.0/24 is directly connected, eth-0-17
C       10.10.12.2/32 is in local loopback, eth-0-17S       192.168.0.1/32 [1/0] via 10.10.10.1, eth-0-9
C       192.168.0.2/32 is directly connected, loopback0
S       192.168.0.3/32 [1/0] via 10.10.12.3, eth-0-17

使用下列命令,查看Switch3上的路由:

Switch# show ip route
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       [*] - [AD/Metric]
       * - candidate default
Gateway of last resort is 10.10.12.2 to network 0.0.0.0
S*      0.0.0.0/0 [1/0] via 10.10.12.2, eth-0-17
C       10.10.12.0/24 is directly connected, eth-0-17
C       10.10.12.3/32 is in local loopback, eth-0-17
C       192.168.0.3/32 is directly connected, loopback0

4.1.3 应用场景配置举例

4.2 RIP配置

4.2.1 概述

4.2.1.1 功能简介

RIPRouting Information Protocol,路由信息协议)是一种较为简单的内部网关协议(Interior Gateway ProtocolIGP),主要用于规模较小的网络中。

RIP是一种基于距离矢量(Distance-Vector)算法的协议,它通过UDP报文进行路由信息的交换。RIP 使用跳数(Hop Count)来衡量到达目的地址的距离,称为路由权(RoutingCost)。在RIP中,路由器到与它直接相连网络的跳数为0,通过一个路由器可达的网络的跳数为1,其余依此类推。为限制收敛时间,RIP规定cost的取值为015之间的整数,cost取值大于或等于16的跳数被定义为无穷大,即目的网络或主机不可达。

为提高性能,防止产生路由环,RIP支持水平分割(Split Horizon)。RIP还可引入其它路由协议所得到的路由。

4.2.1.2 原理描述

参考 2453

4.2.2 配置

4.2.2.1 配置启用rip

enable rip

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性和ip地址

Switch1配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 10.10.10.10/24
Switch(config-if)# exit

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 10.10.11.10/24
Switch(config-if)# exit

Switch2配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 10.10.12.10/24
Switch(config-if)# exit

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 10.10.11.50/24
Switch(config-if)# exit

 步骤3 启用rip路由,发布需要的网段

Switch1配置:

Switch(config)# router rip
Switch(config-router)#network 10.10.10.0/24
Switch(config-router)#network 10.10.11.0/24
Switch(config-router)# exit

Switch2配置:

Switch(config)# router rip
Switch(config-router)#network 10.10.11.0/24
Switch(config-router)#network 10.10.12.0/24
Switch(config-router)# exit

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

使用下列命令查看Switch1 rip数据库:

Switch# show ip rip database
CodesR - RIP, Rc - RIP connected, Rs - RIP static, K - Kernel,
       C - Connected, S - Static, O - OSPF, I - IS-IS, B - BGP
   Network            Next Hop        Metric From            If       Time
Rc 10.10.10.0/24                          1                   eth-0-1
Rc 10.10.11.0/24                          1                   eth-0-9
R  10.10.12.0/24      10.10.11.50       2 10.10.11.50     eth-0-9  000252

使用下列命令查看Switch1 rip协议运行状态:

Switch# show ip protocols rip
Routing protocol is "rip"
  Sending updates every 30 seconds with +/-5 seconds, next due in 17 seconds
  Timeout after 180 seconds, Garbage collect after 120 seconds
  Outgoing update filter list for all interface is not set
  Incoming update filter list for all interface is not set
  Default redistribution metric is 1
  Redistributing
  Default version controlsend version 2, receive version 2
    Interface        Send          Recv   Key-chain
    eth-0-1          2             2     
    eth-0-9          2             2     
  Routing for Networks
    10.10.10.0/24
    10.10.11.0/24
  Routing Information Sources
    Gateway          Distance  Last Update  Bad Packets  Bad Routes
    10.10.11.50           120  000022               0           0
  Number of routes (including connected)3
  Distance(default is 120)

使用下列命令查看Switch1 rip端口状态:

Switch# show ip rip interface
eth-0-1 is up, line protocol is up
  Routing ProtocolRIP
    Receive RIP packets
    Send RIP packets
    Passive interfaceDisabled
    Split horizonEnabled with Poisoned Reversed
    IP interface address
      10.10.10.10/24
eth-0-9 is up, line protocol is up
  Routing ProtocolRIP
    Receive RIP packets
    Send RIP packets
    Passive interfaceDisabled
    Split horizonEnabled with Poisoned Reversed
    IP interface address
      10.10.11.10/24

使用下列命令查看Switch1上的路由:

Switch# show ip route
CodesK - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       [*] - [AD/Metric]
       * - candidate default
C       10.10.10.0/24 is directly connected, eth-0-1
C       10.10.10.10/32 is in local loopback, eth-0-1
C       10.10.11.0/24 is directly connected, eth-0-9
C       10.10.11.10/32 is in local loopback, eth-0-9
R       10.10.12.0/24 [120/2] via 10.10.11.50, eth-0-9, 002550

4.2.2.2 配置rip版本

rip version

配置路由接口发送接收的RIP版本。在下面例子中Switch2 eth-0-9eth-0-20上面发送和接收的RIP版本是v1v2

 步骤1 进入配置模式

以下配置在Switch2进行:

Switch# configure terminal

 步骤2 启用路由协议

Switch(config)# router rip
Switch(config-router)# exit

 步骤3 进入接口配置模式,配置接口rip版本信息

Switch(config)# interface eth-0-9
Switch(config-if)# ip rip send version 1 2
Switch(config-if)# ip rip receive version 1 2
Switch(config-if)# quit

Switch(config)# interface eth-0-20
Switch(config-if)# ip rip send version 1 2
Switch(config-if)# ip rip receive version 1 2
Switch(config-if)# quit

 步骤4 退出配置模式

Switch(config)# end

 步骤5 检查配置

使用下列命令,查看Switch1配置:

Switch# show running-config
interface eth-0-9
no switchport
ip address 10.10.11.10/24
!
router rip
network 10.10.11.0/24

使用下列命令,查看Switch2rip数据库信息:

Switch# show ip rip database
CodesR - RIP, Rc - RIP connected, Rs - RIP static, K - Kernel,
       C - Connected, S - Static, O - OSPF, I - IS-IS, B - BGP
   Network            Next Hop        Metric From            If       Time
R  10.0.0.0/8                               1                 eth-0-9
Rc 10.10.11.0/24                           1                 eth-0-9
Rc 10.10.12.0/24                           1                 eth-0-20

使用下列命令,查看Switch2rip协议运行状态信息:

Switch# show ip protocols rip
Routing protocol is "rip"
  Sending updates every 30 seconds with +/-5 seconds, next due in 1 seconds
  Timeout after 180 seconds, Garbage collect after 120 seconds
  Outgoing update filter list for all interface is not set
  Incoming update filter list for all interface is not set
  Default redistribution metric is 1
  Redistributing
  Default version controlsend version 2, receive version 2
    Interface        Send          Recv   Key-chain
    eth-0-9          1 2           1 2   
    eth-0-20         1 2           1 2   
  Routing for Networks
    10.10.11.0/24
    10.10.12.0/24
  Routing Information Sources
    Gateway          Distance  Last Update  Bad Packets  Bad Routes
    10.10.11.10           120  000022               0           0
    10.10.12.50           120  000027               0           0
  Number of routes (including connected)3
  Distance(default is 120)

使用下列命令,查看Switch2的使用下列命令查看rip端口状态:

Switch# show ip rip interface
eth-0-9 is up, line protocol is up
  Routing ProtocolRIP
    Receive RIPv1 and RIPv2 packets
    Send RIPv1 and RIPv2 packets
    Passive interfaceDisabled
    Split horizonEnabled with Poisoned Reversed
    IP interface address
      10.10.11.50/24
eth-0-20 is up, line protocol is up
  Routing ProtocolRIP
    Receive RIPv1 and RIPv2 packets
    Send RIPv1 and RIPv2 packets
    Passive interfaceDisabled
    Split horizonEnabled with Poisoned Reversed
    IP interface address
      10.10.12.10/24

使用下列命令,查看Switch2的配置:

Switch# show run
interface eth-0-9
no switchport
ip address 10.10.11.50/24
ip rip send version 1 2
ip rip receive version 1 2
!
interface eth-0-20
no switchport
ip address 10.10.12.10/24
ip rip send version 1 2
ip rip receive version 1 2
!
router rip
network 10.10.11.0/24
network 10.10.12.0/24

使用下列命令,查看Switch3配置:

Switch# show running-config
interface eth-0-20
no switchport
ip address 10.10.12.50/24
!
router rip
network 10.10.12.0/24

4.2.2.3 配置Metric参数

rip metric

附加度量值是附加在RIP路由上的输入输出度量值,包括发送附加度量值和接收附加度量值。发送附加度量值不会改变路由表中的路由度量值,仅当接口发送RIP路由信息时才会添加到发送路由上;接收附加度量值会影响接收到的路由度量值,接口接收到一条合法的RIP 路由时,在将其加入路由表前会把度量值附加到该路由上。附加度量值一般包括如下的参数:

指定增加路由MetricACL,参数说明如下:

In:应用在从邻居路由器学习到的RIP的路由上

Out:应用在发布给邻居路由器RIP通告上

匹配ACL路由的偏移值Metric

应用偏移列表的接口

如果有一个路由匹配全局偏移表(不指定接口)和一个基于接口的偏移列表,此时基于接口的偏移列表优先。在这种情况下,基于接口的偏移列表的度量值是被加到路由上。

下面例子讲述如何在Switch1上将1.1.1.0eth-0-13接口上增加metric 3

 步骤1 环境准备, 检查已有配置

Switch1

interface eth-0-1
no switchport
ip address 1.1.1.1/24
!
interface eth-0-9
no switchport
ip address 10.10.11.10/24
!
interface eth-0-13
no switchport
ip address 13.1.1.1/24
!
router rip
network 1.1.1.0/24
network 10.10.11.0/24
network 13.1.1.0/24

Switch2

interface eth-0-9
no switchport
ip address 10.10.11.50/24
!
interface eth-0-20
no switchport
ip address 10.10.12.10/24
!
router rip
network 10.10.11.0/24
network 10.10.12.0/24

Switch3

interface eth-0-13
no switchport
ip address 13.1.1.2/24
!
interface eth-0-20
no switchport
ip address 10.10.12.50/24
!
router rip
network 10.10.12.0/24
network 13.1.1.0/24

Switch3上已学到rip路由,显示如下:

Switch# show ip route rip
R       1.1.1.0/24 [120/2] via 13.1.1.1, eth-0-13, 000746
R       10.10.11.0/24 [120/2] via 13.1.1.1, eth-0-13, 000739
                    [120/2] via 10.10.12.10, eth-0-20, 000739
Change router 1.1.1.0/24 via 10.10.12.10

 步骤2 进入配置模式

以下配置在Switch1进行:

Switch# configure terminal

 步骤3 配置ACL

Switch(config)#ip access-list ripoffset
Switch(config-ip-acl)#permit any 1.1.1.0 0.0.0.255 any

 步骤4 启用rip路由,设置偏移列表的Metric

Switch(config-ip-acl)# router rip
Switch(config-router)# offset-list ripoffset out 3 eth-0-13

 步骤5 退出配置模式

Switch(config-router)# end

 步骤6 检查配置

Switch3上学到rip路由,其中Switch1发布的路由metric变为3,显示如下:

Switch# show ip route rip
R       1.1.1.0/24 [120/3] via 10.10.12.10, eth-0-20, 000002
R       10.10.11.0/24 [120/2] via 13.1.1.1, eth-0-13, 001140
                    [120/2] via 10.10.12.10, eth-0-20, 001140

4.2.2.4 配置管理距离

rip distance

默认情况下,RIP的管理距离是120。比较路由时,管理距离越低,路由越容易被选中。

下面例子讲述了如何修改RIP的管理距离,通过以下步骤改变Switch3上的1.1.1.0网段的RIP管理距离。

 步骤1 环境准备, 检查已有配置

Switch1

interface eth-0-1
no switchport
ip address 1.1.1.1/24
!
interface eth-0-9
no switchport
ip address 10.10.11.10/24
!
router ospf
network 1.1.1.0/24 area 0
network 10.10.11.0/24 area 0
!
router rip
network 1.1.1.0/24
network 10.10.11.0/24

Switch2

interface eth-0-9
no switchport
ip address 10.10.11.50/24
!
interface eth-0-20
no switchport
ip address 10.10.12.10/24
!
router ospf
network 10.10.11.0/24 area 0
network 10.10.12.0/24 area 0
!
router rip
network 10.10.11.0/24
network 10.10.12.0/24

Switch3

interface eth-0-20
no switchport
ip address 10.10.12.50/24
!
router ospf
network 10.10.12.0/24 area 0
!
router rip
network 10.10.12.0/24

Switch3上已学到的路由,显示如下:

Switch# show ip route
CodesK - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       [*] - [AD/Metric]
       * - candidate default
O       1.1.1.0/24 [110/3] via 10.10.12.10, eth-0-20, 010549
O       10.10.11.0/24 [110/2] via 10.10.12.10, eth-0-20, 010549
C       10.10.12.0/24 is directly connected, eth-0-20
C       10.10.12.50/32 is in local loopback, eth-0-20

 步骤2 进入配置模式

以下配置在Switch3进行:

Switch# configure terminal

 步骤3 配置ACL

Switch(config)#ip access-list ripdistancelist
Switch(config-ip-acl)#permit any 1.1.1.0 0.0.0.255 any

 步骤4 启用rip路由,设置RIP路由的管理距离

Switch(config-ip-acl)# router rip
Switch(config-router)# distance 100 0.0.0.0/0 ripdistancelist

 步骤5 退出配置模式

 Switch(config-router)# end

 步骤6 检查配置

Switch3上学到rip路由,其中rip路由管理距离变为100,显示如下:

Switch# show ip route
CodesK - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       [*] - [AD/Metric]
       * - candidate default
R       1.1.1.0/24 [100/3] via 10.10.12.10, eth-0-20, 000002
O       10.10.11.0/24 [110/2] via 10.10.12.10, eth-0-20, 011042
C       10.10.12.0/24 is directly connected, eth-0-20
C       10.10.12.50/32 is in local loopback, eth-0-20

4.2.2.5 配置重发布

rip redistribute

用户可以将静态路由,直连路由以及其他路由协议比如OSPF的路由重分布到RIP中并被RIP发送给它的邻居。

默认RIP的重发布Metric1,最大16

将特定的路由重发布到RIP上,其度量值可以是默认的,也可以是修改后的。 下面例子讲述如何重分布其他的路由信息到RIP

 步骤1 环境准备, 检查已有配置

Switch1

interface eth-0-9
no switchport
ip address 10.10.11.10/24
!
router rip
network 10.10.11.0/24

Switch2

interface eth-0-1
no switchport
ip address 2.2.2.2/24
!
interface eth-0-9
no switchport
ip address 10.10.11.50/24
!
interface eth-0-20
no switchport
ip address 10.10.12.10/24
!
router ospf
network 10.10.12.0/24 area 0
!
router rip
network 10.10.11.0/24
!
ip route 20.20.20.0/24 10.10.12.50

Switch3

interface eth-0-1
no switchport
ip address 3.3.3.3/24
!
interface eth-0-2
no switchport
ip address 20.20.20.20/24
!
interface eth-0-20
no switchport
ip address 10.10.12.50/24
!
router ospf
network 3.3.3.0/24 area 0
network 10.10.12.0/24 area 0

Switch1上已学到的路由,显示如下:

Switch# show ip route
CodesK - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       [*] - [AD/Metric]
       * - candidate default
C       10.10.11.0/24 is directly connected, eth-0-9
C       10.10.11.10/32 is in local loopback, eth-0-9

Switch2上已学到的路由,显示如下:

Switch# show ip route
CodesK - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       [*] - [AD/Metric]
       * - candidate default
C       2.2.2.0/24 is directly connected, eth-0-1
C       2.2.2.02/32 is in local loopback, eth-0-1
O       3.3.3.0/24 [110/2] via 10.10.12.50, eth-0-20, 010541
C       10.10.11.0/24 is directly connected, eth-0-9
C       10.10.11.50/32 is in local loopback, eth-0-9
C       10.10.12.0/24 is directly connected, eth-0-20
C       10.10.12.10/24 is in local loopback, eth-0-20
S       20.20.20.0/24 [1/0] via 10.10.12.50, eth-0-20

 步骤2 进入配置模式

以下配置在Switch2进行:

Switch# configure terminal

 步骤3 启用rip路由,设置metric,设置需要重发布的路由类型

Switch(config)# router rip
Switch(config-router)# default-metric 2
Switch(config-router)# redistribute static
Switch(config-router)# redistribute connected
Switch(config-router)# redistribute ospf metric 5

ospf重发布直连路由(可选):

Switch(config)# router ospf
Switch(config-router)# redistribute connected

 步骤4 退出配置模式

 Switch(config-router)# end

 步骤5 检查配置

Switch1上学到的路由,显示如下:

Switch# show ip route
CodesK - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       [*] - [AD/Metric]
       * - candidate default
R       2.2.2.0/24 [120/3] via 10.10.11.50, eth-0-9, 000236
R       3.3.3.0/24 [120/6] via 10.10.11.50, eth-0-9, 000226
C       10.10.11.0/24 is directly connected, eth-0-9
C       10.10.11.10/32 is in local loopback eth-0-9
R       10.10.12.0/24 [120/3] via 10.10.11.50, eth-0-9, 000236
R       20.20.20.0/24 [120/3] via 10.10.11.50, eth-0-9, 000241

4.2.2.6 配置水平分割参数

rip split-horizon

通常情况下,连接到广播网络并且使用距离矢量路由协议的路由器,使用水平分割机制来避免环路。配置水平分割可以使得从一个接口学到的路由不能通过此接口向外发布,这通常优化了多个路由器之间的通信,尤其在链路中断时。

配置毒性逆转可以使得从一个接口学到的路由还可以从这个接口向外发布,但这些路由的度量值已设置为16,即不可达。

 步骤1 环境准备, 检查已有配置

Switch1

interface eth-0-1
no switchport
ip address 1.1.1.1/24
!
interface eth-0-9
no switchport
ip address 10.10.11.10/24
!
router rip
network 10.10.11.0/24
redistribute connected

Switch2

interface eth-0-9
no switchport
ip address 10.10.11.50/24
!
router rip
network 10.10.11.0/24

 步骤2 Switch2打开debug 开关(可选)

Switch# debug rip packet send detail
Switch# terminal monitor

 步骤3 进入配置模式

以下配置在Switch2进行:

Switch# configure terminal

 步骤4 进入接口配置模式,设置水平分割

禁用水平分割:

Switch(config)#interface eth-0-9
Switch(config-if)# no ip rip split-horizon

debug开关打开时,有如下信息显示:

Apr  8 062425 Switch RIP4-7SEND[eth-0-9]Send to 224.0.0.9520
Apr  8 062425 Switch RIP4-7SEND[eth-0-9]RESPONSE version 2 packet size 44
Apr  8 062425 Switch RIP4-71.1.1.0/24 -> 0.0.0.0 family 2 tag 0 metric 2
Apr  8 062425 Switch RIP4-710.10.11.0/24 -> 0.0.0.0 family 2 tag 0 metric 1

启用水平分割和毒性逆转:

Switch(config-if)# ip rip split-horizon
Switch(config-if)# ip rip split-horizon poisoned

debug开关打开时,有如下提示显示:

Apr  8 063835 Switch RIP4-7SEND[eth-0-9]Send to 224.0.0.9520
Apr  8 063835 Switch RIP4-7SEND[eth-0-9]RESPONSE version 2 packet size 44
Apr  8 063835 Switch RIP4-71.1.1.0/24 -> 0.0.0.0 family 2 tag 0 metric 16
Apr  8 063835 Switch RIP4-710.10.11.0/24 -> 0.0.0.0 family 2 tag 0 metric 16

 步骤5 退出配置模式

 Switch(config-router)# end

 步骤6 检查配置

使用如下命令,验证上述配置:

Switch# show running-config
interface eth-0-9
no switchport
ip address 10.10.11.50/24
!
router rip
network 10.10.11.0/24
!

使用如下命令,查看rip接口配置

Switch# show ip rip interface
eth-0-9 is up, line protocol is up
  Routing ProtocolRIP
    Receive RIP packets
    Send RIP packets
    Passive interfaceDisabled
    Split horizonEnabled with Poisoned Reversed
    IP interface address
      10.10.11.50/24

4.2.2.7 配置定时器

RIP受多个定时器的控制,比如路由更新的频率,路由失效的时间等等。用户可以调整这些计时器以调整RIP的性能,以更好地满足网络工作的需要。如下参数可供调整:

Update定时器,定义了发送更新报文的时间间隔。

Timeout 定时器,定义了路由老化时间。如果在老化时间内没有收到关于某条路由的更新报文,则该条路由在路由表中的度量值将会被设置为16

Garbage-Collect 定时器,定义了一条路由从度量值变为16开始,直到它从路由表里被删除所经过的时间。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 启用rip路由协议并配置定时器

指定路由表 update timer 10 秒,指定路由信息超时180 秒,垃圾信息收集时间120 秒:

Switch(config)# router rip
Switch(config-router)# timers basic 10 180 120

 步骤3 退出配置模式

 Switch(config-router)# end

 步骤4 检查配置

使用如下命令,验证上述配置:

Switch# show ip protocols rip
Routing protocol is "rip"
  Sending updates every 10 seconds with +/-5 seconds, next due in 2 seconds
  Timeout after 180 seconds, Garbage collect after 120 seconds
  Outgoing update filter list for all interface is not set
  Incoming update filter list for all interface is not set
  Default redistribution metric is 1
  Redistributing
  Default version controlsend version 2, receive version 2
    Interface        Send          Recv   Key-chain
    eth-0-9           2             2     
  Routing for Networks
    10.10.11.0/24
  Routing Information Sources
    Gateway          Distance  Last Update  Bad Packets  Bad Routes
    10.10.11.50           120  000002               0           0
  Number of routes (including connected)5
  Distance(default is 120)

4.2.2.8 配置RIP路由过滤列表

rip filter list

路由器提供路由信息过滤功能,通过指定访问控制列表和地址前缀列表,可以配置入口或出口过滤策略,对接收或发布的路由进行过滤。一个路由过滤列表通常包括如下参数:

一个被用作过滤器的ACLprefix list

方向。

In方向:过滤器被应用在学习到的路由上

Out方向:过滤器被应用在发布的路由上 - 应用过滤器的接口(可选)。

 步骤1 环境准备, 检查已有配置

Switch1

interface eth-0-9
no switchport
ip address 10.10.11.10/24
!
router rip
network 10.10.11.0/24

Switch2

interface eth-0-1
no switchport
ip address 1.1.1.1/24
!
interface eth-0-2
no switchport
ip address 2.2.2.2/24
!
interface eth-0-3
no switchport
ip address 3.3.3.3/24
!
interface eth-0-9
no switchport
ip address 10.10.11.50/24
!
router rip
network 1.1.1.0/24
network 2.2.2.0/24
network 3.3.3.0/24
network 10.10.11.0/24

Switch1上已学到的路由,显示如下:

Switch# show ip route
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       [*] - [AD/Metric]
       * - candidate default
R       1.1.1.0/24 [120/2] via 10.10.11.50, eth-0-9, 00:01:50
R       2.2.2.0/24 [120/2] via 10.10.11.50, eth-0-9, 00:01:50
R       3.3.3.0/24 [120/2] via 10.10.11.50, eth-0-9, 00:01:50
C       10.10.11.0/24 is directly connected, eth-0-9
C       10.10.11.10/32 is in local loopback, eth-0-9

 步骤2 进入配置模式

以下配置在Switch2进行:

Switch# configure terminal

 步骤3 配置过滤列表

Switch(config)# ip prefix-list 1 deny 1.1.1.0/24
Switch(config)# ip prefix-list 1 permit any

 步骤4 应用过滤列表

Switch(config)# router rip
Switch(config-router)# distribute-list prefix 1 out

 步骤5 退出配置模式

 Switch(config-router)# end

 步骤6 检查配置

Switch1上学到的路由,显示如下:

Switch# show ip route
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       [*] - [AD/Metric]
       * - candidate default
R       2.2.2.0/24 [120/2] via 10.10.11.50, eth-0-9, 00:00:08
R       3.3.3.0/24 [120/2] via 10.10.11.50, eth-0-9, 00:00:08
C       10.10.11.0/24 is directly connected, eth-0-9
C       10.10.11.10/32 is in local loopback, eth-0-9

4.2.2.9 配置RIPv2验证(single key)

rip authentication

RIP-2 支持两种认证方式:明文认证和MD5密文认证。这个例子说明如何使用明文进行认证。Switch12是在运行RIP路由协议,如果要在交换机上配置明文认证,需要执行如下步骤:

指定一个接口,然后定义该接口的密码。

指定认证模式为明文。

任何从这个指定接口接收的RIP数据包应该有相同的字符串作为密码。同样的,Switch B上也要定义相同的密码和身份验证模式。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性和ip地址

Switch1配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 1.1.1.1/24
Switch(config-if)# exit

Switch(config-if)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 10.10.11.10/24
Switch(config-if)# exit

Switch2配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 2.2.2.2/24
Switch(config-if)# exit

Switch(config-if)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 10.10.11.50/24
Switch(config-if)# exit

 步骤3 启用rip路由并配置相关参数

Switch(config)# router rip
Switch(config-router)# network 10.10.11.0/24
Switch(config-router)# redistribute connected
Switch(config-router)# exit

 步骤4 指定验证的字符串和模式

Switch(config)# interface eth-0-9
Switch(config-if)# ip rip authentication string Auth1
Switch(config-if)# ip rip authentication mode text

 步骤5 退出配置模式

 Switch(config-if)# end

 步骤6 检查配置

使用如下命令查看rip数据库:

Switch# show ip rip database

Codes: R - RIP, Rc - RIP connected, Rs - RIP static, K - Kernel,
       C - Connected, S - Static, O - OSPF, I - IS-IS, B - BGP

   Network            Next Hop        Metric From            If       Time
R  2.2.2.0/24         10.10.11.50          2 10.10.11.50     eth-0-9  00:02:52
Rc 10.10.11.0/24  

使用如下命令查看rip协议运行状态:

Switch# show ip protocols rip
Routing protocol is "rip"
  Sending updates every 30 seconds with +/-5 seconds, next due in 23 seconds
  Timeout after 180 seconds, Garbage collect after 120 seconds
  Outgoing update filter list for all interface is not set
  Incoming update filter list for all interface is not set
  Default redistribution metric is 1
  Redistributing:
    connected  metric default
  Default version control: send version 2, receive version 2
    Interface        Send          Recv   Key-chain
    eth-0-9          2             2     
  Routing for Networks:
    10.10.11.0/24
  Routing Information Sources:
    Gateway          Distance  Last Update  Bad Packets  Bad Routes
    10.10.11.50           120  00:00:45               1           0
  Number of routes (including connected): 2
  Distance: (default is 120)

使用如下命令查看rip端口信息:

Switch# show ip rip interface
eth-0-9 is up, line protocol is up
  Routing Protocol: RIP
    Receive RIP packets
    Send RIP packets
    Passive interface: Disabled
    Split horizon: Enabled with Poisoned Reversed
    IP interface address:
      10.10.11.10/24

使用如下命令查看设备路由信息:

Switch# show ip route
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       Dc - DHCP Client
       [*] - [AD/Metric]
       * - candidate default

R        2.2.2.0/24 [120/2] via 10.10.11.50, eth-0-9, 00:02:28
C        10.10.11.0/24 is directly connected, eth-0-9
C        10.10.11.10/32 is in local loopback, eth-0-9

4.2.2.10 配置RIPv2 MD5 验证 (multiple keys)

rip authentication

这个例子说明了如何使用MD5进行RIP路由信息交换过程中的验证。对于需要使用MD5认证的Switch AB来说,首先定义一个钥匙链,然后指定key并且配置认证的字符串或密码,然后通过指定接收或者发送的时间来定义key生效的时间。最后将该钥匙链应用到接口上并且指定接口的认证模式为MD5Switch AB的密钥配置必须是一样的才能保证RIP路由更新信息交换成功。在MD5认证中,key IDkey字符串需要同时匹配。在下面的例子中,我们还配置了key生效的时间,这样,每隔5天,key就会更新一次。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性和ip地址

Switch1配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 1.1.1.1/24
Switch(config-if)# exit

Switch(config-if)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 10.10.11.10/24
Switch(config-if)# exit

Switch2配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 2.2.2.2/24
Switch(config-if)# exit

Switch(config-if)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 10.10.11.50/24
Switch(config-if)# exit

 步骤3 启用rip路由并配置相关参数

Switch(config)# router rip
Switch(config-router)# network 10.10.11.0/24
Switch(config-router)# redistribute connected
Switch(config-router)# exit

 步骤4 定义key chain,设置密码和应用的时间范围

Switch(config)# key chain SUN
Switch(config-keychain)# key 1
Switch(config-keychain-key)# key-string key1
Switch(config-keychain-key)# accept-lifetime 12:00:00 Mar 2 2012 14:00:00 Mar 7 2012
Switch(config-keychain-key)# send-lifetime 12:00:00 Mar 2 2012 12:00:00 Mar 7 2012
Switch(config-keychain-key)# exit

第二个key(可选)

Switch(config-keychain)# key 2
Switch(config-keychain-key)# key-string Earth
Switch(config-keychain-key)# accept-lifetime 12:00:00 Mar 7 2012 14:00:00 Mar 12 2012
Switch(config-keychain-key)# send-lifetime 12:00:00 Mar 7 2012 12:00:00 Mar 12 2012
Switch(config-keychain-key)# exit

退出:

Switch(config-keychain)# exit

 步骤5 指定验证的字符串和模式

Switch(config)# interface eth-0-9
Switch(config-if)# ip rip authentication key-chain SUN
Switch(config-if)# ip rip authentication mode md5

 步骤6 退出配置模式

 Switch(config-if)# end

 步骤7 检查配置

使用如下命令查看rip数据库:

Switch# show ip rip database

Codes: R - RIP, Rc - RIP connected, Rs - RIP static, K - Kernel,
       C - Connected, S - Static, O - OSPF, I - IS-IS, B - BGP

   Network            Next Hop        Metric From            If       Time
R  2.2.2.0/24         10.10.11.50          2 10.10.11.50     eth-0-9  00:01:10
Rc 10.10.11.0/24                           1                 eth-0-9

使用如下命令查看rip协议运行状态:

Switch# show ip protocols rip
Routing protocol is "rip"
  Sending updates every 30 seconds with +/-5 seconds, next due in 17 seconds
  Timeout after 180 seconds, Garbage collect after 120 seconds
  Outgoing update filter list for all interface is not set
  Incoming update filter list for all interface is not set
  Default redistribution metric is 1
  Redistributing:
    connected  metric default
  Default version control: send version 2, receive version 2
    Interface        Send          Recv   Key-chain
    eth-0-9          2             2      SUN
  Routing for Networks:
    10.10.11.0/24
  Routing Information Sources:
    Gateway          Distance  Last Update  Bad Packets  Bad Routes
  Number of routes (including connected): 2
  Distance: (default is 120)

使用如下命令查看rip端口信息:

Switch# show ip rip interface
eth-0-9 is up, line protocol is up
  Routing Protocol: RIP
    Receive RIP packets
    Send RIP packets
    Passive interface: Disabled
    Split horizon: Enabled with Poisoned Reversed
    IP interface address:
      10.10.11.10/24

使用下列命令查看设备路由信息:

Switch# show ip route
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       Dc - DHCP Client
       [*] - [AD/Metric]
       * - candidate default

C        1.1.1.0/24 is directly connected, eth-0-1
C        1.1.1.1/32 is in local loopback, eth-0-1
R        2.2.2.0/24 [120/2] via 10.10.11.50, eth-0-9, 00:02:27
C        10.10.11.0/24 is directly connected, eth-0-9
C        10.10.11.10/32 is in local loopback, eth-0-9

使用如下命令查看key chain 信息:

Switch# show key chain
key chain SUN:
    key 1 -- text "key1"
      accept-lifetime <12:00:00 Mar 02 2012> - <14:00:00 Mar 07 2012>
      send-lifetime <12:00:00 Mar 02 2012> - < 12:00:00 Mar 07 2012>
    key 2 -- text "Earth"
      accept-lifetime <12:00:00 Mar 07 2012> - <14:00:00 Mar 12 2012>
      send-lifetime <12:00:00 Mar 07 2012> - < 12:00:00 Mar 12 2012>
Switch#

4.2.3 应用场景配置举例

4.3 OSPF配置

4.3.1 概述

4.3.1.1 功能简介

开放最短路径优先协议OSPFOpen Shortest Path First)是IETF组织开发的一个基于链路状态的内部网关协议,它支持IP子网化以及对外部路由做标记。目前使用的是版本2RFC2328),其特性如下:

适应范围:支持各种规模的网络,最多可支持几百台路由器。

快速收敛:在网络的拓扑结构发生变化后立即发送更新报文,使这一变化在自治系统中同步。

无自环:由于OSPF 根据收集到的链路状态用最短路径树算法计算路由,从算法本身保证了不会生成自环路由。

区域划分:允许自治系统的网络被划分成区域来管理,区域间传送的路由信息被进一步抽象,从而减少了占用的网络带宽。

等价路由:支持到同一目的地址的多条等价路由。

路由分级:使用4 类不同的路由,按优先顺序来说分别是:区域内路由、区域间路由、第一类外部路由、第二类外部路由。

支持验证:支持基于接口的报文验证以保证路由计算的安全性。

组播发送:协议报文支持以组播形式发送。

当前的系统支持如下OSPF特性:

支持末梢区域:支持路由重分布,这包括将其他路由协议学到的路由导入OSPF或者将OSPF学到的路由导出到其他路由协议中。

支持明文和MD5两种认证模式:支持OSPF interface上的参数配置,包括输出度量值,重传时间,发送延时时间,路由器优先级,路由器hello报文时间间隔,认证密码等等。

OSPF需要多个路由器协同工作,包括区域边界路由器(ABR),自治系统边界路由器(ASBR),内部路由器等。最简单的OSPF配置只需要使用默认的参数,并且将所有的OSPF interface加入同一个区域就可以了。

4.3.1.2 原理描述

参考 RFC 2328

4.3.2 配置

4.3.2.1 配置基本OSPF

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建ospf实例,发布需要的网段到指定域

Switch(config)# router ospf 100
Switch(config-router)# network 10.10.10.0/24 area 0
Switch(config-router)# quit

说明:删除该ospf实例的方法为

Switch(config)# no router ospf 100

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch# show ip protocols
Routing Protocol is "ospf 100"
  Redistributing:
  Routing for Networks:
    10.10.10.0/24
  Distance: (default is 110)

4.3.2.2 启用OSPF

ospf

这个例子显示了一个接口上启用OSPF所需的最低配置。

一个接口只能属于一个区域,不同的接口可以属于不同的区域

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性和ip地址

Switch1配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 10.10.10.10/24
Switch(config-if)# exit

Switch2配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 10.10.10.11/24
Switch(config-if)# exit

 步骤3 创建ospf实例,发布需要的网段到指定域

Switch1配置:

Switch(config)# router ospf 100
Switch(config-router)# network 10.10.10.0/24 area 0

Switch2配置:

Switch(config)# router ospf 200
Switch(config-router)# network 10.10.10.0/24 area 0

说明:直连的两个设备配置ospfarea必须相同。ospf的实例号可以相同也可以不同。

 步骤4 退出配置模式

Switch(config-router)# end

 步骤5 检查配置

使用下列命令查看ospf数据库:

Switch# show ip ospf database

            OSPF Router with ID (10.10.10.10) (Process ID 100)

                Router Link States (Area 0)

Link ID         ADV Router      Age  Seq#       CkSum  Link count
10.10.10.10     10.10.10.10       26 0x80000006 0x1499 1
10.10.10.11     10.10.10.11       27 0x80000003 0x1895 1

                Net Link States (Area 0)

Link ID         ADV Router      Age  Seq#       CkSum
10.10.10.10     10.10.10.10       26 0x80000001 0xdfd8

使用下列命令查看ospf端口状态:

Switch# show ip ospf interface
eth-0-9 is up, line protocol is up
  Internet Address 10.10.10.10/24, Area 0, MTU 1500
  Process ID 100, Router ID 10.10.10.10, Network Type BROADCAST, Cost: 1
  Transmit Delay is 1 sec, State DR, Priority 1, TE Metric 1
  Designated Router (ID) 10.10.10.10, Interface Address 10.10.10.10
  Backup Designated Router (ID) 10.10.10.11, Interface Address 10.10.10.11
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    Hello due in 00:00:06
  Neighbor Count is 1, Adjacent neighbor count is 1
  Crypt Sequence Number is 1527047183
  Hello received 25 sent 576, DD received 4 sent 4
  LS-Req received 1 sent 1, LS-Upd received 3 sent 3
  LS-Ack received 2 sent 2, Discarded 0

使用下列命令查看ospf邻居:

Switch1

Switch# show ip ospf neighbor

OSPF process 100:
Neighbor ID     Pri   State              Dead Time   Address         Interface
10.10.10.11       1   Full/Backup        00:00:33    10.10.10.11     eth-0-9

Switch2

Switch# show ip ospf neighbor

OSPF process 200:
Neighbor ID     Pri   State              Dead Time   Address         Interface
10.10.10.10       1   Full/DR            00:00:33    10.10.10.10     eth-0-9

使用下列命令查看ospf路由:

Switch# show  ip ospf route

OSPF process 100:
Codes: C - connected, D - Discard, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2

C  10.10.10.0/24 [1] is directly connected, eth-0-9, Area 0

4.3.2.3 配置优先级

ospf priority

这个例子主要讲述了如何配置接口优先级,优先级高的成为DR。优先级为0的不参与DR选举。Switch3的优先级是10,这比Switch1Switch2的默认优先级1要高,因此Switch3将成为这个网络内的DR

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性和ip地址

Switch1配置:

Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 10.10.10.10/24
Switch(config-if)# quit

Switch2配置:

Switch(config)# interface eth-0-13
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 10.10.10.11/24
Switch(config-if)# quit

Switch3配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 10.10.10.13/24
Switch(config-if)# quit

L2 switch 配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no shutdown
Switch(config-if)# quit
Switch(config)# interface eth-0-13
Switch(config-if)# no shutdown
Switch(config-if)# quit
Switch(config)# interface eth-0-17
Switch(config-if)# no shutdown
Switch(config-if)# quit

 步骤3 配置ospf接口优先级

Switch3配置:

Switch(config)# interface eth-0-9
Switch(config-if)# ip ospf priority 10
Switch(config-if)# quit

 步骤4 创建ospf实例,发布需要的网段到指定域

Switch(config)# router ospf 100
Switch(config-router)# network 10.10.10.0/24 area 0
Switch(config-if)# quit

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

使用下列命令查看ospf邻居:

Switch1

Switch# show ip ospf neighbor

OSPF process 100:
Neighbor ID     Pri   State              Dead Time   Address         Interface
10.10.10.11       1   Full/Backup        00:00:31    10.10.10.11     eth-0-17
10.10.10.13      10   Full/DR            00:00:38    10.10.10.13     eth-0-17

Switch2

Switch# show ip ospf neighbor

OSPF process 100:
Neighbor ID     Pri   State              Dead Time   Address         Interface
10.10.10.10       1   Full/DROther       00:00:39    10.10.10.10     eth-0-13
10.10.10.13      10   Full/DR            00:00:32    10.10.10.13     eth-0-13

Switch3

Switch# show ip ospf neighbor

OSPF process 100:
Neighbor ID     Pri   State              Dead Time   Address         Interface
10.10.10.10       1   Full/DROther       00:00:37    10.10.10.10     eth-0-9
10.10.10.11       1   Full/Backup        00:00:32    10.10.10.11     eth-0-9

使用下列命令查看ospf端口状态:

Switch1

Switch# show ip ospf interface
eth-0-17 is up, line protocol is up
  Internet Address 10.10.10.10/24, Area 0, MTU 1500
  Process ID 100, Router ID 10.10.10.10, Network Type BROADCAST, Cost: 1
  Transmit Delay is 1 sec, State DROther, Priority 1, TE Metric 1
  Designated Router (ID) 10.10.10.13, Interface Address 10.10.10.13
  Backup Designated Router (ID) 10.10.10.11, Interface Address 10.10.10.11
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    Hello due in 00:00:10
  Neighbor Count is 2, Adjacent neighbor count is 2
  Crypt Sequence Number is 1527056133
  Hello received 106 sent 54, DD received 8 sent 9
  LS-Req received 2 sent 3, LS-Upd received 8 sent 5
  LS-Ack received 9 sent 5, Discarded 3

Switch2

Switch# show ip ospf interface
eth-0-13 is up, line protocol is up
  Internet Address 10.10.10.11/24, Area 0, MTU 1500
  Process ID 100, Router ID 10.10.10.11, Network Type BROADCAST, Cost: 1
  Transmit Delay is 1 sec, State Backup, Priority 1, TE Metric 1
  Designated Router (ID) 10.10.10.13, Interface Address 10.10.10.13
  Backup Designated Router (ID) 10.10.10.11, Interface Address 10.10.10.11
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    Hello due in 00:00:10
  Neighbor Count is 2, Adjacent neighbor count is 2
  Crypt Sequence Number is 1527056130
  Hello received 110 sent 56, DD received 8 sent 7
  LS-Req received 3 sent 2, LS-Upd received 12 sent 6
  LS-Ack received 11 sent 8, Discarded 0

Switch3

Switch# show ip ospf interface
eth-0-9 is up, line protocol is up
  Internet Address 10.10.10.13/24, Area 0, MTU 1500
  Process ID 100, Router ID 10.10.10.13, Network Type BROADCAST, Cost: 1
  Transmit Delay is 1 sec, State DR, Priority 10, TE Metric 1
  Designated Router (ID) 10.10.10.13, Interface Address 10.10.10.13
  Backup Designated Router (ID) 10.10.10.11, Interface Address 10.10.10.11
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    Hello due in 00:00:01
  Neighbor Count is 2, Adjacent neighbor count is 2
  Crypt Sequence Number is 1527056127
  Hello received 32 sent 16, DD received 9 sent 9
  LS-Req received 2 sent 2, LS-Upd received 11 sent 8
  LS-Ack received 10 sent 8, Discarded 0

4.3.2.4 配置OSPF区域参数

ospf area

您可以选择性地配置多个OSPF区域参数。这些参数包括用于防止访问未经授权的区域的认证密码,以及将区域配置为末梢区域(Stub)Stub区域是一些特定的区域,Stub区域的ABR不传播它们接收到的自治系统外部路由,在这些区域中路由器的路由表规模以及路由信息传递的数量都会大大减少。为保证到自治系统外的路由依旧可达,该区域的ABR将生成一条缺省路由,并发布给Stub 区域中的其他非ABR路由器。

路由聚合是指ABRASBR将具有相同前缀的路由信息聚合,只发布一条路由到其它区域。AS被划分成不同的区域后,区域间可以通过路由聚合来减少路由信息,减小路由表的规模,提高路由器的运算速度。如果网络号是连续的,你可以使用area range命令将这些连续的网段聚合成一个网段。这样ABR 只发送一条聚合后的LSA,所有属于本命令指定的聚合网段范围的LSA 将不再会被单独发送出去,这样可减少其它区域中LSDB的规模。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性和ip地址

Switch1配置:

Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 10.10.10.10/24
Switch(config-if)# quit

Switch2配置:

Switch(config)# interface eth-0-13
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 10.10.10.11/24
Switch(config-if)# quit

Switch(config)# interface eth-0-21
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 10.10.11.11/24
Switch(config-if)# quit

Switch3配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 10.10.10.13/24
Switch(config-if)# quit

Switch4配置:

Switch(config)# interface eth-0-21
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 10.10.11.12/24
Switch(config-if)# quit

L2 switch 配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no shutdown
Switch(config-if)# quit
Switch(config)# interface eth-0-13
Switch(config-if)# no shutdown
Switch(config-if)# quit
Switch(config)# interface eth-0-17
Switch(config-if)# no shutdown
Switch(config-if)# quit

 步骤3 配置ospf接口优先级

Switch3配置:

Switch(config)# interface eth-0-9
Switch(config-if)# ip ospf priority 10
Switch(config-if)# quit

 步骤4 创建ospf实例,发布需要的网段到指定域

Switch1配置:

Switch(config)# router ospf 100
Switch(config-router)# network 10.10.10.0/24 area 0
Switch(config-router)# quit

Switch2配置:

Switch(config)# router ospf 100
Switch(config-router)# network 10.10.10.0/24 area 0
Switch(config-router)# network 10.10.11.0/24 area 1
Switch(config-router)# area 0 range 10.10.10.0/24
Switch(config-router)# area 1 stub no-summary
Switch(config-router)# quit

Switch3配置:

Switch(config)# router ospf 100
Switch(config-router)# network 10.10.10.0/24 area 0
Switch(config-router)# quit

Switch4配置:

Switch(config)# router ospf 200
Switch(config-router)# network 10.10.11.0/24 area 1
Switch(config-router)# area 1 stub no-summary
Switch(config-router)# quit

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

使用下列命令查看ospf路由:

Switch1

Switch# show ip route
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       Dc - DHCP Client
       [*] - [AD/Metric]
       * - candidate default

C        10.10.10.0/24 is directly connected, eth-0-17
C        10.10.10.10/32 is in local loopback, eth-0-17
O IA     10.10.11.0/24 [110/2] via 10.10.10.11, eth-0-17, 00:00:04

Switch2

Switch# show ip route
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       Dc - DHCP Client
       [*] - [AD/Metric]
       * - candidate default

C        10.10.10.0/24 is directly connected, eth-0-13
C        10.10.10.11/32 is in local loopback, eth-0-13
C        10.10.11.0/24 is directly connected, eth-0-21
C        10.10.11.11/32 is in local loopback, eth-0-21

Switch3

Switch# show ip route
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       Dc - DHCP Client
       [*] - [AD/Metric]
       * - candidate default

C        10.10.10.0/24 is directly connected, eth-0-9
C        10.10.10.13/32 is in local loopback, eth-0-9
O IA     10.10.11.0/24 [110/2] via 10.10.10.11, eth-0-9, 00:06:29

Switch4

Switch# show ip route
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       Dc - DHCP Client
       [*] - [AD/Metric]
       * - candidate default
Gateway of last resort is 10.10.11.11 to network 0.0.0.0
O*IA    0.0.0.0/0 [110/2] via 10.10.11.11, eth-0-21, 00:12:46
C        10.10.10.0/24 is directly connected, eth-0-21
C        10.10.10.12/32 is in local loopback, eth-0-21

4.3.2.5 配置OSPF重分布路由

ospf redistribute

区域内和区域间路由描述的是AS 内部的网络结构,外部路由则描述了应该如何选择到AS 以外目的地址的路由。OSPF 将引入的AS 外部路由分为两类:Type1 Type2

第一类外部路由是指接收的是IGPInterior Gateway Protocol,内部网关协议)路由(例如静态路由和RIP 路由)。由于这类路由的可信程度较高,并且和OSPF 自身路由的开销具有可比性,所以到第一类外部路由的开销等于本路由器到相应的ASBR 的开销与ASBR 到该路由目的地址的开销之和。

第二类外部路由是指接收的是EGPExterior Gateway Protocol,外部网关协议)路由。由于这类路由的可信度比较低,所以OSPF 协议认为从ASBR 到自治系统之外的开销远远大于在自治系统之内到达ASBR 的开销。所以计算路由开销时将主要考虑前者,即到第二类外部路由的开销等于ASBR 到该路由目的地址的开销。如果计算出开销值相等的两条路由,再考虑本路由器到相应的ASBR 的开销。下面例子RIP路由将作为外部路由被重分布到OSPF网络中。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性和ip地址

Switch1配置:

Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 10.10.10.10/24
Switch(config-if)# quit

Switch2配置:

Switch(config)# interface eth-0-13
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 10.10.10.11/24
Switch(config-if)# quit

Switch(config)# interface eth-0-21
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 10.10.11.11/24
Switch(config-if)# quit

Switch3配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 10.10.10.13/24
Switch(config-if)# quit

Switch4配置:

Switch(config)# interface eth-0-21
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 10.10.11.12/24
Switch(config-if)# quit

Switch(config)# interface loopback 0
Switch(config-if)# ip address 1.1.1.1/32
Switch(config-if)# quit

L2 switch 配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no shutdown
Switch(config-if)# quit
Switch(config)# interface eth-0-13
Switch(config-if)# no shutdown
Switch(config-if)# quit
Switch(config)# interface eth-0-17
Switch(config-if)# no shutdown
Switch(config-if)# quit

 步骤3 配置ospf接口优先级

Switch3配置:

Switch(config)# interface eth-0-9
Switch(config-if)# ip ospf priority 10
Switch(config-if)# quit

 步骤4 创建ospf实例,发布需要的网段到指定域

Switch1配置:

Switch(config)# router ospf 100
Switch(config-router)# network 10.10.10.0/24 area 0
Switch(config-router)# quit

Switch2配置:

Switch(config)# router ospf 100
Switch(config-router)# network 10.10.10.0/24 area 0
Switch(config-router)# redistribute connected
Switch(config-router)# redistribute rip
Switch(config-router)# quit

Switch3配置:

Switch(config)# router ospf 100
Switch(config-router)# network 10.10.10.0/24 area 0
Switch(config-router)# quit

 步骤5 创建rip实例,发布需要的网段

Switch2配置:

Switch(config)# router rip
Switch(config-router)# network 10.10.11.0/24
Switch(config-router)#redistribute connected
Switch(config-router)# quit

Switch4配置:

Switch(config)# router rip
Switch(config-router)# network 10.10.11.0/24
Switch(config-router)# network 1.1.1.1/32
Switch(config-router)# redistribute connected
Switch(config-router)# quit

 步骤6 退出配置模式

Switch(config)# end

 步骤6 检查配置

使用下列命令查看ospf路由:

Switch1

Switch# show ip route
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       Dc - DHCP Client
       [*] - [AD/Metric]
       * - candidate default

O E2     1.1.1.1/32 [110/20] via 10.10.10.11, eth-0-17, 00:01:54
C        10.10.10.0/24 is directly connected, eth-0-17
C        10.10.10.10/32 is in local loopback, eth-0-17
O E2     10.10.11.0/24 [110/20] via 10.10.10.11, eth-0-17, 00:03:49

Switch2

Switch# show  ip route
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       Dc - DHCP Client
       [*] - [AD/Metric]
       * - candidate default

R        1.1.1.1/32 [120/2] via 10.10.11.12, eth-0-21, 00:02:27
C        10.10.10.0/24 is directly connected, eth-0-13
C        10.10.10.11/32 is in local loopback, eth-0-13
C        10.10.11.0/24 is directly connected, eth-0-21
C        10.10.11.11/32 is in local loopback, eth-0-21

Switch3

Switch# show ip route
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       Dc - DHCP Client
       [*] - [AD/Metric]
       * - candidate default

O E2     1.1.1.1/32 [110/20] via 10.10.10.11, eth-0-9, 00:03:01
C        10.10.10.0/24 is directly connected, eth-0-9
C        10.10.10.13/32 is in local loopback, eth-0-9
O E2     10.10.11.0/24 [110/20] via 10.10.10.11, eth-0-9, 00:04:57

Switch4

Switch# show ip route
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       Dc - DHCP Client
       [*] - [AD/Metric]
       * - candidate default

C       1.1.1.1/32 is directly connected, loopback0
R       10.10.10.0/24 [120/2] via 10.10.11.11, eth-0-21, 00:17:36
C       10.10.11.0/24 is directly connected, eth-0-21
C       10.10.11.12/32 is in local loopback, eth-0-21

使用下列命令查看ospf数据库:

Switch1

Switch# show ip ospf database external

            OSPF Router with ID (10.10.10.10) (Process ID 100)

                AS External Link States

  LS age: 317
  Options: 0x2 (*|-|-|-|-|-|E|-)
  LS Type: AS-external-LSA
  Link State ID: 1.1.1.1 (External Network Number)
  Advertising Router: 10.10.10.11
  LS Seq Number: 80000001
  Checksum: 0x4a47
  Length: 36
  Network Mask: /32
        Metric Type: 2 (Larger than any link state path)
        TOS: 0
        Metric: 20
        Forward Address: 0.0.0.0
        External Route Tag: 0

  LS age: 438
  Options: 0x2 (*|-|-|-|-|-|E|-)
  LS Type: AS-external-LSA
  Link State ID: 10.10.11.0 (External Network Number)
  Advertising Router: 10.10.10.11
  LS Seq Number: 80000001
  Checksum: 0x0472
  Length: 36
  Network Mask: /24
        Metric Type: 2 (Larger than any link state path)
        TOS: 0
        Metric: 20
        Forward Address: 0.0.0.0
        External Route Tag: 0

Switch2

Switch# show ip ospf database external

            OSPF Router with ID (10.10.10.11) (Process ID 100)

                AS External Link States

  LS age: 367
  Options: 0x2 (*|-|-|-|-|-|E|-)
  LS Type: AS-external-LSA
  Link State ID: 1.1.1.1 (External Network Number)
  Advertising Router: 10.10.10.11
  LS Seq Number: 80000001
  Checksum: 0x4a47
  Length: 36
  Network Mask: /32
        Metric Type: 2 (Larger than any link state path)
        TOS: 0
        Metric: 20
        Forward Address: 0.0.0.0
        External Route Tag: 0

  LS age: 487
  Options: 0x2 (*|-|-|-|-|-|E|-)
  LS Type: AS-external-LSA
  Link State ID: 10.10.11.0 (External Network Number)
  Advertising Router: 10.10.10.11
  LS Seq Number: 80000001
  Checksum: 0x0472
  Length: 36
  Network Mask: /24
        Metric Type: 2 (Larger than any link state path)
        TOS: 0
        Metric: 20
        Forward Address: 0.0.0.0
        External Route Tag: 0

Switch3

Switch# show ip ospf database external

            OSPF Router with ID (10.10.10.13) (Process ID 100)

                AS External Link States

  LS age: 396
  Options: 0x2 (*|-|-|-|-|-|E|-)
  LS Type: AS-external-LSA
  Link State ID: 1.1.1.1 (External Network Number)
  Advertising Router: 10.10.10.11
  LS Seq Number: 80000001
  Checksum: 0x4a47
  Length: 36
  Network Mask: /32
        Metric Type: 2 (Larger than any link state path)
        TOS: 0
        Metric: 20
        Forward Address: 0.0.0.0
        External Route Tag: 0

  LS age: 517
  Options: 0x2 (*|-|-|-|-|-|E|-)
  LS Type: AS-external-LSA
  Link State ID: 10.10.11.0 (External Network Number)
  Advertising Router: 10.10.10.11
  LS Seq Number: 80000001
  Checksum: 0x0472
  Length: 36
  Network Mask: /24
        Metric Type: 2 (Larger than any link state path)
        TOS: 0
        Metric: 20
        Forward Address: 0.0.0.0
        External Route Tag: 0

4.3.2.6 配置OSPF Cost

ospf cost

用户可以通过修改接口的COST值来使路由成为最优路由。在下面的例子中,通过修改COST值可以使Switch2成为Switch1的下一跳。

默认接口的COST值是1(1000M speed)Switch2eth-0-2优先级100Switch3eth-0-2优先级150. 那么到达Switch4的网络10.10.14.0Cost值将不一样:

Switch2: 1+1+100 = 102

Switch3: 1+1+150 = 152

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性和ip地址。在接口配置模式下,设置该接口的ospf cost

Switch1配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.10.10.1/24
Switch(config-if)# exit
Switch(config)# interface eth-0-2
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.10.12.1/24
Switch(config-if)# exit

Switch2配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.10.10.2/24
Switch(config-if)# exit
Switch(config)# interface eth-0-2
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.10.11.2/24
Switch(config-if)# ip ospf cost 100
Switch(config-if)# exit

Switch3配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.10.12.2/24
Switch(config-if)# exit
Switch(config)# interface eth-0-2
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.10.13.2/24
Switch(config-if)# ip ospf cost 150
Switch(config-if)# exit

Switch4配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.10.11.1/24
Switch(config-if)# exit
Switch(config)# interface eth-0-2
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.10.13.1/24
Switch(config-if)# exit
Switch(config)# interface eth-0-3
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.10.14.1/24
Switch(config-if)# exit

 步骤3 创建ospf实例,发布需要的网段到指定域

Switch1配置:

Switch(config)# router ospf 100
Switch(config-router)# network 10.10.10.0/24 area 0
Switch(config-router)# network 10.10.12.0/24 area 0
Switch(config-router)# exit

Switch2配置:

Switch(config)# router ospf 100
Switch(config-router)# network 10.10.10.0/24 area 0
Switch(config-router)# network 10.10.11.0/24 area 0
Switch(config-router)# exit

Switch3配置:

Switch(config)# router ospf 100
Switch(config-router)# network 10.10.12.0/24 area 0
Switch(config-router)# network 10.10.13.0/24 area 0
Switch(config-router)# exit

Switch4配置:

Switch(config)# router ospf 100
Switch(config-router)# network 10.10.11.0/24 area 0
Switch(config-router)# network 10.10.13.0/24 area 0
Switch(config-router)# network 10.10.14.0/24 area 0
Switch(config-router)# exit

 步骤4 退出配置模式

Switch(config)# end

 步骤5 检查配置

使用下列命令查看ospf路由:

Switch1

Switch# show ip ospf route
OSPF process 0:
Codes: C - connected, D - Discard, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
C  10.10.10.0/24 [1] is directly connected, eth-0-1, Area 0
O  10.10.11.0/24 [101] via 10.10.10.2, eth-0-1, Area 0
C  10.10.12.0/24 [1] is directly connected, eth-0-2, Area 0
O  10.10.13.0/24 [102] via 10.10.10.2, eth-0-1, Area 0
O  10.10.14.0/24 [102] via 10.10.10.2, eth-0-1, Area 0

Switch2

Switch# show ip ospf route
OSPF process 100:
Codes: C - connected, D - Discard, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
C  10.10.10.0/24 [10] is directly connected, eth-0-1, Area 0
C  10.10.11.0/24 [100] is directly connected, eth-0-2, Area 0
O  10.10.12.0/24 [11] via 10.10.10.1, eth-0-1, Area 0
O  10.10.13.0/24 [101] via 10.10.11.1, eth-0-2, Area 0
O  10.10.14.0/24 [101] via 10.10.11.1, eth-0-2, Area 0

Switch3

Switch# show ip ospf route
OSPF process 100:
Codes: C - connected, D - Discard, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
O  10.10.10.0/24 [1] via 10.10.12.1, eth-0-1, Area 0
O  10.10.11.0/24 [101] via 10.10.12.1, eth-0-1, Area 0
C  10.10.12.0/24 [1] is directly connected, eth-0-1, Area 0
O  10.10.13.0/24 [102] via 10.10.12.1, eth-0-1, Area 0
O  10.10.14.0/24 [102] via 10.10.12.1, eth-0-1, Area 0

Switch4

Switch# show ip route
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       [*] - [AD/Metric]
       * - candidate default
O       10.10.10.0/24 [110/1] via 10.10.11.2, eth-0-1, 00:06:27
C       10.10.11.0/24 is directly connected, eth-0-1
O       10.10.12.0/24 [110/1] via 10.10.13.2, eth-0-2, 00:06:17
C       10.10.13.0/24 is directly connected, eth-0-2
C       10.10.14.0/24 is directly connected, eth-0-3

4.3.2.7 配置OSPF认证

ospf authentication

系统目前支持三种类型的OSPF认证: 无认证(类型0),明文认证(类型1)和MD5认证(类型2)。无认证,网络中的路由信息交换不需要经过任何认证。明文认证,所有的路由器上配置的认证模式和密码都必须是一样的。MD5认证,你需要在每台路由器上配置相同的密钥和密钥ID。路由器会根据密钥,密钥IDOSPF报文内容生成消息摘要加到OSPF报文里面。

认证类型可以基于area配置,也可以基于interface 配置,这两者可以同时使用。如果interface上配置的认证类型和区域内配置的认证类型不一样,则优先使用interface上的认证类型。如果interface上没有配置认证类型,那么就使用区域内配置的认证类型。.

下面例子简单介绍了下OSPF的三种类型的验证。Switch1Switch2之间不使用认证;Switch2Switch3之间使用明文认证;Switch3Switch4之间使用MD5认证。

 步骤1 进入配置模式

Switch# configure terminal

步骤2 进入接口配置模式,配置接口属性和ip地址。在接口配置模式下,设置该接口的认证类型

Switch1配置:

Switch(config)#interface eth-0-9
Switch(config-if)#no switchport
Switch(config-if)#ip address 9.9.9.1/24
Switch(config-if)#ip ospf authentication
Switch(config-if)#ip ospf authentication null
Switch(config-if)# exit

Switch2配置:

Switch(config)#interface eth-0-1
Switch(config-if)#no switchport
Switch(config-if)#ip address 1.1.1.1/24
Switch(config-if)#ip ospf authentication
Switch(config-if)#ip ospf authentication-key test
Switch(config-if)# exit

Switch(config)#interface eth-0-9
Switch(config-if)#no switchport
Switch(config-if)#ip address 9.9.9.2/24
Switch(config-if)#ip ospf authentication
Switch(config-if)#ip ospf authentication null
Switch(config-if)# exit

Switch3配置:

Switch(config)#interface eth-0-2
Switch(config-if)#no switchport
Switch(config-if)#ip address 2.2.2.1/24
Switch(config-if)# ip ospf message-digest-key 2 md5 ospf
Switch(config-if)# exit
Switch(config)#interface eth-0-1
Switch(config-if)#no switchport
Switch(config-if)#ip address 1.1.1.2/24
Switch(config-if)#ip ospf authentication
Switch(config-if)# ip ospf authentication-key test
Switch(config-if)# exit

Switch4配置:

Switch(config)#interface eth-0-2
Switch(config-if)#no switchport
Switch(config-if)#ip address 2.2.2.2/24
Switch(config-if)# ip ospf message-digest-key 2 md5 ospf
Switch(config-if)# exit

 步骤3 创建ospf实例,发布需要的网段到指定域

Switch1配置:

Switch(config)# router ospf
Switch(config-router)# network 9.9.9.0/24 area 0
Switch(config-router)# exit

Switch2配置:

Switch(config)# router ospf
Switch(config-router)# network 9.9.9.0/24 area 0
Switch(config-router)# network 1.1.1.0/24 area 0
Switch(config-router)# exit

Switch3配置:

Switch(config)# router ospf
Switch(config-router)# area 1 authentication message-digest
Switch(config-router)# network 2.2.2.0/24 area 1
Switch(config-router)# network 1.1.1.0/24 area 0
Switch(config-router)# exit

Switch4配置:

Switch(config)# router ospf
Switch(config-router)# area 1 authentication message-digest
Switch(config-router)# network 2.2.2.0/24 area 1
Switch(config-router)# exit

 步骤4 退出配置模式

Switch(config)# end

 步骤5 检查配置

使用下列命令查看ospf邻居:

Switch1

Switch# show ip ospf neighbor
OSPF process 0:
Neighbor ID     Pri   State           Dead Time   Address         Interface
9.9.9.2           1   Full/DR         00:00:38    9.9.9.2         eth-0-9

Switch2

Switch# show ip ospf neighbor
OSPF process 0:
Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.1           1   Full/Backup     00:00:35    1.1.1.2         eth-0-1
1.1.1.1           1   Full/Backup     00:00:38    9.9.9.1         eth-0-9

Switch3

Switch# show ip ospf neighbor
OSPF process 0:
Neighbor ID     Pri   State           Dead Time   Address         Interface
9.9.9.2           1   Full/DR         00:00:35    1.1.1.1         eth-0-1
2.2.2.2           1   Full/DR         00:00:38    2.2.2.2         eth-0-2

Switch4

Switch# show ip ospf neighbor
OSPF process 0:
Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.1           1   Full/Backup     00:00:35    2.2.2.1         eth-0-2

使用下列命令查看ospf端口状态:

Switch3

Switch# show ip ospf interface
eth-0-1 is up, line protocol is up
  Internet Address 1.1.1.2/24, Area 0, MTU 1500
  Process ID 0, Router ID 2.2.2.1, Network Type BROADCAST, Cost: 1
  Transmit Delay is 1 sec, State Backup, Priority 1, TE Metric 1
  Designated Router (ID) 9.9.9.2, Interface Address 1.1.1.1
  Backup Designated Router (ID) 2.2.2.1, Interface Address 1.1.1.2
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    Hello due in 00:00:01
  Neighbor Count is 1, Adjacent neighbor count is 1
  Crypt Sequence Number is 1301244696
  Hello received 385 sent 384, DD received 3 sent 5
  LS-Req received 1 sent 1, LS-Upd received 11 sent 14
  LS-Ack received 12 sent 10, Discarded 1
  Simple password authentication enabled

使用下列命令查看ospf协议状态:

Switch3

Switch# show ip ospf
Routing Process "ospf 0" with ID 2.2.2.1
Process uptime is 1 hour 7 minutes
Process bound to VRF default
Conforms to RFC2328, and RFC1583 Compatibility flag is disabled
Supports only single TOS(TOS0) routes
Supports opaque LSA
This router is an ABR, ABR Type is Alternative Cisco (RFC3509)
SPF schedule delay 5 secs, Hold time between two SPFs 10 secs
Refresh timer 10 secs
Number of incomming current DD exchange neighbors 0/5
Number of outgoing current DD exchange neighbors 0/5
Number of external LSA 0. Checksum 0x000000
Number of opaque AS LSA 0. Checksum 0x000000
Number of non-default external LSA 0
External LSA database is unlimited.
Number of LSA originated 17
Number of LSA received 57
Number of areas attached to this router: 2
    Area 0 (BACKBONE)
        Number of interfaces in this area is 1(1)
        Number of fully adjacent neighbors in this area is 1
        Area has no authentication
        SPF algorithm last executed 01:06:56.340 ago
        SPF algorithm executed 16 times
        Number of LSA 6. Checksum 0x034b09
    Area 1
        Number of interfaces in this area is 1(1)
        Number of fully adjacent neighbors in this area is 1
        Number of fully adjacent virtual neighbors through this area is 0
        Area has message digest authentication
        SPF algorithm last executed 00:03:29.430 ago
        SPF algorithm executed 17 times
        Number of LSA 5. Checksum 0x0230e3

4.3.3 应用场景配置举例

4.3.3.1 配置OSPF认证密文

目前配置OSPF认证,其密钥都是以明文形式配置和显示,为增加系统安全性增加OSPF

文密钥以密文显示,同时支持OSPF密钥密文配置

 明文认证方式

4.3.3.1.1.1 步骤1 进入配置模式

Switch# configure terminal

4.3.3.1.1.2步骤2 进入接口配置模式,配置接口属性和ip地址。在接口配置模式下,设置该接口的认证类型,配置密钥

Switch(config)#interface eth-0-9
Switch(config-if)#no switchport
Switch(config-if)#ip address 9.9.9.1/24
Switch(config-if)#ip ospf authentication
Switch(config-if)#ip ospf authentication-key test
Switch(config-if)# exit

4.3.3.1.1.3 步骤3 进入配置模式,转换明密文密钥显示

Switch(config)# service password-encryption
Switch(config)# show running-config
  !
  service password-encryption
  !
  interface eth-0-9
  no switchport
  ip address 9.9.9.1/24
  ip ospf authentication-key 8 af0443346357baf8
  !

4.3.3.1.1.4 步骤4 去使能密文显示,删除原有密钥重新配置并显示

Switch(config)#no service password-encryption
Switch(config)#interface eth-0-9
Switch(config-if)#no ip ospf authentication-key
Switch(config-if)#ip ospf authentication-key test123
Switch(config-if)# exit
Switch(config)# show running-config
  !
  no service password-encryption
  !
  interface eth-0-9
  no switchport
  ip address 9.9.9.1/24
  ip ospf authentication-key test123
  !

4.3.3.1.1.5 步骤5 配置OSPF密文密钥

Switch(config)#interface eth-0-9
Switch(config-if)#no ip ospf authentication-key
Switch(config-if)#ip ospf authentication-key 8 af0443346357baf8
Switch(config-if)# exit
Switch(config)# show running-config
  !
  no service password-encryption
  !
  interface eth-0-9
  no switchport
  ip address 9.9.9.1/24
  ip ospf authentication-key test123
  !

 MD5认证方式

4.3.3.1.1.6 步骤1 进入配置模式

Switch# configure terminal

4.3.3.1.1.7 步骤2 进入接口配置模式,配置接口属性和ip地址。在接口配置模式下,设置该接口的认证类型,配置密钥

Switch(config)#interface eth-0-9
Switch(config-if)#no switchport
Switch(config-if)#ip address 9.9.9.1/24
Switch(config-if)#ip ospf authentication message-digest
Switch(config-if)#ip ospf message-digest-key 1 md5 ospf
Switch(config-if)# exit

4.3.3.1.1.8 步骤3 进入配置模式,转换明密文密钥显示

Switch(config)# service password-encryption
Switch(config)# show running-config
  !
  service password-encryption
  !
  interface eth-0-9
  no switchport
  ip address 9.9.9.1/24
  ip ospf authentication message-digest
  ip ospf message-digest-key 1 md5 8 1f0276567f2db31f
  !

4.3.3.1.1.9 步骤4 去使能密文显示,删除原有密钥重新配置并显示

Switch(config)#no service password-encryption
Switch(config)#interface eth-0-9
Switch(config-if)#no ip ospf message-digest-key 1
Switch(config-if)#ip ospf message-digest-key 1 md5 ospf123
Switch(config-if)# exit
Switch(config)# show running-config
  !
  no service password-encryption
  !
  interface eth-0-9
  no switchport
  ip address 9.9.9.1/24
  ip ospf authentication message-digest
  ip ospf message-digest-key 1 md5 ospf123
  !

4.3.3.1.1.10 步骤5 配置OSPF密文密钥

Switch(config)#interface eth-0-9
Switch(config-if)#no ip ospf message-digest-key 1
Switch(config-if)#ip ospf message-digest-key 1 md5 8 1f0276567f2db31f
Switch(config-if)# exit
Switch(config)# show running-config
  !
  no service password-encryption
  !
  interface eth-0-9
  no switchport
  ip address 9.9.9.1/24
  ip ospf authentication message-digest
  ip ospf message-digest-key 1 md5 8 1f0276567f2db31f
  !

4.3.4 应用场景配置举例

4.4 Prefix-list配置

4.4.1 概述

4.4.1.1 功能简介

路由策略(Routing Policy)是为了改变网络流量所经过的途径而修改路由信息的技术,主要通过改变路由属性(包括可达性)来实现。地址前缀列表是路由策略的一种,作用比较灵活。一个地址前缀列表由前缀列表名标识。每个前缀列表可以包含多个表项,每个表项可以独立指定一个网络前缀形式的匹配范围,并用一个索引号来标识,索引号指明了进行匹配检查的顺序。在匹配的过程中,交换机按升序依次检查由索引号标识的各个表项。只要有某一表项满足条件,就意味着本次匹配过程结束,而不再进行下一个表项的匹配。

4.4.1.2 原理描述

4.4.2 配置

4.4.2.1 基础配置

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建地址前缀列表

说明:创建一个地址前缀列表,如不指定sequence,则自动分配。支持不同的行为,如permitdeny。支持为列表创建说明字符串。

Switch(config)# ip prefix-list test seq 1 deny 35.0.0.0/8 le 16
Switch(config)# ip prefix-list test permit any
Switch(config)# ip prefix-list test description this prefix list is fot test
Switch(config)# ip prefix-list test permit 36.0.0.0/24

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

使用下列命令,查看已经配置的地址前缀列表:

Switch# show ip prefix-list detail
Prefix-list list number: 1
Prefix-list entry number: 3
Prefix-list with the last deletion/insertion: test
ip prefix-list test:
   Description: this prefix list is fot test
   count: 3, range entries: 0, sequences: 1 - 10
     seq 1 deny 35.0.0.0/8 le 16 (hit count: 0, refcount: 0)
     seq 5 permit any (hit count: 0, refcount: 0)
     seq 10 permit 36.0.0.0/24 (hit count: 0, refcount: 0)

4.4.2.2 配置Rip简单应用

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建地址前缀列表

Switch(config)# ip prefix-list aa seq 11 deny 35.0.0.0/8 le 16
Switch(config)# ip prefix-list aa permit any

 步骤3 rip路由模式中应用前缀列表

Switch(config)# router rip
Switch(config-router)# distribute-list prefix aa out
Switch(config-router)# exit

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

使用下列命令,查看已经配置的地址前缀列表:

Switch# show ip prefix-list
ip prefix-list aa: 2 entries
      seq 11 deny 35.0.0.0/8 le 16
      seq 15 permit any

使用下列命令,查看当前设备配置:

Switch# show running-config
Building configuration...

ip prefix-list aa seq 11 deny 35.0.0.0/8 le 16
ip prefix-list aa seq 15 permit any

router rip
distribute-list prefix aa out

4.4.2.3 配置Route-map简单应用

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建地址前缀列表

Switch(config)# ip prefix-list aa seq 11 deny 3.3.3.0/8 le 24
Switch(config)# ip prefix-list aa permit any

 步骤3 创建route map,匹配地址前缀列表

Switch(config)# route-map abc permit
Switch(config-route-map)# match ip address prefix-list aa
Switch(config-route-map)# set local-preference 200
Switch(config-route-map)# exit

Switch(config)# route-map abc permit 20
Switch(config-route-map)# exit

 步骤4 进入bgp路由模式,并应用route map

Switch(config)# router bgp 1
Switch(config-router)# neighbor 1.1.1.2 remote-as 1
Switch(config-router)# neighbor 1.1.1.2 route-map abc out
Switch(config-router)# network 2.2.2.2/32
Switch(config-router)# network 3.3.3.3/32

 步骤5 退出配置模式

Switch(config-router)# end

 步骤6 检查配置

使用下列命令,查看已经配置的route map

Switch # show route-map
route-map abc, permit, sequence 10
  Match clauses:
    ip address prefix-list aa
  Set clauses:
    local-preference 200
route-map abc, permit, sequence 20
  Match clauses:
Set clauses:

使用下列命令,查看当前设备配置:

Switch # show running-config
Building configuration...

ip prefix-list aa seq 11 deny 3.3.3.0/8 le 24
ip prefix-list aa seq 15 permit any
!
!
route-map abc permit 10
match ip address prefix-list aa
set local-preference 200
!
route-map abc permit 20

router bgp 1
neighbor 1.1.1.2 remote-as 1
!
address-family ipv4
no synchronization
network 2.2.2.2 mask 255.255.255.255
network 3.3.3.3 mask 255.255.255.255
neighbor 1.1.1.2 activate
neighbor 1.1.1.2 route-map abc out
exit-address-family
!
address-family vpnv4 unicast
no synchronization
exit-address-family

4.4.3 应用场景配置举例

4.5 Route-map配置

4.5.1 概述

4.5.1.1 功能简介

路由策略(Routing Policy)是为了改变网络流量所经过的途径而修改路由信息的技术,主要通过改变路由属性(包括可达性)来实现。

路由器在发布与接收路由信息时,可能需要实施一些策略,以便对路由信息进行过滤,例如只接收或发布满足一定条件的路由信息。一种路由协议可能需要引入其它的路由协议发现的路由信息,路由器在引入其它路由协议的路由信息时,可能只需要引入一部分满足条件的路由信息,并控制所引入的路由信息的某些属性,以使其满足本协议的要求。为实现路由策略,首先要定义将要实施路由策略的路由信息的特征,即定义一组匹配规则。可以以路由信息中的不同属性作为匹配依据进行设置,如目的地址、发布路由信息的路由器地址等。匹配规则可以预先设置好,然后再将它们应用于路由的发布、接收和引入等过程的路由策略中。

4.5.1.2 原理描述

4.5.2 配置

4.5.2.1 配置route-map应用到OSPF

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建路由策略,设置规则和行为

route-map的名字最长20个字符,支持大小写和数字,在这个例子中为“abc”。支持permitdeny两种行为,如果不选则默认为permitsequence number的范围是1-65535,在创建第一条规则时如未指定,则默认分配10

Switch(config)# route-map abc permit
Switch(config-route-map)# match metric 20
Switch(config-route-map)# set tag 2
Switch(config-route-map)# exit

Switch(config)# route-map abc permit 20
Switch(config-route-map)# exit

 步骤3 进入ospf路由模式,把RIP协议重分布到OSPF中,并且使用策略

Switch(config)# router ospf 100
Switch(config-router)# redistribute rip route-map abc
Switch(config-router)# exit

 步骤4 退出配置模式

Switch(config)# end

 步骤5 检查配置

Switch# show route-map
route-map abc, permit, sequence 10
  Match clauses:
    metric 20
  Set clauses:
    tag 2
route-map abc, permit, sequence 20
  Match clauses:
  Set clauses:

4.5.2.2 配置route-map应用到BGP

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建ip访问控制列表

Switch(config)# ip access-list acl1
Switch(config-ip-acl)# permit any 3.3.3.0 0.0.0.255 any
Switch(config-ip-acl)# exit

 步骤3 创建路由策略,匹配访问控制列表规则,并设置行为

Switch(config)# route-map abc permit
Switch(config-route-map)# match ip address acl1
Switch(config-route-map)# set local-preference 200
Switch(config-route-map)# exit

Switch(config)# route-map abc permit 20
Switch(config-route-map)# exit

 步骤4 进入bgp路由模式,并且使用策略

Switch(config)# router bgp 1
Switch(config-router)# neighbor 1.1.1.2 remote-as 1
Switch(config-router)# neighbor 1.1.1.2 route-map abc out
Switch(config-router)# network 2.2.2.2/32
Switch(config-router)# network 3.3.3.3/32
Switch(config-router)# exit

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

DUT1# show route-map
route-map abc, permit, sequence 10
  Match clauses:
    ip address acl1
  Set clauses:
    local-preference 200
route-map abc, permit, sequence 20
  Match clauses:
  Set clauses:
DUT2# show ip bgp
BGP table version is 6, local router ID is 1.1.1.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
   Network          Next Hop            Metric LocPrf Weight Path
*>i2.2.2.2/32       1.1.1.1                  0    100      0 i
*>i3.3.3.3/32       1.1.1.1                  0    200      0 i

4.5.3 应用场景配置举例

4.6 策略路由(PBR) 配置

4.6.1 概述

4.6.1.1 功能简介

与单纯根据IP报文的目的地址进行转发不同,策略路由是一种根据用户制定的策略进行路由转发的机制。

4.6.1.2 原理描述

4.6.2 配置

4.6.2.1 PBR配置

pbr

上图是策略路由的一个典型配置:可以在Switch1eth-0-1端口上应用一个策略路由,源地址是172.16.6.1的报文将会被转发给172.16.4.2, 其余报文进行普通的路由转发,到172.16.4.3

以下配置在Switch1上进行:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建ip访问控制列表,规则匹配源地址

Switch(config)# ip access-list acl1
Switch(config-ip-acl)# 10 permit any 172.16.6.0 0.0.0.255 any
Switch(config-ip-acl)# exit

 步骤3 创建一个route map,匹配ip访问控制列表,并设置下一跳地址

Switch(config)# route-map rmap permit 10
Switch(config-route-map)# match ip address acl1
Switch(config-route-map)# set ip next-hop 172.16.4.2
Switch(config-route-map)# exit

 步骤4 进入接口配置模式,配置接口属性,应用策略路由

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# ip address 172.16.5.2/24
Switch(config-if)# no shutdown
Switch(config-if)# ip policy route-map rmap
Switch(config-if)# exit

 步骤5 创建下一跳为172.16.4.3的静态路由(可选)

为实现其余报文进行普通的路由转发,可以使用静态路由来实现。也可以使用动态路由协议,视实际网络运行情况而定。

 Switch(config)# ip route 0.0.0.0/0 172.16.4.3

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

Switch# show ip policy route-map
Route-map                     interface
rmap                          eth-0-1

4.6.2.2 配置PBR与BFD联动

pbr

上图是PBRBFD联动的一个配置示例:根据PBR路由,switch2向端口eth-0-13转发报文,当switch4eth-0-13down时,bfd会话状态会切换到down状态,与之绑定的track 1也会转为downPBR下一跳4.1.1.2会变为无效的,然后报文从switch2eth-0-14口转发。

 步骤1 Switch1上配置

Switch1# configure terminal
Switch1(config)# interface eth-0-1
Switch1(config-if)# no shutdown
Switch1(config-if)# no switchport
Switch1(config-if)# ip address 1.1.1.1/24
Switch1(config-if)# interface eth-0-9
Switch1(config-if)# no shutdown
Switch1(config-if)# no switchport
Switch1(config-if)# ip address 2.1.1.1/24
Switch1(config-if)# quit
Switch1(config)# ip route 5.1.1.0/24 2.1.1.2
Switch1(config)# ip route 6.1.1.0/24 2.1.1.2

 步骤2 Switch2上配置

Switch2# configure terminal
Switch2(config)# ip access-list acl1
Switch2(config-ip-acl)# 10 permit any host 2.1.1.1 any
Switch2(config-ip-acl)# quit
Switch2(config)# route-map rmap permit 10
Switch2(config-route-map)# match ip address acl1
Switch2(config-route-map)# set ip next-hop 4.1.1.2 track 1
Switch2(config-route-map)# quit
Switch2(config)# interface eth-0-9
Switch2(config-if)# no shutdown
Switch2(config-if)# no switchport
Switch2(config-if)# ip address 2.1.1.2/24
Switch2(config-if)# ip policy route-map rmap
Switch2(config-if)# interface eth-0-13
Switch2(config-if)# no shutdown
Switch2(config-if)# no switchport
Switch2(config-if)# ip address 4.1.1.1/24
Switch2(config-if)# interface eth-0-14
Switch2(config-if)# no shutdown
Switch2(config-if)# no switchport
Switch2(config-if)# ip address 5.1.1.1/24
Switch2(config-if)# quit
Switch2(config)# track 1 bfd source interface eth-0-13 destination 4.1.1.2
Switch2(config-track)# quit
Switch2(config)# ip route 1.1.1.0/24 2.1.1.1
Switch2(config)# ip route 6.1.1.0/24 5.1.1.2

 步骤3 Switch4上配置

Switch4# configure terminal
Switch4(config)# interface eth-0-1
Switch4(config-if)# no shutdown
Switch4(config-if)# no switchport
Switch4(config-if)# ip address 6.1.1.1/24
Switch4(config-if)# interface eth-0-13
Switch4(config-if)# no shutdown
Switch4(config-if)# no switchport
Switch4(config-if)# ip address 4.1.1.2/24
Switch4(config-if)# interface eth-0-14
Switch4(config-if)# no shutdown
Switch4(config-if)# no switchport
Switch4(config-if)# ip address 5.1.1.2/24
Switch4(config-if)# quit
Switch4(config)# track 1 bfd source interface eth-0-13 destination 4.1.1.1
Switch4(config-track)# quit
Switch4(config)# ip route 1.1.1.0/24 5.1.1.1
Switch4(config)# ip route 2.1.1.0/24 5.1.1.1

 步骤3 ping 6.1.1.1 Switch2会向eth-0-13口转发报文

Switch1# ping 6.1.1.1
PING 6.1.1.1 (6.1.1.1) 56(84) bytes of data.
64 bytes from 6.1.1.1: icmp_seq=1 ttl=63 time=417 ms
64 bytes from 6.1.1.1: icmp_seq=2 ttl=63 time=428 ms
64 bytes from 6.1.1.1: icmp_seq=3 ttl=63 time=441 ms
64 bytes from 6.1.1.1: icmp_seq=4 ttl=63 time=469 ms
64 bytes from 6.1.1.1: icmp_seq=5 ttl=63 time=461 ms

--- 6.1.1.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 6810ms
rtt min/avg/max/mdev = 417.834/443.810/469.720/19.470 ms

 步骤4 关闭Switch4eth-0-13

Switch4# configure terminal
Switch4(config)# interface eth-0-13
Switch4(config-if)# shutdown

 步骤5 检查配置

Switch2# show track
Track 1
    Type                : BFD state
    Source interface    : eth-0-13
    Destination IP      : 4.1.1.2
    BFD Local discr     : 8192
    rmap                : pref 10 track 1
    State               : down
   
Switch2# show bfd session
Abbreviation:
LD: Local Discriminator.  RD: Remote Discriminator
S: Single hop session.    M: Multi hop session.
SD: Static Discriminator.  DD: Dynamic Discriminator
SBFD: Seamless BFD
A: Admin down.    D:Down.    I:Init.    U:Up.
============================================================================
LD          RD          TYPE ST   UP-Time    Remote-Addr     Sbfd-Type VRF     
      
8192        0           S-DD D    00:00:00   4.1.1.2         None      default 
       
Number of Sessions:    1
报文从Switch2eth-0-14口转发
Switch# ping 6.1.1.1
PING 6.1.1.1 (6.1.1.1) 56(84) bytes of data.
64 bytes from 6.1.1.1: icmp_seq=1 ttl=63 time=414 ms
64 bytes from 6.1.1.1: icmp_seq=2 ttl=63 time=432 ms
64 bytes from 6.1.1.1: icmp_seq=3 ttl=63 time=424 ms
64 bytes from 6.1.1.1: icmp_seq=4 ttl=63 time=525 ms
64 bytes from 6.1.1.1: icmp_seq=5 ttl=63 time=437 ms

--- 6.1.1.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 6563ms
rtt min/avg/max/mdev = 414.720/446.816/525.276/39.949 ms

4.6.3 应用场景配置举例

4.7 BGP配置

4.7.1 概述

4.7.1.1 功能简介

边界网关协议(BGP)是一个内部自治系统路由协议。

BGP通告系统的主要功能,是用其他的BGP系统来交换网络上的可达信息。这个网络可达信息包括自治系统(AS)中的可达性信息。这个信息,对构建一个可联通的AS(如果出现路由环路的话会被切断,以及在这个AS级别中,有些策略会被强制执行)来说,是足够的。

BGP-4 提供了一组机制,来支持无类域内路由(CIDR[RFC1518, RFC1519]. 这些机制包括发布一组IP前缀的目的地址,已经消除BGP的概念。BGP-4 也引入了一些允许路由集合(包括AS路径的集合)这样的概念。

BGP交换的路由信息只支持基于目的的范例,假定路由器只通过在IP报文头中的目的地址来转发报文。这样,反过来说,反而导致了这些策略决策是否可以被强制的使用BGPBGP可以支持那些基于目的地址转发的策略。

4.7.1.2 原理描述

参考 1771, RFC 4271

4.7.2 配置

4.7.2.1 配置EBGP

EBGP

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性

Switch1:

Switch(config)# interface eth-0-13
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ip address 1.1.1.1/24
Switch(config-if)# exit

Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ip address 2.2.2.1/24
Switch(config-if)# exit

Switch2:

Switch(config)# interface eth-0-13
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ip address 1.1.1.2/24
Switch(config-if)# exit

 步骤3 配置静态路由

Switch1:

Switch(config)# ip route 3.3.3.0/24 2.2.2.2

 步骤4 创建BGP路由实例,配置router id、邻居、宣告网络和配置重发布等属性

Switch1:

Switch(config)# router bgp 100
Switch(config-router)# bgp router-id 10.10.10.10
Switch(config-router)# neighbor 1.1.1.2 remote-as 200
Switch(config-router)# neighbor 1.1.1.2 ebgp-multihop
Switch(config-router)# network 4.0.0.0/8
Switch(config-router)# redistribute static
Switch(config-router)# redistribute connected
Switch(config-router)# exit

Switch2:

Switch(config)# router bgp 200
Switch(config-router)# bgp router-id 11.11.11.11
Switch(config-router)# neighbor 1.1.1.1 remote-as 100
Switch(config-router)# neighbor 1.1.1.1 ebgp-multihop
Switch(config-router)# redistribute connected
Switch(config-router)# exit

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

Switch1:

Switch# show ip bgp neighbors
BGP neighbor is 1.1.1.2, remote AS 200, local AS 100, external link
  BGP version 4, remote router ID 0.0.0.0
  BGP state = Active
  Last read 00:26:00, hold time is 180, keepalive interval is 60 seconds
  Received 0 messages, 0 notifications, 0 in queue
  Sent 0 messages, 0 notifications, 0 in queue
  Route refresh request: received 0, sent 0
  Minimum time between advertisement runs is 30 seconds
For address family: IPv4 Unicast
  BGP table version 1, neighbor version 0
  Index 1, Offset 0, Mask 0x2
  0 accepted prefixes
  0 announced prefixes
Connections established 0; dropped 0
  External BGP neighbor may be up to 255 hops away.
Next connect timer due in 87 seconds

Switch2:

SwitchB# show ip bgp neighbors
BGP neighbor is 1.1.1.1, remote AS 100, local AS 200, external link
  BGP version 4, remote router ID 0.0.0.0
  BGP state = Active
  Last read 00:21:39, hold time is 180, keepalive interval is 60 seconds
  Received 0 messages, 0 notifications, 0 in queue
  Sent 0 messages, 0 notifications, 0 in queue
  Route refresh request: received 0, sent 0
  Minimum time between advertisement runs is 30 seconds
For address family: IPv4 Unicast
  BGP table version 1, neighbor version 0
  Index 1, Offset 0, Mask 0x2
  0 accepted prefixes
  0 announced prefixes
Connections established 0; dropped 0
  External BGP neighbor may be up to 255 hops away.
Next connect timer due in 97 seconds

4.7.2.2 配置IBGP

IBGP

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性

Switch1:

Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ip address 2.2.2.1/24
Switch(config-if)# exit

Switch(config)# interface eth-0-13
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ip address 1.1.1.1/24
Switch(config-if)# exit

Switch(config)#interface loopback 0
Switch(config-if)# ip address 10.10.10.10/32
Switch(config-if)# exit

Switch2:

Switch(config)# interface eth-0-13
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ip address 1.1.1.2/24
Switch(config-if)# exit

Switch(config)# interface loopback 0
Switch(config-if)# ip address 11.11.11.11/32
Switch(config-if)# exit

 步骤3 配置静态路由

Switch1:

Switch (config)# ip route 11.11.11.11/32 1.1.1.2

Switch2:

Switch (config)# ip route 10.10.10.10/32 1.1.1.1

 步骤4 创建BGP路由实例,配置router id、邻居、宣告网络和配置重发布等属性

Switch1:

Switch(config)# router bgp 100
Switch(config-router)# bgp router-id 10.10.10.10
Switch(config-router)# neighbor 11.11.11.11 remote-as 100
Switch(config-router)# neighbor 11.11.11.11 update-source loopback 0
Switch(config-router)# network 4.0.0.0/8
Switch(config-router)# redistribute static
Switch(config-router)# redistribute connected
Switch(config-router)# exit

Switch2:

Switch(config)# router bgp 100
Switch(config-router)# bgp router-id 11.11.11.11
Switch(config-router)# neighbor 10.10.10.10 remote-as 100
Switch(config-router)# neighbor 10.10.10.10 update-source loopback 0
Switch(config-router)# redistribute connected
Switch(config-router)# exit

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

Switch1:

Switch# show ip bgp neighbors
BGP neighbor is 11.11.11.11, remote AS 100, local AS 100, internal link
  BGP version 4, remote router ID 0.0.0.0
  BGP state = Active
  Last read 00:02:32, hold time is 180, keepalive interval is 60 seconds
  Received 0 messages, 0 notifications, 0 in queue
  Sent 0 messages, 0 notifications, 0 in queue
  Route refresh request: received 0, sent 0
  Minimum time between advertisement runs is 5 seconds
  Update source is loopback0
For address family: IPv4 Unicast
  BGP table version 1, neighbor version 0
  Index 1, Offset 0, Mask 0x2
  0 accepted prefixes
  0 announced prefixes
Connections established 0; dropped 0
Next connect timer due in 62 seconds

Switch2:

Switch# show ip bgp neighbors
BGP neighbor is 10.10.10.10, remote AS 100, local AS 100, internal link
  BGP version 4, remote router ID 0.0.0.0
  BGP state = Active
  Last read 00:01:58, hold time is 180, keepalive interval is 60 seconds
  Received 0 messages, 0 notifications, 0 in queue
  Sent 0 messages, 0 notifications, 0 in queue
  Route refresh request: received 0, sent 0
  Minimum time between advertisement runs is 5 seconds
  Update source is loopback0
For address family: IPv4 Unicast
  BGP table version 1, neighbor version 0
  Index 1, Offset 0, Mask 0x2
  0 accepted prefixes
  0 announced prefixes
Connections established 0; dropped 0
Next connect timer due in 17 seconds

4.7.3 应用场景配置举例

4.8 ISIS配置

4.8.1 概述

4.8.1.1 功能简介

中间系统到中间系统ISIS是一种链路状态路由协议,使用最短路径优先SPF算法进行 路由算法,实际上与OSPF非常相似,它也使用Hello协议寻找毗邻节点,使用一个传播协议发送链接信息。ISIS可以在不同的子网上操作,包括广播型的LANWAN和点到点链路。

4.8.1.2 原理描述

 NET

NETNetwork Entity Title,网络实体名称)指示的是IS本身的网络层信息,不包括传输层信息(SEL0),可以看作是一类特殊的NSAP,即SEL0NSAP地址。因此,NET的长度与NSAP的相同,最多为20个字节,最少为8个字节。

通常情况下,一台路由器配置一个NET即可,当区域需要重新划分时,例如将多个区域合并,或者将一个区域划分为多个区域,这种情况下配置多个NET可以在重新配置时仍然能够保证路由的正确性。由于一台路由器默认最多可配置3个区域地址,所以最多也只能配置3NET。在配置多个NET时,必须保证它们的System ID都相同。

例如NET为:ab.cdef.1234.5678.9abc.00,则其中Areaab.cdefSystem ID1234.5678.9abcSEL00

 ISIS区域

  1. 两级结构 为了支持大规模的路由网络,IS-IS在路由域内采用两级的分层结构。一个大的路由域被分成一个或多个区域(Areas)。区域内的路由通过Level-1路由器管理,区域间的路由通过Level-2路由器管理。
  2.  Level-1Level-2 

(1)Level-1路由器 Level-1路由器负责区域内的路由,它只与属于同一区域的Level-1Level-1-2路由器形成邻居关系,维护一个Level-1LSDB,该LSDB包含本区域的路由信息,到区域外的报文转发给最近的Level-1-2路由器。

(2)Level-2路由器 Level-2路由器负责区域间的路由,可以与同一区域或者其它区域的Level-2Level-1-2路由器形成邻居关系,维护一个Level-2LSDB,该LSDB包含区域间的路由信息。所有Level-2路由器和Level-1-2路由器组成路由域的骨干网,负责在不同区域间通信,路由域中的Level-2路由器必须是物理连续的,以保证骨干网的连续性。只有Level-2路由器才能直接与路由域外的路由器交换数据报文或路由信息。

(3)Level-1-2路由器 同时属于Level-1Level-2的路由器称为Level-1-2路由器,可以与同一区域的Level-1Level-1-2路由器形成Level-1邻居关系,也可以与同一区域或者其他区域的Level-2Level-1-2路由器形成Level-2的邻居关系。Level-1路由器必须通过Level-1-2路由器才能连接至其他区域。Level-1-2路由器维护两个LSDBLevel-1LSDB用于区域内路由,Level-2LSDB用于区域间路由。

  1. 接口的路由层次类型 对于类型是Level-1-2的路由器,可能需要与某个对端只建立Level-1的邻接关系,与另一个对端只建立Level-2的邻接关系。可以通过设置相应接口的路由层次类型来限制接口上所能建立的邻接关系,如Level-1的接口只能建立Level-1的邻接关系,Level-2的接口只能建立Level-2的邻接关系。 对于Level-1-2的路由器,通过将某些接口配置为Level-2,还可以防止将Level-1Hello报文发送到Level-2骨干网上,从而节省带宽。
  2. 路由渗透(Route Leaking) 通常情况下,IS-IS的区域也称为Level-1区域,区域内的路由通过Level-1的路由器进行管理。所有的Level-2路由器构成一个Level-2区域。因此,一个IS-IS的路由域可以包含多个Level-1区域,但只有一个Level-2区域。 Level-1区域必须且只能与Level-2区域相连,不同的Level-1区域之间并不相连。 Level-1区域内的路由信息通过Level-1-2路由器发布到Level-2区域,因此,Level-2路由器知道整个IS-IS路由域的路由信息。但是,在缺省情况下,Level-2路由器并不将自己知道的其他Level-1区域以及Level-2区域的路由信息发布到Level-1区域。这样,Level-1路由器将不了解本区域以外的路由信息,Level-1路由器只将去往其它区域的报文发送到最近的Level-1-2路由器,所以可能导致对本区域之外的目的地址无法选择最佳的路由。 为解决上述问题,IS-IS提供了路由渗透功能,使Level-1-2路由器可以将己知的其他Level-1区域以及Level-2区域的路由信息发布到指定的Level-1区域。

4.8.2 配置

4.8.2.1 配置基本ISIS

ISIS

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建isis实例,配置net

Switch1的配置:

Switch(config)# router isis
Switch(config-router)# net 10.0000.0000.0001.00
Switch(config-router)# exit

Switch2的配置:

Switch(config)# router isis
Switch(config-router)# net 10.0000.0000.0002.00
Switch(config-router)# exit

 步骤3 接口使能ipv4 isis

Switch1的配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.10.10.10/24
Switch(config-if)# ip router isis
Switch(config)# interface loopback 0
Switch(config-if)# ip address 1.1.1.1/32
Switch(config-if)# ip router isis

Switch2的配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.10.10.11/24
Switch(config-if)# ip router isis
Switch(config)# interface loopback 0
Switch(config-if)# ip address 2.2.2.2/32
Switch(config-if)# ip router isis

 步骤4 检查配置

Switch1 显示结果:

Switch# show clns neighbors

Area (null):
System Id      Interface   SNPA                State  Holdtime  Type Protocol
0000.0000.0002 eth-0-9     4a98.a825.3d00      Up     21        L1   IS-IS
                                               Up     21        L2   IS-IS

Switch# show isis database verbose
Area (null):
IS-IS Level-1 Link State Database:
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime      ATT/P/OL
0000.0000.0001.00-00* 0x00000004   0x3244        1082              0/0/0
  Area Address: 10
  NLPID:        IPV4
  IP Address:   10.10.10.10
  Metric:   10         IS 0000.0000.0001.01
  Metric:   10         IP 10.10.10.0 255.255.255.0
  Metric:   10         IP 1.1.1.1 255.255.255.255
0000.0000.0001.01-00* 0x00000001   0x21B9        895               0/0/0
  Metric:   0          IS 0000.0000.0001.00
  Metric:   0          IS 0000.0000.0002.00
0000.0000.0002.00-00  0x00000004   0xFA75        1076              0/0/0
  Area Address: 10
  NLPID:        IPV4
  IP Address:   10.10.10.11
  Metric:   10         IS 0000.0000.0001.01
  Metric:   10         IP 10.10.10.0 255.255.255.0
  Metric:   10         IP 2.2.2.2 255.255.255.255

IS-IS Level-2 Link State Database:
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime      ATT/P/OL
0000.0000.0001.00-00* 0x00000005   0xFCCE        1109              0/0/0
  Area Address: 10
  NLPID:        IPV4
  IP Address:   10.10.10.10
  Metric:   10         IS 0000.0000.0001.01
  Metric:   10         IP 10.10.10.0 255.255.255.0
  Metric:   20         IP 2.2.2.2 255.255.255.255
  Metric:   10         IP 1.1.1.1 255.255.255.255
0000.0000.0001.01-00* 0x00000001   0x21B9        895               0/0/0
  Metric:   0          IS 0000.0000.0001.00
  Metric:   0          IS 0000.0000.0002.00
0000.0000.0002.00-00  0x00000005   0x7B4E        1107              0/0/0
  Area Address: 10
  NLPID:        IPV4
  IP Address:   10.10.10.11
  Metric:   10         IS 0000.0000.0001.01
  Metric:   10         IP 10.10.10.0 255.255.255.0
  Metric:   10         IP 2.2.2.2 255.255.255.255
  Metric:   20         IP 1.1.1.1 255.255.255.255
 
Switch# show ip isis route

Codes: C - connected, E - external, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, D - discard, e - external metric

Area (null):
     Destination         Metric      Next-Hop            Interface      Tag
C    1.1.1.1/32          10          --                  loopback0            0
L1   2.2.2.2/32          20          10.10.10.11         eth-0-9            0
C    10.10.10.0/24       10          --                  eth-0-9            0

Switch2 显示结果:

Switch# show clns neighbors

Area (null):
System Id      Interface   SNPA                State  Holdtime  Type Protocol
0000.0000.0001 eth-0-9     a821.1873.ae00      Up     9         L1   IS-IS
                                               Up     9         L2   IS-IS

Switch# show isis database verbose
Area (null):
IS-IS Level-1 Link State Database:
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime      ATT/P/OL
0000.0000.0001.00-00  0x00000004   0x3244        934               0/0/0
  Area Address: 10
  NLPID:        IPV4
  IP Address:   10.10.10.10
  Metric:   10         IS 0000.0000.0001.01
  Metric:   10         IP 10.10.10.0 255.255.255.0
  Metric:   10         IP 1.1.1.1 255.255.255.255
0000.0000.0001.01-00  0x00000001   0x21B9        745               0/0/0
  Metric:   0          IS 0000.0000.0001.00
  Metric:   0          IS 0000.0000.0002.00
0000.0000.0002.00-00* 0x00000004   0xFA75        930               0/0/0
  Area Address: 10
  NLPID:        IPV4
  IP Address:   10.10.10.11
  Metric:   10         IS 0000.0000.0001.01
  Metric:   10         IP 10.10.10.0 255.255.255.0
  Metric:   10         IP 2.2.2.2 255.255.255.255

IS-IS Level-2 Link State Database:
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime      ATT/P/OL
0000.0000.0001.00-00  0x00000005   0xFCCE        961               0/0/0
  Area Address: 10
  NLPID:        IPV4
  IP Address:   10.10.10.10
  Metric:   10         IS 0000.0000.0001.01
  Metric:   10         IP 10.10.10.0 255.255.255.0
  Metric:   20         IP 2.2.2.2 255.255.255.255
  Metric:   10         IP 1.1.1.1 255.255.255.255
0000.0000.0001.01-00  0x00000001   0x21B9        747               0/0/0
  Metric:   0          IS 0000.0000.0001.00
  Metric:   0          IS 0000.0000.0002.00
0000.0000.0002.00-00* 0x00000005   0x7B4E        960               0/0/0
  Area Address: 10
  NLPID:        IPV4
  IP Address:   10.10.10.11
  Metric:   10         IS 0000.0000.0001.01
  Metric:   10         IP 10.10.10.0 255.255.255.0
  Metric:   10         IP 2.2.2.2 255.255.255.255
  Metric:   20         IP 1.1.1.1 255.255.255.255
 
Switch# show ip isis route

Codes: C - connected, E - external, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, D - discard, e - external metric

Area (null):
     Destination         Metric      Next-Hop            Interface      Tag
L1   1.1.1.1/32          20          10.10.10.10         eth-0-9            0
C    2.2.2.2/32          10          --                  loopback0            0
C    10.10.10.0/24       10          --                  eth-0-9            0


4.8.3 应用场景配置举例

5   组播配置指导  

5.1 IP组播路由配置

5.1.1 概述

5.1.1.1 功能简介

随着Internet网络的不断发展,网络数据、语音、视频信息等多种交互业务与日俱增。另外,新兴的电子商务、网上会议、网上拍卖、视频点播、远程教学等对带宽和实时数据交互要求较高的服务逐渐兴起,这些服务对信息安全性、可计费性、网络带宽提出了更高的要求。

当网络中需要某信息的用户量不确定时,单播和广播方式的效率会很低,IP组播技术的出现改变了这一现状。当网络中的某些用户需要特定信息时,组播信息发送者(即组播源)仅发送一次信息,借助组播路由协议为组播数据包建立树型路由,被传递的信息在距离用户端尽可能近的节点才开始复制和分发。

通过组播路由协议,多个接收者能跨越不同网络接收到组播数据。

IGMP(Internet Group Management Protocol,因特网组管理协议)TCP/IP协议族中负责IP组播成员管理的协议。它用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。

PIMProtocol Independent Multicast,协议无关组播),用于组播路由器或多层交换机之间。为IP组播提供路由的单播路由协议,可以是静态路由、RIPOSPFIS-ISBGP 等,组播路由和单播路由协议无关,只要单播路由协议能产生路由表项即可。借助RPFReverse Path Forwarding,逆向路径转发)机制,PIM实现了在网络中传递组播信息。为了描述上的方便,我们把由支持PIM协议的组播路由器所组成的网络称为PIM组播域,PIM有两种模式:密集模式和稀疏模式。

5.1.1.2 原理描述

5.1.2 配置

5.1.2.1 配置组播路由规格

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 设置组播路由的最大规格

Switch(config)# ip multicast route-limit 1000

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch# show ip mroute route-limit
Max Multicast Route Limit Number: 1000
Multicast Route Limit Warning Threshold: 1000
Multicast Hardware Route Limit: 1023
Current Multicast Route Entry Number: 0

5.1.3 应用场景配置举例

5.2 IGMP配置

5.2.1 概述

5.2.1.1 功能简介

参与IP组播的主机、路由器、多层交换机必须具备IGMP功能。该协议定义了查询器和主机角色:

网络设备的查询器发送查询消息给网络中特定组来发现组播中的成员。

主机发送IGMP报告报文(响应查询报文)来通知查询者主机要加入相应的组播组列表中。

一个组播组的成员是动态的,主机可以随时加入和离开。一个多播组成员在位置或数量上没有限制。

一个主机可同时加入多个组播组。在网络中,组播组的存在可以持续很长一段时间,也可以非常短暂。

IGMP报文使用下面的组播地址:

IGMP普通组查询以224.0.0.1为目的地址(在一个子网中的所有系统)

IGMP特定组的查询以特定组IP地址为目的查询。

IGMP组成员发送Report报文给特定的组播IP地址。

IGMP版本2(IGMPv2)离开组播组时,发送离开消息给224.0.0.2

5.2.1.2 原理描述

参考 RFC 1112RFC 2236RFC 3376

5.2.2 配置

IGMP的使能依赖于组播路由协议的使能,当接口上使能PIMIGMP将会在接口上自动启用。

IGMP开始工作之前,IP播路由必须在全局模式启用。

系统支持动态学习IGMP组记录,也可以配置静态IGMP组记录。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局使能组播路由

Switch(config)# ip multicast-routing

 步骤3 进入接口配置模式,配置接口属性和IP地址

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.10.10.10/24
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.10.11.10/24
Switch(config-if)# exit

 步骤4 接口启用pim-sm

Switch(config)# interface eth-0-1
Switch(config-if)# ip pim sparse-mode
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# ip pim sparse-mode
Switch(config-if)# exit

 步骤5 配置接口IGMP参数

Switch(config)# interface eth-0-1
Switch(config-if)# ip igmp version 2
Switch(config-if)# ip igmp query-interval 120
Switch(config-if)# ip igmp query-max-response-time 12
Switch(config-if)# ip igmp robustness-variable 3
Switch(config-if)# ip igmp last-member-query-count 3
Switch(config-if)# ip igmp last-member-query-interval 2000
Switch(config-if)# exit

 步骤6 配置最大IGMP组数目(可选)

全局和接口可以分别配置IGMP的组数目:

Switch(config)# ip igmp limit 2000

Switch(config)# interface eth-0-1
Switch(config-if)# ip igmp limit 1000

 步骤7 配置静态IGMP

Switch(config-if)# ip igmp static-group 228.1.1.1
Switch(config-if)# exit

 步骤8 配置IGMP代理(可选)

Switch(config)# interface eth-0-1
Switch(config-if)# ip igmp proxy-service
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# ip igmp mroute-proxy eth-0-1
Switch(config-if)# exit

 步骤9 退出配置模式

 Switch(config)# end

 步骤10 检查配置

使用下列命令,显示IGMP接口信息:

Switch# show ip igmp interface
Interface eth-0-1 (Index 1)
IGMP Inactive, Version 2 (default) proxy-service
IGMP host version 2
IGMP global limit is 2000
IGMP global limit states count is currently 0
IGMP interface limit is 1000
IGMP interface has 0 group-record states
IGMP activity: 0 joins, 0 leaves
IGMP query interval is 120 seconds
IGMP querier timeout is 366 seconds
IGMP max query response time is 12 seconds
Last member query response interval is 2000 milliseconds
Group Membership interval is 372 seconds
Last memeber query count is 3
Robustness Variable is 3
Interface eth-0-2 (Index 2)
IGMP Inactive, Version 2 (default)
IGMP mroute-proxy interface is eth-0-1
IGMP global limit is 2000
IGMP global limit states count is currently 0
IGMP interface limit is 16384
IGMP interface has 0 group-record states
IGMP activity: 0 joins, 0 leaves
IGMP query interval is 125 seconds
IGMP querier timeout is 255 seconds
IGMP max query response time is 10 seconds
Last member query response interval is 1000 milliseconds
Group Membership interval is 260 seconds
Last memeber query count is 2
Robustness Variable is 2

使用下列命令,显示IGMP组信息:

Switch# show ip igmp groups
IGMP Connected Group Membership
Group Address    Interface       Uptime   Expires Last Reporter
228.1.1.1        eth-0-1          00:00:05 stopped  -

5.2.3 应用场景配置举例

5.3 PIM-SM配置

5.3.1 概述

5.3.1.1 功能简介

协议无关组播稀疏模式(PIM-SM)是一个组播路由协议,用来将稀疏分散的组播设备联系起来协同工作。它将有助于分散的网络节点节约带宽和通过发送单一流量到多个接受着来降低网络流量。

PIM-SM使用的IP组播模型中,接收者需要主动发起请求成为组成员。支持共享和最短路径树,并使用软状态机制,以适应不断变化的网络条件。它依赖于单播路由协议来建立和维护路由器间的组播路由。

5.3.1.2 原理描述

参考 RFC 4601

以下是PIM-SM协议概念的简要描述:

汇聚点(RP / Rendezvous Point:在SM模式中作为组播的汇聚点,发送者和接收者在RP处进行汇聚。对于所有的组播路由器,必须知道某个组播组对应哪个RP。组播数据需要在RP上注册,然后所有需要组播数据的接收者通过向RP发送JOIN报文来请求数据。源的注册机制就是让RP知道现在网络内有什么源的数据。

组播路由信息库(MRIB):组播路由表是从单播路由表的获得的。在PIM-SM中,MRIB是用来决定向何处发送加入/剪枝消息。它还提供了目的网络的路由度量。发送和处理的Assert消息时将使用这些度量。

反向路径转发(RPF:反向路径转发是指路由器在接受数据包从源A通过接口IF1时,只有IF1是到达源A的出接口时才会接受这个包。反向路径转发通过使用单播路由表来决定入端口是否正确。这个数据包将被转发是由于单播路由表表明了接口IF1是到达源A的最短路径。单播路由表为组播数据选择最短路径。

组播树状态信息库(TIB):组播树状态信息库是组播路由器上保存所有组播转发树信息的一个信息库,通过收到PIM加入/剪枝消息,Assert消息和IGMP消息建立起来。

上游Upstream:朝向树根,树根可能是源或RP

下游Downstream:远离树根,树根可能是源或RP

基于源的树:基于源的树的转发路径是到达源的最短转发路径,如果单播路由度量是跳数,基于源的树的转发路径的跳数最小,如果单播路由度量是延迟,基于源的树的转发路径的延迟最小。对于每个组播源,有一个对应的组播转发树直接将源和接收者连接起来。所有发往指定组的流量沿着对应的转发树进行转发。

共享树:共享树依赖于汇聚点(RP),所有流量从源都发往那个汇聚点,然后汇聚点再将流量发送给接收者。对于每一个组播组来说,不管有多少个源,只有一个转发树。共享树是单向的,流量只会从RP流向接收者。如果一个源要发送组播数据,首先组播数据要被发到RP,然后在从RP发送到接收者。

自举路由器(BSR):当一个组播源开始发送组播数据或者一个接收者开始发送加入信息到RP,组播路由器必须知道汇聚点的信息。自举路由器负责在PIM-SM网络启动后,收集网络内的RP信息,为每个组选举出RP,然后将RP集(即组-RP映射数据库)发布到整个PIM-SM网络。

数据流从源到接收者:发送Hello消息|PIM路由器定期的发送Hello消息来发现PIM路由器邻居。Hello消息是组播报文,使用224.0.0.13这个地址。PIM路由器对Hello消息进行响应,Hello消息中的Hold时间来决定信息的有效时间。

选举指定路由器:在一个多路访问的网络中如果有多个组播路由器,只能有一个组播路由器被选为指定路由器,负责为本地网络的组播接收者往RP发送加入/剪枝消息。

RP发现PIM-SM通过自举路由器来产生自举消息,然后发布RP信息给所有的组播路由器。组播路由器接收和保存自举消息,当DR从直连host收到一个IGMP报文或组播数据,DR计算出该组播组的RP,然后发送加入/剪枝到RP或者封装reigster报文到RP。在小网络环境下可以静态指定RP

加入共享树:要加入一个多播组,主机发送一个IGMP消息给上游路由器,组播路由器向RP方向的上游的PIM邻居发送加入报文。当组播路由器接收到下游设备的加入请求后,检查本地的组播组是否存在。如果存在,说明加入消息被送到共享树,收到消息的接口被成为outgoing的接口.如果不存在,条目将被创建,收到消息接口的被加入到outgoing中并再次向RP方向的上游的PIM邻居发送加入报文。

组播源注册:与组播源S直接相连的路由器接收到该组播报文后,就将该报文封装成Register注册报文,并单播发送给对应的RP。当RP接收到来自组播源S的注册消息后,一方面解封装注册消息并将组播信息沿着RPT树转发到接收者,另一方面朝组播源S逐跳发送(SG)加入消息,从而让RP和组播源S之间的所有路由器上都生成了(SG)表项,这些沿途经过的路由器就形成了SPT树的一个分支。SPT源树以组播源S为根,以RP为目的地组播源S发出的组播信息沿着已经建立好的SPT树到达RP,然后由RP将信息沿着RPT共享树进行转发。

发送注册停止消息:当RP从组播源接收到注册报文后也收到未封装的组播报文,将发送注册停止消息给组播源一侧的DR,当DR收到注册停止消息后将不再发送注册消息给RP了。

剪枝端口:接收者侧的组播路由器向RP方向的上游的PIM邻居发送剪枝报文,当上联组播路由器收到剪枝报文后,将收到剪枝报文的端口从转发端口中删除,当本路由器上没有其他接收者后会继续向RP方向的上游的PIM邻居发送剪枝报文。 转发组播数据:PIM-SM路由器将组播数据发往那些已经明确表示加入组播组的接收者。组播路由器将进行RPF检查,只有检查通过的组播数据包才将通过出端口发送出去。

5.3.2 配置

Pim sm

PIM-SM是一个软状态协议。要求所需的接口上启用PIM-SM协议,并通过静态或动态的方法正确配置的RP信息。所有组播组的状态依据IGMP报告/离开和PIM加入/剪枝消息动态的维护。

本节分别提供了静态PR和动态PR配置的例子。使用的网络拓扑如上图所示。

5.3.2.1 配置通用PIM Sparse-mode(静态RP)

以下例子中Switch1RP,所有的路由器都配置静态RP

每个路由器配置静态RP地址11.1.1.1

所有接口上必须启用PIM-SM功能。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性和ip地址,并使能pim sm

Switch1配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.1.1.1/24
Switch(config-if)# ip pim sparse-mode
Switch(config-if)# exit

Switch(config)# interface eth-0-9
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ip address 12.1.1.1/24
Switch(config-if)# ip pim sparse-mode
Switch(config-if)# exit

Switch2配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ip address 22.1.1.2/24
Switch(config-if)# ip pim sparse-mode
Switch(config-if)# exit

Switch(config)# interface eth-0-9
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ip address 12.1.1.2/24
Switch(config-if)# ip pim sparse-mode
Switch(config-if)# exit

 步骤3 配置静态路由

Switch1配置:

Switch(config)# ip route 22.1.1.0/24 12.1.1.2

Switch2配置:

Switch(config)# ip route 11.1.1.0/24 12.1.1.1

 步骤4 配置静态RP地址

Switch(config)# ip pim rp-address 11.1.1.1

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

使用下列命令,显示rp对应映射关系。 11.1.1.1是对所有组播组224.0.0.0/4静态配置的RP

Switch# show ip pim sparse-mode rp mapping
PIM group-to-RP mappings
Group(s): 224.0.0.0/4, Static
    RP: 11.1.1.1
         Uptime: 00:08:21

使用下列命令,显示接口的组播信息:

Switch# show ip pim sparse-mode interface
Address          Interface VIFindex Ver/   Nbr    DR    DR         HoldTime
                                    Mode   Count  Prior
11.1.1.1         eth-0-1   2        v2/S   0      1     11.1.1.1        105    
12.1.1.1         eth-0-9   0        v2/S   1      1     12.1.1.2        105    

使用下列命令,显示PIM-SM的组播路由表:

Switch1

Switch# show ip pim sparse-mode mroute detail
IP Multicast Routing Table
(*,*,RP) Entries: 0
(*,G) Entries: 1
(S,G) Entries: 0
(S,G,rpt) Entries: 0
FCR Entries: 0
(*, 224.1.1.1) Uptime: 00:01:32
  RP: 11.1.1.1, RPF nbr: None, RPF idx: None
  Upstream:
   State: JOINED, SPT Switch: Enabled, JT: off
   Macro state: Join Desired,
  Downstream:
   eth-0-9:
     State: JOINED, ET Expiry: 179 secs, PPT: off
     Assert State: NO INFO, AT: off
      Winner: 0.0.0.0, Metric: 4294967295, Pref: 4294967295, RPT bit: on
     Macro state: Could Assert, Assert Track
  Join Olist:
   eth-0-9

Switch2

Switch# show ip pim sparse-mode mroute detail
IP Multicast Routing Table
(*,*,RP) Entries: 0
(*,G) Entries: 1
(S,G) Entries: 0
(S,G,rpt) Entries: 0
FCR Entries: 0
(*, 224.1.1.1) Uptime: 00:00:43
  RP: 11.1.1.1, RPF nbr: 12.1.1.1, RPF idx: eth-0-9
  Upstream:
   State: JOINED, SPT Switch: Enabled, JT Expiry: 18 secs
   Macro state: Join Desired,
  Downstream:
   eth-0-1:
     State: NO INFO, ET: off, PPT: off
     Assert State: NO INFO, AT: off
      Winner: 0.0.0.0, Metric: 4294967295, Pref: 4294967295, RPT bit: on
     Macro state: Could Assert, Assert Track
  Local Olist:
   eth-0-1

5.3.2.2 配置通用PIM Sparse-mode(动态RP)

在小型并且简单的网络中,组播信息量少,全网络仅依靠一个RP进行信息转发即可,此时可以在SM域中各路由器上静态指定RP位置。但是更多的情况下,PIM-SM网络规模都很大,通过RP转发的组播信息量巨大,为了缓解RP的负担同时优化共享树的拓扑结构,不同组播组应该对应不同的RP,此时就需要自举机制来动态选举RP

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性和ip地址,并使能pim sm

Switch1配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.1.1.1/24
Switch(config-if)# ip pim sparse-mode
Switch(config-if)# exit

Switch(config)# interface eth-0-9
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ip address 12.1.1.1/24
Switch(config-if)# ip pim sparse-mode
Switch(config-if)# exit

Switch2配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ip address 22.1.1.2/24
Switch(config-if)# ip pim sparse-mode
Switch(config-if)# exit

Switch(config)# interface eth-0-9
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ip address 12.1.1.2/24
Switch(config-if)# ip pim sparse-mode
Switch(config-if)# exit

 步骤3 配置静态路由

Switch1配置:

Switch(config)# ip route 22.1.1.0/24 12.1.1.2

Switch2配置:

Switch(config)# ip route 11.1.1.0/24 12.1.1.1

 步骤4 配置候选RP接口

Switch1配置:

Switch(config)# ip pim rp-candidate eth-0-1

Switch2配置:

Switch(config)# ip pim rp-candidate eth-0-9
Switch(config)# ip pim bsr-candidate eth-0-9

选择最高优先级的路由器为RP。如果有两个或多个路由器的优先级相同,使用BSR机制的哈希函数来选择RP,确保在PIM域内所有路由器的同一个组都选择相同的RP。可以使用ip pim rp-candidate IFNAME PRIORITY命令来改变候选RP的默认的优先级。

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

使用show ip pim sparse-mode rp mapping命令,来显示组-RP的映射的详细信息,输出内容是候选RP信息。对组的范围224.0.0.0 / 4的组有两个候选RP。候选RP 11.1.1.1默认的优先级192,而候选RP 12.1.1.2的优先级被配置为2。由于候选RP 12.1.1.2由于具有更高的优先权,它被选中作为组播组224.0.0.0/24RP

Switch2

switch# show ip pim sparse-mode rp mapping
PIM group-to-RP mappings
This system is the bootstrap router (v2)
Group(s): 224.0.0.0/4
  RP: 12.1.1.2
    Info source: 12.1.1.2, via bootstrap, priority 2
         Uptime: 01:55:20, expires: 00:02:17
  RP: 11.1.1.1
    Info source: 11.1.1.1, via bootstrap, priority 192
         Uptime: 01:55:23, expires: 00:02:13

要显示特定组的RP路由器的信息,使用下面的命令。此输出显示,12.1.1.2已经选择224.1.1.1的组播组的RP

Switch2

switch# show ip pim sparse-mode rp-hash 224.1.1.1
    RP: 12.1.1.2
    Info source: 12.1.1.2, via bootstrap

RP信息需要通知域中的所有PIM路由器,通过各种状态机保持所有路由器的组成员的加入/剪枝的结果。要显示接口的详细信息和组播路由表的信息,请参见以上配置RP的静态部分。

5.3.2.3 配置自举路由器

bsr

每个组播组需要有一个为它服务的RP,这个RP作为基于组播组的分发树的根。为了组播数据能从发送者到达接收者,在一个组播域内的组播路由器需要使用同样的组播组-RP的映射。为了选择指定组播组的RP,组播路由器需要维护一系列的组播组-RP的映射关系,这被称为RP集。自举路由器的机制就是用来让在同一个组播域内的组播路由器能够学习到这个RP集。

BSRPIM-SM网络里的管理核心,主要负责:

负责收集网络中Candidate-RPC-RP)发来的Advertisement宣告信息。

为每个组播组选择部分C-RP信息以组成RP-Set集(即组播组和RP的映射数据库)。

发布到整个PIM-SM网络,从而使网络内的所有路由器(包括DR)都会知道RP的位置。

PIM域中,需要配置一个或多个候选BSR,候选BSR之间通过自动选举,产生自举路由器BSR,负责收集并发布RP信息。下面简单描述一下候选BSR之间的自动选举:

在将路由器配置为候选BSR时,必须同时指定一个启动了PIM-SM的接口。

每个候选BSR开始都认为自己是本PIM-SMBSR,并使用这个接口的IP地址作为BSR地址,发送自举报文(Bootstrap message)。

当候选BSR收到其它路由器发来的自举报文时,它将新收到的自举报文的BSR地址与自己的BSR地址进行比较,比较标准包括优先级和IP地址,优先级相同的情况下,较大的IP地址被认为是更好的。如果前者更好,则将这个新的BSR地址替换自己的BSR地址,并且不再认为自己是BSR。否则,保留自己的BSR地址,继续将自己视为BSR

备选RP将自己的RP信息报告给自举路由器,然后自举路由器将汇聚的RP集通过自举报文发布到整个组播域的所有路由器。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置BSR候选端口

Switch1

Switch(config)# ip pim bsr-candidate eth-0-1

Switch2

Switch(config)# ip pim bsr-candidate eth-0-1 10 25
Switch(config)# ip pim rp-candidate eth-0-1 priority 0

 步骤3 配置rp候选端口

Switch(config)# ip pim rp-candidate eth-0-1 priority 0

 步骤4 配置dr优先级,使能单播收发bsm报文

Switch(config)# interface eth-0-1
Switch(config-if)# ip pim dr-priority 10
Switch(config-if)# ip pim unicast-bsm

 步骤5 退出配置模式

 Switch(config-if)# end

 步骤6 检查配置

检查候选BSR路由器

Switch# show ip pim sparse-mode bsr-router
PIMv2 Bootstrap information
This system is the Bootstrap Router (BSR)
BSR address: 20.0.1.21
Uptime: 00:37:12, BSR Priority: 64, Hash mask length: 10
Next bootstrap message in 00:00:04
Role: Candidate BSR
State: Elected BSR

检查候选BSR路由器

Switch# show ip pim sparse-mode bsr-router
PIMv2 Bootstrap information
BSR address: 20.0.1.21
Uptime: 00:02:39, BSR Priority: 64, Hash mask length: 10
Expires: 00:00:03
Role: Candidate BSR
State: Pending BSR
Switch# show ip pim sparse-mode bsr-router
PIMv2 Bootstrap information
BSR address: 20.0.1.21
Uptime: 00:40:20, BSR Priority: 64, Hash mask length: 10
Expires: 00:02:07
Role: Candidate BSR
State: Candidate BSR

E-BSR上检查RP

Switch# sh ip pim sparse-mode rp mapping
PIM Group-to-RP Mappings
This system is the Bootstrap Router (v2)
Group(s): 224.0.0.0/4
RP: 20.0.1.11
Info source: 20.0.1.11, via bootstrap, priority 0
Uptime: 00:00:30, expires: 00:02:04

C-BSR上检查RP

Switch# show ip pim sparse-mode rp mapping
PIM Group-to-RP Mappings
Group(s): 224.0.0.0/4
RP: 20.0.1.11
Info source: 20.0.1.21, via bootstrap, priority 0
Uptime: 00:00:12, expires: 00:02:18

5.3.2.4 配置PIM-SSM

PIM-SSM是借助PIM-SM的部分技术和IGMPv3来实现的,其建立组播转发树的过程与PIM-SM创建SPT树的过程相似,即接收者DR在知道组播数据源的具体位置后,直接向组播数据源发送Join消息,将组播数据流发送到接收者。

默认情况下,SSM组播组地址的范围为232.0.0.0~232.255.255.255。当用户加入的组播组属于SSM 组地址范围内,通过PIM-SSM的进行处理;当用户加入的组播组不属于SSM 组地址范围,通过PIM-SM的进行处理。

PIM-SSM的特点是网络用户能够预先知道组播源的具体位置。因此用户在加入组播组时,可以明确指定从哪些源接收信息。组成员端DR了解到用户的需求后,直接向组播源的方向发送Join 消息。Join消息逐跳向上传输,在源与组成员之间建立SPT

PIM-SSM只使用了PIM-SM的部分技术:无需维护RP、无需构建RPT、无需注册组播源,可以直接在源与组成员之间建立SPT

PIM-SSM可以跟PIM-SM在组播路由器上一起工作。PIM-SSM默认是disable

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 使能PIM-SSM

使能ssm

Switch(config)# ip pim ssm default

或者根据指定的acl来设置PIM-SSM的组范围:

Switch(config)# ip pim ssm range ipacl

以上两种配置方式只能同时存在一种,二选一。后配覆盖先配。

 步骤3 退出配置模式

 Switch(config)# end

 步骤4 检查配置

Switch# show running-config | include pim
ip pim ssm range ipacl

5.3.3 应用场景配置举例

5.4 PIM-DM配置

5.4.1 概述

5.4.1.1 功能简介

协议无关组播密集模式(PIM-DM)是一个组播路由协议,用来将密集分布的组播设备联系起来协同工作。它将有助于分散的网络节点节约带宽和通过发送单一流量到多个接收者来降低网络流量。

PIM-DM设想当一个组播源开始发送组播流的时候,所有的下游系统都期望接受这个组播流。刚开始组播流被泛洪到整个网络。当泛洪的时候,PIM-DM使用RPF来防止组播流的环路。如果某些网络区域没有该组播组的接收成员,PIM-DM会把转发分支通过剪枝来删除掉。

剪枝状态有一个生命周期,当生命周期超时后,组播数据将再一次开始转发,每个(S,G)对应的组播组都有自己的剪枝状态。当某个组播组有新的接收者出现在已经被剪枝的区域里,路由器会通过朝组播源发送"graft"消息来把剪枝状态转换成转发路径。

5.4.1.2 原理描述

PIM-DM模块是基于以下的IETF标准:RFC 3973

5.4.2 配置

Pim dm

PIM-DM是一个软状态协议,要求在所需的接口上启用PIM-DM协议,所有组播组的状态通过IGMP报告/离开消息和PIM消息来动态的维护。

本节提供了两个PIM-DM配置的相关的场景。下面的例子中使用的网络拓扑如上图;

组播流从Switch1eth-0-1口进来,接收者来与Switch2eth-0-1相连。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性和IP地址,并使能pim-dm

Switch1 配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.1.1.1/24
Switch(config-if)# ip pim dense-mode
Switch(config-if)# exit

Switch(config)# interface eth-0-9
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ip address 12.1.1.1/24
Switch(config-if)# ip pim dense-mode
Switch(config-if)# exit

Switch2 配置:

Switch# configure terminal
Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ip address 22.1.1.2/24
Switch(config-if)# ip pim dense-mode
Switch(config-if)# exit

Switch(config)# interface eth-0-9
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ip address 12.1.1.2/24
Switch(config-if)# ip pim dense-mode
Switch(config-if)# exit

 步骤3 配置静态路由

Switch1 配置:

Switch(config)# ip route 22.1.1.0/24 12.1.1.2

Switch2 配置:

Switch(config)# ip route 11.1.1.0/24 12.1.1.1

 步骤4 退出配置模式

 Switch(config)# end

 步骤5 检查配置

show ip pim dense-mode interface来显示Switch1上接口的详细信息.

Switch# show ip pim dense-mode interface
Address          Interface VIFIndex Ver/   Nbr
                                    Mode   Count
11.1.1.1         eth-0-1   0        v2/D   0    
12.1.1.1         eth-0-9   1        v2/D   1

show ip pim dense-mode neighbor 来显示Switch1上邻居的详细信息:

Switch# show ip pim dense -mode neighbor
Neighbor-Address Interface          Uptime/Expires    Ver
12.1.1.2         eth-0-9            00:01:00/00:01:44 v2

show ip pim dense-mode mroute detail 来显示PIM-DM组播路由表的信息:

Switch1

Switch# show ip pim dense-mode mroute
PIM-DM Multicast Routing Table
(11.1.1.2, 225.1.1.1)
  Source directly connected on eth-0-1
  State-Refresh Originator State: Originator
  Upstream IF: eth-0-1
    Upstream State: Forwarding
    Assert State: NoInfo
  Downstream IF List:
    eth-0-9, in 'olist':
      Downstream State: NoInfo
      Assert State: NoInfo

Switch2

Switch# show ip pim dense-mode mroute
PIM-DM Multicast Routing Table
(11.1.1.2, 225.1.1.1)
  RPF Neighbor: none
  Upstream IF: eth-0-9
    Upstream State: AckPending
    Assert State: NoInfo
  Downstream IF List:
    eth-0-1, in 'olist':
      Downstream State: NoInfo
      Assert State: NoInfo

5.4.3 应用场景配置举例

5.5 配置 IGMP Snooping

5.5.1 概述

5.5.1.1 功能简介

IGMP SnoopingInternet Group Management Protocol SnoopingIGMP侦听)是运行在二层以太网交换机上的组播约束机制,用于管理和控制组播组。

二层交换机通过IGMP Snooping来控制组播流量的泛洪。当二层以太网交换收到主机和路由器之间传递的IGMP报文时,IGMP Snooping将对IGMP报文所带的信息进行分析,将端口和MAC组播地址建立起映射关系,并根据这样的映射关系转发组播数据。组播路由器定期发送通用组查询来维护组播组成员关系。所有接收者将将发送IGMP报告报文来响应这个查询,交换机通过这个监听IGMP报告报文来建立转发表项。

二层的组播组可以通过IGMP报文动态建立,也可以静态配置。静态配置的组播组将覆盖动态学的组播组。

限制和指导:

VRRPRIPOSPF等协议使用了组播IP,因此在使能了IGMP Snooping的网络中,要避免使用这些IP组播地址,以免产生冲突而导致异常:

VRRP使用了224.0.0.18,因此组播MAC 0100.5E00.0012映射出的组播IPIGMP SnoopingVRRP的网络中避免使用。

RIP使用了224.0.0.9,因此组播MAC 0100.5E00.0009映射出的组播IPIGMP SnoopingRIP的网络中避免使用。

OSPF使用了224.0.0.5,因此组播MAC 0100.5E00.0005映射出的组播IPIGMP SnoopingOSPF的网络中避免使用。

5.5.1.2 原理描述

5.5.2 配置

5.5.2.1 配置启用IGMP Snooping

IGMP Snooping需要在全局和VLAN启用。当IGMP Snooping在全局模式下关闭时,此时仅仅在VLAN下启用IGMP Snooping是无效的。当IGMP Snooping在全局模式下开启时,可以选择性的在某些VLAN下关闭IGMP Snooping

默认情况下,IGMP Snooping在全局和每个VLAN上都已使能。

 步骤1 进入配置模式

Switch#configure terminal

 步骤2 分别在全局和vlan上使能igmp snooping

Switch(config)# ip igmp snooping
Switch(config)# ip igmp snooping vlan 1

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

使用下列命令检查vlan上的igmp snooping状态:

Switch # show ip igmp snooping vlan 1
Global Igmp Snooping Configuration
-------------------------------------------------
Igmp Snooping                             :Enabled
Igmp Snooping Fast-Leave                  :Disabled
Igmp Snooping Version                     :2
Igmp Snooping Robustness Variable         :2
Igmp Snooping Max-Member-Number           :2048
Igmp Snooping Unknown Multicast Behavior  :Flood
Igmp Snooping Report-Suppression          :Enabled
Vlan 1
-----------
Igmp Snooping                             :Enabled
Igmp Snooping Fast-Leave                  :Disabled
Igmp Snooping Report-Suppression          :Enabled
Igmp Snooping Version                     :2
Igmp Snooping Robustness Variable         :2
Igmp Snooping Max-Member-Number           :2048
Igmp Snooping Unknown Multicast Behavior  :Flood
Igmp Snooping Group Access-list           :N/A
Igmp Snooping Mrouter Port                :
Igmp Snooping Mrouter Port Aging Interval(sec) :255

5.5.2.2 配置IGMP Snooping快速离开

正常情况下,IGMP Snooping在接收到IGMP离开报文后不会直接将端口从组播组中删除,而是发送IGMP特定组查询报文,如果等待一段时间后没有得到响应,才将该端口从组播组中删除。启动快速删除功能后,IGMP Snooping收到IGMP离开报文时,直接将端口从组播组中删除。当端口下只有一个用户时,快速删除可以节省带宽。

 步骤1 进入配置模式

Switch#configure terminal

 步骤2 分别在全局和vlan上使能igmp快速离开功能

Switch(config)#ip igmp snooping fast-leave
Switch(config)#ip igmp snooping vlan 1 fast-leave

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch # show ip igmp snooping vlan 1
Global Igmp Snooping Configuration
-------------------------------------------------
Igmp Snooping                             :Enabled
Igmp Snooping Fast-Leave                  :Enabled
Igmp Snooping Version                     :2
Igmp Snooping Robustness Variable         :2
Igmp Snooping Max-Member-Number           :2048
Igmp Snooping Unknown Multicast Behavior  :Flood
Igmp Snooping Report-Suppression          :Enabled
Vlan 1
-----------
Igmp Snooping                             :Enabled
Igmp Snooping Fast-Leave                  :Enabled
Igmp Snooping Report-Suppression          :Enabled
Igmp Snooping Version                     :2
Igmp Snooping Robustness Variable         :2
Igmp Snooping Max-Member-Number           :2048
Igmp Snooping Unknown Multicast Behavior  :Flood
Igmp Snooping Group Access-list           :N/A
Igmp Snooping Mrouter Port                :
Igmp Snooping Mrouter Port Aging Interval(sec) :255

5.5.2.3 配置IGMP Snooping查询参数

三层交换机在所连接的网段上周期性的发送IGMP通用查询报文,通过解析返回的IGMP主机报告报文,获知该网段内哪些组播组有成员。组播路由器周期性地发送查询报文,当得到某一组成员的IGMP主机报告报文的时候,刷新该网段相应的组成员关系信息。

 步骤1 进入配置模式

Switch#configure terminal

 步骤2 配置igmp snooping 全局参数

Switch(config)# ip igmp snooping query-interval 100
Switch(config)# ip igmp snooping query-max-response-time 5
Switch(config)# ip igmp snooping last-member-query-interval 2000
Switch(config)# ip igmp snooping discard-unknown

 步骤3 配置igmp snooping vlan参数

Switch(config)# ip igmp snooping vlan 1 querier address 10.10.10.1
Switch(config)# ip igmp snooping vlan 1 querier
Switch(config)# ip igmp snooping vlan 1 query-interval 200
Switch(config)# ip igmp snooping vlan 1 query-max-response-time 5
Switch(config)# ip igmp snooping vlan 1 querier-timeout 100
Switch(config)# ip igmp snooping vlan 1 last-member-query-interval 2000
Switch(config)# ip igmp snooping vlan 1 discard-unknown

 步骤4 退出配置模式

Switch(config)# end

 步骤5 检查配置

Switch # show ip igmp snooping querier
Global Igmp Snooping Querier Configuration
-------------------------------------------------
Version                           :2
Last-Member-Query-Interval (msec) :2000
Last-Member-Query-Count           :2
Max-Query-Response-Time (sec)     :5
Query-Interval (sec)              :100
Global Source-Address             :0.0.0.0
TCN Query Count                   :2
TCN Query Interval (sec)          :10
TCN Query Max Respose Time (sec)  :5
Vlan 1:   IGMP snooping querier status
--------------------------------------------
Elected querier is : 0.0.0.0
--------------------------------------------
Admin state                       :Enabled
Admin version                     :2
Operational state                 :Non-Querier
Querier operational address       :10.10.10.1
Querier configure address         :10.10.10.1
Last-Member-Query-Interval (msec) :2000
Last-Member-Query-Count           :2
Max-Query-Response-Time (sec)     :5
Query-Interval (sec)              :200
Querier-Timeout (sec)             :100

5.5.2.4 配置IGMP Snooping组播路由端口

组播路由端口是交换机上连接到组播路由器的端口,可以动态学习或者静态配置。当某个VLAN的端口上收到IGMP通用组查询报文或者是PIMv2 Hello报文,该端口成为这个VLAN的组播路由端口。所有从组播路由端口上收到的的IGMP查询报文要在所属VLAN内广播。所有VLAN上收到IGMP报告/离开报文也将从组播路由端口转发(报文抑制关闭的情况下),另外所有从该VLAN上收到的组播流量将从组播路由端口转发。

 步骤1 进入配置模式

Switch#configure terminal

 步骤2 全局启用IGMP Snooping的报告抑制功能

Switch(config)# ip igmp snooping report-suppression

 步骤3 vlan上配置静态组播路由端口,启用报告抑制功能,配置动态组播路由端口老化时间

Switch(config)# ip igmp snooping vlan 1 mrouter interface eth-0-1
Switch(config)# ip igmp snooping vlan 1 report-suppression
Switch(config)# ip igmp snooping vlan 1 mrouter-aging-interval 200

 步骤4 退出配置模式

Switch(config)# end

 步骤5 检查配置

Switch# show ip igmp snooping vlan 1
Global Igmp Snooping Configuration
-------------------------------------------------
Igmp Snooping                             :Enabled
Igmp Snooping Fast-Leave                  :Disabled
Igmp Snooping Version                     :2
Igmp Snooping Robustness Variable         :2
Igmp Snooping Max-Member-Number           :2048
Igmp Snooping Unknown Multicast Behavior  :Flood
Igmp Snooping Report-Suppression          :Enabled
Vlan 1
-----------
Igmp Snooping                             :Enabled
Igmp Snooping Fast-Leave                  :Disabled
Igmp Snooping Report-Suppression          :Enabled
Igmp Snooping Version                     :2
Igmp Snooping Robustness Variable         :2
Igmp Snooping Max-Member-Number           :2048
Igmp Snooping Unknown Multicast Behavior  :Flood
Igmp Snooping Group Access-list           :N/A
Igmp Snooping Mrouter Port                :eth-0-1
Igmp Snooping Mrouter Port Aging Interval(sec) :200

5.5.2.5 配置IGMP Snooping查询TCN

可以通过配置TCN的时间间隔以及查询次数来适应STP收敛拓扑后的组播组学习以及更新。

 步骤1 进入配置模式

Switch#configure terminal

 步骤2 设置TCN的查询次数和TCN的查询时间间隔

Switch(config)# ip igmp snooping querier tcn query-count 5
Switch(config)# ip igmp snooping querier tcn query-interval 20

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch # show ip igmp snooping querier
Global Igmp Snooping Querier Configuration
-------------------------------------------------
Version                           :2
Last-Member-Query-Interval (msec) :1000
Max-Query-Response-Time (sec)     :10
Query-Interval (sec)              :125
Global Source-Address             :0.0.0.0
TCN Query Count                   :5
TCN Query Interval (sec)          :20
Vlan 1:   IGMP snooping querier status
--------------------------------------------
Elected querier is : 0.0.0.0
--------------------------------------------
Admin state                       :Disabled
Admin version                     :2
Operational state                 :Non-Querier
Querier operational address       :0.0.0.0
Querier configure address         :N/A
Last-Member-Query-Interval (msec) :1000
Max-Query-Response-Time (sec)     :10
Query-Interval (sec)              :125
Querier-Timeout (sec)             :255

5.5.2.6 配置IGMP Snooping报告抑制

交换机使用IGMP报告抑制功能来防止同一个IGMP报文重复发送给组播路由器。当IGMP路由器抑制使能时(默认情况下使能抑制),交换机将第一个IGMP报告报文发送给组播路由器,其余同样的IGMP报告报文将不再发送给组播路由器。这样就阻止了重复IGMP报告报文发送给组播路由器了。

 步骤1 进入配置模式

Switch#configure terminal

 步骤2 在全局和vlan使能报告抑制

Switch(config)# ip igmp snooping report-suppression
Switch(config)# ip igmp snooping vlan 1 report-suppression

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch # show ip igmp snooping
Global Igmp Snooping Configuration
-------------------------------------------------
Igmp Snooping                             :Enabled
Igmp Snooping Fast-Leave                  :Disabled
Igmp Snooping Version                     :2
Igmp Snooping Robustness Variable         :2
Igmp Snooping Max-Member-Number           :2048
Igmp Snooping Unknown Multicast Behavior  :Flood
Igmp Snooping Report-Suppression          :Enabled
Vlan 1
-----------
Igmp Snooping                             :Enabled
Igmp Snooping Fast-Leave                  :Disabled
Igmp Snooping Report-Suppression          :Enabled
Igmp Snooping Version                     :2
Igmp Snooping Robustness Variable         :2
Igmp Snooping Max-Member-Number           :2048
Igmp Snooping Unknown Multicast Behavior  :Flood
Igmp Snooping Group Access-list           :N/A
Igmp Snooping Mrouter Port                :
Igmp Snooping Mrouter Port Aging Interval(sec) :255

5.5.2.7 配置静态组播组

交换机在二层端口上收到IGMP报文时会建立IGMP Snooping的组记录。目前系统中也支持静态配置IGMP Snoopoing的组记录,在静态配置时需要指定组地址,二层端口,以及二层端口所属的VLAN

 步骤1 进入配置模式

Switch#configure terminal

 步骤2 配置静态组播组

Switch(config)# ip igmp snooping vlan 1 static-group 229.1.1.1 interface eth-0-2

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch# show ip igmp snooping groups
VLAN   Interface      Group-Address      Uptime     Expires-time 
1      eth-0-2        229.1.1.1          00:01:08   stopped

5.5.3 应用场景配置举例

5.6 配置 MVR

5.6.1 概述

5.6.1.1 功能简介

在传统的组播点播方式下,汇聚组播路由器下连一些接入交换机,接入交换机上连接了分布在不同VLAN中的用户。当这些不同VLAN的用户点播相同Group的节目时,汇聚的组播路由器需要为每个VLAN内的用户复制一份数据,每个VLAN的组播流量都要占用接入交换机的带宽。这样即增加了汇聚路由器的负担,也浪费接入设备的带宽。

MVR(组播VLAN注册)功能能够很好的解决这个问题。在靠近用户侧的接入交换机上启用组播VLAN,汇聚路由器只需把组播数据在源VLAN内发送给接入交换机,而不必在每个用户VLAN内都复制一份,接入交换机收到组播数据后再根据用户请求进行复制,给每个VLAN内的用户发送一份组播数据。从而节省了网络带宽,也减轻了三层设备的负担。

MVR依赖于IGMP Snooping进行工作,而且只有MVR全局配置的Group才会生效。如果在MVR的下游口上接收的IGMP报文中组播组不在MVR全局Group中,该报文将被忽略。通过在MVR的下游口上接收的IGMP报告/离开报文来维护接收者信息,MVR上游口收到组播数据后根据下游口的组播组信息来决定将组播数据从哪些VLAN的端口转发出去。

5.6.1.2 原理描述

以下是MVR协议概念的简要描述:

MVR:组播VLAN注册

Source vlan:组播VLAN的源VLAN

Source portMVR网络中的上游口,连接组播路由器的端口

Receiver portMVR网络中的下游口,连接接收者的端口

5.6.2 配置

mvr

Switch1eth-0-1上启用IGMP&PIM-SM

配置Switch2eth-0-1属于vlan111eth-0-2属于vlan10eth-0-3属于vlan30

Switch2启用MVR,从Switch1Switch2上拷贝一份组播流,在Switch2上再将这个组播流进行复制,从eth-0-2eth-0-3发送出去。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式,创建vlan

Switch2配置:

Switch(config)# vlan database
Switch(config-vlan)# vlan 111,10,30
Switch(config-vlan)# quit

 步骤3 进入接口配置模式,设置接口属性,使能pim

Switch1配置:

switch(config)# interface eth-0-1
switch(config-if)# no switchport
switch(config-if)# no shutdown
switch(config-if)# ip address 12.12.12.12/24
switch(config-if)# ip pim sparse-mode
switch(config-if)# exit

Switch2配置:

 Switch(config)# interface vlan 111
Switch(config-if)# exit
Switch(config)# interface vlan 10
Switch(config-if)# exit
Switch(config)# interface vlan 30
Switch(config-if)# exit
Switch(config)# interface eth-0-1
Switch(config-if)# switchport access vlan111
Switch(config)# interface eth-0-2
Switch(config-if)# switchport access vlan10
Switch(config)# interface eth-0-3
Switch(config-if)# switchport access vlan30
Switch(config-if)# exit

 步骤4 启用MVR

Switch2配置:

Switch(config)# no ip multicast-routing
Switch(config)# mvr
Switch(config)# mvr vlan 111
Switch(config)# mvr group 238.255.0.1 64
Switch(config)# mvr source-address 12.12.12.1
Switch(config)# interface eth-0-1
Switch(config-if)# mvr type source
Switch(config)# interface eth-0-2
Switch(config-if)# mvr type receiver vlan 10
Switch(config)# interface eth-0-3
Switch(config-if)# mvr type receiver vlan 30
Switch(config-if)# exit

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

Switch1

Switch# show ip igmp groups
IGMP Connected Group Membership
Group Address    Interface            Uptime   Expires  Last Reporter
238.255.0.1      eth-0-1              00:01:16 00:03:49 12.12.12.1
238.255.0.2      eth-0-1              00:01:16 00:03:49 12.12.12.1
238.255.0.3      eth-0-1              00:01:16 00:03:49 12.12.12.1
238.255.0.4      eth-0-1              00:01:16 00:03:49 12.12.12.1
238.255.0.5      eth-0-1              00:01:16 00:03:49 12.12.12.1
238.255.0.6      eth-0-1              00:01:16 00:03:49 12.12.12.1
238.255.0.7      eth-0-1              00:01:16 00:03:49 12.12.12.1
238.255.0.8      eth-0-1              00:01:16 00:03:49 12.12.12.1
238.255.0.9      eth-0-1              00:01:16 00:03:49 12.12.12.1
238.255.0.10     eth-0-1              00:01:16 00:03:49 12.12.12.1
……
238.255.0.64    eth-0-1              00:01:16 00:03:49 12.12.12.1

Switch2

Switch# show mvr
MVR Running: TRUE
MVR Multicast VLAN: 111
MVR Source-address: 12.12.12.1
MVR Max Multicast Groups: 1024
MVR Hw Rt Limit: 508
MVR Current Multicast Groups: 255

Switch# show mvr groups
VLAN   Interface      Group-Address      Uptime     Expires-time 
10     eth-0-2        238.255.0.1        00:03:23   00:02:03
10     eth-0-2        238.255.0.2        00:02:16   00:02:03
10     eth-0-2        238.255.0.3        00:02:16   00:02:03
10     eth-0-2        238.255.0.4        00:02:16   00:02:03
10     eth-0-2        238.255.0.5        00:02:16   00:02:03
10     eth-0-2        238.255.0.6        00:02:16   00:02:04
10     eth-0-2        238.255.0.7        00:02:16   00:02:04
10     eth-0-2        238.255.0.8        00:02:16   00:02:04
10     eth-0-2        238.255.0.9        00:02:16   00:02:04
10     eth-0-2        238.255.0.10       00:02:16   00:02:04
……
10     eth-0-2        238.255.0.64      00:01:50   00:02:29

5.6.3 应用场景配置举例

6   安全性配置指导  

6.1 端口安全配置

6.1.1 概述

6.1.1.1 功能简介

端口安全功能用来限制端口上可信任的MAC地址的数量。该端口只转发源MAC地址是可信MAC的数据包。可信MAC地址可以是静态配置的,也可以是动态学习的。

当可信MAC地址数量达到端口安全功能限制的最大值以后,无法继续配置或学习新的可信MAC地址。这时候收到的数据包,如果其源MAC地址不匹配当前端口上的已有的可信MAC地址列表中的任何表项,则数据包会被认为是不安全的,从而被丢弃。

注意,端口安全功能是将一系列它认为可信的MAC地址绑定到端口上的。在使能了端口安全功能的端口上,收到的数据包如果其源MAC地址不存在任何表项中,或者该地址被绑定到了其他的端口,这个数据包都会被认为是不安全的。

可信MAC地址表项有两种方式创建:

在接口配置模式下,通过命令行"switchport port-security mac-address"来配置。

动态自动学习。

收到不安全的报文并丢弃的同时,还有三种处理方式供选择,可以通过"switchport port-security violation"命令配置:

errdisable: 丢弃报文并将端口设为errdisable状态。请参考以太网配置指导中关于errdisable的章节。

protect: 仅丢弃报文,不作其他处理。

restrict: 丢弃报文并记录log

6.1.1.2 原理描述

6.1.2 配置

Port Security

通过以下配置,在上述拓扑中,只会学习前三条mac地址,将最后一条丢弃。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性,并使能端口安全功能

Switch(config)# interface eth-0-1
Switch(config-if)# switchport
Switch(config-if)# switchport port-security
Switch(config-if)# switchport port-security maximum 3
Switch(config-if)# switchport port-security mac-address 0000.1111.2222 vlan 1
Switch(config-if)# switchport port-security mac-address 0000.aaaa.bbbb vlan 1
Switch(config-if)# switchport port-security violation restrict
Switch(config-if)# exit

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch# show port-security
Secure Port  MaxSecureAddr  CurrentAddr  SecurityViolationMode
               (Count)        (Count)  
---------------------------------------------------------------
  eth-0-1           3             2       restrict

Switch# show port-security address-table
          Secure MAC address table
--------------------------------------------------------
Vlan    Mac Address       Type                 Ports
----    -----------       -------              -------
1       0000.1111.2222    SecureConfigured     eth-0-1
1       0000.aaaa.bbbb    SecureConfigured     eth-0-1

Switch# show port-security interface eth-0-1
Port security                   : enabled
Violation mode                  : discard packet and log
Maximum MAC addresses           : 3
Total MAC addresses                 : 2
Static configured MAC addresses     : 2

6.1.3 应用场景配置举例

6.2 VLAN安全配置

6.2.1 概述

6.2.1.1 功能简介

VLAN安全功能通过限制VLANMAC地址的数量,达到保护VLAN的目的。MAC地址可以是用户手动添加的,也可以是自动学习的。VlanMAC地址达到限制数量后,未知源MAC的报文可以按预先设置的行为进行处理。

系统支持两种类型的MAC地址:

静态MAC地址:手工配置的MAC地址

动态MAC地址:通过动态学习的MAC地址

用户可以指定当VLANMAC达到限制数量时的行为,通过命令行"vlan X mac-limit action"配置。支持的行为有下列三种:

Discard:丢弃未知源MAC地址的报文

Warn:丢弃未知的源MAC地址报文,并且在LOG中提示

Forward:报文正常转发,但是MAC不会进行学习。

系统还支持开、关VLANMAC地址学习功能。

6.2.1.2 原理描述

6.2.2 配置

6.2.2.1 配置VLAN MAC地址限制

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式,创建vlan,设置vlan的最大mac地址数量和超过最大数量后的行为

Switch# configure terminal
Switch(config)# vlan database
Switch(config)# vlan 2
Switch(config-vlan)# vlan 2 mac-limit maximum 100
Switch(config-vlan)# vlan 2 mac-limit action discard
Switch(config-vlan)# exit

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch# show vlan-security
Vlan  learning-en  max-mac-count  cur-mac-count  action
-------------------------------------------------------
2     Enable       100            0              Discard

6.2.2.2 配置VLAN MAC地址学习

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式,创建vlan,设置vlanmac地址学习开关

Switch(config)# vlan database
Switch(config)# vlan 2
Switch(config-vlan)# vlan 2 mac learning disable
Switch(config-vlan)# exit

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch# show vlan-security
Vlan  learning-en  max-mac-count  cur-mac-count  action
-------------------------------------------------------
2     Disable      100            0              Discard

6.2.3 应用场景配置举例

6.3 Time-Range配置

6.3.1 概述

6.3.1.1 功能简介

Time range定义了一段时间,这段时间可以是绝对时间,也可以是相对的周期性时间。Time range本身没有意义,通常被用在基于时间的协议或者应用中(比如acl)。在实际应用中,它可以表示在这段时间内,某些规则或操作有效。Time range定义的时间依赖于系统时钟。

6.3.1.2 原理描述

6.3.2 配置

6.3.2.1 配置绝对时间段

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建time range,配置绝对时间

Switch(config)# time-range test-absolute
Switch(config-tm-range)# absolute start 1:1:2 jan 1 2012 end 1:1:3 jan 7 2012
Switch(config-tm-range)# exit

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

DUT1# show time-range
time-range test-absolute
   absolute start 01:01:02 Jan 01 2012 end 01:01:03 Jan 07 2012

6.3.2.2 配置周期时间段

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建time range,配置周期时间

Switch(config)# time-range test-periodic
Switch(config-tm-range)# periodic 1:1 mon to 1:1 wed
Switch(config-tm-range)# exit

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

DUT1# show time-range
time-range test-periodic
   periodic 01:01 Mon to 01:01 Wed

6.3.3 应用场景配置举例

6.4 访问控制列表配置

6.4.1 概述

6.4.1.1 功能简介

ACLAccess Control List,访问控制列表)主要用来实现流识别、访问控制功能。网络设备为了过滤数据包,需要配置一系列的匹配规则,以识别需要过滤的报文。在识别出特定的报文之后,才能根据预先设定的策略允许或禁止相应的数据包通过。ACL 通过一系列的匹配条件对数据包进行分类,这些条件可以是数据包的源地址、目的地址、端口号等。

6.4.1.2 原理描述

下面简要介绍用于描述ACL相关的术语和概念:

访问控制条目(ACE:每一个ACE包括一个动作元素(允许或者拒绝)和一系列基于标准的过滤元素,例如源地址、目的地址、协议、特定协议参数等等。

MAC ACLMAC ACL可以根据MAC-SAMAC-DA过滤报文,MAC地址可以配置掩码,或者配置为主机MACMAC ACL也可以根据其他二层字段过滤报文,例如COSVLAN-IDINNER-COSINNER-VLAN-IDL2 typeL3 type

IPv4 ACLIPv4 ACL可以根据IP-SAIP-DA过滤报文,IP地址可以配置掩码或者配置为主机IP地址。IPv4 ACL也可以根据其他三层字段过滤报文,例如DSCPL4 Protocol字段以及其他字段(TCP端口、UDP端口等等)。

时间段:定义一个时间段或时间周期,在这段时间内,ACE是有效的;在这个时间段或周期之外,ACE无效。

6.4.2 配置

acl

在这个例子中,在端口eth-0-1上使用MAC ACL,允许源MAC地址为0000.0000.1111的报文通过,拒绝其他报文。在eth-0-2使用IPv4 ACL,允许源IP地址为1.1.1.1/24的报文通过,拒绝其他报文。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建访问控制列表

mac 访问控制列表:

Switch(config)# mac access-list mac
Switch(config-mac-acl)# permit src-mac host 0000.0000.1111 dest-mac any
Switch(config-mac-acl)# deny src-mac any dest-mac any
Switch(config-mac-acl)# exit

ip 访问控制列表:

Switch(config)# ip access-list ipv4
Switch(config-ip-acl)# permit any 1.1.1.1 0.0.0.255 any
Switch(config-ip-acl)# deny any any any
Switch(config-ip-acl)# exit

 步骤3 创建分类器,绑定访问控制列表

Switch(config)# class-map cmap1
Switch(config-cmap)# match access-group mac
Switch(config-cmap)# exit

Switch(config)# class-map cmap2
Switch(config-cmap)# match access-group ipv4
Switch(config-cmap)# exit

 步骤4 创建策略,绑定分类器

Switch(config)# policy-map pmap1
Switch(config-pmap)# class cmap1
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit

Switch(config)# policy-map pmap2
Switch(config-pmap)# class cmap2
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit

 步骤5 在接口上应用策略

Switch(config)# interface eth-0-1
Switch(config-if)# service-policy input pmap1
Switch(config-if)# exit

Switch(config-if)# interface eth-0-2
Switch(config-if)# service-policy input pmap2
Switch(config-if)# exit

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

使用命令show running-config,屏幕回显内容如下所示。

Switch# show running-config
mac access-list mac
  10 permit src-mac host 0000.0000.1111 dest-mac any
  20 deny src-mac any dest-mac any
!
ip access-list ipv4
  10 permit any 1.1.1.0 0.0.0.255 any
  20 deny any any any
!
class-map match-any cmap1
match access-group mac
!
class-map match-any cmap2
match access-group ipv4
!
policy-map pmap1
class cmap1
!
policy-map pmap2
class cmap2
!
interface eth-0-1
service-policy input pmap1
!
interface eth-0-2
service-policy input pmap2
!

6.4.3 应用场景配置举例

6.5 扩展访问控制列表配置

6.5.1 概述

6.5.1.1 功能简介

扩展IPV4 ACL包含MAC ACEIP ACEMAC ACE匹配所有非IPV6和非MPLS报文,IP ACE匹配所有IPV4报文。

6.5.1.2 原理描述

下面介绍了扩展ACL有关的术语和概念:

扩展IPV4 ACL:包含MAC ACEIP ACE

MAC ACE:可以根据MAC-SAMAC-DA过滤报文,MAC地址可以配置掩码,或者配置为主机MAC;也可以根据其他二层字段过滤报文,例如COSVLAN-IDINNER-COSINNER-VLAN-IDL2 typeL3 type

IPv4 ACE:可以根据IP-SAIP-DA过滤报文,IP地址可以配置掩码或者配置为主机IP地址;也可以根据其他三层字段过滤报文,例如DSCPL4 Protocol字段以及其他字段(TCP端口、UDP端口等等)。

用户可以通过MAC ACEIP ACE各种组合,以及不同的顺序实现不同的需求。

6.5.2 配置

extern acl

下面的例子描述如何通过扩展IPV4 ACL实现在端口eth-0-1上允许源MAC0.0.1111报文COS2的报文,允许所有TCP的报文,禁止其他报文进入系统。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建访问控制列表

Switch(config)# ip access-list ipxacl extend
Switch(config-ex-ip-acl)# permit src-mac host 0000.0000.1111 dest-mac any cos 2
Switch(config-ex-ip-acl)# permit tcp any any
Switch(config-ex-ip-acl)# deny src-mac any dest-mac any
Switch(config-ex-ip-acl)# end

 步骤3 创建分类器,绑定访问控制列表

Switch(config)# class-map cmap
Switch(config-cmap)# match access-group ipxacl
Switch(config-cmap)# exit

 步骤4 创建策略,绑定分类器

Switch(config)# policy-map pmap
Switch(config-pmap)# class cmap
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit

 步骤5 在接口上应用策略

Switch(config)# interface eth-0-1
Switch(config-if)# service-policy input pmap
Switch(config-if)# exit

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

使用如下命令验证配置结果:

Switch# show running-config
ip access-list ipxacl extend
  10 permit src-mac host 0000.0000.1111 dest-mac any cos 2
  20 permit tcp any any
  30 deny src-mac any dest-mac any
!
class-map match-any cmap
match access-group ipxacl
!
policy-map pmap
class cmap
!
interface eth-0-1
service-policy input pmap
!
Switch# show access-list ip
ip access-list ipxacl extend
  10 permit src-mac host 0000.0000.1111 dest-mac any cos 2
  20 permit tcp any any
  30 deny src-mac any dest-mac any

6.5.3 应用场景配置举例

6.6 IPv6 访问控制列表配置

6.6.1 概述

6.6.1.1 功能简介

ACLv6Access Control List,访问控制列表)主要用来实现IPv6流识别、访问控制功能。网络设备为了过滤数据包,需要配置一系列的匹配规则,以识别需要过滤的报文。在识别出特定的报文之后,才能根据预先设定的策略允许或禁止相应的数据包通过。ACL 通过一系列的匹配条件对数据包进行分类,这些条件可以是数据包的源地址、目的地址、端口号等。

6.6.1.2 原理描述

下面简要介绍用于描述ACLv6相关的术语和概念:

访问控制条目(ACE:每一个ACE包括一个动作元素(允许或者拒绝)和一个基于标准的过滤元素,例如源地址、目的地址、协议、特定协议参数等等。

IPv6 ACLIPv6 ACL可以根据IP-SAIP-DA过滤报文,IP地址可以配置掩码或者配置为主机IP地址。IPv6 ACL也可以根据其他三层字段过滤报文,例如L4 Protocol字段以及其他字段(TCP端口、UDP端口等等)。

时间段:定义一个时间段或时间周期,在这段时间内,ACE是有效的;在这个时间段或周期之外,ACE无效。

6.6.2 配置

ipv6 acl

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局使能ipv6

Switch(config)# ipv6 enable

 步骤3 创建访问控制列表

mac 访问控制列表:

Switch(config)# mac access-list mac
Switch(config-mac-acl)# permit src-mac host 0000.0000.1111 dest-mac any
Switch(config-mac-acl)# deny src-mac any dest-mac any
Switch(config-mac-acl)# exit

ipv6 访问控制列表:

Switch(config)# ipv6 access-list ipv6
Switch(config-ipv6-acl)# permit any 2001::/64 any
Switch(config-ipv6-acl)# deny any any any
Switch(config-ipv6-acl)# exit

 步骤4 创建分类器,绑定访问控制列表

Switch(config)# class-map cmap1
Switch(config-cmap)# match access-group mac
Switch(config-cmap)# exit

Switch(config)# class-map cmap2
Switch(config-cmap)# match access-group ipv6
Switch(config-cmap)# exit

 步骤5 创建策略,绑定分类器

Switch(config)# policy-map pmap1
Switch(config-pmap)# class cmap1
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit

Switch(config)# policy-map pmap2
Switch(config-pmap)# class cmap2
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit

 步骤6 在接口上应用策略

Switch(config)# interface eth-0-1
Switch(config-if)# service-policy input pmap1
Switch(config-if)# exit

Switch(config-if)# interface eth-0-2
Switch(config-if)# service-policy input pmap2
Switch(config-if)# exit

 步骤7 退出配置模式

Switch(config)# end

 步骤8 检查配置

使用命令show running-config,屏幕回显内容如下所示:

Switch# show running-config
mac access-list mac
  10 permit src-mac host 0000.0000.1111 dest-mac any
  20 deny src-mac any dest-mac any
!
ipv6 access-list ipv6
  10 permit any 2001::/64 any
  20 deny any any any
!
class-map match-any cmap1
match access-group mac
!
class-map match-any cmap2
match access-group ipv4
!
policy-map pmap1
class cmap1
!
policy-map pmap2
class cmap2
!
interface eth-0-1
service-policy input pmap1
!
interface eth-0-2
service-policy input pmap2
!

6.6.3 应用场景配置举例

6.7 Port-Group配置

6.7.1 概述

6.7.1.1 功能简介

系统包装port-group的概念,专门用来实现基于ACL规则的端口的聚合组,可以将多个端口加入一个port-group,端口支持普通物理口和AGG端口。用户基于port-group应用ACL策略,这个时候一个port-group只会下一份规则,同时ACLAction也是聚合的效果。

6.7.1.2 原理描述

6.7.2 配置

6.7.2.1 配置端口聚合组

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建port group,添加成员口

Switch(config)# port-group port_group_1
Switch(config-port-group)# member interface eth-0-1
Switch(config-port-group)# member interface agg 1
Switch(config-port-group)# exit

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

DUT1# show running-config port-group
port-group port_group_1
   member interface eth-0-1
   member interface agg1

6.7.3 应用场景配置举例

6.8 Vlan-Group配置

6.8.1 概述

6.8.1.1 功能简介

系统包装vlan-group的概念,专门用来实现基于ACL规则的VLAN的聚合组,可以将多个VLAN加入一个vlan-group。用户基于vlan-group应用ACL策略,这个时候一个vlan-group只会下一份规则,同时ACLAction也是聚合的效果。

6.8.1.2 原理描述

6.8.2 配置

6.8.2.1 配置Vlan聚合组

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建vlan group,添加成员vlan

Switch(config)# vlan-group vlan_group_1
Switch(config-vlan-group)# member vlan 10
Switch(config-vlan-group)# member vlan 20
Switch(config-vlan-group)# exit

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

DUT1# show running-config vlan-group
vlan-group vlan_group_1
   member vlan 10
   member vlan 20

6.8.3 应用场景配置举例

6.9 COPP控制面板策略配置

6.9.1 概述

6.9.1.1 功能简介

COPPcontrol-plane protect)主要用来对上送CPU的报文进行过滤和限速。它主要将上送CPU的报文数量限制在一定范围内,保证CPU对业务的正常处理,在原有exception基础上对上从CPU的报文做更精细的控制。

6.9.1.2 原理描述

下面简要介绍用于描述ACL相关的术语和概念:

访问控制条目(ACE:每一个ACE包括一个动作元素(允许或者拒绝)和一系列基于标准的过滤元素,例如源地址、目的地址、协议、特定协议参数等等。

COPP ACL: copp acl 是根据报文上CPUexception处理报文的,系统支持如下exceptionany, ipda, fwd-to-cpu,slow-protocol, bpdu, erps, eapol, smart-link, dhcp, rip, ospf, pim, bgp, vrrp,ldp, ptp, rsvp, icmp-redirect, mcast-rpf-fail, macsa-mismatch,vlan-security-discard, port-security-discard, ip-option, udld,dot1x-mac-bypass, 12protocol-tunnel, arp, igmp,ssh,mlag,telnetCOPP仅仅对上送CPU的报文进行限速或者过滤,不处理转发的报文.

时间段:定义一个时间段或时间周期,在这段时间内,ACE是有效的;在这个时间段或周期之外,ACE无效。

6.9.2 配置

copp_acl

下面这个例子中,在端口eth-0-1上使用COPP ACL,对上CPUexceptionarp类型的报文进行过滤。首先用测试仪构造报文:DA001E.0811.065DSA0000.0010.0000arp类型选择arp-request, Sender Hardware Address0000.0000.0000Target Protocol Address:10.0.0.1,其余配置如下

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建控制面板策略

copp 控制面板策略:

Switch(config)# control-plane access-list test1
Switch(config-cp-acl)# deny exception arp arp-request
Switch(config-cp-acl)# exit

 步骤3 创建分类器,绑定copp控制面板策略

Switch(config)# class-map type control-plane cmap1
Switch(config-cmap-cp)# match access-group test1
Switch(config-cmap-cp)# exit

 步骤4 创建策略,绑定分类器

Switch(config)#policy-map type control-plane pmap1
Switch(config-pmap-cp)#class type control-plane cmap1
Switch(config-pmap-cp-c)#exit
Switch(config-pmap-cp)#exit

 步骤5 在接口上应用策略

Switch(config)#control-plane
Switch(config-control-plane)#service-policy type control-plane input pmap1

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

使用命令show running-config,屏幕回显内容如下所示。

Switch# show running-config
control-plane access-list test1
  10 deny exception arp arp-request
!
class-map type control-plane cmap1
match access-group test1
!
policy-map type control-plane pmap1
class type control-plane cmap1
!
control-plane
service-policy type control-plane input pmap1

使用命令show cpu traffic-statistics receive ,屏幕回显内容如下所示。

Switch# show cpu traffic-statistics receive

statistics rate time is 5 second(s)

reason       count(packets)       rate(pps)

arp          1029059                 0    

total        1029059                 0       

6.9.3 应用场景配置举例

6.10 Dot1x 配置

6.10.1 概述

6.10.1.1 功能简介

IEEE 802网络在实际部署中,不可避免的会出现未经授权的设备在物理上接入到网络中。

802.1x 协议提供一种基于端口的网络接入控制协议(port based network access control protocol)。基于端口的网络接入控制是指在局域网接入设备的端口这一级对所接入的用户设备进行认证和控制。连接在端口上的用户设备如果能通过认证,就可以访问局域网中的资源;如果不能通过认证,则无法访问局域网中的资源。

使用802.1x的系统为典型的Client/Server体系结构,包括三个实体:

客户端设备(PC):请求访问LAN和交换机服务,响应来自交换机的请求。工作站必须运行符合802.1X协议的客户端软件,如Linuxxsupplicant

认证服务器:执行客户端的实际认证。认证服务器验证客户的身份,并通知交换机客户端是否具有访问LAN和交换机服务的权限。由于交换机作为代理,认证服务对客户端是透明的。在此版本中,支持可扩展身份验证协议(EAP)的远程身份验证拨号用户服务(RADIUS)服务器是唯一支持的认证服务器。 RADIUS工作于客户机/服务器模式,服务器和多个RADIUS客户端之间交换安全的身份验证信息。

交换机(边缘交换机或无线接入点):控制基于客户端的认证状态网络的物理访问。交换机作为客户端和认证服务器之间的中介(代理),从客户端请求身份信息,通过认证服务器检查这些信息,并将认证结果返回到客户端。交换机包含RADIUS客户端,负责EAP帧的封装和解封,以及与认证服务器交互。当交换机收到EAPOL帧并中继到身份验证服务器时,以太网报头被剥离,剩下的EAP帧则重新封装为RADIUS格式。 EAP帧在封装期间不会被修改或审查,并且验证服务器必须支持EAP在本机的帧格式。当交换机接收到来自验证服务器的报文,将服务器的帧头去掉,然后将剩下的EAP帧封装为以太网报文格式并发送到客户端。我们可以在Access端口或者三层路由端口上配置dot1x

6.10.1.2 原理描述

参考 IEEE Std 802.1X-2004

6.10.2 配置

6.10.2.1 dot1x基础配置

dot1x

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局使能dot1x

Switch(config)# dot1x system-auth-ctrl

 步骤3 进入接口配置模式,配置接口属性,并使能dot1x

Switch(config)# interface eth-0-25
Switch(config-if)# switchport mode access
Switch(config-if)# dot1x port-control auto
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface vlan 1
Switch(config-if)# ip address 192.168.100.1/24
Switch(config-if)# exit

 步骤4 配置三层接口属性并配置Radius服务器

Switch(config)# interface eth-0-26
Switch(config-if)# no switchport
Switch(config-if)# ip address 202.38.100.1/24
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# radius-server host 202.38.100.7
Switch(config)# radius-server host 2001:1000::1
Switch(config)# radius-server key test
Switch(config)# exit

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

Switch# show dot1x
802.1X Port-Based Authentication Enabled
  RADIUS server address: 2001:1000::1:1812
  Next radius message ID: 0
  RADIUS server address: 202.38.100.7:1812
  Next radius message ID: 0
Switch# show dot1x interface eth-0-25
802.1X info for interface eth-0-25
  portEnabled            : true
  portControl            : Auto
  portMode               : Port based
  portStatus             : Authorized
  Mac Auth bypass        : disabled
  reAuthenticate         : disabled
  reAuthPeriod           : 3600
  Max user number        : 255
  Current session number : 1
  Accept user number     : 1
  Reject user number     : 0
  Guest VLAN             : N/A
  Assign VLAN            : N/A
  QuietPeriod            : 60
  ReqMax                 : 2
  TxPeriod               : 30
  SuppTimeout            : 30
  ServerTimeout          : 30
  CD: adminControlledDirections : in
  CD: operControlledDirections  : in
  CD: bridgeDetected            : false
========================================

session 1: 1 - 0011.0100.0001
----------------------------------------
user name : admin
  abort:F fail:F start:F timeout:F success:T
  PAE: state: Authenticated - portMode: Auto
  PAE: reAuthCount: 0 - rxRespId: 0
  BE: state: Idle - reqCount: 0 - idFromServer: 5

6.10.2.2 在路由接口上启用dot1x

上述基础配置介绍了在access口上启用dot1x。该功能也可以在路由接口上启用。配置如下:

Switch(config)# interface eth-0-25
Switch(config-if)# no switchport
Switch(config-if)# ip address 192.168.100.1/24
Switch(config-if)# dot1x port-control auto
Switch(config-if)# no shutdown
Switch(config-if)# exit

6.10.2.3 采用强制模式

可以将dot1x认证状态设置为强制认证通过,或者强制未通过:

强制认证通过:

Switch(config)# interface eth-0-25
Switch(config-if)# dot1x port-control force-authorized
Switch(config-if)# exit

强制未通过:

Switch(config)# interface eth-0-25
Switch(config-if)# dot1x port-control force-unauthorized
Switch(config-if)# exit

force-authorizedforce-unauthorized,以及前面例子提到的auto,三者只能为其一,以最后一次配置为准。

6.10.2.4 开启dot1x计费功能

Dot1x计费功能可以在用户认证通过后记录网络资源的使用情况,默认dot1x的计费功能是关闭的,需要在全局配置模式打开该功能。

使能dot1x计费:

Switch(config)# dot1x accounting-mode radius

Dot1x计费使能后,如果用户上线,设备会向服务器发送计费开启请求,如果服务器未响应设备的请求,则会造成计费失败,需要执行相应的开始计费失败的策略:

online:为了避免因网络故障导致的计费失败对用户造成影响,可以配置onine参数,允许用户上线。

offline:只要计费失败就停止为用户提供服务,可以配置offline参数,拒绝用户上线。

默认开始计费失败后执行offline策略。

Switch(config)# dot1x accounting start-fail online

用户可以配置使能实时计费功能,设备向计费服务器定时发送实时计费报文,计费服务器收到实时计费报文后才进行计费,避免服务器无法收到计费停止报文而异常计费的情况。同时,用户可以配置允许的实时计费请求最大无响应次数,以及实时计费失败后采取的策略。缺省情况下,允许的实时计费请求最大无响应次数为3次,实时计费失败后允许用户在线。

Switch(config)# dot1x accounting realtime 60
Switch(config)# dot1x accounting interim-fail max-times 2 offline

6.10.2.5 dot1x其他可选参数

服务器定时器: 重新激活RADIUS服务器的等待时间;RADIUS请求发送到服务器的最大可以失败的次数;RADIUS服务器无响应的超时时间。

Switch(config)# radius-server deadtime 10
Switch(config)# radius-server retransmit 5
Switch(config)# radius-server timeout 10

端口属性: 未经授权之前重新验证尝试的次数;协议版本;在HELD状态下的静默时间;使能重新认证;重新认证的时间间隔;认证服务器响应超时时间;客户端响应超时时间;向客户端请求身份信息的时间间隔; 使能与客户端的握手保活功能,保活周期配置。

Switch(config)# interface eth-0-25
Switch(config-if)# dot1x  max-req  5
Switch(config-if)# dot1x protocol-version 1
Switch(config-if)# dot1x quiet-period 120
Switch(config-if)# dot1x reauthentication
Switch(config-if)# dot1x timeout re-authperiod 1800
Switch(config-if)# dot1x timeout server-timeout 60
Switch(config-if)# dot1x timeout supp-timeout 60
Switch(config-if)# dot1x timeout tx-period 60
Switch(config-if)# dot1x handshake
Switch(config-if)# dot1x timeout handshake-period 1
Switch(config-if)# exit

6.10.3 应用场景配置举例

6.10.3.1 服务器端配置,以WinRadius为例

选择Setting-> System

配置Radius服务器的密码共享密钥、认证端口和计费端口

在服务器端配置用户名和密码

6.11 Guest VLAN 配置

6.11.1 概述

6.11.1.1 功能简介

如果用户因为没有专用的认证客户端或者客户端版本过低等原因,导致无法认证成功,用户所在的端口会被加入GuestVlanGuestVlan 是一个不经认证也可以访问的VLAN。在该VLAN 内,用户可以进行例如客户端下载以及升级等操作。当用户利用这些资源,安装或者升级了认证客户端后,又可以进行正常的认证过程,从而访问其他的网络资源。开启802.1x 特性、正确配置GuestVlan 后,当设备从某一端口发送触发认证报文 (EAP-Request/Identity)超过设定的最大次数而没有收到客户端的任何回应报文后,该端口会被加入到GuestVlan 内。此时用户发起认证,若认证失败,则端口仍然处于guest vlan中;如果认证成功,则端口返回到用户配置的VLAN

Guest VLAN的功能只能配置在Access 端口上,不能作用于3层物理口(routed port)或者trunk端口上。

6.11.1.2 原理描述

6.11.2 配置

Guest vlan: before authenticated

如图所示,eth-0-22是一个使能了802.1x功能的端口,它处于VLAN 10内。Update server是用于客户端下载和升级的服务器,处于VLAN 20内。在eth-0-22上使能guest vlan特性,当设备从端口触发认证报文超过设定的最大次数而没有收到任何回应报文后,端口被加入guest VLAN 20中。此时客户端和update server都在VLAN 20内,客户端可以访问update server并下载802.1x客户端。

Guest vlan: after authenticated

连接认证服务器radius server的上行端口eth-0-23使一个3层物理口,它的IP地址为202.38.100.1radius server的地址为202.38.100.7。当认证成功之后,端口eth-0-22重新处于VLAN 10内,客户端可以访问internet了。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式并创建vlan

Switch(config)# vlan database
Switch(config-vlan)# vlan 10
Switch(config-vlan)# vlan 20
Switch(config-vlan)# exit

 步骤3 全局使能dot1x

Switch(config)# dot1x system-auth-ctrl

 步骤4 进入接口配置模式,配置接口属性,并使能dot1x,配置guest vlan

Switch(config)# interface eth-0-22
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 10
Switch(config-if)# dot1x port-control auto
Switch( config-if)# no shutdown
Switch(config-if)# dot1x guest vlan 20
Switch(config-if)# exit

 步骤5 配置三层接口属性并配置Radius服务器

Switch(config)# interface eth-0-23
Switch(config-if)# no switchport
Switch(config-if)# ip address 202.38.100.1/24
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# radius-server host 202.38.100.7
Switch(config)# radius-server key test
Switch(config)#end

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

在未配置Guest VLAN之前的初始状态如命令show running-config的屏显内容所示。

Switch# show running-config
dot1x system-auth-ctrl
radius-server host 202.38.100.7 key test
vlan database
vlan 10,20
!
interface eth-0-22
switchport access vlan 10
dot1x port-control auto
dot1x guest-vlan 20
!
interface eth-0-23
no switchport
ip address 202.38.100.1/24
!

Switch# show dot1x interface eth-0-22
802.1X info for interface eth-0-22
  portEnabled            : true
  portControl            : Auto
  portMode               : Port based
  portStatus             : Unauthorized
  Mac Auth bypass        : disabled
  reAuthenticate         : disabled
  reAuthPeriod           : 3600
  Max user number        : 255
  Current session number : 0
  Accept user number     : 0
  Reject user number     : 0
  Guest VLAN             : 20
  Assign VLAN            : N/A
  QuietPeriod            : 60
  ReqMax                 : 2
  TxPeriod               : 30
  SuppTimeout            : 30
  ServerTimeout          : 30
  CD: adminControlledDirections : in
  CD: operControlledDirections  : in
  CD: bridgeDetected            : false
========================================

Switch# show vlan brief
VLAN ID  Name            State   STP ID  DSCP    Member ports                  
                                                 (u)-Untagged, (t)-Tagged
======= ================ ======= ======= ======= ========================
1       default          ACTIVE  0       Disable eth-0-1(u) eth-0-2(u)
                                                 eth-0-3(u) eth-0-4(u)
                                                 eth-0-5(u) eth-0-6(u)
                                                 eth-0-7(u) eth-0-8(u)
                                                 eth-0-9(u) eth-0-10(u)
                                                 eth-0-11(u) eth-0-12(u)
                                                 eth-0-13(u) eth-0-14(u)
                                                 eth-0-15(u) eth-0-16(u)
                                                 eth-0-17(u) eth-0-18(u)
                                                 eth-0-19(u) eth-0-20(u)
                                                 eth-0-21(u) eth-0-24(u)
                                                 eth-0-25(u) eth-0-26(u)
                                                 eth-0-27(u) eth-0-28(u)
                                                 eth-0-29(u) eth-0-30(u)
                                                 eth-0-31(u) eth-0-32(u)
                                                 eth-0-33(u) eth-0-34(u)
                                                 eth-0-35(u) eth-0-36(u)
                                                 eth-0-37(u) eth-0-38(u)
                                                 eth-0-39(u) eth-0-40(u)
                                                 eth-0-41(u) eth-0-42(u)
                                                 eth-0-43(u) eth-0-44(u)
                                                 eth-0-45(u) eth-0-46(u)
                                                 eth-0-47(u) eth-0-48(u)
10      VLAN0010         ACTIVE  0       Disable eth-0-22(u)
20      VLAN0020         ACTIVE  0       Disable

配置Guest VLAN之后,客户端的状态信息如下面屏幕回显信息所示。

通过认证前:

Switch# show dot1x interface eth-0-22
802.1X info for interface eth-0-22
  portEnabled            : true
  portControl            : Auto
  portMode               : Port based
  portStatus             : Unauthorized
  Mac Auth bypass        : disabled
  reAuthenticate         : disabled
  reAuthPeriod           : 3600
  Max user number        : 255
  Current session number : 1
  Accept user number     : 0
  Reject user number     : 1
  Guest VLAN             : 20(Port Authorized by guest vlan)
  Assign VLAN            : N/A
  QuietPeriod            : 60
  ReqMax                 : 2
  TxPeriod               : 30
  SuppTimeout            : 30
  ServerTimeout          : 30
  CD: adminControlledDirections : in
  CD: operControlledDirections  : in
  CD: bridgeDetected            : false
========================================

session 1: 1 - 0011.0100.0001
----------------------------------------
user name : admin
  abort:F fail:T start:F timeout:F success:F
  PAE: state: Held - portMode: Auto
  PAE: reAuthCount: 1 - rxRespId: 0
  BE: state: Idle - reqCount: 0 - idFromServer: 92

Switch# show vlan brief
VLAN ID  Name            State   STP ID  DSCP    Member ports                  
                                                 (u)-Untagged, (t)-Tagged
======= ================ ======= ======= ======= ========================
1       default          ACTIVE  0       Disable eth-0-1(u) eth-0-2(u)
                                                 eth-0-3(u) eth-0-4(u)
                                                 eth-0-5(u) eth-0-6(u)
                                                 eth-0-7(u) eth-0-8(u)
                                                 eth-0-9(u) eth-0-10(u)
                                                 eth-0-11(u) eth-0-12(u)
                                                 eth-0-13(u) eth-0-14(u)
                                                 eth-0-15(u) eth-0-16(u)
                                                 eth-0-17(u) eth-0-18(u)
                                                 eth-0-19(u) eth-0-20(u)
                                                 eth-0-21(u) eth-0-24(u)
                                                 eth-0-25(u) eth-0-26(u)
                                                 eth-0-27(u) eth-0-28(u)
                                                 eth-0-29(u) eth-0-30(u)
                                                 eth-0-31(u) eth-0-32(u)
                                                 eth-0-33(u) eth-0-34(u)
                                                 eth-0-35(u) eth-0-36(u)
                                                 eth-0-37(u) eth-0-38(u)
                                                 eth-0-39(u) eth-0-40(u)
                                                 eth-0-41(u) eth-0-42(u)
                                                 eth-0-43(u) eth-0-44(u)
                                                 eth-0-45(u) eth-0-46(u)
                                                 eth-0-47(u) eth-0-48(u)
10      VLAN0010         ACTIVE  0       Disable
20      VLAN0020         ACTIVE  0       Disable eth-0-22(u)
    Client is authenticated

通过认证后:

Switch# show dot1x interface eth-0-22
802.1X info for interface eth-0-22
  portEnabled            : true
  portControl            : Auto
  portMode               : Port based
  portStatus             : Authorized
  Mac Auth bypass        : disabled
  reAuthenticate         : disabled
  reAuthPeriod           : 3600
  Max user number        : 255
  Current session number : 1
  Accept user number     : 1
  Reject user number     : 0
  Guest VLAN             : 20
  Assign VLAN            : N/A
  QuietPeriod            : 60
  ReqMax                 : 2
  TxPeriod               : 30
  SuppTimeout            : 30
  ServerTimeout          : 30
  CD: adminControlledDirections : in
  CD: operControlledDirections  : in
  CD: bridgeDetected            : false
========================================

session 1: 1 - 0011.0100.0001
----------------------------------------
user name : admin
  abort:F fail:F start:F timeout:F success:T
  PAE: state: Authenticated - portMode: Auto
  PAE: reAuthCount: 0 - rxRespId: 0
  BE: state: Idle - reqCount: 0 - idFromServer: 207

Switch# show vlan brief
VLAN ID  Name            State   STP ID  DSCP    Member ports                  
                                                 (u)-Untagged, (t)-Tagged
======= ================ ======= ======= ======= ========================
1       default          ACTIVE  0       Disable eth-0-1(u) eth-0-2(u)
                                                 eth-0-3(u) eth-0-4(u)
                                                 eth-0-5(u) eth-0-6(u)
                                                 eth-0-7(u) eth-0-8(u)
                                                 eth-0-9(u) eth-0-10(u)
                                                 eth-0-11(u) eth-0-12(u)
                                                 eth-0-13(u) eth-0-14(u)
                                                 eth-0-15(u) eth-0-16(u)
                                                 eth-0-17(u) eth-0-18(u)
                                                 eth-0-19(u) eth-0-20(u)
                                                 eth-0-21(u) eth-0-24(u)
                                                 eth-0-25(u) eth-0-26(u)
                                                 eth-0-27(u) eth-0-28(u)
                                                 eth-0-29(u) eth-0-30(u)
                                                 eth-0-31(u) eth-0-32(u)
                                                 eth-0-33(u) eth-0-34(u)
                                                 eth-0-35(u) eth-0-36(u)
                                                 eth-0-37(u) eth-0-38(u)
                                                 eth-0-39(u) eth-0-40(u)
                                                 eth-0-41(u) eth-0-42(u)
                                                 eth-0-43(u) eth-0-44(u)
                                                 eth-0-45(u) eth-0-46(u)
                                                 eth-0-47(u) eth-0-48(u)
10      VLAN0010         ACTIVE  0       Disable eth-0-22(u)
20      VLAN0020         ACTIVE  0       Disable

Switch# show dot1x
802.1X Port-Based Authentication Enabled
  RADIUS server address: 202.38.100.7:1812
  Next radius message ID: 0
Switch# show dot1x statistics
=====================================
802.1X statistics for interface eth-0-22
  EAPOL Frames Rx: 52 - EAPOL Frames Tx: 4270
  EAPOL Start Frames Rx: 18 - EAPOL Logoff Frames Rx: 2
  EAP Rsp/Id Frames Rx: 29 - EAP Response Frames Rx: 3
  EAP Req/Id Frames Tx: 3196 - EAP Request Frames Tx: 3
  Invalid EAPOL Frames Rx: 0 - EAP Length Error Frames Rx: 0
  EAPOL Last Frame Version Rx: 2 - EAPOL Last Frame Src: ae38.3288.f046

6.11.3 应用场景配置举例

6.12 ARP Inspection 配置

6.12.1 概述

6.12.1.1 功能简介

缺省情况下,所有的ARP报文都将按照规则通过交换机。用户可以通过启用ARP Inspection功能监控ARP报文;该功能可以通过对ARP报文的有效性检查来过滤无效的ARP报文,也可以通过设置规则,让特定ARP报文通过,或者丢弃特定的ARP报文,以提高系统的安全性,并在一定程度上抑制ARP报文攻击。

ARP检查是一个在网络中验证ARP报文的安全特性,可以对ARP报文中IP-MAC绑定关系不正确的报文进行检查、记录日志并丢弃。这些功能可以保护网络免受人为攻击。ARP检测确保只有有效的ARP请求和响应被执行,交换机执行的行为包括:

在不信任端口上拦截所有ARP请求和响应。

在更新本地ARP缓存或者转发到特定目的地址的报文之前,需要验证每个检测的报文是否都是有效的。

丢弃无效APR报文:ARP检测,是根据存在的DHCP snooping数据库中有效IPMAC的绑定决定一个ARP报文的有效性。在信任端口上,交换机转发报文不需要任何检查,在不信任端口上,交换机只在有效情况下实现转发。

6.12.1.2 原理描述

下面简要介绍用于描述ARP Inspection相关的术语和概念:

DHCP SnoopingDHCP snooping是一个在不可信主机和可信DHCP服务器之间执行防火墙的功能的安全特性,这个特性建立和维护DHCP snooping数据库,这个数据库包含租用IP地址的不信任主机信息。

Address Resolution Protocol (ARP)ARP通过映射IP地址和MAC地址,提供在二层广播域的IP通信。例如主机B想要发送信息到主机A上,但是没有主机AMAC地址,主机B在广播域内产生一个广播报文对所有主机获取主机AMAC地址。在广播域内的所有主机接收ARP请求,主机A返回它的MAC地址。

6.12.2 配置

arp inspection

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式并创建vlan

Switch(config)# vlan database
Switch(config-vlan)# vlan 2
Switch(config-vlan)# exit
Switch(config)# exit

 步骤3 进入接口配置模式,将接口添加到vlan

Switch(config)# interface eth-0-1
Switch(config-if)# switchport access vlan 2
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# switchport access vlan 2
Switch(config-if)# exit

Switch(config)# interface eth-0-3
Switch(config-if)# switchport access vlan 2
Switch(config-if)# exit

Switch(config)# interface eth-0-4
Switch(config-if)# switchport access vlan 2
Switch(config-if)# exit

 步骤4 配置arp检查

Switch(config)# interface eth-0-1
Switch(config-if)# ip arp inspection trust
Switch(config-if)# exit
Switch(config)# ip arp inspection vlan 2
Switch(config)# ip arp inspection validate src-mac ip dst-mac

 步骤5 添加arp访问控制列表

Switch(config)# arp access-list test
Switch(config-arp-acl)# deny request ip host 1.1.1.1 mac any
Switch(config-arp-acl)# exit
Switch(config)# ip arp inspection filter test vlan 2

 步骤6 退出配置模式

Switch(config)# exit

 步骤7 检查配置

在交换机上检查ARP检测的配置是否正确,详细步骤参见如下描述。

Switch# show ip arp inspection
Source Mac Validation        : Enabled
Destination Mac Validation   : Enabled
IP Address Validation        : Enabled
Vlan     Configuration     ACL Match     Static ACL
=================================================================
2        enabled             test                       
Vlan     ACL Logging     DHCP Logging
=================================================================
2        deny              deny         
Vlan     Forwarded      Dropped     DHCP Drops     ACL Drops
=================================================================
2        0                0             0               0            
Vlan     DHCP Permits     ACL Permits     Source MAC Failures
=================================================================
2        0                  0                  0              
Vlan   Dest MAC Failures   IP Validation Failures   Invalid Protocol Data
=================================================================
2       0                      0                             0

在交换机上查看ARP Inspection的日志记录信息:

Switch# show ip arp inspection log
Total Log Buffer Size : 32
Syslog rate : 5 entries per 1 seconds.
1970-01-02 00:30:47 : Drop an ARP packet by ACL on vlan 2
1970-01-02 00:30:47 : Drop an ARP packet by ACL on vlan 2
1970-01-02 00:30:47 : Drop an ARP packet by ACL on vlan 2
1970-01-02 00:30:47 : Drop an ARP packet by ACL on vlan 2
1970-01-02 00:30:47 : Drop an ARP packet by ACL on vlan 2
1970-01-02 00:30:47 : Drop an ARP packet by ACL on vlan 2
1970-01-02 00:30:47 : Drop an ARP packet by ACL on vlan 2
1970-01-02 00:30:47 : Drop an ARP packet by ACL on vlan 2
1970-01-02 00:30:47 : Drop an ARP packet by ACL on vlan 2
1970-01-02 00:30:47 : Drop an ARP packet by ACL on vlan 2
1970-01-02 00:30:47 : Drop an ARP packet by ACL on vlan 2

6.12.3 应用场景配置举例

6.13 DHCP snooping 配置

6.13.1 概述

6.13.1.1 功能简介

DHCP Snooping是一种安全功能,包括不受信任的主机和信任的DHCP服务器之间的防火墙行为。

DHCP Snooping功能执行如下:

验证DHCP消息接收来自不信任的源和过滤掉无效消息。

建立和维护DHCP Snooping绑定数据库,其中包含不信任主机租用的IP地址信息。

利用DHCP Snooping绑定数据库来验证来自不受信任的主机的后续请求。

还有其他的安全功能,如,动态ARP监测,也可以使用DHCP Snooping绑定数据库中存储的信息,每个VLAN的基础上启用DHCP Snooping功能,该功能在默认情况下在所有VLAN上都无效。你可以在一个单独的VLAN或者VLAN范围使能该功能,DHCP Snooping功能在软件中实现,所有DHCP消息在芯片中被拦截直接发往CPU进行处理。

6.13.1.2 原理描述

6.13.2 配置

dhcp snooping

上图为测试DHCP snooping功能的网络拓扑,需要两台PC机和一台交换机构建测试环境,具体分配可参照如下描述:

计算机A作为DHCP服务器

计算机B作为DHCP客户端

交换机启用DHCP snooping

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式并创建vlan

Switch(config)# vlan database
Switch(config-vlan)# vlan 12   
Switch(config-vlan)# exit

 步骤3 进入接口配置模式,配置接口属性和IP地址

Switch(config)# interface eth-0-12
Switch(config-if)# switchport
Switch(config-if)# switchport access vlan 12
Switch(config-if)# dhcp snooping trust
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-11
Switch(config-if)# switchport
Switch(config-if)# switchport access vlan 12
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface vlan 12
Switch(config-if)# ip address 12.1.1.1/24
Switch(config-if)# exit

 步骤4 配置DHCP属性

Switch(config)# dhcp snooping verify mac-address
Switch(config)# service dhcp enable
Switch(config)# dhcp snooping
Switch(config)# dhcp snooping vlan 12

 步骤5 退出配置模式

Switch(config)# exit

 步骤6 检查配置

根据如下步骤,检查接口配置是否正确。

Switch(config)# show running-config interface eth-0-12
!
interface eth-0-12
dhcp snooping trust
switchport access vlan 12
!

Switch(config)# show running-config interface eth-0-11
!
interface eth-0-11
switchport access vlan 12
!

使用如下命令,检查DHCP服务状态。

Switch# show services
Networking services configuration:
Service Name         Status      
============================================================
dhcp                   enable  

使用如下命令,打印dhcp snooping配置,检查当前配置。

Switch# show dhcp snooping config
dhcp snooping service: enabled
dhcp snooping switch: enabled
Verification of hwaddr field: enabled
Insertion of relay agent information (option 82): disable
Relay agent information (option 82) on untrusted port: not allowed
dhcp snooping vlan 12

使用如下命令,检查dhcp snooping的统计信息。

Switch# show dhcp snooping statistics
DHCP snooping statistics:
============================================================
DHCP packets                              17
BOOTP packets                             0
Packets forwarded                        30
Packets invalid                           0
Packets MAC address verify failed      0
Packets dropped                           0

使用如下命令,显示dhcp snooping绑定信息。

Switch# show dhcp snooping binding all
DHCP snooping binding table:
VLAN MAC Address    Interface  Lease(s)   IP Address
============================================================
12   0016.76a1.7ed9 eth-0-11   691190     12.1.1.65

6.13.3 应用场景配置举例

6.14 IP source guard 配置

6.14.1 概述

6.14.1.1 功能简介

通过IP Source Guard 绑定功能,可以对端口转发的报文进行过滤控制,防止非法IP 地址和MAC 地址的报文通过端口,提高了端口的安全性。端口接收到报文后,通过查找IP Source Guard 绑定表项,对报文进行如下处理:

对于IP+Port 的绑定表项,如果报文中的源IP 地址与绑定表项中记录的IP 地址相同,端口将转发该报文;若不相同,则丢弃;

对于IP+Port+MAC 的绑定表项,如果报文中的源MAC 地址和源IP 地址与绑定表项中记录的MAC 地址和IP 地址相同,端口将转发该报文;若不相同,则丢弃。

对于IP+Port+MAC+VLAN 的绑定表项,如果报文中的源MAC 地址,源IP 地址和VLAN与绑定表项中记录的MAC 地址,IP 地址和VLAN相同,端口将转发该报文;若不相同,则丢弃。

6.14.1.2 原理描述

以下是一些用来描述IP source guard的术语和概念的简要描述:

动态主机配置协议(DHCP):动态主机配置协议 (DHCP) 是一个客户机/服务器的协议,它会自动提供IP地址以及其它相关的子网掩码和默认网关等信息给一个互联网协议(IP)的主机。

DHCP SnoopingDHCP Snooping是一种安全功能,包括不受信任的主机和信任的DHCP服务器之间的防火墙行为。此功能建立和维护DHCP Snooping绑定数据库,其中包含不可信主机租用的IP地址信息。

ACL:访问控制列表。

6.14.2 配置

6.14.2.1 配置 ip source guard

ip source guard

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式并创建vlan

Switch(config)# vlan database
Switch(config-vlan)# vlan 3
Switch(config-vlan)# exit

 步骤3 进入接口配置模式,配置接口属性

Switch(config)# interface eth-0-16
Switch(config-if)# switchport
Switch(config-if)# no shutdown
Switch(config-if)# switchport access vlan 3
Switch(config-if)# exit

 步骤4 配置ip绑定条目

Switch(config)# ip source maximal binding number per-port 15
Switch(config)# ip source binding mac 1111.1111.1111 vlan 3 ip 10.0.0.2 interface eth-0-16

 步骤5 在接口使能ip绑定

Switch(config)# interface eth-0-16
Switch(config-if)# ip verify source ip
Switch(config-if)# exit

 步骤6 退出配置模式

Switch(config)# exit

 步骤7 检查配置

Switch#show running-config interface eth-0-16
!
interface eth-0-16
ip verify source ip
switchport access vlan 3

6.14.2.2 删除 ip source guard的方法

删除单个表项:

Switch(config)# no ip source binding mac 1111.1111.1111 vlan 3 ip 10.0.0.2 interface eth-0-16

按接口删除:

Switch(config)# no ip source binding entries interface eth-0-16

vlan删除:

Switch(config)# no ip source binding entries vlan 3

全部删除:

Switch(config)# no ip source binding entries

6.14.3 应用场景配置举例

6.15 私有VLan 配置

6.15.1 概述

6.15.1.1 功能简介

私有vlan属性在同一vlan 内部实现的二层流量的隔离和互通。 可根据需要,提供灵活的组网方法。

6.15.1.2 原理描述

6.15.2 配置

private vlan

如上图所示:

所有端口在同一私有vlan中。

端口1是混杂端口,可与同一私有vlan中所有其他端口互通

端口2是隔离端口,它与同一私有vlan中所有其他端口都互相隔离,除了混杂端口(端口1

端口34 是互通端口,属于子vlan 2,端口34彼此可以互通,还可以和混杂端口互通。和同一私有vlan的其他端口都互相隔离。

端口56 是互通端口,属于子vlan 3,端口56彼此可以互通,还可以和混杂端口互通。和同一私有vlan的其他端口都互相隔离。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式并创建vlan

Switch (config)# vlan database
Switch (config-vlan)# vlan 2
Switch (config-vlan)# quit

 步骤3 进入接口配置模式,配置接口属性

混杂端口: 一个pvlan中的混杂端口,可以和该pvlan中任意其他类型的端口互通

Switch (config)# interface eth-0-1
Switch (config-if)# switchport mode private-vlan promiscuous
Switch (config-if)# switchport private-vlan 2
Switch (config-if)# quit

隔离端口: 一个pvlan中的隔离端口,除了和该pvlan中的混杂端口可以互通以外,和其他端口均不能互通

Switch (config)# interface eth-0-2
Switch (config-if)# switchport mode private-vlan host
Switch (config-if)# switchport private-vlan 2 isolate
Switch (config-if)# quit

互联端口: 一个pvlan中的互联端口,和该pvlan中的混杂端口尅互通,和该pvlancommunity-vlan ID相同的端口也可以互通,和其他端口均不能互通:

Switch (config)# interface eth-0-3
Switch (config-if)# switchport mode private-vlan host
Switch (config-if)# switchport private-vlan 2 community-vlan 2
Switch (config-if)# quit

Switch (config)# interface eth-0-4
Switch (config-if)# switchport mode private-vlan host
Switch (config-if)# switchport private-vlan 2 community-vlan 2
Switch (config-if)# quit

Switch (config)# interface eth-0-5
Switch (config-if)# switchport mode private-vlan host
Switch (config-if)# switchport private-vlan 2 community-vlan 3
Switch (config-if)# quit

Switch (config)# interface eth-0-6
Switch (config-if)# switchport mode private-vlan host
Switch (config-if)# switchport private-vlan 2 community-vlan 3
Switch (config-if)# quit

 步骤4 退出配置模式

Switch(config)# exit

 步骤5 检查配置

显示结果如下:

switch # show private-vlan
Primary   Secondary Type           Ports    
--------------------------------------------------------------------------------
2         N/A       promiscuous    eth-0-1  
2         N/A       isloate        eth-0-2  
2         2         community      eth-0-3   eth-0-4  
2         3         community      eth-0-5   eth-0-6  

6.15.3 应用场景配置举例

6.16 AAA 配置

6.16.1 概述

6.16.1.1 功能简介

系统可以使用AAA认证的方法去验证访问网络和网络服务的用户。RADIUS认证是AAA认证方法之一。RADIUS是防止未经授权的访问,确保网络安全的分布式客户机/服务器系统。RADIUS为网络环境中广泛使用的协议。它通常用于嵌入式网络设备如路由器,调制解调器服务器,交换机等。RADIUS客户端通常在支持RADIUS的路由器和交换机上运行。客户端发送认证请求到RADIUS服务器,RADIUS服务器包含所有的用户认证和网络服务访问信息。

6.16.1.2 原理描述

6.16.2 配置

private vlan

上图为 RADIUS的网络拓扑 。 一台PC机作为 RADIUS服务器, 配置网卡1.1.1.2/24

设置Switcheth-0-23接口的IP地址为 1.1.1.1/24。 配置交换机的管理口IP地址为10.10.29.215,连接交换机管理口的PCIP地址为 10.10.29.10

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 使能aaa

Switch(config)# aaa new-model
Switch(config)# aaa authentication login radius-login radius local

 步骤3 配置Radius server

Switch(config)# radius-server host 1.1.1.2 auth-port 1819 key keyname
Switch(config)# radius-server host 2001:1000::1 auth-port 1819 key keyname

 步骤4 配置三层接口ip地址

Switch(config)# interface eth-0-23
Switch(config-if)# no switchport
Switch(config-if)# ip address 1.1.1.1/24
Switch(config-if)# quit

 步骤5 配置验证方式

Switch(config)# line vty 0 7
Switch(config-line)#login authentication radius-login
Switch(config-line)#privilege level 4
Switch(config-line)#no line-password

 步骤6 退出配置模式

Switch(config-line)# end

 步骤7 检查配置

使用show命令检查交换机的工作状态

Switch# show aaa status
aaa status:
     Authentication enable

可以使用show命令来显示交换机中的关键信息

Switch# show aaa method-lists authentication
authen queue=AAA_ML_AUTHEN_LOGIN
    Name = default  state = ALIVE :   local
Name = radius-login  state = ALIVE :   radius  local

进行Telnet测试,如配置正确,则Telnet连接的结果信息类似下图所所示:

Telnet连接测试

不要忘记打开 RADIUS验证功能。

确认线缆连接的正确性。 若交换机无法进行RADIUS认证,可以使用命令检查系统日志信息:

Switch# show logging buffer

6.16.3 应用场景配置举例

6.16.3.1 配置Radius server(以winRadius为例)

配置IP地址,如下图所示:

PC配置IP地址

测试客户机和服务器之间的连通性,如下图所示:

连通性测试

打开WinRadius软件,如下图所示:

WinRadius

进行系统设置,如下图所示:

WinRadius

加入用户名和密码,如下图所示:

加入用户名和密码

使用ping命令检查连通情况,如下图所示:

连通性测试

6.17 TACACS+ 配置

6.17.1 概述

6.17.1.1 功能简介

系统可以使用AAA认证的方法去验证访问网络和网络服务的用户。TACACS+认证是AAA认证方法之一。TACACS+是防止未经授权的访问,确保网络安全的分布式客户机/服务器系统。TACACS+为网络环境中广泛使用的协议。它通常用于嵌入式网络设备如路由器,调制解调器服务器,交换机等支持TACACS+的路由器和交换机上运行的客户。客户端发送认证请求到TACACS+服务器,TACACS+服务器包含所有的用户认证和网络服务访问信息。

6.17.1.2 原理描述

6.17.2 配置

TACACS+

上图是TACACS+的网络拓扑。一台PC机作为 TACACS+服务器,配置网卡1.1.1.2/24。设置Switcheth-0-23接口的IP地址为1.1.1.1/24。配置交换机的管理口IP地址为10.10.29.215,连接交换机管理口(仅限带内管理口)的PCIP地址为10.10.29.10

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 使能aaa

Switch# configure terminal
Switch(config)# aaa new-model
Switch(config)# aaa authentication login tac-login tacacs-plus local
Switch(config)# aaa authorization exec default tacacs-plus
Switch(config)# aaa accounting exec default start-stop tacacs-plus
Switch(config)# aaa accounting commands default tacacs-plus

 步骤3 配置TACACS+服务器

Switch(config)# tacacs-server host 1.1.1.2 port 123 key keyname primary

 步骤4 配置三层接口ip地址

Switch(config)# interface eth-0-23
Switch(config-if)# no switchport
Switch(config-if)# ip address 1.1.1.1/24
Switch(config-if)# quit

 步骤5 配置验证方式

Switch(config)# line vty 0 7
Switch(config-line)#login authentication tac-login
Switch(config-line)#privilege level 4
Switch(config-line)#no line-password

 步骤6 退出配置模式

Switch(config-line)# end

 步骤7 检查配置

使用show authentication status命令检查配置:

Switch# show aaa status
aaa stats:
     Authentication enable

使用show aaa method-lists authentication命令检查AAA配置:

Switch# show aaa method-lists authentication
authen queue=AAA_ML_AUTHEN_LOGIN
    Name = default  state = ALIVE :   local
Name = tac-login  state = ALIVE :   tacacs-plus local

进行Telnet测试,如配置正确,则Telnet连接的结果信息类似下图所所示:

Telnet connecting test

6.17.3 应用场景配置举例

6.17.3.1 配置Tacacs server

下载TACACS+服务器代码, DEVEL.201105261843.tar.bz2

编译TACACS+服务器代码。

修改配置文件,增加用户名和密码。

#!../obj.linux-2.6.9-89.29.1.elsmp-x86_64/tac_plus
id = spawnd {
        listen = { port = 49 }
        spawn = {
                instances min = 1
                instances max = 10
        }
        background = no
}
        user = aaa {
                password = clear bbb
                member = guest
        }

运行TACACS+服务器程序。

[disciple: ~]$ ./tac_plus ./tac_plus.cfg.in -d 1

使用ping命令检查连通情况,如下图所示:

Connectivity test

6.18 端口隔离配置

6.18.1 概述

6.18.1.1 功能简介

通过Port-Isolated端口隔离特性,可以实现不同用户的端口属于同一个VLAN,但是不同端口之间不能互通。从而增强了网络的安全性,提供了灵活的组网方案,同时节省了大量的VLAN资源。

6.18.1.2 原理描述

6.18.2 配置

Port Isolate

上图显示了基本的端口隔离拓扑。

端口1和端口8在同一个隔离组1,所以端口1和端口8不能互相通信。 端口9在隔离组3.所以端口9能和端口18互相通信。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 选择全局端口隔离模式

l2表示只隔离二层转发的报文。all表示隔离所有符合隔离条件的报文,包括路由转发的报文。

Switch(config)# port-isolate mode l2

 步骤3 进入接口配置模式,设置端口隔离组

Switch(config-if)# interface eth-0-1
Switch(config-if)# port-isolate group 1
Switch(config-if)# exit

Switch(config)# interface eth-0-8
Switch(config-if)# port-isolate group 1
Switch(config-if)# exit

Switch(config)# interface eth-0-9
Switch(config-if)# port-isolate group 3
Switch(config-if)# exit

 步骤4 退出配置模式

Switch(config)# end

 步骤5 检查配置

使用如下命令显示端口隔离的配置。

switch# show port-isolate
------------------------------------------------------------------
Port Isolate Groups:
------------------------------------------------------------------
Groups ID: 1
eth-0-1eth-0-8
------------------------------------------------------------------
Groups ID: 3
eth-0-9

6.18.3 应用场景配置举例

6.19 DDoS配置

6.19.1 概述

6.19.1.1 功能简介

DDoS攻击全名是distributed denial-of-service attack,分布式拒绝服务攻击,是由DoS(denial-of-service)攻击发展而来,攻击原理是利用合理的服务请求来占用过多的服务资源,从而使服务器无法处理合法用户的指令。DDoS攻击利用处于不同位置的多个攻击者同时向一个或者数个目标发起攻击,或者一个或多个攻击者控制了位于不同位置的多台机器(傀儡机)并利用这些机器对受害者同时实施攻击。 DDoS攻击将造成网络资源浪费、链路带宽堵塞、服务器资源耗尽而业务中断。

DDoS防御特性可以保护我们交换机抵挡DDos攻击,拦截该种类型攻击对应的数据包。目前支持的类型有下面这些:

ICMP泛洪:该攻击通过向目标IP发送大量ICMP包,占用带宽,从而导致合法报文无法达到目的地,达到攻击目的。

Smurf 攻击:攻击者先使用受害主机的地址,向一个广播地址发送ICMP回响请求,在此广播网络上,潜在的计算机会做出响应,大量响应将发送到受害主机,此攻击后果同ICMP泛洪,但比之更为隐秘。

SYN泛洪:蓄意侵入tcp三次握手并打开大量的TCP/IP连接而进行的攻击,该攻击利用IP欺骗,向受害者的系统发送看起来合法的SYN请求,而事实上该源地址不存在或当时不在线,因而回应的ACK消息无法到达目的,而受害者的系统被大量的这种半开连接充满,资源耗尽,而合法的连接无法被响应。

UDP 泛洪:该攻击通过向目标IP发送大量UDP包,占用带宽,消耗资源。

Fraggle攻击:该攻击是smurf的变种,针对防火墙对ICMP包检查比较严格的前提下,不再向广播地址发ICMP请求包,而是改为发送UDP包。

Small-packet攻击:IP小报文攻击是发送大量的小报文到被攻击系统来消耗系统的资源。

bad mac intercept :目的MAC地址等于源MAC地址的报文攻击。

bad ip equal:目的IP地址等于源IP地址的报文攻击。

6.19.1.2 原理描述

6.19.2 配置

Topology for DDoS test

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 设置ddos防御

使能ICMP泛洪检测,设置每秒接收ICMP 报文个数最大为100

Switch(config)# ip icmp intercept maxcount 100

使能UDP泛洪检测,设置每秒接收UDP 报文个数最大为100

Switch(config)# ip udp intercept maxcount 100

使能smurf攻击检测

Switch(config)# ip smurf intercept

使能SYN泛洪检测,设置每秒接收TCPSYN报文个数最大为100

Switch(config)# ip tcp intercept maxcount 100

使能Fraggle攻击检测

Switch(config)# ip fraggle intercept

使能Small-packet攻击检测,设置接收IP报文长度最小为32字节。

Switch(config)# ip small-packet intercept maxlength 32

使能检测源IP地址等于目的IP地址的报文攻击

Switch(config)# ip ipeq intercept

使能检测源MAC地址等于目的MAC地址的报文攻击

Switch(config)# ip maceq intercept

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch# show ip-intercept config
Current DDoS Prevent configuration:
============================================================
ICMP Flood Intercept             :Enable  Maxcount:500
UDP Flood Intercept              :Enable  Maxcount:500
SYN Flood Intercept              :Enable  Maxcount:500
Small-packet Attack Intercept    :Enable  Packet Length:45
Smurf Attack Intercept           :Enable
Fraggle Attack Intercept         :Enable
MAC Equal Intercept              :Enable
IP Equal Intercept               :Enable
Switch# show ip-intercept statistics
Current DDoS Prevent statistics:
============================================================
Resist Small-packet Attack packets number    :  1730
Resist ICMP Flood packets number             :  0
Resist SYN Flood packets number              :  0
Resist Fraggle Attack packets number         :  0
Resist UDP Flood packets number              :  0

Current DDoS Prevent mgmt-if statistics:
============================================================
Resist ICMP Flood packets number             :  0
Resist SYN Flood packets number              :  0
Resist Fraggle Attack packets number         :  0
Resist UDP Flood packets number              :  0

6.19.3 应用场景配置举例

6.20 Key Chain 配置

6.20.1 概述

6.20.1.1 功能简介

密钥链是一种通用的认证方法,适用于需要共享密钥的实体在建立相互信任之前交换密钥完成认证。这种认证方法通常被用在路由协议和网络应用中,可以增强对等体之间通信的安全性。

密钥链提供了一种包含密钥控制和基于生命周期的转滚法的安全机制,它将一连串的密钥通过生命周期联系在一起,并将它们按照序号挂在密钥链里。密钥链在使用时会依次比对链中的各个密钥,找到密钥则通过验证。

为了发挥生命周期的作用,在使用密钥链之前,必须要定义密钥的有效时间,并且为了保持稳定性,最好能同时使用一个以上的有效密钥。

6.20.1.2 原理描述

6.20.2 配置

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建key chain,并设置密钥

Switch(config)# key chain test
Switch(config-keychain)# key 1
Switch(config-keychain-key)# key-string ##test_keystring_1##
Switch(config-keychain-key)# accept-lifetime 0:0:1 1 jan 2012 infinite
Switch(config-keychain)# key 2
Switch(config-keychain-key)# key-string ##test_keystring_2##
Switch(config-keychain-key)# send-lifetime 0:0:1 2 jan 2012 infinite

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

在特权模式下使用命令show key chain,显示key chain的配置。

Switch # show key chain
key chain test:
    key 1 -- text "key-string ##test_keystring_1##"
      accept-lifetime <00:00:01 Jan 01 2012> - <infinite>
      send-lifetime <always valid> - <always valid> [valid now]
    key 2 -- text "key-string ##test_keystring_2##"
      accept-lifetime <always valid> - <always valid> [valid now]
      send-lifetime <00:00:01 Jan 02 2012> - <infinite>

6.20.3 应用场景配置举例

6.21 Port-Block配置

6.21.1 概述

6.21.1.1 功能简介

默认情况下,端口泛洪报文都是没有目的MAC地址的。如果这些报文被送到保护端口上,将有可能出现安全问题。为了避免目的MAC地址未知或者已知的单播或组播传输到其他端口,可以阻塞该端口以避免发送单播或者组播出去。

6.21.1.2 原理描述

6.21.2 配置

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,阻塞未知单播

Switch(config)# interface eth-0-1
Switch(config-if)# port-block unknown-unicast
Switch(config-if)# exit

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

在端口下配置port-block,并show出配置信息:

Switch # show port-block interface eth-0-1
Known unicast blocked: Enabled
Known multicast blocked: Disabled
Unknown unicast blocked: Disabled
Unknown multicast blocked: Disabled
Broadcast blocked: Disabled

6.21.3 应用场景配置举例

7   设备管理配置指导  

7.1 STM配置

7.1.1 概述

7.1.1.1 功能简介

交换机表项管理(STM)是通过配置交换机的系统资源来支持优化特定功能。您可以选择一个配置文件提供来发挥系统的最大功能,例如,使用默认的配置文件以平衡资源;使用VLAN配置文件,以获得最大的MAC条目。为了在不同的场合下最大限度的利用TCAM资源,STM提供了不同特性的系统优化功能。目前的版本中支持的STM模版包括:

layer3:路由模板,支持最大数目的路由,通常应用在在网络中心的路由器或聚合层。

layer2VLAN模板,支持单播MAC地址的最大数量。它通常会被选定为第2层交换机。

ipv6ipv6模板,支持ipv6特性。

mplsmpls模板,支持最大数目的MPLS/MAC条目。

default:默认模板,平衡分配所有特性的资源。

当您配置了(或当前使用的)STM模式不存在于下一个要启动的image里时,那么当这个image启动的时候就会使用默认的硬编码配置,这个配置可能和正常的default模式是不一样的。

7.1.1.2 原理描述

7.1.2 配置

通过配置指南来选择正确的STM profiles

修改配置后必须重启交换机。

STM layer2模板,一般适用于2层交换机且没有路由交换的场合。

当交换机上没有使能路由功能的时候就不需要切换到layer3模版

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 设置STM profile,以layer3为例

Switch(config)# stm prefer layer3

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

下面的例子显示了使用路由模版后的输出结果:

Switch# show stm prefer
Current profile is :default
   number of vlan instance                      : 1/4094
   number of unicast mac address                : 0/65536
   number of multicast mac address              : 0/2048
   number of blackhole mac address              : 0/128
   number of max applied vlan mapping           : 0/1024
   number of bfd sessions                       : 0/128
   number of CFM loacl&remote MEPs              : 0/1024
   number of CFM lm                             : 0/256
   number of CFM lck                            : 0/24
   number of G8031 groups                       : 0/256
   number of G8032 rings                        : 0/256
   number of G8032 member ports                 : 0/256
   number of mac based vlan class               : 0/512
   number of ipv4 based vlan class              : 0/512
   number of ipv6 based vlan class              : 0/0
   number of dot1x mac based                    : 0/2048
   number of unicast ipv4 host routes           : 0/4096
   number of unicast ipv4 indirect routes       : 0/8192
   number of unicast ipv4 policy based routes   : 0/16
   number of unicast ipv6 host routes           : 0/0
   number of unicast ipv6 indirect routes       : 0/0
   number of unicast ecmp groups                : 0/240
   number of unicast ip tunnel peers            : 0/8
   number of multicast ipv4 routes              : 0/1023
   number of mvr entries                        : 0/511
   number of mvr6 entries                       : 0/0
   number of multicast ipv6 routes              : 0/0
   number of ipv4 source guard entries          : 0/1024
   number of ingress port acl flow entries      : 0/2035
   number of ingress vlan acl flow entries      : 0/255
   number of egress port acl flow entries       : 0/255
   number of ingress port qos flow entries      : 9/2043
   number of ingress port acl ipv6 flow entries : 0/0
   number of ingress vlan acl ipv6 flow entries : 0/0
   number of egress port acl ipv6 flow entries  : 0/0
   number of ingress port qos ipv6 flow entries : 0/0
   number of link aggregation (static & lacp)   : 0/55
   number of ipfix cache                        : 0/16384

The profile stored for use after the next reload is the layer3 profile.

 步骤5 重启设备

Switch# reload

7.1.3 应用场景配置举例

7.2 系统日志配置

7.2.1 概述

7.2.1.1 功能简介

系统消息可以保存在日志文件中,也可以发送到其他服务器设备。系统消息管理模块有如下功能:

记录日志信息以便监测和故障排除

可以选择记录日志信息的类型

可以选择日志的目的地

默认情况下,交换机会记录重要的系统信息记录到其内部缓冲区,同时也会发送到系统控制台。用户可以指定保存的消息级别。消息都会添加发生时间,便于实时调试和管理。

您可以使用交换机的命令行界面(CLI)来读取系统消息,也可以通过将它保存到一个日志服务器的形式来获取消息。交换机的日志缓冲区最多可存储1000条信息。用户可以通过Telnet或控制台端口登录设备后打开终端监控来实时监控系统日志。

7.2.1.2 原理描述

以下是系统日志相关的术语:

概念

解释

Logging

当前日志配置

Show

显示日志配置

Levels

安全等级信息

Enable

开启日志保存到本地文件

Disable

关闭日志保存到本地文件

系统消息类型:

名称

定义

kern

kernel 消息

user

随机用户等级消息

mail

邮件系统

daemon

系统进程

auth

安全/验证消息

syslog

通过syslogd生成系统内部消息

lpr

行式打印机子系统

news

网络新闻子系统

uucp

UUCP子系统

cron

时钟进程

authpriv

私有的安全/验证消息

ftp

FTP进程

安全等级的定义:

严重等级

定义

emergency

系统无法使用

alert

必须立即采取行动

critical

严重事件

error

错误事件

warning

警告事件

notice

正常的,但重要的事件

information

信息

debug

调试级别的消息

7.2.2 配置

7.2.2.1 配置日志服务器

syslog server

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 使能日志服务器并配置相关参数

Switch(config)# logging server enable
Switch(config)# logging server address 1.1.1.1
Switch(config)# logging server address 2001:1000::2
Switch(config)# logging server severity debug
Switch(config)# logging server facility mail

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch# show logging
Current logging configuration:
============================================================
logging buffer 500
logging timestamp bsd
logging file enable
logging level file warning
logging level module debug
logging server enable
logging server severity debug
logging server facility mail
logging server address 1.1.1.1
logging server address 2001:1000::2
logging alarm-trap enable
logging alarm-trap level middle
logging merge enable
logging merge fifo-size 1024
logging merge timeout 10
logging operate disable

7.2.2.2 设置日志缓冲大小

默认情况下,日志缓冲区只保存500条最新的消息日志。用户也可以通过命令将范围改为101000之间的任何值。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 设置日志缓冲区

Switch(config)# logging buffer 700

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch# show logging
Current logging configuration:
============================================================
logging buffer 700
logging timestamp bsd
logging file enable
logging level file warning
logging level module debug
logging server enable
logging server severity debug
logging server facility mail
logging server address 1.1.1.1
logging alarm-trap enable
logging alarm-trap level middle
logging merge enable
logging merge fifo-size 1024
logging merge timeout 10
logging operate disable

下图是日志服务器的信息:

syslog on server

你可以使用命令检查日志信息。当配置了日志服务器,确保链路是通的并且能够ping通。在向日志服务器发送消息之前,必须配置好日志软件。最后就可以在日志软件上看到日志了。

7.2.3 应用场景配置举例

7.3 镜像配置

7.3.1 概述

7.3.1.1 功能简介

通过镜像功能,用户可以将设备端口、vlancpu收发的报文复制一份(或多份),从设备的另一个(或多个)端口送出去,在这一个(或多个)端口连上测试仪或其他报文收集设备,可达到对原始报文进行捕获和分析的目的;也可将被复制报文发送到CPU并被保存下来,便于用户或程序员快速分析报文。

镜像功能不影响交换机上原始的网络流量。

7.3.1.2 原理描述

镜像功能有如下几个基本的要素:

 Mirror 

  1.镜像会话 

镜像会话是一组镜像源和一个镜像目的的集合。一个可以正常工作的镜像会话,需要配置镜像目,以及至少一个镜像源。镜像源和镜像目的会在后面介绍。

系统最多支持三组镜像会话。

镜像功能不应干扰正常业务。

在一组镜像会话中,如果镜像源的总流量超过了镜像目的接口的转发能力,例如用一个最大速率为10Gbps的目的端口去监控100Gbps的流量,将会产生丢包。

  2.镜像方向 

镜像会话可以配置三种方向:

接收方向镜像(RX:对一个端口或VLAN做接收方向的镜像,原则是将这个端口或VLAN上的收到的流量,在系统对这些报文做任何修改和处理之前,尽可能完整、真实的复制出来。对于镜像源端口来说,有如下限制:CRC错误的报文将不能被镜像复制。对于镜像源VLAN来说,有如下限制:BPDU, LACPDU, BMGPDU报文,IP-MAC绑定检查不通过的报文,CRC错误的报文,不能被镜像复制。除此以外的其他功能,例如QOS的修改DSCP值、VLAN translationVLAN classificationACLVLAN’s ingress filter, MAC filter, STP, VLAN tag control, port security, unknown routing packets等功能, 对报文进行修改或丢弃,都不应影响到接收方向的镜像功能。复制到目的端口的报文,应该和镜像源收到的报文完全一致。

发送方向镜像(TX:对一个端口或VLAN做发送方向的镜像,原则是将这个端口或VLAN上的发送出去的流量,尽可能真实的复制出来。从端口或VLAN送出之前就被丢弃的报文,不会被镜像复制。当镜像源是VLAN的时候,有如下限制:来自CPU的报文不能被镜像复制。

双向镜像(BOTH:在一个镜像会话中,用户可以监控同一个镜像源上接收和发送两个方向的报文流量。

  3.镜像源 

镜像源是指被监测的原始的网络流量。目前支持以下几种类型:

源端口:一个需要被监控或分析的二层或三层端口。支持物理端口和聚合组(link agg)。聚合组的成员端口不能单独配置成镜像源。

VLAN:源VLAN是一个需要被监控或分析的VLAN。必须创建vlan interface才能将vlan设为镜像源。

CPU:用户可以将CPU作为镜像源配置。当需要将上报cpu报文或者cpu下发的报文镜像复制时,可以启用CPU镜像源配置,值得注意的是镜像复制出来的报文是cpu-traffic-limit限速之前的。目前只允许session 1配置cpu mirror source

  4.镜像目的 

镜像目的是是指通过镜像功能复制出来的流量所要送达的目的。目前支持以下几种类型:

本地镜像目的端口:本地镜像目的端口可以是一个物理口,也可以是聚合组。但不能是聚合组成员。目的端口有下面这些特性:

它必须和镜像源处在同一台设备上 。

端口不能是shutdown状态的。

只能在一个镜像会话中作为目的端口。

不能配置为任何镜像会话的镜像源端口。

端口不传输任何镜像功能以外的流量。

该端口的所有其他系统功能的相关配置继续保留,但是不能工作。直到在此端口不再作为镜像会话的目的端口。

镜像目的端口不学习MAC

实时速率/双工状态可能会和显示的数值不一致。

多目的镜像:支持用多个目的端口(检测端口)来接收复制出来的报文。多目的端口中的每个端口特性与单目的端口相同。全局只支持一个多目的端口组。

远程镜像目的:远程镜像目的包括一个物理出接口以及一个VLAN,复制后的报文从指定的物理出接口送出,并封装了指定的vlan tag。一个远程镜像目的特性如下:

是一个指定的端口和一个VLAN的组合

远程VLAN范围在2-4094,如果在系统中没有创建VLAN,用户不能将这个VLAN作为远程镜像VLAN

出端口应该是一个普通的物理端口,需要用户的配置来保证这个端口可以传输镜像报文,并且不被其他功能的流量所干扰。

镜像源的报文将被加上指定的远程VLAN ID Tag,然后从指定的出接口发出去,到达远端设备上。

使用二层接口为远程镜像的目的端口,并且用户需要将这个端口加入到指定的远程VLAN中,否则镜像报文将不能成功发送出去。

CPU 镜像目的:将镜像功能复制的报文送到当前设备的CPU。当该设备无法连接上测试仪或者其他报文收集设备,需要将被复制报文发送到CPU并被保存下来,便于用户或开发者快速分析报文。目前镜像报文上送CPU的速率是系统默认限制速率,也可以用户指定限速速率。CPU作为镜像目的时,只能用于一个session

7.3.2 配置

7.3.2.1 配置本地端口镜像

port Mirror

eth-0-1收发的报文复制到eth-0-2

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置镜像目的

Switch(config)# interface eth-0-2
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# monitor session 1 destination interface eth-0-2

 步骤3 配置镜像源

Switch(config)# monitor session 1 source interface eth-0-1 both

 步骤4 退出配置模式

Switch(config)# end

 步骤5 检查配置

Switch# show monitor session 1
Session   1
----------
Status             : Valid
Type               : Local Session
Source Ports       :
  Receive Only     :
  Transmit Only    :
  Both             : eth-0-1
Source VLANs       :
  Receive Only     :
  Transmit Only    :
  Both             :
Destination Port   : eth-0-2

7.3.2.2 配置vlan作为端口镜像的源

vlan 10收到的报文复制到eth-0-2

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置镜像目的

Switch(config)# interface eth-0-2
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# monitor session 1 destination interface eth-0-2

 步骤3 进入vlan配置模式,创建vlan

Switch(config)# vlan database
Switch(config-vlan)# vlan 10
Switch(config-vlan)# exit

 步骤4 创建vlan interface

Switch(config)# interface vlan10
Switch(config-if)# exit

 步骤5 配置镜像源

Switch(config)# monitor session 1 source vlan 10 rx

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

Switch# show monitor session 1
Session   1
----------
Status             : Valid
Type               : Local Session
Source Ports       :
  Receive Only     :
  Transmit Only    :
  Both             :
Source VLANs       :
  Receive Only     : 10  
  Transmit Only    :
  Both             :
Destination Port   : eth-0-2

7.3.2.3 配置cpu作为端口镜像的源

将送cpucpu发出的报文复制到eth-0-1

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置镜像目的

Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# monitor session 1 destination interface eth-0-2

 步骤3 配置镜像源

Switch(config)# monitor session 1 source cpu both

 步骤4 退出配置模式

Switch(config)# end

 步骤5 检查配置

DUT1# show monitor session 1
Session   1
----------
Status             : Valid
Type               : Cpu Session
Source Ports       :
  Receive Only     :
  Transmit Only    :
  Both             : cpu
Source VLANs       :
  Receive Only     :
  Transmit Only    :
  Both             :
Destination Port   :eth-0-1

7.3.2.4 配置多目的端口镜像

Multi-destination Mirror

eth-0-1收发的报文复制到eth-0-2eth-0-3。 镜像源的规则与本地单目的的端口镜像一样,可以是port也可以是vlan,下面仅以port为例。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置镜像目的组

Switch(config)# interface eth-0-2
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-3
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# monitor session 1 destination group 1
Switch(config-monitor-d-group)# member eth-0-2
Switch(config-monitor-d-group)# member eth-0-3
Switch(config-monitor-d-group)# exit

 步骤3 配置镜像源

Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# monitor session 1 source interface eth-0-1

 步骤4 退出配置模式

Switch(config)# end

 步骤5 检查配置

Session   1
----------
Status             :  Valid
Type               :  Local Session
Source Ports      :
  Receive Only     :
  Transmit Only    :
  Both             : eth-0-1
Source VLANs       :
  Receive Only     :
  Transmit Only    :
  Both             :
Destination Port   : eth-0-2 eth-0-3

7.3.2.5 配置远程端口镜像

Remote Mirror

在本地设备无法直接连接测试仪或其他分析设备时,也可以选择远程镜像。远程镜像目的指定一个物理端口作为出接口,同时指定一个VLAN用以封装镜像报文。在远端设备上可以通过该VLAN,将镜像报文和其他流量分离开。所以建议在配置远程镜像的时候,选择一个无业务流量的VLAN

这个例子中,将Switch1eth-0-1收发的报文封装VLAN 15送到Switch2Switch2将收到的报文送到测试仪或分析设备。

下面是Switch1的配置:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置镜像目的

Switch(config)# vlan database
Switch(config-vlan)# vlan 15
Switch(config-vlan)# exit
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# no shutdown
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 15
Switch(config-if)# exit

Switch(config)# monitor session 1 destination remote vlan 15 interface eth-0-2

 步骤3 配置镜像源

Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config)# monitor session 1 source interface eth-0-1 both

 步骤4 退出配置模式

Switch(config)# end

 步骤5 检查配置

SwitchA# show monitor session 1
Session   1
----------
Status             : Valid
Type                :  Remote Session
Source Ports       :
  Receive Only     :
  Transmit Only    :
  Both               : eth-0-1
Source VLANs       :
  Receive Only     :  
  Transmit Only    :
  Both               :
Destination Port   : eth-0-2
Destination remote VLAN : 15

下面是Switch2的配置:

在这个例子中,Switch2 可以通过下面几种方法,将vlan 15的报文送到分析设备。

 方法1: 利用vlan作为镜像源,仍然使用镜像功能,将vlan 15收到的报文送到镜像目的目的端口

Switch # configure terminal
Switch (config)# vlan database
Switch (config-vlan)# vlan 15
Switch (config-vlan)# exit

Switch (config)# interface vlan15
Switch (config-if)# exit

Switch (config)# interface eth-0-2
Switch (config-if)# no shutdown

Switch (config)# interface eth-0-1
Switch (config-if)# no shutdown
Switch (config-if)# switchport mode trunk
Switch (config-if)# switchport trunk allowed vlan add 15
Switch (config-if)# exit

Switch (config)# monitor session 1 destination interface eth-0-2
Switch (config)# monitor session 1 source vlan 15 rx
Switch (config)# end

 方法2: 将收到报文的端口和连接测试仪的端口都加入vlan 15,通过二层转发送达

Switch# configure terminal

Switch(config)# no spanning-tree enable

Switch(config)# vlan database
Switch(config-vlan)# vlan 15
Switch(config-vlan)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# no shutdown
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 15

Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 15
Switch(config-if)# exit

这里将直连测试仪的eth-0-2配成access端口,收到的报文会将vlan tag 15剥掉。

 方法3: 保留vlan tag 15

如果希望保留vlan tag 15,可以将eth-0-2改成trunk口:

Switch(config)# interface eth-0-2
Switch(config-if)# no shutdown
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 15

7.3.2.6 配置cpu作为镜像目的

Mirror to cpu

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置镜像目的

Switch(config)# monitor session 1 destination cpu

设置缓冲区大小和上cpu速率:

Switch(config)# monitor cpu set packet buffer 100
Switch(config)# cpu-traffic-limit reason mirror-to-cpu rate 128

 步骤3 配置镜像源

Switch(config)# monitor session 1 source interface eth-0-1 both

 步骤4 退出配置模式

Switch(config)# end

 可选步骤

开启或关闭mirror cpu的文件写入功能,该功能开启后把存储在内存中的包写入到指定txt文件中

Switch#  monitor cpu capture packet start
Switch#  monitor cpu capture packet stop

.txt文本文件转成.pcap文件

Switch# pcap convert flash:/mirror/MirCpuPkt-2016-02-05-18-31-13.txt flash:/MirCpuPkt-2016-02-05.pcap

配置mirror cpu的抓包策略:drop表示当内存空间写满之后,丢弃新包;replace表示当内存空间写满之后,新包替换最旧包

Switch(config)# monitor cpu capture strategy drop
Switch(config)# monitor cpu capture strategy replace

 步骤5 检查配置

示例中创建了会话1用以监控源端口eth-0-1的流量,并通过show 命令查看mirror to cpu的报文。可以使用显示会话命令查看配置:

Switch# show monitor session 1
DUT1# show monitor session 1
Session   1
----------
Status             : Valid
Type               : Cpu Session
Source Ports       :
  Receive Only     :
  Transmit Only    :
  Both             : eth-0-1
Source VLANs       :
  Receive Only     :
  Transmit Only    :
  Both             :
Destination Port   : cpu

查看报文mirrorcpu后内存存储的包

Switch# show monitor cpu packet all
-----------------show all mirror to cpu packet info-----------------
packet: 1
Source port: eth-0-1
MACDA:264e.ad52.d800, MACSA:0000.0000.1111
vlan tag:100
IPv4 Packet, IP Protocol is 0
IPDA:3.3.3.3, IPSA: 10.0.0.2
Data length: 47
Data:   
264e ad52 d800 0000 0000 1111 8100 0064   
0800 4500 001d 0001 0000 4000 6ad9 0a00   
0002 0303 0303 6365 6e74 6563 796f  75

查看配置mirror cpu内存buffer大小

Switch# show monitor cpu packet buffer
--------------------show packet buffer size ---------------------
The mirror-to-cpu packet buffer size of user set is: 100

查看配置mirror cpu的报文上cpu的速率

Switch# show cpu traffic-limit | include mirror-to-cpu
mirror-to-cpu              128           0

查看mirror cpu报文的存储文件

Switch# ls flash:/mirror
Directory of flash:/mirror 
 
total 8
-rw-r-----  1 2287 Dec 23 01:16 MirCpuPkt-2016-12-23-01-15-54.txt
-rw-r-----  1 2568 Jan  3 11:41 MirCpuPkt-2017-01-03-11-41-33.txt
14.8T bytes total (7.9T bytes free)

Switch# more flash:/mirror/ MirCpuPkt-2017-01-03-11-41-33.txt
sequence  srcPort
1          eth-0-1                        
++++++++1483443444:648884
8c 1d cd 93 51 00 00 00 00 00 11 11 08 00 45 00
00 26 00 01 00 00 40 00 72 d0 01 01 01 01 03 03
03 03 63 65 6e 74 65 63 79 6f 75 63 65 6e 74 65
63 79 6f 75
--------
sequence  srcPort
2          eth-0-1                        
++++++++1483443445:546440
8c 1d cd 93 51 00 00 00 00 00 11 11 08 00 45 00
00 26 00 01 00 00 40 00 72 d0 01 01 01 01 03 03
03 03 63 65 6e 74 65 63 79 6f 75 63 65 6e 74 65
63 79 6f 75

查看flash上的文件。在转换成pcap 文件后,可以通过抓包分析软件(例如wireshark)打开。如何将设备上的文件下载到本地,请参考ftptftp章节。

Switch#ls flash:/mirror
Directory of flash:/mirror 
 
total 12
-rw-r-----  1 2287 Dec 23 01:16 MirCpuPkt-2016-12-23-01-15-54.txt
-rw-r-----  1 2568 Jan  3 11:41 MirCpuPkt-2017-01-03-11-41-33.txt
-rw-r--r--  1  704 Jan  3 13:07 test.pcap
14.8T bytes total (7.9T bytes free)

查看mirror cpu的抓包策略

Switch# show monitor cpu capture strategy
The capture strategy of cpu mirror is: replace (add new packet and remove oldest
packet when buffer is full)

7.3.3 应用场景配置举例

7.4 设备管理配置

7.4.1 概述

7.4.1.1 功能简介

用户可以通过管理端口管理交换机。交换机有2类管理端口:以太网口和串口。

7.4.1.2 原理描述

7.4.2 配置

7.4.2.1 配置串口

交换机的默认串口配置如下:

波特率为115200

数据位为8

停止位为1

无奇偶校验

在配置交换机之前,请先确认已经将交换机串口与PC或其他终端的串口相连,且PC或终端的串口配置与上述交换机串口默认配置一致。当登录到交换机上后,可以修改串口配置参数。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入串口配置模式,设置串口波特率

Switch(config)# line console 0
Switch(config-line)# speed 19200

 步骤3 退出配置模式

Switch(config-line)# end

 步骤4 检查配置

完成上述配置后,串口参数已经被修改,此时PC或终端无法再通过串口配置交换机。必须修改PC或终端的串口属性,将波特率从115200修改为19200,才能够重新连上交换机进行配置。

7.4.2.2 配置带外管理端口

为了通过带外管理端口配置交换机,必须先通过串口为带外管理端口配置管理IP地址。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置交换机管理口的IP地址

IPv4IPv6都可支持,举例如下:

Switch(config)# management ip address 10.10.38.106/24
Switch(config)# management ipv6 address 2001:1000::1/96

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch# show management ip address
  Management IP address is:  10.10.38.106/24
  Gateway: 0.0.0.0

Switch # show management ipv6 address
  Management IPv6 address is:  2001:1000::1/96
  Gateway: ::

7.4.2.3 配置温度管理

交换机支持温度告警管理功能。用户可以设置3个温度阈值:低温告警阈值,高温告警阈值,超高温断电保护阈值。当交换机温度低于低温告警阈值,或者高于高温告警阈值,交换机将自动产生告警信息。当交换机温度高于超高温断电保护阈值,交换机将通过自动切断电源来保护系统。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 设置温度阈值

低温告警阈值5℃;高温告警阈值70℃;超高温断电阈值90℃

Switch(config)# temperature 5 70 90

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch# show environment
---------------------------------------------------------
Sensor status (Degree Centigrade):
Index Temperature  Lower_alarm  Upper_alarm Critical_limit
1     50           5            70          90

7.4.2.4 配置风扇管理

交换机支持自动管理风扇。当风扇盘不在位或者风扇坏掉,交换机能自动产生告警信息。如果风扇盘支持风扇速度调节,交换机将根据系统内部实时温度值自动调节风扇转速。交换机风扇速度调节有3个温度阈值: low=50°C, high=65°C, crit=80°C。当实时温度小于low时,风扇将停止转动;当实时温度在low(含)和high之间时,风扇将以30%的速率转动;当实时温度在high(含)和Crit之间时,风扇将以70%的速率转动;当实时温度达到或超过crit时,风扇将全速转动。

风扇自动调节还支持设置迟滞值hyst=2°C,当之前的温度高于某阈值,风扇转速上升一个级别,现在温度又下降到低于该阈值时,风扇转速不会立即下降一个级别,必须等到实时温度比该阈值还低hyst2°C)时,才会调节风扇转速,下降一个级别。举例如下:

当前温度为58摄氏度,风扇转速为30%(low < 58 < high)

当温度上升到65摄氏度时,风扇转速自动调节为70%;(high==65)

当温度又下降到63摄氏度时,风扇转速仍旧为70%(high-hyst ==63)

当温度下降到62摄氏度时,风扇转速降为30%(62 < Thigh-Thyst)

lowhighcrithyst以及对应的风扇转速都是系统预定义的,不支持用户调节。

Switch# show environment
Fan tray status:
Index     Status   
1         PRESENT
FanIndex   Status SpeedRate Mode
1-1        OK      30%      Auto
1-2        OK      30%      Auto
1-3        OK      30%      Auto
1-4        OK      30%      Auto
---------------------------------------------------------

7.4.2.5 配置电源管理

交换机支持自动电源管理。当某个电源坏掉(双电源模式时)或者电源风扇坏掉,交换机能够自动发出告警信息。当电源模块拔插时,交换机也会发出通告信息。

用户可以通过命令行指令来查看电源的运行状态

Switch# show environment
---------------------------------------------------------
Power status:
Index     Status    Power     Type      Fans      Control  
1         PRESENT   OK        AC        -         -        
2         ABSENT    -         -         -         -        
3         PRESENT   OK        DC(PoE)   -         -        
---------------------------------------------------------

7.4.2.6 配置光模块

交换机支持管理光模块信息,这些管理信息包括基本信息和诊断信息。其中基本信息包括光模块类型、生产厂商名称、序列号、产品号以及相应支持的光波长和链路长度。诊断信息包括光模块的实时温度、电压、电流、发送光功率和接收光功率以及这些实时信息对应的厂商预定义正常工作范围、提醒阈值和告警阈值。当光模块拔插或者实时信息超出正常工作范围,交换机将自动发出通告或告警信息。

用户可以通过命令行指令来查看光模块的运行状态

Switch# show transceiver detail
Port eth-1-2 transceiver info:
Transceiver Type: 10G Base-SR
Transceiver Vendor Name : OEM            
Transceiver PN          : SFP-10GB-SR    
Transceiver S/N         : 201033PST1077C 
Transceiver Output Wavelength: 850 nm
Supported Link Type and Length:
      Link Length for 50/125um multi-mode fiber: 80 m
      Link Length for 62.5/125um multi-mode fiber: 30 m
----------------------------------------------------------------------------
Transceiver is internally calibrated.
mA: milliamperes, dBm: decibels (milliwatts), NA or N/A: not applicable.
++ : high alarm, +  : high warning, -  : low warning, -- : low alarm.
The threshold values are calibrated.
----------------------------------------------------------------------------
             High Alarm   High Warn   Low Warn    Low Alarm
Temperature   Threshold    Threshold    Threshold     Threshold 
Port  (Celsius)      (Celsius)     (Celsius)     (Celsius)      (Celsius) 
--------- ------------------  ----------  ----------  ----------  ----------
eth-1-2  25.92       95.00         90.00      -20.00        -25.00     
--------------------------------------------------------------------------------------------------
                   High Alarm   High Warn   Low Warn    Low Alarm
       Voltage     Threshold     Threshold   Threshold     Threshold
Port     (Volts)      (Volts)       (Volts)      (Volts)       (Volts) 
--------- ----------------- ----------------  ----------------  ---------------  ---------------
eth-1-2   3.32        3.80         3.70        2.90          2.80   
---------------------------------------------------------------------------------------------------
                    High Alarm   High Warn   Low Warn    Low Alarm
         Current     Threshold     Threshold   Threshold     Threshold  
Port   (milliamperes)  (mA)         (mA)        (mA)        (mA)  
--------- ------------------  ---------------  ----------------  -----------------  -------------
eth-1-2    6.41        20.00       18.00       1.00           0.50       
-----------------------------------------------------------------------------------------------------
        Optical      High Alarm   High Warn   Low Warn    Low Alarm 
     Transmit Power   Threshold    Threshold    Threshold     Threshold   
Port   (dBm)         (dBm)       (dBm)        (dBm)       (dBm)  
--------- ------------------  ---------------  ----------------  ----------------  ---------------
eth-1-2    -2.41        2.01        1.00         -6.99         -7.96     
-------------------------------------------------------------------------------------------------------
        Optical      High Alarm   High Warn    Low Warn    Low Alarm   
     Receive Power    Threshold    Threshold     Threshold     Threshold
Port    (dBm)         (dBm)       (dBm)       (dBm)        (dBm)
--------- ------------------  ---------------  -----------------  ----------------  ----------------
eth-1-2     -12      -     1.00        0.00        -19.00      -20.00     
-------------------------------------------------------------------------------------------------------

7.4.2.7 升级Bootrom程序

交换机支持在线升级Bootrom程序,当升级完后,必须重启才能生效。

 步骤1 Bootrom拷贝到flash

Switch# copy mgmt-if tftp://10.10.38.160/bootrom.bin flash:/boot/

 步骤2 进入配置模式

Switch# configure terminal

 步骤3 升级bootrom

Switch(config)# update bootrom flash:/boot/bootrom.bin

 步骤4 退出配置模式

Switch(config)# end

 步骤5 重启设备

Switch# reboot

 步骤6 检查配置

当完成上述配置,系统重启结束,可查看系统当前运行的bootrom版本号。

Switch# show version
……
EPLD Version is 1
BootRom Version is 3.0.2

7.4.2.8 升级EPLD程序

交换机支持在线升级EPLD程序,当升级完成后,必须断电重启系统,否则系统将无法正常工作。

 步骤1 epld文件拷贝到flash

Switch# copy mgmt-if tftp://10.10.38.160/vme_v1.0 flash:/boot/vme_v1.0

 步骤2 进入配置模式

Switch# configure terminal

 步骤3 升级epld

Switch(config)# update epld flash:/boot/vme_v1.0

 步骤4 退出配置模式

Switch(config)# exit

 步骤5 重启设备

Switch# reboot

 步骤6 检查配置

当完成上述配置,系统重启结束,可查看系统当前运行的EPLD版本号

Switch# show version
……
EPLD Version is 1
BootRom Version is 3.0.2

7.4.3 应用场景配置举例

7.5 Bootrom配置

7.5.1 概述

7.5.1.1 功能简介

U-boot的主要功能是简单地初始化设备和在启动时加载系统镜像。在U-boot模式下,你可以使用一些必要的命令。

U-boot既能从TFTP 服务器上加载系统镜像,又能从硬盘里加载,例如flash。如果从TFTP 服务器上启动系统,需要配置本地设备和TFTP服务器的IP地址。

7.5.1.2 原理描述

7.5.2 配置

7.5.2.1 从TFTP服务器上加载镜像

 方式1: TFTP服务器上加载镜像

需要保存配置后重启:

bootrom:> setenv bootcmd boot_tftp OS-ms-v3.1.9.it.r.bin
bootrom:> saveenv
bootrom:> reset

 方式2: TFTP服务器上加载镜像,不需要密码

需要保存配置后重启:

bootrom:> setenv bootcmd boot_tftp_nopass OS-ms-v3.1.9.it.r.bin
bootrom:> saveenv
bootrom:> reset

 方式3: TFTP服务器上加载镜像后直接重启板子

bootrom:> boot_tftp OS-ms-v3.1.9.it.r.bin

 方式4: TFTP服务器上加载镜像后直接重启板子,不需要密码

bootrom:> boot_tftp_nopass OS-ms-v3.1.9.it.r.bin

 检查配置

在以上配置命令之后,你可以验证配置信息。

bootrom:> reset
………………..
TFTP from server 10.10.29.160; our IP address is 10.10.29.118
Filename 'OS-ms-v3.1.9.it.r.bin'.
Load address: 0xaa00000
Loading: octeth0: Up 100 Mbps Full duplex (port  0)
#################################################################
         #####################
done
Bytes transferred = 12314539 (bbe7ab hex), 1829 Kbytes/sec

7.5.2.2 从Flash上加载镜像

 方式1 flash加载镜像

需要保存配置后重启:

bootrom:> setenv bootcmd boot_flash OS-ms-v3.1.9.it.r.bin
bootrom:> saveenv
bootrom:> reset

 方式2 flash加载镜像,并恢复系统默认登录密码配置

需要保存配置后重启:

bootrom:> setenv bootcmd boot_flash_nopass OS-ms-v3.1.9.it.r.bin
bootrom:> saveenv
bootrom:> reset
Do you want to revert to the default config file ? [Y|N|E]:Y

 方式3 flash加载镜像后直接启动系统

bootrom:> boot_flash OS-ms-v3.1.9.it.r.bin

 方式4 flash加载镜像后直接启动系统,并恢复系统默认登录密码配置

bootrom:> boot_flash_nopass OS-ms-v3.1.9.it.r.bin
Do you want to  revert  to the default config file ? [Y|N|E]:Y

 检查配置

在以上配置命令之后,你可以验证配置信息。

bootrom:> reset
……
Do you want to  revert  to the default config file ? [Y|N|E]:Y
### JFFS2 loading '/boot/OS-ms-v3.1.9.it.r.bin' to 0xaa00000
Scanning JFFS2 FS: . done.
### JFFS2 load complete: 12314539 bytes loaded to 0xaa00000
## Booting image at 0aa00000 ...
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK
……

7.5.2.3 配置Boot IP

 步骤1 设置本地设备的IP并保存配置

bootrom:> setenv ipaddr 10.10.29.101
bootrom:> saveenv

 步骤2 指定TFTP服务器IP并保存配置

bootrom:> setenv serverip 10.10.29.160
bootrom:> saveenv

 步骤3 检查配置

在以上配置命令之后,你可以验证配置信息。

bootrom:> printenv
printenv
bootdelay=5
baudrate=9600
download_baudrate=9600
…………………
stderr=serial
ipaddr=10.10.29.101
serverip=10.10.29.160
Environment size: 856/2044 bytes

7.5.2.4 在线升级 Bootrom

 步骤1 选定bootrom文件在线升级

bootrom:> upgrade_uboot bootrom.bin

 步骤2 检查配置

在以上配置命令之后,你可以验证配置信息。

bootrom:> version
version
Bootrom 3.0.3 (Development build) (Build time: Aug  4 2011 - 11:47:06)

7.5.2.5 设定bootrom的网关

 步骤1 设置本地设备的网关并保存配置

bootrom:> setenv gatewayip 10.10.37.1
bootrom:> saveenv

 步骤2 设置本地设备的子网掩码并保存配置

bootrom:> setenv netmask 255.255.255.0
bootrom:> saveenv

 步骤3 检查配置

在以上配置命令之后,你可以验证配置信息:

bootrom:> printenv
printenv
bootdelay=5
baudrate=9600
download_baudrate=9600
…………………
stderr=serial
gatewayip=10.10.38.1
netmask=255.255.255.0
Environment size: 856/2044 bytes

7.5.3 应用场景配置举例

7.6 启动诊断配置

7.6.1 概述

7.6.1.1 功能简介

启动诊断可以在交换机重新启动后,帮助用户诊断交换机的各个硬件组件是否工作正常。其中诊断项包括:EPLDEEPROMPHYMAC等。

7.6.1.2 原理描述

7.6.2 配置

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 设置诊断等级

Switch(config)# diagnostic bootup level minimal

 步骤3 退出配置模式

Switch(config)# exit

 步骤4 检查配置

当前没有配置诊断等级。需要下一次重启后生效。

Switch# show diagnostic bootup level
The current running is no diagnostic bootup level
The next running bootup diag level is minimal

 步骤5 重启设备

Switch# reboot

 步骤6 检查配置

Switch# show diagnostic bootup result detail
#########################################################
Item Name                      Attribute Result Time(usec)
1    EPLD TEST                 C         Pass   57
2    EEPROM0 TEST              C         Pass   101262
3    PHY TEST                  C         Pass   1161
4    FAN TEST                  C         Pass   4668
5    SENSOR TEST               C         Pass   5472
6    PSU TEST                  C         Pass   1370
7    L2 UCAST FUNC TEST        C         Pass   40126

7.6.3 应用场景配置举例

7.7 SmartConfig配置

7.7.1 概述

7.7.1.1 功能简介

SmartConfig是一种智能初始化配置方法。在设置启用SmartConfig功能后,交换机启动时发现没有startup-config文件,则开始从服务器上下载配置文件或image文件。在完成下载配置后,如果发现下载了image文件,则需要重新启动系统。

需要注意的是我们是通过中间文件控制交换机下载的image文件和配置文件。交换机将会从XML格式的中间文件里,找到自己需要下载的文件。中间文件的名称为smartdeploy.xml,具体的内容大致如下:

<SmartDeploy>
<ftype>init</ftype>
<hostprefix>Bruce</hostprefix>
<defItem>
<option>enable</option>
<image>def.bin</image>
<config>def.cfg</config>
</defItem>
<groups>
<Item>
<type>MAC</type>
<value>001e.0808.9100</value>
<image>switchOs.bin</image>
<config>startup.cfg</config>
</Item>
<Item>
<type>productid</type>
<value>09SWITCH-E48-10</value>
<image>productid.bin</image>
<config>productid.cfg</config>
</Item>
<Item>
<type>SN</type>
<value>E054GD116004</value>
<image>sn.bin</image>
<config>sn.cfg</config>
</Item>
</groups>
</SmartDeploy>

在中间文件里有三种类型标签分别是MACproduct-idSN。交换机会按照MAC, SNproduct-id的顺序从中找到自己需要的image文件和配置文件。因此,我们只需要在文件中定义交换机需要的文件,并把所有的文件放到tftp服务器上。

7.7.1.2 原理描述

7.7.2 配置

smart config

上图为测试SmartConfig的网络拓扑,需要两台交换机和两台pc构建测试环境。switch是我们启用SmartConfig功能的交换机。需要注意的是, 上图中DHCP server提供的TFTP server地址必须是switch可以直接连接或者通过路由器连接的。

7.7.2.1 启用SmartConfig

 步骤1 进入配置模式

Switch#configure terminal

 步骤2 设置启用SmartConfig

Switch(config)#smart-config initial-switch-deployment

 步骤3 退出配置模式

Switch (config)#exit

 步骤4 检查配置

检查SmartConfig配置:

Switch# show smart-config config
Smart-Config config:
initial-switch-deployment: on
hostname-prefix: on
Send log message to console: on

7.7.2.2 让SmartConfig生效

默认是启动SmartConfig功能的,所以只要startup-config文件不存在,交换机就会在启动时开始SmartConfig工作流程。也可以手动删除startup-config文件,这样在下次启动时,Smartconfig就会工作。

具体的配置步骤如下:

 步骤1:

配置文件smartdeploy.xml ,将该文件和image文件,configuration文件放到tftp server上。目录结构如下(配置文件放在conf目录下,镜像文件放在images目录下)

smartconfig/
    |--conf/
    |--images/
    |--smartdeploy.xml

 步骤2:

配置DHCP server,必须要设置tftp server address选项

 步骤3:

确保交换机没有startup-config.conf文件

 步骤4:

启动或重启系统

7.7.3 应用场景配置举例

7.8 重启记录

7.8.1 概述

7.8.1.1 功能简介

交换机支持显示重启记录,从重启记录中可以区分出来板子是掉电重启,还是手动重启,或者是其他原因导致的重启。用户也可以通过一条命令来清除重启记录。

使用该命令最多显示10条重启记录,如果要查看更多的重启记录,可以在如下的文件中查看:flash:/reboot-info/reboot_info.log

显示结果说明如下:

重启类型

说明

POWER

断电重启

MANUAL

系统下手动reboot/reload重启

HIGH-TMPR

高温异常重启

BHMDOG BHM

看门狗重启,用于监控系统各个功能模块

LCMDOG LCM

看门狗重启,用于监控LC

SCHEDULE

定时重启

SNMP-RELOAD SNMP

重启

HALFAIL

HAGTHSRV通讯异常重启,需要stack功能开启

ABNORMAL

系统非正常方式重启,包括shell下的reboot

CTCINTR

按键重启

LCATTACH

LC匹配异常重启

OTHER

其他重启

7.8.1.2 原理描述

7.8.2 配置

重启记录默认开启,不需要设置。可以通过下面方法查看和清除。

 步骤1 显示重启记录

Switch# show reboot-info
Times      Reboot Type     Reboot Time(DST)
1          MANUAL          2000/01/01 01:21:35
2          MANUAL          2000/01/01 02:07:52
3          MANUAL          2000/01/01 02:24:59
4          MANUAL          2000/01/01 03:28:58
5          MANUAL          2000/01/01 03:43:02
6          MANUAL          2000/01/01 03:49:51
7          MANUAL          2000/01/01 04:01:23
8          MANUAL          2000/01/01 04:42:40
9          MANUAL          2000/01/01 04:49:27
10         MANUAL          2000/01/01 20:59:20

 步骤2 清除重启记录 (可选)

Switch(config)# reset reboot-info

7.8.3 应用场景配置举例

8   网络管理配置指导  

8.1 网络诊断配置

8.1.1 概述

8.1.1.1 功能简介

Ping是一个计算机网络的管理工具,用于测试一台主机通过IP协议的可达性和衡量每次从源到目的主机的时间(round trip time)。它的名字来源于主动声纳的术语。

Ping通过向目的主机发送ICMP echo请求报文,等待ICMP回应来实现。在运作过程中,它测量每一次发送到接收到响应的时间间隔(round trip time),并且记录所有的丢包。测试结果会用一个统计汇总数据来显示接收到的所有报文,包括最小,最大和平均的round-trip time,有时会打印平均的标准偏差值。

Traceroute是一个在IP网上用于测量路由选路和报文传输时间的工具。

Traceroute向目的主机发送一个ICMP序列报文,通过TTL参数跟踪通过的中间路由。中间路由器会将过路报文的TTL参数值减1,当TTL值减为0时丢弃报文并回送一个ICMP错误消息(ICMP Timer Exceeded)给发送源。

8.1.1.2 原理描述

8.1.2 配置

8.1.2.1 Ping内部接口的IP地址

Switch# ping 10.10.29.247
Switch# ping ipv6 2001:1000::1

8.1.2.2 Ping管理口的IP

Switch# ping mgmt-if 10.10.29.247
Switch# ping mgmt-if ipv6 2001:1000::1

8.1.2.3 Ping VRF实例的IP

Switch# ping vrf vrf1 10.10.10.1

8.1.2.4 Traceroute内部接口IP

Switch# traceroute 1.1.1.2
Switch# traceroute ipv6 2001:1000::1

8.1.3 应用场景配置举例

8.1.3.1 Ping 命令举例

Switch # ping mgmt-if 192.168.100.101
PING 192.168.100.101 (192.168.100.101) 56(84) bytes of data.
64 bytes from 192.168.100.101: icmp_seq=0 ttl=64 time=0.092 ms
64 bytes from 192.168.100.101: icmp_seq=1 ttl=64 time=0.081 ms
64 bytes from 192.168.100.101: icmp_seq=2 ttl=64 time=0.693 ms
64 bytes from 192.168.100.101: icmp_seq=3 ttl=64 time=0.071 ms
64 bytes from 192.168.100.101: icmp_seq=4 ttl=64 time=1.10 ms
--- 192.168.100.101 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4054ms
rtt min/avg/max/mdev = 0.071/0.408/1.104/0.421 ms, pipe 2

8.1.3.2 traceroute 命令举例

Switch# traceroute 1.1.1.2
traceroute to 1.1.1.2 (1.1.1.2), 30 hops max, 38 byte packets
1  1.1.1.2 (1.1.1.2)  112.465 ms  102.257 ms  131.948 ms
Switch # ping mgmt-if ipv6 2001:1000::1
PING 2001:1000::1(2001:1000::1) 56 data bytes
64 bytes from 2001:1000::1: icmp_seq=1 ttl=64 time=0.291 ms
64 bytes from 2001:1000::1: icmp_seq=2 ttl=64 time=0.262 ms
64 bytes from 2001:1000::1: icmp_seq=3 ttl=64 time=0.264 ms
64 bytes from 2001:1000::1: icmp_seq=4 ttl=64 time=0.270 ms
64 bytes from 2001:1000::1: icmp_seq=5 ttl=64 time=0.274 ms
--- 2001:1000::1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 3997ms
rtt min/avg/max/mdev = 0.262/0.272/0.291/0.014 ms

8.2 NTP配置

8.2.1 概述

8.2.1.1 功能简介

NTP是一个具有冗余能力的分层时间分布系统。NTP测量内网延迟和设备上运行它的算法的延误。使用这样的技术,NTP可以使LAN内的设备时间同步,精度达到毫秒级,WAN上的设备时间同步,精度达到百毫秒级。NTP时间分布树的分层特性使用户能通过一个等级(层级)选择需要的精度。一台时间服务器,放置在树的高端(低层级),提供了高精度的UTC标准时间。

主机可作为时间服务器,他们提供了他们认为是正确的时间到其他主机。主机也可作为客户端,向服务器请求时间同步。主机也可既充当客户端又当服务器,因为这些主机是在一个链路上,正确的时间从一个主机转发到另一个主机上。作为这个链路的一部分,首先一台主机作为一个客户端从另一台作为时间服务器的主机获取正确的时间。然后作为其他主机同步时间的时间服务器。

8.2.1.2 原理描述

8.2.2 配置

8.2.2.1 配置 client/server 模式带内连接方式

配置NTP客户端之前请确认NTP服务器已开启NTP服务:

NTP

 步骤1 进入配置模式

Switch#configure terminal

 步骤2 进入vlan配置模式,并创建vlan

Switch(config)# vlan database
Switch(config-vlan)# vlan 10
Switch(config-vlan)# exit

 步骤3 进入接口配置模式,并打开接口,加入vlan

Switch(config)# interface eth-0-26
Switch(config-if)# switch access vlan 10
Switch(config-if)# no shutdown
Switch(config-if)# exit

 步骤4 创建三层接口并配置IP地址

Switch(config)# interface vlan10
Switch(config-if)# ip address 6.6.6.5/24
Switch(config-if)# exit

 步骤5 配置NTP客户端属性

使能trustedkey;配置NTP服务器的IP地址;使能authentication;一旦使能authentication,客户端交换机仅发送time-of-day请求到信任NTP服务器;配置ntp ace

Switch(config)# ntp key 1 serverkey
Switch(config)# ntp server 6.6.6.6 key 1
Switch(config)# ntp authentication enable
Switch(config)# ntp trustedkey 1
Switch(config)# ntp ace 6.6.6.6 none

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

Switch# show ntp
Current NTP configuration:
============================================================
NTP access control list:
  6.6.6.6 mask 255.255.255.255 none
Unicast peer:
Unicast server:
  6.6.6.6 key 1
Authentication: enabled
Local reference clock:
Disable management interface

Switch# show ntp status
Current NTP status:
============================================================
clock is synchronized
stratum:         7
reference clock: 6.6.6.6
frequency:       17.365 ppm
precision:       2**20
reference time:  d14797dd.70b196a2  ( 1:54:37.440 UTC   Thu Apr  7 2011)
root delay:      0.787 ms
root dispersion: 23.993 ms
peer dispersion: 57.717 ms
clock offset:    -0.231 ms
stability:       6.222 ppm
Switch# show ntp associations
Current NTP associations:
   remote           refid      st   when poll reach   delay   offset  disp
============================================================================
*6.6.6.6         127.127.1.0    6   50  128   37      0.778   -0.234  71.945
synchronized, + candidate, # selected, x falsetick, . excess, - outlier

8.2.2.2 配置 client/server 模式带外连接方式

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 使能ntp带外口连接

Switch(config)# ntp mgmt-if only

说明1:使能带内带外口同时使用

Switch(config)# ntp mgmt-if enable

说明2:去使能带外口,只使用带内口

Switch(config)# no ntp mgmt-if

 步骤3 配置NTP客户端属性

Switch(config)# ntp key 1 serverkey
Switch(config)# ntp server 192.168.100.101 key 1
Switch(config)# ntp authentication enable
Switch(config)# ntp trustedkey 1
Switch(config)# ntp ace 192.168.100.101 none

 步骤4 退出配置模式

Switch(config)# end

 步骤5 检查配置

Switch# show ntp
Current NTP configuration:
============================================================
NTP access control list:
  192.168.100.101 mask 255.255.255.255 none
Unicast peer:
Unicast server:
  192.168.100.101 key 1
Authentication: enabled
Local reference clock:
Only management interface
Switch# show ntp associations
Current NTP associations:
remote           refid      st when poll reach   delay   offset  disp
==============================================================================
*192.168.100.101 127.127.1.0      3   27   64    1    1.328    2.033 433.075
* sys.peer, + candidate, # selected, x falsetick, . excess, - outlyer

8.2.3 应用场景配置举例

8.2.3.1 NTP 服务器配置 (以linux下的ntpd为例)

 步骤1 显示接口eth1IP地址

[root@localhost octeon]# ifconfig eth1
eth1      Link encap:Ethernet  HWaddr 00:08:C7:89:4B:AA 
          inet addr:6.6.6.6  Bcast:6.6.6.255  Mask:255.255.255.0
          inet6 addr: fe80::208:c7ff:fe89:4baa/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3453 errors:1 dropped:0 overruns:0 frame:1
          TX packets:3459 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:368070 (359.4 KiB)  TX bytes:318042 (310.5 KiB)

 步骤2 通过ping检查网络连接

[root@localhost octeon]# ping 6.6.6.5
PING 6.6.6.5 (6.6.6.5) 56(84) bytes of data.
64 bytes from 6.6.6.5: icmp_seq=0 ttl=64 time=0.951 ms
64 bytes from 6.6.6.5: icmp_seq=1 ttl=64 time=0.811 ms
64 bytes from 6.6.6.5: icmp_seq=2 ttl=64 time=0.790 ms

 步骤3 配置ntp.conf

[root@localhost octeon]# vi /etc/ntp.conf
server  127.127.1.0 # local clock
fudge   127.127.1.0 stratum 5
#
# Drift file.  Put this in a directory which the daemon can write to.
# No symbolic links allowed, either, since the daemon updates the file
# by creating a temporary in the same directory and then rename()'ing
# it to the file.
#
driftfile /var/lib/ntp/drift
broadcastdelay  0.008
broadcast 6.6.6.255
#
# PLEASE DO NOT USE THE DEFAULT VALUES HERE. Pick your own, or remote
# systems might be able to reset your clock at will. Note also that
# ntpd is started with a -A flag, disabling authentication, that
# will have to be removed as well.
#
#disable auth
keys        /etc/ntp/keys
trustedkey 1

 步骤 4 配置keys

[root@localhost octeon]# vi /etc/ntp/keys
#
# PLEASE DO NOT USE THE DEFAULT VALUES HERE. Pick your own, or remote
# systems might be able to reset your clock at will. Note also that
# ntpd is started with a -A flag, disabling authentication, that
# will have to be removed as well.
#
1 M serverkey

 步骤 5 启动ntpd服务器

[root@localhost octeon]# ntpd

8.3 Phy Loopback管理

8.3.1 概述

8.3.1.1 功能简介

Phy loopback是一个私有的模块,实现物理层的环回功能。它包含两个级别的环回:一种是通过phy硬件实现环回(包括internalexternal两种模式),另一种是port级别的环回,通过芯片实现。

Phy loopback只能配置在物理口上:

如果配置为external phy模式,所有进入此端口的报文被环回回去。

如果配置为internal phy模式,所有期望从此端口出去的报文被环回到另外一个指定的端口。

如果配置为port loopback模式,所有进入此端口的报文被环回回去,此模式还可以指定是否进行源、目的MAC的交换,如果交换MAC,芯片会重新计算CRC校验和。

8.3.1.2 原理描述

8.3.2 配置

8.3.2.1 配置external phy 环回模式

external phy topology

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,并配置为external phy环回模式

Switch (config)# interface eth-0-1
Switch (config-if)# no shutdown
Switch (config-if)# loopback phy external

 步骤3 退出配置模式

Switch (config-if)# end

 步骤4 检查配置

Switch# show phy loopback
Interface  Type       DestIntf   SwapMac
--------------------------------------------
eth-0-1    external   -          -
--------------------------------------------

8.3.2.2 配置 internal phy环回模式

Internal phy topology

 步骤1 进入配置模式

Switch # configure terminal

 步骤2 进入接口配置模式,配置为internal phy环回模式, 并指定为目的端口

Switch (config)# interface eth-0-2
Switch (config-if)# no shutdown
Switch (config-if)# exit

Switch (config)# interface eth-0-1
Switch (config-if)# no shutdown
Switch (config-if)# loopback phy internal eth-0-2

 步骤3 退出配置模式

Switch (config-if)# end

 步骤4 检查配置

Switch# show phy loopback
Interface  Type       DestIntf   SwapMac
--------------------------------------------
eth-0-1    internal   eth-0-2    -
--------------------------------------------

8.3.2.3 配置 port level环回模式

Port level topology

 步骤1 进入配置模式

Switch # configure terminal

 步骤2 进入接口配置模式,配置为port level环回模式,并且指定进行源、目的MAC交换

Switch (config)# interface eth-0-1
Switch (config-if)# no shutdown
Switch (config-if)# loopback port mac-address swap

 步骤3 退出配置模式

Switch (config-if)# end

 步骤4 检查配置

Switch# show phy loopback
Interface  Type       DestIntf   SwapMac
--------------------------------------------
eth-0-1    port       -          yes   
--------------------------------------------

8.3.3 应用场景配置举例

8.4 L2 ping配置

8.4.1 概述

8.4.1.1 功能简介

L2 ping是一个用于检测交换机间的连通性的工具。WindowLinux上的IP ping是通过ICMP协议实现,工作在3层网络上的,而L2 ping工作在二层网络。

当系统发出L2 Ping请求时,以ether type 0x9009为标志的协议报文将进入二层网络,当通过二层网络到达对端指定目的端口时,如果该端口上使能了l2 ping response,对端系统就会回复l2 ping请求。

8.4.1.2 原理描述

8.4.2 配置

ping a switch port

以下配置无特殊说明的部分,Switch1Switch2相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式并打开接口

Switch (config)# interface eth-0-1
Switch (config-if)# no shutdown

 步骤3 使能l2 ping 回复功能

Switch2配置:

Switch (config-if)# l2 ping response enable

 步骤4 退出配置模式

Switch (config-if)# end

 步骤5 使用 L2 Ping

Switch1执行:

Switch1# l2 ping 001e.0808.58f1 interface eth-0-1 count 10 interval 1000 timeout 2000

Sending 10 L2 ping message(s):
64 bytes from 001e.0808.58f1: sequence = 0, time = 10ms
64 bytes from 001e.0808.58f1: sequence = 1, time = 15ms
64 bytes from 001e.0808.58f1: sequence = 2, time = 13ms
64 bytes from 001e.0808.58f1: sequence = 3, time = 12ms
64 bytes from 001e.0808.58f1: sequence = 4, time = 20ms
64 bytes from 001e.0808.58f1: sequence = 5, time = 21ms
64 bytes from 001e.0808.58f1: sequence = 6, time = 12ms
64 bytes from 001e.0808.58f1: sequence = 7, time = 16ms
64 bytes from 001e.0808.58f1: sequence = 8, time = 14ms
64 bytes from 001e.0808.58f1: sequence = 9, time = 17ms
L2 ping completed.
-----------------------------------
10 packet(s) transmitted, 10 received, 0 % packet loss

001e.0808.58f1是对端接口地址。用户可以指定ping的次数、间隔、以及超时时间。

8.4.3 应用场景配置举例

8.5 RMON管理

8.5.1 概述

8.5.1.1 功能简介

RMON是一个Internet工程任务组(IETF)标准的监测规范,允许不同的网络代理和控制台系统交换网的监测数据。用户可以结合RMON和交换机中的简单网络管理协议(SNMP)代理来监控网络中流经交换机的数据流量。 RMON是一种标准的监测规范,它定义了一套统计与RMON兼容的控制台系统或网络探头一起提供全面的网络故障诊断,规划和性能优化的信息。

8.5.1.2 原理描述

8.5.2 配置

rmon

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式并创建一条统计和一条历史记录

Switch(config)# interface eth-0-1
Switch(config-if)# rmon collection stats 1 owner test
Switch(config-if)# rmon collection history 1 buckets 100 interval 1000 owner test
Switch(config-if)# exit

 步骤3 创建一条事件,并指定触发事件后行为是发送logtrap

Switch(config)# rmon event 1 log trap public description test_event owner test

 步骤4 创建一条警告,关注ETHERSTATSBROADCASTPKTS这个值,每1000秒统计一次,如果超过1000或者低于1都会触发事件1

 Switch(config)# rmon alarm 1 etherStatsEntry.6.1 interval 1000 delta rising-threshold 1000 event 1 falling-threshold 1 event 1 owner test 

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

Switch# show rmon statistics
  Rmon collection index 1
        Statistics ifindex = 1, Owner: test
        Input packets 0, octets 0, dropped 0
        Broadcast packets 0, multicast packets 0, CRC alignment errors 0, collisions 0
        Undersized packets 0, oversized packets 0, fragments 0, jabbers 0
        # of packets received of length (in octets):
        64: 0,  65-127: 0, 128-255: 0
        256-511: 0,  512-1023: 0, 1024-max: 0

Switch# show rmon history
  History index = 1
        Data source ifindex = 1
        Buckets requested = 100
        Buckets granted = 100
        Interval = 1000
        Owner: test

Switch# show rmon event
  Event Index = 1
        Description: test_event
        Event type Log & Trap
        Event community name: public
        Last Time Sent = 00:00:00
        Owner: test

Switch# show rmon alarm
  Alarm Index = 1
  Alarm status = VALID
  Alarm Interval = 1000
  Alarm Type is Delta
  Alarm Value = 00
  Alarm Rising Threshold = 1000
  Alarm Rising Event = 1
  Alarm Falling Threshold = 1
  Alarm Falling Event = 1
  Alarm Owner is test

8.5.3 应用场景配置举例

8.6 SNMP网络管理

8.6.1 概述

8.6.1.1 功能简介

SNMP是管理进程(NMS)和代理进程(Agent)之间的通信协议。它规定了在网络环境中对设备进行监视和管理的标准化管理框架、通信的公共语言、相应的安全和访问控制机制。网络管理员使用SNMP功能可以查询设备信息、修改设备的参数值、监控设备状态、自动发现网络故障、生成报告等。 SNMP具有以下技术优点:

基于TCP/IP互联网的标准协议,传输层协议一般采用UDP

自动化网络管理。网络管理员可以利用SNMP 平台在网络上的节点检索信息、修改信息、发现故障、完成故障诊断、进行容量规划和生成报告。

屏蔽不同设备的物理差异,实现对不同厂商产品的自动化管理。SNMP 只提供最基本的功能集,使得管理任务与被管设备的物理特性和实际网络类型相对独立,从而实现对不同厂商设备的管理。

简单的请求应答方式和主动通告方式相结合,并有超时和重传机制。

报文种类少,报文格式简单,方便解析,易于实现。

SNMPv3 版本提供了认证和加密安全机制,以及基于用户和视图的访问控制功能,增强了安全性。

8.6.1.2 原理描述

SNMP基于以下RFC

SNMPv1:在RFC1157中定义

SNMPv2C:在RFC1901中定义

SNMPv3:在RFC22732275中定义

以下简单描述了SNMP协议的条目和概念:

AgentAgent是网络设备中的一个应用模块,用于维护被管理设备的信息数据并响应NMS的请求,把管理数据汇报给发送请求的NMSAgent接收到NMS的请求信息后,完成查询或修改操作,并把操作结果发送给NMS,完成响应。同时,当设备发生故障或者其他事件的时候,Agent会主动发送Trap信息给NMS,通知设备当前的状态变化。

Management Information Base (MIB):任何一个被管理的资源都表示成一个对象,称为被管理的对象。MIB是被管理对象的集合。它定义了被管理对象的一系列属性:对象的名称、对象的访问权限和对象的数据类型等。每个Agent都有自己的MIBMIB也可以看作是NMSAgent之间的一个接口,通过这个接口,NMS可以对Agent中的每一个被管理对象进行读/写操作,从而达到管理和监控设备的目的。

Engine ID:一个网络节点的唯一ID

TrapTrapAgent主动向NMS 发送的信息,用于报告一些紧急的重要事件(如被管理设备重新启动等)。Trap 报文有两种:通用Trap 和企业自定义Trap。设备支持的通用Trap 包括authenticationcoldstartlinkdownlinkup warmstart 五种,其它均为企业自定义Trap。企业自定义Trap由模块生成。因为Trap 信息通常较多,会占用设备内存,从而影响设备性能,所以建议用户根据需要开启指定模块的Trap 功能,生成相应的Trap 报文。

8.6.2 配置

snmp

如图所示,SNMP代理从MIB收集数据。SNMP代理可以发送trap或通报特定事件给接收和处理trap的管理员。 Trap用于向管理员通报一些异常信息,如用户认证异常,设备重启,链路状态变化(端口打开或关闭),MAC地址追踪等等。 SNMP也能响应管理员发出的MIB相关的请求,例如getget-nextset等。

8.6.2.1 启用SNMP

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局使能snmp

Switch(config)# snmp-server enable

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch# show running-config
snmp-server enable

8.6.2.2 团体字符串配置

您可以使用SNMP团体字符串来定义的SNMP管理者和代理之间的关系。团体字符串的行为就像一个密码,以允许访问代理交换机。您可以指定一个或多个团体字符。

一个MIB视图,它定义了所有给定团体可访问的MIB对象子集。

设置访问的MIB对象的读、写权限。

在特权EXEC模式,开始按照下列步骤来配置交换机上的一个团体字符串,以下步骤配置完成后,就可以实现SNMP的基本读写功能。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 团体字符串

配置一个视图名字 “DUT”(可选)。 配置团体名字 “public” 读写权限,可访问的视图为 “DUT”.括号内为可选字段。

Switch(config)# snmp-server view DUT included 1
Switch(config)# snmp-server community public read-write (view DUT)

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch# show running-config
snmp-server enable
snmp-server view DUT included .1
snmp-server community public read-only view DUT

8.6.2.3 SNMPv3 Groups, Users and Accesses配置

你可以为SNMP服务器指定一个 (engine ID),创建一个SNMP组,在SNMP组中加入用户、设置权限。

在特权EXEC模式,开始按照下列步骤操作,在交换机上配置SNMP

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置snmp全局属性

配置engineID; 配置用户名和密码以及验证类型; 创建SNMP组; 设置组内成员的权限。

Switch(config)# snmp-server engineID 8000123456
Switch(config)# snmp-server usm-user usr1 authentication md5 mypassword privacy des yourpassword
Switch(config)# snmp-server group grp1 user usr1 security-model usm
Switch(config)# snmp-server access grp1 security-model usm noauth

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch# show running-config
snmp-server engineID 8000123456
snmp-server usm-user usr1 authentication md5 mypassword privacy des yourpassword
snmp-server group grp1 user usr1 security-model usm
snmp-server access grp1 security-model usm noauth

8.6.2.4 SNMPv1 和 SNMPv2 的notifications配置

在特权EXEC模式,开始在交换机上配置的SNMP按照下列步骤操作。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置snmp全局属性

开启所有Trap; 配置目的IPv4地址以及团体名Public; 配置目的IPv6地址以及团体名Public

Switch(config)# snmp-server trap enable all
Switch(config)# snmp-server trap target-address 10.0.0.2 community public
Switch(config)# snmp-server trap target-address 2001:1000::1 community public

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch# show running-config
snmp-server trap target-address 10.0.0.2 community public
snmp-server trap target-address 2001:1000::1 community public
snmp-server trap enable vrrp
snmp-server trap enable igmp snooping
snmp-server trap enable ospf
snmp-server trap enable pim
snmp-server trap enable stp
snmp-server trap enable system
snmp-server trap enable coldstart
snmp-server trap enable warmstart
snmp-server trap enable linkdown
snmp-server trap enable linkup

8.6.2.5 SNMPv3 的notifications配置

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置snmp全局属性

开启所有Trap; 创建一个Trap消息条目; 配置目的IPv4地址以及notification类型; 配置目的IPv6地址以及notification类型; 配置用户的地址参数。

Switch(config)# snmp-server trap enable all
Switch(config)# snmp-server notify notif1 tag tmptag trap
Switch(config)# snmp-server target-address targ1 param parm1 10.0.0.2 taglist tmptag
Switch(config)# snmp-server target-address t1 param p1 2001:1000::1 taglist tag1
Switch(config)# snmp-server target-params parm1 user usr1 security-model v3 message-processing v3 noauth

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch# show running-config
snmp-server notify notif1 tag tmptag trap
snmp-server target-address t1 param p1  2001:1000::1 taglist tag1
snmp-server target-address targ1 param parm1  10.0.0.2 taglist tmptag
snmp-server target-params parm1 user usr1 security-model v3 message-processing v3 noauth 
snmp-server trap enable vrrp
snmp-server trap enable igmp snooping
snmp-server trap enable ospf
snmp-server trap enable pim
snmp-server trap enable stp
snmp-server trap enable system
snmp-server trap enable coldstart
snmp-server trap enable warmstart
snmp-server trap enable linkdown
snmp-server trap enable linkup

8.6.3 应用场景配置举例

8.7 Sflow配置

8.7.1 概述

8.7.1.1 功能简介

Sflow Sampled Flow,是一种监视进入设备流量的技术。它在监视设备上应用,通过一种采样机制以一定速率采样,然后将采样信息送到监视server。在server端可以查看多个agent的流量情况。 Sflow有两种类型的采样信息:一种是端口的统计信息,一种是被采样报文的头部。

sflow的一些默认配置如下:

参数

默认值

Global sflow

disabled

sflow on port

disable

Collector udp port

6343

counter interval time

20 seconds

8.7.1.2 原理描述

8.7.2 配置

sflow

 步骤1 进入配置模式

 Switch# configure terminal

 步骤2 全局使能sflow

Switch(config)# sflow enable

 步骤3 设置sflow全局属性

配置本地直连监视器端口的agent IP地址和监视器的地址和UDP端口号,UDP端口号可以不配,表示用默认端口6343

Switch(config)# sflow agent ip 3.3.3.1
Switch(config)# sflow collector 3.3.3.2 6342

IPv6Agent地址和监视器地址配置:

Switch(config)# sflow agent ipv6 2001:2000::2
Switch(config)# sflow collector 2001:2000::1

sflow功能正常工作,agent和监视器都至少需要配置一个。不关心具体是IPv4IPv6的。

修改端口的统计信息每15秒(默认20)发送一次(可选):

Switch(config)# sflow counter interval 15

 步骤4 进入接口配置模式并配置接口属性

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 15.1.1.1/24
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)#no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 16.1.1.1/24
Switch(config-if)# exit

Switch(config)# interface eth-0-3
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 3.3.3.1/24
Switch(config-if)# exit

 步骤5 eth-0-1入方向使能sflow

Switch(config)# interface eth-0-1
Switch(config-if)# sflow flow-sampling rate 8192
Switch(config-if)# sflow flow-sampling enable input
Switch(config-if)# sflow counter-sampling enable
Switch(config-if)# exit

 步骤6 检查配置

用如下命令查看sflow配置:

Switch# show sflow
sFlow Version: 5
sFlow Global Information:
Agent IPv4 address            : 3.3.3.1
Agent IPv6 address            : 2001:1000::2
Counter Sampling Interval     : 15 seconds
Collector 1:
  IPv4 Address: 3.3.3.2
  vrf: N/A
  Port: 6342
Collector 2:
  IPv6 Address: 2001:1000::1
  vrf: N/A
  Port: 6343

sFlow Port Information:
                                 Flow-Sample   Flow-Sample
Port        Counter   Flow      Direction     Rate
--------------------------------------------------------
eth-0-1     Enable    Enable    Input         8192 

8.7.3 应用场景配置举例

8.8 LLDP配置

8.8.1 概述

8.8.1.1 功能简介

链路层发现协议LLDPLink Layer Discovery Protocol)是IEEE 802.1ab 中定义的第二层发现协议。第二层发现(Layer 2 Discovery)可以准确定位设备附带的接口及其连接的信息,包括端口的VLAN属性和支持的协议类型等,并显示出了客户端、交换机、路由器和应用服务器以及网络服务器之间的路径。这些详细的信息对快速获取相连设备的拓扑状态、设备间的配置冲突、查询网络失败的根源将很有帮助。

8.8.1.2 原理描述

8.8.2 配置

lldp

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局使能lldp

Switch(config)# lldp enable

 步骤3 进入接口配置模式,配置接口lldp属性

Switch(config)# interface eth-0-9
Switch(config)# no shutdown
Switch(config-if)# no lldp tlv 8021-org-specific vlan-name
Switch(config-if)# lldp tlv med location-id ecs-elin 1234567890
Switch(config-if)# lldp enable txrx
Switch(config-if)# exit

 步骤4 配置定时器(可选)

配置LLDP 报文传输间隔为40秒; 配置LLDP报文传输延迟为3秒; 配置LLDP重新使能延迟为1秒。

Switch(config)# lldp timer msg-tx-interval 40
Switch(config)# lldp timer tx-delay 3
Switch(config)# lldp timer reinitDelay 1

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

用如下命令查看LLDP配置:

Switch# show lldp local config
LLDP global configuration:
============================================================
LLDP function global enabled : YES
LLDP msgTxHold     : 4
LLDP msgTxInterval : 40
LLDP reinitDelay   : 1
LLDP txDelay       : 3
Switch# show lldp local config interface eth-0-9
LLDP configuration on interface eth-0-9 :
============================================================
LLDP admin status : TXRX
Basic optional TLV Enabled:
    Port Description TLV
    System Name TLV
    System Description TLV
    System Capabilities TLV
    Management Address TLV
IEEE 802.1 TLV Enabled:
    Port Vlan ID TLV
    Port and Protocol Vlan ID TLV
    Protocol Identity TLV
IEEE 802.3 TLV Enabled:
    MAC/PHY Configuration/Status TLV
    Power Via MDI TLV
    Link Aggregation TLV
    Maximum Frame Size TLV
LLDP-MED TLV Enabled:
    Med Capabilities TLV
    Network Policy TLV
    Location Identification TLV
    Extended Power-via-MDI TLV
    Inventory TLV
Switch# show running-config
!
lldp enable
lldp timer msg-tx-interval 40
lldp timer reinit-delay 1
lldp timer tx-delay 3
!
interface eth-0-9
lldp enable txrx
no lldp tlv 8021-org-specific vlan-name
lldp tlv med location-id ecs-elin 1234567890
!
Switch# show lldp neighbor
Local Port eth-0-1 has 0 neighbor(s)

Local Port eth-0-2 has 0 neighbor(s)

Local Port eth-0-9 has 2 neighbor(s)

Remote LLDP Information of port eth-0-9
============================================================
Neighbor Index : 1
Chassis ID type: Mac address
Chassis ID     : 48:16:be:a4:d7:09
Port ID type   : Interface Name
Port ID        : eth-0-9
TTL : 160
Expired time: 134

Location Identification :
ECS ELIN: 1234567890

8.9 IPFIX配置

8.9.1 概述

8.9.1.1 功能简介

网络中的流量可以视为由多条流(flow)组成的。基于某些应用场合,有关于这些流的信息是很有必要获取的。这里需要有一个统一的显示流信息的方式以及将流信息送往收集设备。这里介绍的就是IPFIX

IPFIX出现之前,有思科的私有方法NetFlowIPFIX类似NetFlow,并且是基于NetFlow的版本9实现的。

8.9.1.2 原理描述

8.9.2 配置

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置老化时间(可选)

设置老化时间未300秒。默认值 1800秒。

Switch(config)# ipfix global
Switch(Config-ipfix-global)# flow aging 300

 步骤3 配置recorder

Switch(config)# ipfix recorder recorder1
Switch(Config-ipfix-reocrder)# match mac source address
Switch(Config-ipfix-reocrder)# match ipv4 source address mask 32
Switch(Config-ipfix-reocrder)# match ipv4 destination address mask 32
Switch(Config-ipfix-reocrder)# match vxlan-vni
Switch(Config-ipfix-reocrder)# collect counter bytes
Switch(Config-ipfix-reocrder)# collect counter packets
Switch(Config-ipfix-reocrder)# exit

 步骤4 配置sampler

Switch(config)# ipfix sampler sampler1
Switch(Config-ipfix-sampler)# 1 out-of 100
Switch(Config-ipfix- sampler)# exit

 步骤5 配置exporter

Switch(config)# ipfix exporter exporter1
Switch(Config-ipfix-exporter)# destination 10.10.10.1
Switch(Config-ipfix-exporter)# source interface eth-0-2
Switch(Config-ipfix-exporter)# flow data timeout 200
Switch(Config-ipfix-exporter)# event flow end timeout
Switch(Config-ipfix-exporter)# exit

 步骤6 配置monitor

Switch(config)# ipfix monitor monitor1
Switch(Config-ipfix-monitor)# recorder recorder1
Switch(Config-ipfix-monitor)# exporter exporter1
Switch(Config-ipfix-monitor)# exit

 步骤7 进入接口配置模式,并在接口上应用ipfix

Switch(config)# interface eth-0-1
Switch(config-if)# ipfix monitor input monitor1 sampler sampler1
Switch(config-if)# exit

 步骤8 退出配置模式

Switch(config)# end

 步骤9 检查配置

用如下命令查看IPFIX配置:

Switch# show ipfix global
IPFIX global informaition:
     Current flow cache number                         : 0(ingress: 0, egress: 0)
     Flow cache aging interval                         : 300 seconds
     Flow cache export interval                        : 5 seconds
     Flow cache memory usage threshold                 : 90%
     Flow cache sampler mode                           : all flow
     Flow cache packet wraparound threshold            : 67108863
     Flow cache byte wraparound threshold              : 4294967295
     Flow cache dropped packet wraparound threshold    : 1023
     Flow cache jitter threshold                       : 65535
     Flow cache latency threshold                      : 16777215

Switch# show ipfix recorder recorder1
IPFIX recorder information:
    Name           : recorder1
    Description    :
    Match info     :
        match Source Mac Address
        match IPv4 Source Address
        match IPv4 Destination Address
        match Vxlanvni
    Collect info    :
        collect Flow Byte Number
        collect Flow Packet Number

Switch# show ipfix exporter exporter1
IPFIX exporter information:
    Name                             : exporter1
    Description                      :
    Exporter Interface               : eth-0-2
    Domain ID                        : 0
    Collector Name                   : 10.10.10.1
    IPFIX message protocol           : UDP
    IPFIX message destination Port   : 2055
    IPFIX message TTL value          : 255
    IPFIX message DSCP value         : 63
    IPFIX data interval              : 200
    IPFIX template interval          : 1800
    IPFIX exporter events            :
        Flow aging event

Switch# show ipfix sampler sampler1
IPFIX sampler information:
    Name                             : sampler1
    Description                      :
    Rate                             : 100

Switch# show ipfix monitor monitor1
IPFIX monitor information:
    Name                             : monitor1
    Description                      :
    Recorder                         : recorder1
    exporter                         : exporter1
    flow mirror packet               : 0
    flow mirror destination          : NA

8.9.3 应用场景配置举例

8.10 PTP配置指导

8.10.1 概述

8.10.1.1 功能简介

精确时间协议是由电气与电子工程师协会1588工作组定义的,用于在亚微秒级时间同步场合下使用的协议。PTP通过主从时钟等级组建同步拓扑,并通过报文分发时间信息。PTP广泛用于需要精确时间信息的工业自动化系统以及控制网络,目前PTP也正在向运营商移动数字回传网络中部署。

8.10.1.2 原理描述

参考 IEEE 1588-2008

8.10.1.3 缩略语

缩略语

含义

GPS

全球定位系统

NTP

网络时间协议

PTP

精确时间协议

UTC

协调世界时

TAI

国际原子时

8.10.2 默认配置

功能

默认值

PTP功能

禁用

PTP设备类型

普通时钟

PTP优先级一与优先级二

128

PTP时戳模式

两步模式

PTP Announce周期

2

PTP Announce超时周期

8

PTP Delay_Req最小周期

1

PTP Pdelay_Req最小周期

1

PTP Sync周期

1

8.10.3 配置

PTP时钟域

8.10.3.1 在点对点对时网络中配置边界时钟

 步骤1:配置Switch 1为普通时钟

配置Switch 1为普通时钟并且优先级一为0Switch 1将有在这个时钟域中最高的优先级,也就是说,该时钟域中的主时钟。

全局启用PTP,设置优先级一为0。接口模式设置延时测量机制为点对点模式,在本接口启用PTP

Switch# configure terminal
Switch(config)# ptp global-enable
Switch(config)# ptp priority1 0
Switch(config)# interface eth-0-9
Switch(config-if)# ptp delay-mechanism peer
Switch(config-if)# ptp enable

 步骤2:配置Switch 2为边界时钟

设置设备类型为边界时钟,全局启用PTP。 接口模式设置延时测量机制为点对点模式,在接口启用PTP

Switch# configure terminal
Switch(config)# ptp device-type bc
Switch(config)# ptp global-enable
Switch(config)# interface eth-0-9
Switch(config-if)# ptp delay-mechanism peer
Switch(config-if)# ptp enable
Switch(config)# interface eth-0-18
Switch(config-if)# ptp delay-mechanism peer
Switch(config-if)# ptp enable

 步骤3:配置Switch 3为从时钟

全局启用PTP,并设置为从时钟。 接口模式,设置延时测量机制为点对点模式,在接口启用PTP

Switch# configure terminal
Switch(config)# ptp global-enable
Switch(config)# ptp slave-only
Switch(config)# interface eth-0-18
Switch(config-if)# ptp delay-mechanism peer
Switch(config-if)# ptp enable

 步骤4:验证配置

验证Switch 1全局PTP状态

Switch# show ptp
----------------------  Global Configure  ----------------------
PTP State                   : enable
Port Number             : 1
Domain                      : 0
Slave Only              : false
Clock Type              : ordinary clock
Priority1                   : 0
Priority2                   : 128
Clock Accuracy          : 0xfe
Clock Class             : 248
Time Source             : internal-oscillator(160)
UTC Offset              : 34
Leap59                      : false
Leap61                      : false
Local Clock Identity        : 60:4D:39:FF:FE:FF:C5:00
Set systime via PTP:   : false
-----------------------  BMC Properties  -----------------------
Receive Member          : (null)
Parent Clock Identity       : 60:4D:39:FF:FE:FF:C5:00
Parent Port Number      : 0
Mean Path Delay         : 0
Offset From Master      : 0
Step Removed                : 0
GM Clock Identity           : 60:4D:39:FF:FE:FF:C5:00
GM Priority1                : 0
GM Priority2                : 128
GM Clock Accuracy           : 0xfe
GM Clock Class          : 248
GM Time Source          : internal-oscillator(160)
GM UTC Offset               : 34
GM UTC Offset Valid     : false
GM Time Scale               : PTP
GM Time Traceable           : false
GM Leap59                   : false
GM Leap61                   : false
GM Frequency Traceable  : false

验证Switch 1接口PTP状态

Switch# show ptp interface eth-0-9
---------------------------------------------------------------
Interface                   : eth-0-9
-----------------------  Port Configure  -----------------------
PTP state                   : enable
Port ID                 : 60:4D:39:FF:FE:FF:C5:00@9
Delay Mechanism         : peer
Step Mode                   : two
Port State              : master
Announce Interval           : 1
Sync Interval               : 0
Announce Receipt Timeout    : 4
PDelay_Req Interval     : 0
Peer Mean Path Delay        : 0
-----------------------  Port Statistic  -----------------------
Recv Packet Statistics
---------------------------------------------------------------
Announce            : 5             Sync                    : 0
Delay_Req           : 0             Pdelay_Req              : 5248
Delay_Resp      : 0             Pdelay_Resp             : 5249
Follow_Up           : 0             Pdelay_Resp_Follow_Up   : 5249
Unknown         : 0
Send Packet Statistics
---------------------------------------------------------------
Announce            : 5345          Sync                    : 10609
Delay_Req           : 0             Pdelay_Req              : 10617
Delay_Resp      : 0             Pdelay_Resp             : 5248
Follow_Up           : 10607         Pdelay_Resp_Follow_Up   : 5248
Unknown         : 0
Discard Packet Statistics
---------------------------------------------------------------
Announce            : 0             Sync                    : 9
Delay_Req           : 0             Pdelay_Req              : 0
Delay_Resp      : 0             Pdelay_Resp             : 0
Follow_Up           : 9             Pdelay_Resp_Follow_Up   : 0
Unknown         : 0

验证Switch 2全局PTP状态

Switch# show ptp
----------------------  Global Configure  ----------------------
PTP State                   : enable
Port Number             : 2
Domain                      : 0
Slave Only              : false
Clock Type              : boundary clock
Priority1                   : 128
Priority2                   : 128
Clock Accuracy          : 0xfe
Clock Class             : 248
Time Source             : internal-oscillator(160)
UTC Offset              : 34
Leap59                      : false
Leap61                      : false
Local Clock Identity        : 5E:C4:DC:FF:FE:AE:78:00
Set systime via PTP:   : false
-----------------------  BMC Properties  -----------------------
Receive Member          : eth-0-9
Parent Clock Identity       : 60:4D:39:FF:FE:FF:C5:00
Parent Port Number      : 9
Mean Path Delay         : 0
Offset From Master      : 0
Step Removed                : 1
GM Clock Identity           : 60:4D:39:FF:FE:FF:C5:00
GM Priority1                : 0
GM Priority2                : 128
GM Clock Accuracy           : 0xfe
GM Clock Class          : 248
GM Time Source          : internal-oscillator(160)
GM UTC Offset               : 34
GM UTC Offset Valid     : false
GM Time Scale               : PTP
GM Time Traceable           : false
GM Leap59                   : false
GM Leap61                   : false
GM Frequency Traceable  : false

验证Switch 2外部PTP主时钟信息

Switch# show ptp foreign-master
  Foreign_master_port_identity  Qualification   Interface
---------------------------------------------------------------
*60:4D:39:FF:FE:FF:C5:00@9     true            eth-0-9

验证Switch 2接口PTP状态

Switch# show ptp interface eth-0-9
---------------------------------------------------------------
Interface                   : eth-0-9
-----------------------  Port Configure  -----------------------
PTP state                   : enable
Port ID                 : 5E:C4:DC:FF:FE:AE:78:00@9
Delay Mechanism         : peer
Step Mode                   : two
Port State              : slave
Announce Interval           : 1
Sync Interval               : 0
Announce Receipt Timeout    : 4
PDelay_Req Interval     : 0
Peer Mean Path Delay        : 0
-----------------------  Port Statistic  -----------------------
Recv Packet Statistics
---------------------------------------------------------------
Announce            : 2944          Sync                    : 5837
Delay_Req           : 0             Pdelay_Req              : 5876
Delay_Resp      : 0             Pdelay_Resp             : 5876
Follow_Up           : 5837          Pdelay_Resp_Follow_Up   : 5875
Unknown         : 0
Send Packet Statistics
---------------------------------------------------------------
Announce            : 15            Sync                    : 30
Delay_Req           : 0             Pdelay_Req              : 5876
Delay_Resp      : 0             Pdelay_Resp             : 5876
Follow_Up           : 27            Pdelay_Resp_Follow_Up   : 5876
Unknown         : 0
Discard Packet Statistics
---------------------------------------------------------------
Announce            : 0             Sync                    : 9
Delay_Req           : 0             Pdelay_Req              : 0
Delay_Resp      : 0             Pdelay_Resp             : 0
Follow_Up           : 9             Pdelay_Resp_Follow_Up   : 0
Unknown         : 0

Switch# show ptp interface eth-0-18
---------------------------------------------------------------
Interface                   : eth-0-18
-----------------------  Port Configure  -----------------------
PTP state                   : enable
Port ID                 : 5E:C4:DC:FF:FE:AE:78:00@18
Delay Mechanism         : peer
Step Mode                   : two
Port State              : master
Announce Interval           : 1
Sync Interval               : 0
Announce Receipt Timeout    : 4
PDelay_Req Interval     : 0
Peer Mean Path Delay        : 0
-----------------------  Port Statistic  -----------------------
Recv Packet Statistics
---------------------------------------------------------------
Announce            : 0             Sync                    : 0
Delay_Req           : 0             Pdelay_Req              : 5680
Delay_Resp      : 0             Pdelay_Resp             : 5680
Follow_Up           : 0             Pdelay_Resp_Follow_Up   : 5680
Unknown         : 0
Send Packet Statistics
---------------------------------------------------------------
Announce            :2950           Sync                    : 5860
Delay_Req           : 0             Pdelay_Req              : 5868
Delay_Resp      : 0             Pdelay_Resp             : 5680
Follow_Up           : 5858          Pdelay_Resp_Follow_Up   : 5680
Unknown         : 0
Discard Packet Statistics
---------------------------------------------------------------
Announce            : 0             Sync                    : 0
Delay_Req           : 0             Pdelay_Req              : 0
Delay_Resp      : 0             Pdelay_Resp             : 0
Follow_Up           : 0             Pdelay_Resp_Follow_Up   : 0
Unknown         : 0

验证Switch 3全局PTP状态

Switch# show ptp
----------------------  Global Configure  ----------------------
PTP State                   : enable
Port Number             : 1
Domain                      : 0
Slave Only              : true
Clock Type              : ordinary clock
Priority1                   : 128
Priority2                   : 128
Clock Accuracy          : 0xfe
Clock Class             : 255
Time Source             : internal-oscillator(160)
UTC Offset              : 34
Leap59                      : false
Leap61                      : false
Local Clock Identity        : A0:D2:25:FF:FE:B1:F8:00
Set systime via PTP:   : false
-----------------------  BMC Properties  -----------------------
Receive Member          : eth-0-18
Parent Clock Identity       : 5E:C4:DC:FF:FE:AE:78:00
Parent Port Number      : 18
Mean Path Delay         : 0
Offset From Master      : 0
Step Removed                : 2
GM Clock Identity           : 60:4D:39:FF:FE:FF:C5:00
GM Priority1                : 0
GM Priority2                : 128
GM Clock Accuracy           : 0xfe
GM Clock Class          : 248
GM Time Source          : internal-oscillator(160)
GM UTC Offset               : 34
GM UTC Offset Valid     : false
GM Time Scale               : PTP
GM Time Traceable           : false
GM Leap59                   : false
GM Leap61                   : false
GM Frequency Traceable  : false

验证Switch 3外部PTP主时钟信息

Switch# show ptp foreign-master
  Foreign_master_port_identity  Qualification   Interface
---------------------------------------------------------------
*5E:C4:DC:FF:FE:AE:78:00@18        true            eth-0-18

验证Switch 3接口PTP状态

Switch# show ptp interface eth-0-18
---------------------------------------------------------------
Interface                   : eth-0-18
-----------------------  Port Configure  -----------------------
PTP state                   : enable
Port ID                 : A0:D2:25:FF:FE:B1:F8:00@18
Delay Mechanism         : peer
Step Mode                   : two
Port State              : slave
Announce Interval           : 1
Sync Interval               : 0
Announce Receipt Timeout    : 4
PDelay_Req Interval     : 0
Peer Mean Path Delay        : 0
-----------------------  Port Statistic  -----------------------
Recv Packet Statistics
---------------------------------------------------------------
Announce            : 3472          Sync                    : 6884
Delay_Req           : 0             Pdelay_Req              : 6919
Delay_Resp      : 0             Pdelay_Resp             : 6917
Follow_Up           : 6884          Pdelay_Resp_Follow_Up   : 6917
Unknown         : 0
Send Packet Statistics
---------------------------------------------------------------
Announce            : 0             Sync                    : 0
Delay_Req           : 0             Pdelay_Req              : 6920
Delay_Resp      : 0             Pdelay_Resp             : 6919
Follow_Up           : 0             Pdelay_Resp_Follow_Up   : 6919
Unknown         : 0
Discard Packet Statistics
---------------------------------------------------------------
Announce            : 0             Sync                    : 11
Delay_Req           : 0             Pdelay_Req              : 0
Delay_Resp      : 0             Pdelay_Resp             : 3
Follow_Up           : 11            Pdelay_Resp_Follow_Up   : 3
Unknown         : 0

8.10.3.2 在点对点对时网络中配置透传时钟

  步骤1:将Switch 2从边界时钟修改为透传时钟 

设置Switch 2为点到点透传时钟,全局启用PTP。 接口模式启用PTP

Switch# configure terminal
Switch(config)# ptp device-type p2ptc
Switch(config)# ptp global-enable
Switch(config)# interface range eth-0-9 , 18
Switch(config-if)# ptp enable

 步骤2:验证配置

验证Switch 2全局PTP状态

Switch# show ptp
----------------------  Global Configure  ----------------------
PTP State                   : enable
Port Number             : 2
Primary Domain          : 0
Clock Type              : peer-to-peer transparent clock
Local Clock ID          : 5E:C4:DC:FF:FE:AE:78:00

验证Switch 2接口PTP状态

Switch# show ptp interface eth-0-9
---------------------------------------------------------------
Interface                   : eth-0-9
-----------------------  Port Configure  -----------------------
PTP state                   : enable
Port ID                 : 5E:C4:DC:FF:FE:AE:78:00@9
Delay Mechanism         : peer
Step Mode                   : two
Port State              : normal
PDelay_Req Interval     : 0
Peer Mean Path Delay        : 0
-----------------------  Port Statistic  -----------------------
Recv Packet Statistics
---------------------------------------------------------------
Announce            : 6545          Sync                    : 12985
Delay_Req           : 0             Pdelay_Req              : 13024
Delay_Resp      : 0             Pdelay_Resp             : 13016
Follow_Up           : 12985         Pdelay_Resp_Follow_Up   : 13016
Unknown         : 0
Send Packet Statistics
---------------------------------------------------------------
Announce            : 15            Sync                    : 30
Delay_Req           : 0             Pdelay_Req              : 13021
Delay_Resp      : 0             Pdelay_Resp             : 13024
Follow_Up           : 27            Pdelay_Resp_Follow_Up   : 13024
Unknown         : 0
Discard Packet Statistics
---------------------------------------------------------------
Announce            : 0             Sync                    : 9
Delay_Req           : 0             Pdelay_Req              : 0
Delay_Resp      : 0             Pdelay_Resp             : 5
Follow_Up           : 9             Pdelay_Resp_Follow_Up   : 5
Unknown         : 0

Switch# show ptp interface eth-0-18
---------------------------------------------------------------
Interface                   : eth-0-18
-----------------------  Port Configure  -----------------------
PTP state                   : enable
Port ID                 : 5E:C4:DC:FF:FE:AE:78:00@18
Delay Mechanism         : peer
Step Mode                   : two
Port State              : normal
PDelay_Req Interval     : 0
Peer Mean Path Delay        : 0
-----------------------  Port Statistic  -----------------------
Recv Packet Statistics
---------------------------------------------------------------
Announce            : 0             Sync                    : 0
Delay_Req           : 0             Pdelay_Req              : 13026
Delay_Resp      : 0             Pdelay_Resp             : 13019
Follow_Up           : 0             Pdelay_Resp_Follow_Up   : 13019
Unknown         : 0
Send Packet Statistics
---------------------------------------------------------------
Announce            : 6651          Sync                    : 13208
Delay_Req           : 0             Pdelay_Req              : 13212
Delay_Resp      : 0             Pdelay_Resp             : 13026
Follow_Up           : 13208         Pdelay_Resp_Follow_Up   : 13026
Unknown         : 0
Discard Packet Statistics
---------------------------------------------------------------
Announce            : 0             Sync                    : 0
Delay_Req           : 0             Pdelay_Req              : 0
Delay_Resp      : 0             Pdelay_Resp             : 6
Follow_Up           : 0             Pdelay_Resp_Follow_Up   : 6
Unknown         : 0

验证Switch 3全局PTP状态

Switch# show ptp
----------------------  Global Configure  ----------------------
PTP State                   : enable
Port Number             : 1
Domain                      : 0
Slave Only              : true
Clock Type              : ordinary clock
Priority1                   : 128
Priority2                   : 128
Clock Accuracy          : 0xfe
Clock Class             : 255
Time Source             : internal-oscillator(160)
UTC Offset              : 34
Leap59                      : false
Leap61                      : false
Local Clock Identity        : A0:D2:25:FF:FE:B1:F8:00
Set systime via PTP:   : false
-----------------------  BMC Properties  -----------------------
Receive Member          : eth-0-18
Parent Clock Identity       : 60:4D:39:FF:FE:FF:C5:00
Parent Port Number      : 9
Mean Path Delay         : 0
Offset From Master      : 0
Step Removed                : 1
GM Clock Identity           : 60:4D:39:FF:FE:FF:C5:00
GM Priority1                : 0
GM Priority2                : 128
GM Clock Accuracy           : 0xfe
GM Clock Class          : 248
GM Time Source          : internal-oscillator(160)
GM UTC Offset               : 34
GM UTC Offset Valid     : false
GM Time Scale               : PTP
GM Time Traceable           : false
GM Leap59                   : false
GM Leap61                   : false
GM Frequency Traceable  : false

验证Switch 3外部PTP主时钟信息

Switch# show ptp foreign-master
  Foreign_master_port_identity  Qualification   Interface
---------------------------------------------------------------
*60:4D:39:FF:FE:FF:C5:00@9     true            eth-0-18

9   流量管理配置指导  

9.1 QoS 配置

9.1.1 概述

9.1.1.1 功能简介

QoSQuality of Service,服务质量)是各种存在服务供需关系的场合中普遍存在的概念,它评估服务方满足客户服务需求的能力。评估通常不是精确的评分,而是注重分析在什么条件下服务是好的,在什么情况下还存在着不足,以便有针对性地作出改进。在因特网中,QoS 所评估的就是网络投递分组的服务能力。由于网络提供的服务是多样的,因此对QoS 的评估可以基于不同方面。通常所说的QoS,是对分组投递过程中为延迟、延迟抖动、丢包率等核心需求提供支持的服务能力的评估。QoS是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术。在正常情况下,如果网络只用于特定的无时间限制的应用系统,并不需要QoS,比如Web应用,或E-mail设置等。但是对关键应用和多媒体应用就十分必要。当网络过载或拥塞时,QoS 能确保重要业务量不受延迟或丢弃,同时保证网络的高效运行。

9.1.1.2 原理描述

以下是用来形容QoS的术语和概念的简要描述:

 访问控制列表(ACLs

具有相同特征的流量进行分类。IP ACL用来分类IP流量,MAC ACL用来分类除了IPV6MPLS以外的所有流量。

 服务种类(CoS

在网络的第2层中确定报文优先级的字段。QoS可以通过设置不同的CoS值来区分不同优先级的流量。802.1Q二层报文中可以携带2字节的VLAN标签,最高的3个比特用于用户指定的优先级。其它类型的报文不能携带VLAN标签。CoS3个比特,其值的范围为0-7

 差分服务代码点(DSCP

6个比特位,用来区分三层网络中的报文的优先级。DSCP值范围是0-63

 IP-Precedence

3个比特位,用来区分三层网络中报文的优先级。IP-Precedence范围是0-7

 EXP

3个比特位,用来区分MPLS网络中的报文的优先级。MPLS EXP 值范围在0-7

 流分类(Traffic Classification

指采用一定的规则识别出符合某类特征的报文。分类规则(classification rule)是用户根据管理需求配置的过滤规则。报文进入系统时,流分类处理引擎会为报文分配一个内部优先级,基于这个优先级,系统对报文进行一系列的处理。系统可以基于报文中的CoSinner-CoSDSCPIP-Precedence,或者端口上的配置的默认CoS,或者依据policy-map配置映射出的内部优先级。

 流量整形(Shaping

是通过缓存报文来改变并调节入方向的流速率,从而使出方向的流速率表现地更加平滑的一种方法。当入方向的流量出现高突发的时候,就需要将报文缓存并在后面发送,从而使出方向的流更加平滑,因此shaping可能会增加报文的抖动。

流量整形可以应用在以下角色:

物理接口(port shaping

出方向的队列(queue shaping

queue应用双速率的shaping时,需要保证该接口下所有queueCIR之和不大于端口速率,并且不大于接口shaping的速率。

 流量监管(Policing

会对流量进行测速,从而决定报文是保证速率内还是保证速率外,保证速率外的流量可能会被丢弃。

系统支持两种类型的policer

配置在class-map中,用于对匹配某个class-map的流量限制带宽。

配置一个聚合policer,用户可以将匹配class-map的流量加入这个policer中。聚合policer限制的是其中所有的流量的带宽。

 标记(Marking

定义了对超出保证速率的流量的处理行为。系统采用两种行为中的一种:给报文标记颜色,后面会继续处理;直接丢弃报文。

标记能够在进口和出口方向使用。

 Queueing

每个出接口支持8个单播队列,1个组播队列以及1个镜像队列。队列优先级越高,越先被调度。队列长度的单位是buffer cellBuffer Cell是报文的存储粒度单位,其大小为288字节,报文越大,占用的buffer cell越多。

 Tail Drop

是一种简单的丢弃算法,即队列中报文达到一定阈值(可配置)时,后来的报文会被丢弃。默认情况下,端口上的丢弃算法就是Tail Drop。系统支持在每个端口上为每个queue每种丢弃优先级制定一个Tail Drop的阈值。

 WREDWeighted Random Early Detection

WREDWeighted Random Early Detection)可以提前以一定概率丢弃报文,达到避免拥塞的目的,通过提前丢弃报文,WRED模式可以避免短时间内丢弃大量报文,导致大量TCP连接同时触发慢启动和拥塞退避,网络带宽利用率瞬间降低的现象。系统支持在端口上为每个queue每种丢弃优先级制定两个阈值。这两个阈值前者小于后者。当队列中报文达到前者时报文开始丢弃,队列中报文越多,丢弃概率越大。当队列中报文大于后一阈值时,报文全部丢弃。

 Scheduling

系统为每个队列分配一个优先级(class),范围是07,数字越高表示优先级越高。Basic 模式下端口上的8个队列的优先级是可配置的。

QoS启用,basic模式下队列07对应的优先级为:0/1/2/3/4/5/6/7enterprise 模式下队列07对应的优先级为:3/3/4/4/4/4/5/7enterprise advance模式下队列011对应的优先级为:3/3/4/4/4/4/5/7/0/1/2/3QoS禁用,所有队列的优先级均为0

一个端口上,不同的优先级之间使用的SP调度,即高优先级队列先被调度,当高优先级队列为空时才会调度低优先级队列。相同的优先级内的队列采用WDRR调度。用户可以为各个队列设置权重。

QoS启用,basic模式下队列07对应的WDRR权重为:1::1:1:1:1:1:1:1enterprise 模式下队列07对应的WDRR权重为:1:1:4:10:10:10:1:1enterprise advance模式下队列011对应的WDRR权重为:1:1:4:10:10:10:1:1:1:1:1:1

 Class Map

通过指定一些ACL定义一组流。这些ACL可以是match-allmatch-any的,分别表示流量要同时匹配所有的ACL或匹配任意的ACL

 Policy Map

用来指定不同种类流量的具体行为,可实现如下需求:

将流按照指定的优先级和颜色区分出来

为相应的优先级和颜色设置指定的信任策略

为满足某个信任策略的流按照预先的配置做流量监管

为指定的流做重定向

为指定的流做镜像

为指定的流做统计

Policy Map有如下属性:

一个Policy Map可以包含多个流分类定义,并给出单独的行为

每一个流分类定义可以匹配接口上的每一种流量

每一个端口的每一个方向只能应用一个Policy Map。相同的Policy Map可以在不同端口的不同方向上应用。

如果要使得Policy Map生效,其必须被附加到一个端口上。

一个Policy Map可以应用于物理接口(非聚合端口成员),聚合端口以及VLAN接口。

 Mapping Tables

QoS处理中,交换机将所有流量都映射到内部优先级处理。

在流分类时,QoS使用可配置的映射表进行报文映射,内部优先级共6个比特,是从CoSEXPDSCPIP-Precedence的值映射而来,这些映射表包含了CoS-Priority-Color/CoS-PHB表、EXP-Priority-Color/EXP-PHB表、DSCP-Priority-Color/DSCP-PHB表和IP-Precedence-Priority-Color/IP-Precedence-PHB

在流量监管时,QoS给报文分配一个新的优先级和颜色,比如依据Class-Map

当流量结束调度阶段后,如果替换CoS或者DSCP被置起来,那么QoS使用Priority-Color-Cos/PHB-CoS或者Priority-Color-DSCP/PHB-DSCP根据内部的优先级和颜色重新映射到CoS或者DSCP

每一个QoS域的上述行为都是不同的

 Time-range

通过使用Time-RangeClass-Map的行为可以按照每周的特定时间来启用或者禁用。首先,定义Time-Range的名字并设置其在一周内的时间,然后将其应用到ACE。可以使用Time-Range来制定Class-Map中独立的一条ACE在每周的制定时间生效。

 RTCM

单速率三色标记(Single Rate Three Color Marker

 TRTCM

双速率三色标记(Two Rate Three Color Marker

 CIR

承诺信息速率(Committed Information Rate

 CBS

承诺突发尺寸(Committed Burst Size

 EIR

超额信息速率(Excess Information Rate

 EBS

超额突发尺寸(Excess Burst Size

 PIR

峰值信息速率(Peak Information Rate

 PBS

峰值突发尺寸(Peak Burst Size

 模块化的QoS命令行

入口流量应用QoS策略进行分类。

 class-mapQoS

用于定义一组流,定义的规则有CoS/DSCP/IP Precedence/EXP/ACL

 policy-mapQoS

用于划分流类型,相同类型的policy-map关联同一个class-mapQoS

 class-map类流优先级

用于定义流优先级,定义规则是流优先级。 policy-map类流优先级 用于划分QoS流量监管,相同类型的policy-map关联同一个class-map类流分类。

 policy-map类流优先级

用于划分QoS流量监管,相同类型的policy-map关联同一个class-map类流分类。

9.1.2 配置

配置QoS之前需知以下信息:

QoS policing不能在LinkAGG上配置。

只能在进口方向进行分类。

Class map可以有多个ACL,一个ACL可以有多个条目。

Policing不能在交换机的虚拟接口上使用。

在部署QoS流量策略时需要执行如下几个步骤。

识别并区分流量到不同的类别。

对不同的流量类别配置策略。

在接口上应用策略。

9.1.2.1 使用ACL实现流量分类

IP流量可以使用IP ACL作流量分类。下面的例子说明了如何创建IP ACL来区分不同的流量并将其分类,在这个例子中,允许三类IP地址的主机访问,网络地址主机部分对应为通配符,如果一台主机的IP地址不在list的匹配范围,则该主机将被拒绝访问。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建ACL,并根据需要创建一或多个ACE

Switch(config)# ip access-list ip-acl
Switch(config-ip-acl)# permit any 128.88.12.0 0.0.0.255 any
Switch(config-ip-acl)# permit any 28.88.0.0 0.0.255.255 any
Switch(config-ip-acl)# permit any 11.0.0.0 0.255.255.255 any
Switch(config-ip-acl)# exit

在全局配置模式下用no ip access-list命令删除ACL,在ACL模式下用no sequence-num命令删除一条ACE

名词解释:

ACLAccess Control List

ACEAccess Control Entry

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch# show access-list ip ip-acl
ip access-list ip-acl
  10 permit any 128.88.12.0 0.0.0.255 any
  20 permit any 28.88.0.0 0.0.255.255 any
  30 permit any 11.0.0.0 0.255.255.255 any

9.1.2.2 创建分类映射表

下面的例子说明了如何将指定接口的IP流量按照分类表作流量分类。期间涉及到创建分类映射表以及匹配准则。在这个例子中使用IP access list创建一个名为cmap1的分类映射表,允许任意源主机到目的主机的流量传输。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建ACL,并根据需要创建一或多个ACE

Switch(config)# ip access-list ip-acl
Switch(config-ip-acl)# permit any any any
Switch(config-ip-acl)# quit

 步骤3 创建分类映射表,并绑定ACL

Switch(config)# class-map cmap1
Switch (config-cmap)# match access-group ip-acl
Switch (config-cmap)# quit

match-any表示映射表中的分类按照逻辑或的关系进行匹配,即分类映射表中至少匹配一条即可分类。默认是按照match-any方式进行流量分类的。

match-all表示映射表中的分类按照逻辑与的关系进行匹配,即分类映射表中必须所有都匹配才可分类。

 步骤4 退出配置模式

Switch(config)# end

 步骤5 检查配置

Switch# show class-map cmap1
    CLASS-MAP-NAME: cmap1 (match-any)
      match access-group: ip-acl

9.1.2.3 配置流量监管

下面的例子说明了如何创建策略表用于对流量进行分类,标记和限流。在这个例子中创建了一个策略表,并应用到一个端口的进口流量。配置的IP ACL允许来自10.1.00地址的流量,如果这些流量的平均速率超过48000-kbps,将被丢弃。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建ACL,并根据需要创建一或多个ACE

Switch(config)# ip access-list ip-acl
Switch(config-ip-acl)# permit any 10.1.0.0 0.0.255.255 any
Switch(config-ip-acl)# quit

 步骤3 创建分类映射表,并绑定ACL

Switch(config)# class-map type qos cmap1
Switch(config-cmap)# match access-group ip-acl
Switch(config-cmap)# quit

 步骤4 创建策略表,并绑定分类映射表;在绑定的分类映射表中配置策略

switch(config)# policy-map type qos pmap1
switch(config-pmap)# class type qos cmap1
Switch(config-pmap-c)# policer color-blind cir 48000 cbs 10000 ebs 16000 violate drop
Switch(config-pmap-qos-c)# set traffic-class 5
Switch(config-pmap-qos-c)# set color yellow
Switch(config-pmap-c)# quit
Switch(config-pmap)# quit

在全局配置模式下no policy-map命令可以删除已经存在的策略表;在策略表绑定分类表视图下,no policer命令可以移除一个已存在的policerno set命令可将已经配置的优先级和颜色恢复默认值。(默认优先级0,颜色为green

 步骤5 进入接口配置模式,并应用策略表

Switch(config)# interface eth-0-1
Switch(config-if)# service-policy type qos input pmap1
Switch(config-if)# exit

接口每一个方向只允许配置一个策略映射表。no service-policy input|output命令在端口删除策略表配置。

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

Switch# show policy-map pmap1

  POLICY-MAP-NAME: pmap1 ( type qos)
    State: detached

    CLASS-MAP-NAME: cmap1
      match access-group: ip-acl
        set traffic-class       : 5
        set color               : yellow
        policer color-blind cir 48000 cbs 10000 ebs 16000 violate drop

9.1.2.4 配置聚合流量监管

下面的例子说明了如何创建聚合策略表用于对流量进行分类,标记和限流。在这个例子中创建了一条聚合策略,并运用于策略表中的多个表项。示例中,IP ACLs允许来自网络地址10.1.0.0和主机地址为11.3.1.1的流量,且配置了其平均速率。当流量平均速率超过48000-kbps且流量大小超过8000-byte,该流量将被丢弃。该策略表运用于端口的进方向。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建ACL,并根据需要创建一或多个ACE

Switch(config)# ip access-list ip-acl1
Switch(config-ip-acl)# permit any 10.1.0.0 0.0.255.255 any
Switch(config-ip-acl)# exit
Switch(config)# ip access-list ip-acl2
Switch(config-ip-acl)# permit any host 11.3.1.1 any
Switch(config-ip-acl)# exit

 步骤3 指定聚合策略的各项参数

Switch(config)# qos aggregate-policer transmit1 color-blind cir 48000 cbs 8000 ebs 10000 violate drop

no qos aggregate-policer命令删除一条聚合策略。

 步骤4 创建分类映射表,并绑定ACL

Switch(config)# class-map type qos cmap1
Switch(config-cmap)# match access-group ip-acl1
Switch(config-cmap)# exit
Switch(config)# class-map type qos cmap2
Switch(config-cmap)# match access-group ip-acl2
Switch(config-cmap)# exit

 步骤5 创建策略表,并绑定分类映射表;在绑定的分类映射表中应用聚合策略

Switch(config)# policy-map type qos aggflow1
Switch(config-pmap)# class type qos cmap1
Switch(config-pmap-c)# aggregate-policer transmit1
Switch(config-pmap-c)# exit
Switch(config-pmap)# class type qos cmap2
Switch(config-pmap-c)# aggregate-policer transmit1
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit

在策略表绑定分类映射表视图下,no policer-aggregate命令可以从策略表中删除一条聚合策略;

 步骤6 进入接口配置模式,并应用策略表

Switch(config)# interface eth-0-1
Switch(config-if)# service-policy type qos input aggflow1
Switch(config-if)# exit
Switch(config)# exit

 步骤7 退出配置模式

Switch(config)# end

 步骤8 检查配置

Switch# show qos aggregate-policer
Aggreate policer: transmit1
  color blind
  CIR 48000 kbps, CBS 8000 bytes, EBS 10000 bytes
  drop violate packets

9.1.3 队列模式的策略模板配置

9.1.3.1 配置队列调度

在不同的CLASS之间,报文是按照SP(严格优先级)调度的;在同一个CLASS之间,报文是按照WDRR调度的。 下面的例子显示了将queue映射到不同的CLASS中间并且配置WDRR调度的权重。配置如下,编号为56的流的优先级是最高的值6,编号为2的流的优先级是2,带宽为link带宽的20%

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建分类模板,并配置优先级

Switch(config)# class-map type traffic-class tc5
Switch(config-cmap-tc)# match traffic-class 5
Switch(config-cmap-tc)# exit

Switch(config)# class-map type traffic-class tc6
Switch(config-cmap-tc)# match traffic-class 6
Switch(config-cmap-tc)# exit

Switch(config)# class-map type traffic-class tc2
Switch(config-cmap-tc)# match traffic-class 2
Switch(config-cmap-tc)# exit

 步骤3 创建策略模板,并关联之前定义的分类模板; 在策略模板关联分类模板的模式下,配置优先级或带宽

Switch(config)# policy-map type traffic-class tc
Switch(config-pmap-tc)# class type traffic-class tc5
Switch(config-pmap-tc-c)# priority level 6
Switch(config-pmap-tc-c)# exit

Switch(config-pmap-tc)# class type traffic-class tc6
Switch(config-pmap-tc-c)# priority level 6
Switch(config-pmap-tc-c)# exit

Switch(config-pmap-tc)# class type traffic-class tc2
Switch(config-pmap-tc-c)# bandwidth percentage 20
Switch(config-pmap-tc-c)# exit
Switch(config-pmap-tc)# exit

 步骤4 进入接口配置模式,并应用策略模板

Switch(config)# interface eth-0-1
Switch(config-if)# service-policy type traffic-class tc
Switch(config-if)# exit

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

Switch# show qos interface eth-0-1 egress
TC Priority Bandwidth Shaping(kbps) Drop-Mode   Max-Queue-Limit(Cell)   ECN
0  0        -         -             dynamic     level 10                 -
1  0        -         -             random-drop 596                     Disable
2  0        20        -             dynamic     level 10                 -
3  0        -         -             tail-drop   2000                    2000
4  0        -         -             dynamic     level 10                 -
5  6        -         -             dynamic     level 10                 -
6  6        -         -             dynamic     level 10                 -
7  7        -         -             tail-drop   64                      -

9.1.3.2 配置队列尾丢弃

尾丢弃是默认的每个出口队列都启用的拥塞避免技术。在没有超过queue长度的时候,报文会在queue中缓存;超过queue长度时则丢弃queue尾部的报文。

下面例子说明了如何根据不同的丢弃优先级配置尾丢弃阈值。这个例子中对流优先级为3的报文尾丢弃阈值为2000

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建一个分类模板,并配置优先级

Switch(config)# class-map type traffic-class tc3
Switch(config-cmap-tc)# match traffic-class 3
Switch(config-cmap-tc)# exit

 步骤3 创建一个策略模板,并关联之前定义的分类模板

Switch(config)# policy-map type traffic-class tc
Switch(config-pmap-tc)# class type traffic-class tc3

 步骤4 在策略模板关联分类模板的模式下,设置该优先级的尾丢弃阈值

Switch(config-pmap-tc-c)# queue-limit 2000
Switch(config-pmap-tc-c)# exit
Switch(config-pmap-tc)# exit

 步骤5 进入接口配置模式,并应用策略模板

Switch(config)# interface eth-0-1
Switch(config-if)# service-policy type traffic-class tc
Switch(config-if)# exit

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

Switch# show qos interface eth-0-1 egress
TC Priority Bandwidth Shaping(kbps) Drop-Mode   Max-Queue-Limit(Cell)   ECN
0  0        -         -             dynamic     level 10                 -
1  0        -         -             dynamic     level 10                 -
2  0        -         -             dynamic     level 10                 -
3  0        -         -             tail-drop   2000                    2000
4  0        -         -             dynamic     level 10                 -
5  0        -         -             dynamic     level 10                 -
6  0        -         -             dynamic     level 10                 -
7  7        -         -             tail-drop   64                      -

9.1.3.3 配置队列随机早丢弃

WRED通过选择性地丢弃部分报文,降低接口拥塞时发生尾丢弃的概率。通过早期选择性地丢弃部分报文而不是在queue真正满时才开始丢弃,WRED可以避免出现TCP同步丢包的问题,从而提高网络的吞吐量。

下面的例子所示的是对流优先级为1设定其WRED丢包上限。其最大丢包上限为596,最小丢包上限为596/8=71。如果缓冲区中的报文超过最小丢包上限,后续收到的报文将随机丢弃。这个例子说明了如何针对不同颜色的报文配置相应的WRED阈值。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建一个分类模板,并配置优先级

Switch(config)# class-map type traffic-class tc1
Switch(config-cmap-tc)# match traffic-class 1
Switch(config-cmap-tc)# exit

 步骤3 创建一个策略模板,并关联之前定义的分类模板

Switch(config)# policy-map type traffic-class tc
Switch(config-pmap-tc)# class type traffic-class tc1

 步骤4 在策略模板关联分类模板的模式下,配置对应的WRED丢包上限

Switch(config-pmap-tc-c)# random-detect maximum-threshold 596
Switch(config-pmap-tc-c)# exit
Switch(config-pmap-tc)# exit

 步骤5 进入接口配置模式,并应用策略模板

Switch(config)# interface eth-0-1
Switch(config-if)# service-policy type traffic-class tc
Switch(config-if)# exit

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

Switch# show qos interface eth-0-1 egress
TC Priority Bandwidth Shaping(kbps) Drop-Mode   Max-Queue-Limit(Cell)   ECN
0  0        -         -             dynamic     level 10                 -
1  0        -         -             random-drop 596                     Disable
2  0        -         -             dynamic     level 10                 -
3  0        -         -             tail-drop   2000                    2000
4  0        -         -             dynamic     level 10                 -
5  0        -         -             dynamic     level 10                 -
6  0        -         -             dynamic     level 10                 -
7  7        -         -             tail-drop   64                      -

9.1.3.4 配置队列整形

流量在经过交换机出方向的队列的时候可以被整形,超过整形速率的流量会被缓存,但是如果缓存耗尽,则后续的报文会被丢弃直到缓存被释放。 下面的例子显示了如何在出方向队列上配置流量整形。在这个例子中,对队列3进行队列整形的配置;当队列3中流速率超过1000Mbps,将丢弃报文。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建分类模板,并配置优先级

Switch(config)# class-map type traffic-class tc3
Switch(config-cmap-tc)# match traffic-class 3
Switch(config-cmap-tc)# exit

 步骤3 创建策略模板,并关联之前定义的分类模板

Switch(config)# policy-map type traffic-class tc
Switch(config-pmap-tc)# class type traffic-class tc3

 步骤4 在策略模板关联分类模板的模式下,设置流量整形

 Switch(config-pmap-tc-c)# shape rate pir 1000000
Switch(config-pmap-tc-c)# exit
Switch(config-pmap-tc)# exit

 使用no shape rate命令可以删除队列整形配置

 步骤5 进入接口配置模式,并应用策略模板

Switch(config)# interface eth-0-1
Switch(config-if)# service-policy type traffic-class tc
Switch(config-if)# exit

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

Switch# show qos interface eth-0-1 egress
TC Priority Bandwidth Shaping(kbps) Drop-Mode   Max-Queue-Limit(Cell)   ECN
0  0        -         -             dynamic     level 10                 -
1  0        -         -             random-drop 596                     Disable
2  0        20        -             dynamic     level 10                 -
3  0        -         1000000       tail-drop   2000                    2000
4  0        -         -             dynamic     level 10                 -
5  6        -         -             dynamic     level 10                 -
6  6        -         -             dynamic     level 10                 -
7  7        -         -             tail-drop   64                      -

9.1.4 端口流量监管和整形配置

9.1.4.1 配置端口流量监管

经过交换机物理接口的所有流量都可以设置保证速率,超过保证速率的流量都会被丢弃。下面的例子说明了如何配置端口Policer来实现保证速率。这个例子中端口收到的报文平均速率超过48000-kbps时将被丢弃。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置端口保证速率

Switch(config)# interface eth-0-1
Switch(config-if)# qos policer input color-blind cir 48000 cbs 10000 ebs 20000 violate drop
Switch(config-if)# exit

 使用no port-policier input|output命令可以删除端口Policer配置。

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch# show qos interface eth-0-1 statistics policer port input
Interface: eth-0-1
  input port policer:
   color blind
    CIR 48000 kbps, CBS 10000 bytes, EBS 20000 bytes
    drop violate packets

9.1.4.2 配置端口流量整形

经过交换机物理接口的所有流量都可以被整形,超过整形速率的流量会被缓存,但是如果缓存耗尽,则后续的报文会被丢弃直到缓存被释放。

下面的例子说明了如何配置基于物理接口的流量整形。在这个例子中当接收流的速率超过1000Mbps将被丢弃。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置端口流量整形的阈值

Switch(config)# interface eth-0-1
Switch(config-if)# qos shape rate pir 1000000
Switch(config-if)# exit

 使用no shape命令可以删除该流量整形配置。

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch# show running-config interface eth-0-1
Building configuration...
!
interface eth-0-1
service-policy type traffic-class tc
qos policer input color-blind cir 48000 cbs 10000 ebs 20000 violate drop
qos shape rate pir 1000000
!

9.1.5 应用场景配置举例

10   IPv6 业务配置指导  

10.1 IPv6 over IPv4隧道配置

10.1.1 概述

10.1.1.1 功能简介

隧道技术是一种封装技术,它利用一种网络协议来传输另一种网络协议,即一种网络协议将其他网络协议的数据报文封装在自己的报文中,然后在网络中传输。封装后的数据报文在网络中传输的路径,称为隧道。隧道是一条虚拟的点对点连接,隧道的两端需要对数据报文进行封装及解封装。隧道技术就是指包括数据封装、传输和解封装在内的全过程。

10.1.1.2 原理描述

IPv6 over IPv4 Tunnel

IPv4 InternetIPv6 Internet过渡的初期,IPv4网络已被大量部署,而IPv6网络只是散布在世界各地的一些孤岛。在IPv4网络上用于连接IPv6孤岛的隧道,称为IPv6 over IPv4隧道, 即IPv6报文被封装在IPv4报文中,实现IPv6报文的透明传输。为了实现IPv6 over IPv4隧道,需要在IPv4网络与IPv6网络交界的边界交换机上启动IPv4/IPv6双协议栈。

IPv6 over IPv4隧道对报文的处理过程如下:

IPv6网络中的设备发送IPv6报文,该报文到达隧道的源端设备Switch1

Switch1根据路由表判定该报文要通过隧道进行转发后,在IPv6报文前封装上IPv4 的报文头,通过隧道的实际物理接口将报文转发出去。

封装报文通过隧道到达隧道目的端设备 Switch2Switch2 判断该封装报文的目的地是本设备后,将对报文进行解封装。

Switch2根据解封装后的IPv6报文的目的地址转发该IPv6报文。如果目的地就是本设备,则将IPv6报文转给上层协议处理。

这种技术的优点是,不用把所有的设备都升级为双栈,只要求IPv4/IPv6网络的边缘设备实现双栈和隧道功能。除边缘节点外,其它节点不需要支持双协议栈。可以大大利用现有的IPv4网络投资。

根据隧道终点的 IPv4地址的获取方式不同,将隧道分为配置隧道自动隧道

如果 IPv6 over IPv4隧道的终点地址不能从IPv6报文的目的地址中自动获取,需要进行手工配置,这样的隧道称为配置隧道

如果 IPv6 over IPv4隧道的终点地址采用内嵌IPv4地址的特殊IPv6地址形式,则可以从IPv6报文的目的地址中自动获取隧道终点的IPv4地址,这样的隧道称为自动隧道

目前,常用的IPv6 over IPv4隧道模式有以下几种。

IPv6 over IPv4 手动隧道

6to4 隧道

ISATAP 隧道

下面分别介绍一下上述三种隧道模式:

 IPv6 over IPv4 手动隧道

IPv6手工配置隧道的源和目的地址是手工指定的,它提供了一个点到点的连接。IPv6手工配置隧道可以建立在两个边界路由器之间,为被IPv4网络分离的IPv6网络提供稳定的连接,或建立在终端系统与边界路由器之间,为终端系统访问IPv6网络提供连接。隧道的端点设备必须支持IPv6/IPv4双协议栈。其它设备只需实现单协议栈即可。

IPv6手工配置隧道要求在设备上手工配置隧道的源地址和目的地址,如果一个边界设备要与多个设备建立手工隧道,就需要在设备上配置多个隧道。所以手工隧道通常用于两个边界路由器之间,为两个IPv6网络提供连接。

 6to4隧道

普通6to4隧道:

6to4隧道是点到多点的自动隧道,主要用于将多个IPv6孤岛通过IPv4网络连接到IPv6网络。6to4隧道通过在IPv6报文的目的地址中嵌入IPv4地址,来实现自动获取隧道终点的IPv4地址。

6to4隧道使用了一种特殊的IPv6地址,即6to4地址,其格式为: 2002:IPv4地址:子网ID:接口ID

6to4地址的前缀是2002:IPv4地址,前缀长度为48bits。其中IPv4地址是为IPv6孤岛申请的一个全球唯一的IPv4地址。在IPv6/IPv4边界交换机与IPv4网络连接的物理接口上必须配置该IPv4地址。子网ID的长度为16bits,接口ID的长度为64bits,均由用户在IPv6孤岛内分配。

6to4 中继:

6to4隧道只能用于前缀为2002::/16 6to4网络之间的通信,但在IPv6网络中也会使用像2001::/16这样的IPv6网络地址。为了实现6to4网络和其它IPv6网络的通信,必须有一台6to4路由器作为网关转发到IPv6网络的报文,这台路由器就叫做6to4中继(6to4 relay)路由器。(如果IPv6报文的目的地址不是6to4地址,但下一跳是6to4地址,则从下一跳地址中取出IPv4地址做为隧道的目的地址。)

IPv6 over IPv4 Tunnel

如上图所示,IPv6报文在到达边界路由器后,根据报文的IPv6目的地址查找转发表,如果出接口是6to4自动隧道的Tunnel虚接口,且报文的目的地址是6to4地址或下一跳是6to4地址,则从6to4地址中取出IPv4地址做为隧道报文的目的地址,隧道报文的源地址是Tunnel接口上配置的。

 ISATAP隧道

随着IPv6技术的推广,现有的IPv4网络中将会出现越来越多的IPv6主机,ISATAP隧道技术为这种应用提供了一个较好的解决方案。ISATAP 隧道是点到多点的自动隧道技术,通过在IPv6报文的目的地址中嵌入的IPv4地址,可以自动获取隧道的终点。

使用ISATAP隧道时,IPv6报文的目的地址和隧道接口的IPv6地址都要采用特殊的ISATAP地址。

Prefix(64bit)::5EFE:IPv4-Address

在创建ISATAP隧道时,由于IPv4/IPv6主机和ISATAP交换机在同一个IPv4网络里,ISATAP地址中嵌入的IPv4地址可以是公网地址,也可以是私网地址。ISATAP隧道主要用于在IPv4网络中IPv6路由器和IPv6路由器之间、以及IPv6主机和IPv6路由器之间的连接。

ISATAP Tunnel

如上图所示,IPv4/IPv6主机获得IPv6地址的过程如下:

IPv4/IPv6主机发送交换机请求消息:IPv4/IPv6主机使用ISATAP格式的链路本地地址向ISATAP交换机发送交换机请求消息,该交换机请求消息被封装在IPv4报文中。

ISATAP交换机响应请求:ISATAP交换机使用交换机通告消息响应主机的交换机请求。交换机通告消息中包含ISATAP前缀(ISATAP前缀在交换机上通过人工配置)。

IPv4/IPv6主机得到自己的IPv6地址:IPv4/IPv6 主机将ISATAP前缀与5EFE:IPv4-Address组合得到自己的IPv6地址,并用此地址访问IPv6主机。

10.1.2 配置

10.1.2.1 配置手工隧道

Manual Tunnel

如上图所示,两个IPv6网络分别通过Switch1Switch2IPv4网络连接,要求在Switch1Switch2之间建立IPv6手动隧道,使两个IPv6网络可以互通。

在配置之前,必须先全局使能IPv6功能

必须使IPv4报文3层路由可达,否则会造成tunnel报文转发失败。

tunnel接口上必须配置IPv6地址,否则配置在该接口上的路由无效。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局使能ipv6

Switch(config)# ipv6 enable

 步骤3 进入接口配置模式,配置接口属性

Switch1 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# ip address 192.168.10.1/24
Switch(config-if)# tunnel enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 3002::1/64
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface tunnel1
Switch(config-if)# tunnel source eth-0-1
Switch(config-if)# tunnel destination 192.168.20.1
Switch(config-if)# tunnel mode ipv6ip
Switch(config-if)# ipv6 address 3001::1/64
Switch(config-if)# exit

Switch2 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# ip address 192.168.20.1/24
Switch(config-if)# tunnel enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 3003::1/64
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface tunnel1
Switch(config-if)# tunnel source eth-0-1
Switch(config-if)# tunnel destination 192.168.10.1
Switch(config-if)# tunnel mode ipv6ip
Switch(config-if)# ipv6 address 3001::2/64
Switch(config-if)# exit

 步骤4 配置静态路由

switch1配置:

Switch(config)# ip route 192.168.20.0/24 192.168.10.2
Switch(config)# ipv6 route 3003::/16 tunnel1

switch2配置:

Switch(config)# ip route 192.168.10.0/24 192.168.20.2
Switch(config)# ipv6 route 3002::/16 tunnel1

 步骤5 配置静态arp

switch1配置:

Switch(config)# arp 192.168.10.2 0.0.2222

switch2配置:

Switch(config)# arp 192.168.20.2 0.0.1111

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

Switch1 显示结果:

Switch# show interface tunnel1
Interface tunnel1
  Interface current state: UP
  Hardware is Tunnel
  Index 8193 , Metric 1 , Encapsulation TUNNEL
  VRF binding: not bound
  Tunnel protocol/transport IPv6/IP, Status Valid
  Tunnel source 192.168.10.1(eth-0-1), destination 192.168.20.1
  Tunnel DSCP inherit,  Tunnel TTL 64
  Tunnel transport MTU 1480 bytes

Switch1# show ipv6 interface tunnel1
  Interface current state: UP
  The maximum transmit unit is 1480 bytes
  IPv6 is enabled, link-local address is fe80::c0a8:a01
  Global unicast address(es):
    3001::1, subnet is 3001::/64
  ICMP error messages limited to one every 1000 milliseconds
  ICMP redirects are always sent
  ND DAD is enabled, number of DAD attempts: 1
  ND router advertisement is disabled
  ND reachable time is 30000 milliseconds
  ND advertised reachable time is 0 milliseconds
  ND retransmit interval is 1000 milliseconds
  ND advertised retransmit interval is 0 milliseconds
  ND router advertisements max interval: 600 secs
  ND router advertisements min interval: 198 secs
  ND router advertisements live for 1800 seconds
  ND router advertisements hop-limit is 0
  Hosts use stateless autoconfig for addresses.

Switch2 显示结果:

Switch# show interface tunnel1
Interface tunnel1
  Interface current state: UP
  Hardware is Tunnel
  Index 8193 , Metric 1 , Encapsulation TUNNEL
  VRF binding: not bound
  Tunnel protocol/transport IPv6/IP, Status Valid
  Tunnel source 192.168.20.1(eth-0-1), destination 192.168.10.1
  Tunnel DSCP inherit,  Tunnel TTL 64
  Tunnel transport MTU 1480 bytes
Switch1# show ipv6 interface tunnel1
  Interface current state: UP
  The maximum transmit unit is 1480 bytes
  IPv6 is enabled, link-local address is fe80::c0a8:1401
  Global unicast address(es):
    3001::2, subnet is 3001::/64
  ICMP error messages limited to one every 1000 milliseconds
  ICMP redirects are always sent
  ND DAD is enabled, number of DAD attempts: 1
  ND router advertisement is disabled
  ND reachable time is 30000 milliseconds
  ND advertised reachable time is 0 milliseconds
  ND retransmit interval is 1000 milliseconds
  ND advertised retransmit interval is 0 milliseconds
  ND router advertisements max interval: 600 secs
  ND router advertisements min interval: 198 secs
  ND router advertisements live for 1800 seconds
  ND router advertisements hop-limit is 0
  Hosts use stateless autoconfig for addresses.

10.1.2.2 配置6to4隧道

6to4 tunnel

如上图所示,两个6to4网络通过网络边缘6to4 switchSwitch1Switch2)与IPv4网络相连。在Switch1Switch2之间建立6to4隧道,实现6to4网络中的主机Host1Host2之间的互通。

为了实现6to4网络之间的互通,除了配置6to4隧道外,还需要为6to4网络内的主机及6to4 router配置6to4地址。

Switch1上接口eth-0-1IPv4地址为2.1.1.1/24,转换成IPv6地址后使用6to4前缀2002:0201:0101::/48。对此前缀进行子网划分,Tunnel1使用2002:0201:0101::/64子网,eth-0-2使用2002:0201:0101:1::/64子网。

Switch2上接口eth-0-1IPv4地址为5.1.1.1/24,转换成IPv6地址后使用6to4前缀2002:0501:0101::/48。对此前缀进行子网划分,Tunnel1使用2002:0501:0101::/64子网,eth-0-2使用2002:0501:0101:1::/64子网。

6to4隧道无需配置目的地址。

对于自动隧道,使用同种封装协议的 Tunnel 接口不能同时配置完全相同的源地址。

如果封装前 IPv6报文的目的IPv6地址与Tunnel 接口的IPv6地址不在同一个网段,则必须配置通过Tunnel接口到达目的IPv6地址的转发路由,以便需要进行封装的报文能正常转发。对于自动隧道,用户只能配置静态路由,指定到达目的IPv6地址的路由出接口为本端Tunnel接口或下一跳为对端Tunnel接口地址,不支持动态路由。

一台交换机上只允许存在一条6to4隧道。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局使能ipv6

Switch(config)# ipv6 enable

 步骤3 进入接口配置模式,配置接口属性

Switch1 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# ip address 2.1.1.1/24
Switch(config-if)# tunnel enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2002:201:101:1::1/64
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface tunnel1
Switch(config-if)# tunnel source eth-0-1
Switch(config-if)# tunnel mode ipv6ip 6to4
Switch(config-if)# ipv6 address 2002:201:101::1/64
Switch(config-if)# exit

Switch2 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# ip address 5.1.1.1/24
Switch(config-if)# tunnel enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2002:501:101:1::1/64
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface tunnel1
Switch(config-if)# tunnel source eth-0-1
Switch(config-if)# tunnel mode ipv6ip 6to4
Switch(config-if)# ipv6 address 2002:501:101::1/64
Switch(config-if)# exit

 步骤4 配置静态路由

switch1配置:

Switch(config)# ip route 5.1.1.0/24 2.1.1.2
Switch(config)# ipv6 route 2002::/16 tunnel1

switch2配置:

Switch(config)# ip route 2.1.1.0/24 5.1.1.2
Switch(config)# ipv6 route 2002::/16 tunnel1

 步骤5 配置静态arp

switch1配置:

Switch(config)# arp 2.1.1.2 0.0.2222

switch2配置:

Switch(config)# arp 5.1.1.2 0.0.1111

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

Switch1 显示结果:

Switch1# show interface tunnel1
Interface tunnel1
  Interface current state: UP
  Hardware is Tunnel
  Index 8193 , Metric 1 , Encapsulation TUNNEL
  VRF binding: not bound
  Tunnel protocol/transport IPv6/IP 6to4, Status Valid
  Tunnel source 2.1.1.1(eth-0-1), destination UNKNOWN
  Tunnel DSCP inherit,  Tunnel TTL 64
  Tunnel transport MTU 1480 bytes

Switch2 显示结果:

Switch2# show interface tunnel1
Interface tunnel1
  Interface current state: UP
  Hardware is Tunnel
  Index 8193 , Metric 1 , Encapsulation TUNNEL
  VRF binding: not bound
  Tunnel protocol/transport IPv6/IP 6to4, Status Valid
  Tunnel source 5.1.1.1(eth-0-1), destination UNKNOWN
  Tunnel DSCP inherit,  Tunnel TTL 64
  Tunnel transport MTU 1480 bytes

10.1.2.3 配置6to4中继

6to4 relay

如上图所示,Switch16to4 交换机,其IPv6侧的网络使用6to4地址。Switch2作为6to4中继交换机,它和IPv6网络(2001::/16)相连。要求在Switch1Switch2之间配置6to4隧道,使得6to4网络中的主机与IPv6网络中的主机互通。

6to4中继交换机的配置与6to4交换机的配置相同,但为实现6to4网络与IPv6网络的互通,需要在6to4交换机上配置到IPv6网络的路由。

当交换机上存在到达6to4中继的路由时,不能切换隧道模式。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局使能ipv6

Switch(config)# ipv6 enable

 步骤3 进入接口配置模式,配置接口属性

Switch1 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# ip address 2.1.1.1/24
Switch(config-if)# tunnel enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2002:201:101:1::1/64
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface tunnel1
Switch(config-if)# tunnel source eth-0-1
Switch(config-if)# tunnel mode ipv6ip 6to4
Switch(config-if)# ipv6 address 2002:201:101::1/64
Switch(config-if)# exit

Switch2 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# ip address 5.1.1.1/24
Switch(config-if)# tunnel enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2002:501:101:1::1/64
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface tunnel1
Switch(config-if)# tunnel source eth-0-1
Switch(config-if)# tunnel mode ipv6ip 6to4
Switch(config-if)# ipv6 address 2002:501:101::1/64
Switch(config-if)# exit

 步骤4 配置静态路由

switch1配置:

Switch(config)# ip route 6.1.1.0/24 2.1.1.2
Switch(config)# ipv6 route 2001::/16 2002:601:101::1
Switch(config)# ipv6 route 2002:601:101::/48 tunnel1

switch2配置:

Switch(config)# ip route 2.1.1.0/24 6.1.1.2
Switch(config)# ipv6 route 2002::/16 tunnel1

 步骤5 配置静态arp

switch1配置:

Switch(config)# arp 2.1.1.2 0.0.2222

switch2配置:

Switch(config)# arp 6.1.1.2 0.0.1111

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

Switch1 显示结果:

Switch# show interface tunnel1
Interface tunnel1
  Interface current state: UP
  Hardware is Tunnel
  Index 8193 , Metric 1 , Encapsulation TUNNEL
  VRF binding: not bound
  Tunnel protocol/transport IPv6/IP 6to4, Status Valid
  Tunnel source 2.1.1.1(eth-0-1), destination UNKNOWN
  Tunnel DSCP inherit,  Tunnel TTL 64
  Tunnel transport MTU 1480 bytes

Switch# show ipv6 route
IPv6 Routing Table
Codes: C - connected, S - static, R - RIP, O - OSPF, I - IS-IS, B - BGP
       [*] - [AD/Metric]
Timers: Uptime

S       2001::/16 [1/0]
       via 2002:601:101::1 (recursive via ::, tunnel1), 00:00:32
C       2002:201:101::/64
       via ::, tunnel1, 00:00:04
C       2002:201:101::1/128
       via ::1, tunnel1, 00:00:04
S       2002:601:101::/48 [1/0]
       via ::, tunnel1, 00:00:22

Switch# show ipv6 interface tunnel1
Interface tunnel1
  Interface current state: UP
  The maximum transmit unit is 1480 bytes
  IPv6 is enabled, link-local address is fe80::201:101
  Global unicast address(es):
    2002:201:101::1, subnet is 2002:201:101::/64
  ICMP error messages limited to one every 1000 milliseconds
  ICMP redirects are always sent
  ND DAD is enabled, number of DAD attempts: 1
  ND router advertisement is disabled
  ND reachable time is 30000 milliseconds
  ND advertised reachable time is 0 milliseconds
  ND retransmit interval is 1000 milliseconds
  ND advertised retransmit interval is 0 milliseconds
  ND router advertisements max interval: 600 secs
  ND router advertisements min interval: 198 secs
  ND router advertisements live for 1800 seconds
  ND router advertisements hop-limit is 0
  Hosts use stateless autoconfig for addresses.

Switch2 显示结果:

Switch# show interface tunnel1
Interface tunnel1
  Interface current state: UP
  Hardware is Tunnel
  Index 8193 , Metric 1 , Encapsulation TUNNEL
  VRF binding: not bound
  Tunnel protocol/transport IPv6/IP 6to4, Status Valid
  Tunnel source 6.1.1.1(eth-0-1), destination UNKNOWN
  Tunnel DSCP inherit,  Tunnel TTL 64
  Tunnel transport MTU 1480 bytes

10.1.2.4 配置ISATAP隧道

ISATAP tunnel

如上图所示,IPv6网络和IPv4网络通过ISATAP交换机相连,在IPv4网络侧分布着一些IPv6主机。要求将IPv4网络中的IPv6主机通过ISATAP隧道接入到IPv6网络。

ISATAP隧道无需配置目的地址。

对于自动隧道,使用同种封装协议的Tunnel接口不能同时配置完全相同的源地址。

如果封装前 IPv6报文的目的IPv6地址与Tunnel接口的IPv6地址不在同一个网段,则必须配置通过Tunnel接口到达目的IPv6地址的转发路由,以便需要进行封装的报文能正常转发。对于自动隧道,用户只能配置静态路由,指定到达目的IPv6地址的路由出接口为本端Tunnel 接口或下一跳为对端Tunnel接口地址,不支持动态路由。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局使能ipv6

Switch(config)# ipv6 enable

 步骤3 进入接口配置模式,配置接口属性

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# ip address 1.1.1.1/24
Switch(config-if)# tunnel enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 3001::1/64
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface tunnel1
Switch(config-if)# tunnel source eth-0-1
Switch(config-if)# tunnel mode ipv6ip isatap
Switch(config-if)# ipv6 address 2001::/64 eui-64
Switch(config-if)# no ipv6 nd ra suppress

Switch(config-if)# exit

 步骤4 配置静态路由

Switch(config)# ip route 2.1.1.0/24 1.1.1.2
Switch(config)# ipv6 route 2001::/16 tunnel1

 步骤5 配置静态arp

Switch(config)# arp 1.1.1.2 0.0.2222

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

Switch# show interface tunnel1
Interface tunnel1
  Interface current state: UP
  Hardware is Tunnel
  Index 8193 , Metric 1 , Encapsulation TUNNEL
  VRF binding: not bound
  Tunnel protocol/transport IPv6/IP ISATAP, Status Valid
  Tunnel source 1.1.1.1(eth-0-1), destination UNKNOWN
  Tunnel DSCP inherit,  Tunnel TTL 64
  Tunnel transport MTU 1480 bytes

Switch# show ipv6 interface tunnel1
Interface tunnel1
  Interface current state: UP
  The maximum transmit unit is 1480 bytes
  IPv6 is enabled, link-local address is fe80::101:101
  Global unicast address(es):
    2001::101:101, subnet is 2001::/64 [EUI]
  ICMP error messages limited to one every 1000 milliseconds
  ICMP redirects are always sent
  ND DAD is enabled, number of DAD attempts: 1
  ND router advertisement is enabled
  ND reachable time is 30000 milliseconds
  ND advertised reachable time is 0 milliseconds
  ND retransmit interval is 1000 milliseconds
  ND advertised retransmit interval is 0 milliseconds
  ND router advertisements max interval: 600 secs
  ND router advertisements min interval: 198 secs
  ND next router advertisement due in 359 secs.
  ND router advertisements live for 1800 seconds
  ND router advertisements hop-limit is 0
  Hosts use stateless autoconfig for addresses.

 配置ISATAP主机

ISATAP主机上的具体配置与主机的操作系统有关,下面仅以Windows XP操作系统为例进行说明。

在主机上安装IPv6协议:

C:\>ipv6 install

Windows XP 上,ISATAP接口通常为接口2,只要在该接口上配置ISATAP交换机的IPv4地址即可完成主机侧的配置。先看看这个ISATAP接口的信息:

Interface 2: Automatic Tunneling Pseudo-Interface
  Guid {48FCE3FC-EC30-E50E-F1A7-71172AEEE3AE}
  does not use Neighbor Discovery
  does not use Router Discovery
  routing preference 1
  EUI-64 embedded IPv4 address: 0.0.0.0
  router link-layer address: 0.0.0.0
    preferred link-local fe80::5efe:2.1.1.1, life infinite  
  link MTU 1280 (true link MTU 65515)
  current hop limit 128
  reachable time 25000ms (base 30000ms)
  retransmission interval 1000ms
  DAD transmits 0
  default site prefix length 48

ISATAP接口配置一个ipv4地址:

C:\>ipv6 rlu 2 1.1.1.1

只需要这么一个命令,这就完成了主机的配置,我们再来看看这个ISATAP接口的信息:

Interface 2: Automatic Tunneling Pseudo-Interface
  Guid {48FCE3FC-EC30-E50E-F1A7-71172AEEE3AE}
  does not use Neighbor Discovery
  does not use Router Discovery
  routing preference 1
  EUI-64 embedded IPv4 address: 2.1.1.1
  router link-layer address: 1.1.1.1
preferred global 2001::5efe:2.1.1.1, life 29d23h59m46s/6d23h59m46s (public)
    preferred link-local fe80::5efe:2.1.1.1, life infinite  
  link MTU 1280 (true link MTU 65515)
  current hop limit 128
  reachable time 25000ms (base 30000ms)
  retransmission interval 1000ms
  DAD transmits 0
  default site prefix length 48

10.1.3 应用场景配置举例

10.2 NDP配置

10.2.1 概述

10.2.1.1 功能简介

网络节点(主机和路由器)使用邻居发现协议(ND)来探测直连邻居的链路层地址。并且提供一种机制,快速验证一个已经缓存在表项中的邻居的有效性。

主机还能使用ND来找到邻居的路由器。

网络节点之间利用该协议作为一种保活机制,定期探测邻居的有效性,探测邻居链路层地址的改变或邻居失效事件。

10.2.1.2 原理描述

10.2.2 配置

NDP

在这个例子中,接口eth-0-1的地址是3000::1/64。在3000::/64网段中有两台主机,地址分别是3000::23000::3MAC地址分别是001a-a011-eca2001a-a011-eca3。其中3000::2配置了静态邻居,3000::3通过动态协议学习。将eth-0-1的老化时间配置成10分钟。NS报文间隔配置成2秒。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性

Switch (config)# interface eth-0-1
Switch (config-if)# no switchport
Switch (config-if)# no shutdown
Switch (config-if)# ipv6 address 3000::1/64
Switch (config-if)# ipv6 nd reachable-time 600
Switch (config-if)# ipv6 nd ns-interval 2000
Switch (config-if)# exit

 步骤3 配置静态邻居表项

Switch (config)# ipv6 neighbor 3000::2 001a.a011.eca2

 步骤4 退出配置模式

Switch(config)# end

 步骤5 检查配置

Switch # show ipv6 neighbors
IPv6 address                            Age      Link-Layer Addr State Interface
3000::2                                  -        001a-a011-eca2  REACH eth-0-1
3000::3                                  6        001a-a011-eca3  REACH eth-0-1
fe80::6d8:e8ff:fe4c:e700              6        001a-a011-eca3  STALE eth-0-1

10.2.3 应用场景配置举例

10.3 DHCPv6 Relay 配置

10.3.1 概述

10.3.1.1 功能简介

DHCPv6服务器和客户端都在一个子网内,则客户端和服务器之间可以直接进行DHCPv6协议的交互,这时不需要启动DHCPv6 中继功能。如果DHCPv6服务器和客户端不在一个子网内,则需要启动DHCPv6 中继功能将DHCPv6报文转发到外部的DHCPv6服务器。

DHCPv6 中继转发同正常的IPv6路由转发不同,IPv6路由转发的IPv6数据包在网络之间透明交换,而DHCPv6 中继接收DHCPv6消息同时产生一个新的DHCPv6消息发送到另一个接口。DHCPv6 中继在报文中设置中继地址,同时可以添加中继信息(Remote-id),转发到DHCPv6服务器端。

10.3.1.2 原理描述

10.3.2 配置

DHCP Relay

上图为测试DHCPv6中继代理功能的网络拓扑,需要两台PC机和一台交换机构建测试环境。

计算机A作为DHCPv6服务器

计算机B作为DHCPv6客户端

交换机作为DHCPv6中继

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 使能DHCPv6中继全局服务

Switch(config)# service dhcpv6 enable
Switch(config)# dhcpv6 relay
Switch(config)# dhcpv6 relay remote-id option
Switch(config)# dhcpv6 relay pd route

 步骤3 配置DHCPv6服务器组

Switch(config)# dhcpv6-server 1 2001:1000::1

 步骤4 进入接口配置模式,配置接口属性

Switch(config)# interface eth-0-12
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2001:1000::2/64
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-11
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2001:1001::1/64
Switch(config-if)# no shutdown
Switch(config-if)# dhcpv6-server 1
Switch(config-if)# exit

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

检查接口配置。

Switch# show running-config interface eth-0-12
!
interface eth-0-12
no switchport
ipv6 address 2001:1000::1/64
!

Switch # show running-config interface eth-0-11
!
interface eth-0-11
no switchport
ipv6 address 2001:1001::1/64
dhcpv6-server 1
!

检查DHCPv6服务器状态。

Switch# show services
Networking services configuration:
Service Name         Status      
===========================================================
dhcp                   disable      
dhcpv6                 enable      

检查DHCPv6服务器组配置。

Switch# show dhcpv6-server
DHCPv6 server group information:
============================================================
group 1 ipv6 address list:
[1] 2001:1000::1

显示DHCPv6中继统计。

Switch# show dhcpv6 relay statistics
DHCPv6 relay packet statistics:
============================================================
Client relayed packets :  8
Server relayed packets :  8

Client error packets   :  0
Server error packets   :  0

显示记录的Prefix-delegation 客户端信息。

Switch# show dhcpv6 relay pd client
DHCPv6 prefix-delegation client information:
============================================================
Interface  : eth-0-11
Client DUID  : 000100011804ff38c2428f04970
Client IPv6 address  : fe80::beac:d8ff:fedf:c600
    IA ID  : d8dfc60
        IA Prefix :  2002:2:9:eebe::/64
            prefered/max lifetime : 280/300
            expired time :  2001-1-1 09:10:58
============================================================

10.3.3 应用场景配置举例

11   IPv6安全配置指导  

11.1 DHCPv6 Snooping 配置

11.1.1 概述

11.1.1.1 功能简介

DHCPv6 Snooping是一种安全功能,包括不受信任的DHCPv6客户端和信任的DHCPv6服务器之间的防火墙功能,其功能行为如下:

验证从不受信任的源接收到的DHCPv6消息,并过滤掉无效消息。

建立和维护DHCPv6 Snooping绑定关系的数据库,其中包含DHCPv6客户端租用的IPv6地址信息。

DHCPv6 Snooping功能在软件中实现,所有DHCPv6消息在芯片中被拦截直接发往CPU进行处理。

11.1.1.2 原理描述

11.1.2 配置

DHCPv6 Snooping

上图为测试DHCPv6 snooping功能的网络拓扑,需要两台PC机和一台交换机构建测试环境,具体分配可参照如下描述:

计算机A作为DHCPv6服务器

计算机B作为DHCPv6客户端

交换机作为DHCPv6 snooping

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式并创建vlan

Switch(config)# vlan database
Switch(config-vlan)# vlan 2
Switch(config-vlan)# exit

 步骤3 进入接口配置模式,配置接口属性

Switch(config)# interface eth-0-11
Switch(config-if)# switchport
Switch(config-if)# switchport access vlan 2
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-12
Switch(config-if)# switchport
Switch(config-if)# switchport access vlan 2
Switch(config-if)# dhcpv6 snooping trust
Switch(config-if)# no shutdown
Switch(config-if)# exit

 步骤4 使能DHCPv6 snooping全局特性

Switch(config)# service dhcpv6 enable
Switch(config)# dhcpv6 snooping
Switch(config)# dhcpv6 snooping vlan 2

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

根据如下步骤,检查接口配置是否正确。

Switch# show running-config interface eth-0-12
!
interface eth-0-12
switchport access vlan 2
dhcpv6 snooping trust

!
Switch# show running-config interface eth-0-11
!
interface eth-0-11
switchport access vlan 2
!

使用如下命令,检查DHCPv6服务状态。

Switch# show services
Networking services configuration:
Service Name         Status      
============================================================
dhcp                   disable  
dhcpv6                 enable

使用如下命令,打印dhcpv6 snooping配置,检查当前配置。

Switch# show dhcpv6 snooping config
dhcpv6 snooping service: enabled
dhcpv6 snooping switch: enabled
dhcpv6 snooping vlan 2

使用如下命令,检查dhcpv6 snooping的统计信息。

Switch# show dhcpv6 snooping statistics
DHCPv6 snooping statistics:
============================================================
DHCPv6 packets                              21

Packets forwarded                        21
Packets invalid                           0
Packets dropped                           0

使用如下命令,显示dhcpv6 snooping绑定信息。

Switch# show dhcpv6 snooping binding all
DHCPv6 snooping binding table:
VLAN MAC Address    Lease(s)    Interface   IPv6 Address
============================================================
2    0016.76a1.7ed9 978         eth-0-11    2001:1000::2

11.1.3 应用场景配置举例

12   IPv6路由配置指导  

12.1 IPv6单播路由配置

12.1.1 概述

12.1.1.1 功能简介

静态路由是一种特殊的路由,由管理员手工配置。当网络结构比较简单时,只需配置静态路由就可以使网络正常工作。合理设置和使用静态路由可以改进网络性能,并可为重要的网络应用保证带宽。

静态路由的缺点在于:当网络发生故障或者拓扑发生变化后,可能会出现路由不可达,从而导致网络中断。此时必须由网络管理员手工修改静态路由的配置。

静态路由是由网络前缀(主机地址)和下一跳(网关)组成。静态路由在小型网络中非常有用。静态路由可提供使几个目的地可达的简单解决方案。

大型网络推荐使用动态路由协议。

12.1.1.2 原理描述

12.1.2 配置

ipv6 unicast routing

这个例子说明在一个简单的网络拓扑结构下如何使能静态路。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局使能ipv6

Switch(config)# ipv6 enable

 步骤3 进入接口配置模式,配置接口属性

Switch1的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address auto link-local
Switch(config-if)# ipv6 address 2001:1::1/64
Switch(config-if)# exit

Switch2 的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address auto link-local
Switch(config-if)# ipv6 address 2001:1::2/64
Switch(config-if)# exit

Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address auto link-local
Switch(config-if)# ipv6 address 2001:2::2/64
Switch(config-if)# exit

Switch3 的接口配置:

Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address auto link-local
Switch(config-if)# ipv6 address 2001:2::3/64
Switch(config-if)# exit

 步骤4 配置静态路由

switch1配置:

Switch(config)# ipv6 route 2001:2::/64 2001:1::2

switch3配置:

Switch(config)# ipv6 route 2001:1::/64 2001:2::2

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

Switch1 显示结果:

Switch# show ipv6 route
IPv6 Routing Table
Codes: C - connected, S - static, R - RIP, O - OSPF, I - IS-IS, B - BGP
       [*] - [AD/Metric]
Timers: Uptime
C       2001:1::/64
       via ::, eth-0-9, 02:08:50
C       2001:1::1/128
       via ::1, eth-0-9, 02:08:50
S       2001:2::/64 [1/0]
       via 2001:1::2, eth-0-9, 02:05:36
C       fe80::/10
       via ::, Null0, 02:09:11

Switch2 显示结果:

Switch# show ipv6 route
IPv6 Routing Table
Codes: C - connected, S - static, R - RIP, O - OSPF, I - IS-IS, B - BGP
       [*] - [AD/Metric]
Timers: Uptime
C       2001:1::/64
       via ::, eth-0-9, 00:03:37
C       2001:1::2/128
       via ::1, eth-0-9, 00:03:37
C       2001:2::/64
       via ::, eth-0-17, 00:03:21
C       2001:2::2/128
       via ::1, eth-0-17, 00:03:21
C       fe80::/10
       via ::, Null0, 00:03:44

Switch3 显示结果:

Switch# show ipv6 route
IPv6 Routing Table
Codes: C - connected, S - static, R - RIP, O - OSPF, I - IS-IS, B - BGP
       [*] - [AD/Metric]
Timers: Uptime
S       2001:1::/64 [1/0]
       via 2001:2::2, eth-0-17, 00:02:14
C       2001:2::/64
       via ::, eth-0-17, 00:03:28
C       2001:2::3/128
       via ::1, eth-0-17, 00:03:28
C       fe80::/10
       via ::, Null0, 00:03:53

Switch1上测试Switch3的连通性:

Switch1# ping ipv6 2001:2::3
PING 2001:2::3(2001:2::3) 56 data bytes
64 bytes from 2001:2::3: icmp_seq=0 ttl=63 time=127 ms
64 bytes from 2001:2::3: icmp_seq=1 ttl=63 time=132 ms
64 bytes from 2001:2::3: icmp_seq=2 ttl=63 time=124 ms
64 bytes from 2001:2::3: icmp_seq=3 ttl=63 time=137 ms
64 bytes from 2001:2::3: icmp_seq=4 ttl=63 time=141 ms
--- 2001:2::3 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4010ms
rtt min/avg/max/mdev = 124.950/132.719/141.251/5.923 ms, pipe 2

12.1.3 应用场景配置举例

12.2 OSPFv3配置

12.2.1 概述

12.2.1.1 功能简介

开放最短路径优先协议OSPFOpen Shortest Path First)是IETF组织开发的一个基于链路状态的内部网关协议,OSPFv3OSPF版本3的简称,主要提供对IPv6路由的支持,遵循的标准是RFC5340(OSPF for IPv6OSPFv3OSPFv2有很多方面是相同的:

Router IDArea IDLSA Link State ID 仍然是32 位的。

协议报文类型一样:Hello 报文、DD 报文、LSR 报文、LSU 报文和LSAck 报文。

邻居发现和邻接建立机制一样

LSA泛洪和老化机制一样。

OSPFv3OSPFv2有如下不同点:

OSPFv3是基于link运行的,而OSPFv2是基于network运行的。

OSPFv3在同一个link上可以运行多个实例。

OSPFv3的拓扑关系和IPv6前缀信息分离。

使用Link-local地址作为路由下一跳。

新增了link lsa以及本地链路泛洪范围。

当前的系统支持如下OSPFv3特性:

支持末梢区域:支持路由重分布,这包括将其他路由协议学到的路由导入OSPFv3或者将OSPFv3学到的路由导出到其他路由协议中。

支持OSPFv3process

支持link上多instance

12.2.1.2 原理描述

参考:RFC 5340 – OSPF for IPv6

12.2.2 配置

12.2.2.1 配置基本OSPFv3

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建OSPFv3实例

Switch(config)# router ipv6 ospf 100
Switch(config-router)# router-id 1.1.1.1
Switch(config-router)# exit

在全局模式下通过命令“no router ipv6 ospf process-id”取消OSPFv3进程。

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch# show ipv6 protocols
Routing Protocol is "OSPFv3 (100)" with ID 1.1.1.1
  Redistributing:
  Routing for Networks:
  Distance: (default is 110)

12.2.2.2 启用OSPFv3

OSPFv3

这个例子显示了一个接口上启用OSPFv3所需的最低配置。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局使能ipv6

Switch(config)# ipv6 enable

 步骤3 创建OSPFv3实例

switch1配置:

Switch(config)# router ipv6 ospf 100
Switch(config-router)# router-id 1.1.1.1
Switch(config-router)# exit

switch2配置:

Switch(config)# router ipv6 ospf 200
Switch(config-router)# router-id 2.2.2.2
Switch(config-router)# exit

 步骤4 进入接口配置模式,配置接口属性

Switch1的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2004:12:9::1/96
Switch(config-if)# ipv6 router ospf 100 area 0 instance 0
Switch(config-if)# exit

Switch2的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2004:12:9::2/96
Switch(config-if)# ipv6 router ospf 200 area 0 instance 0
Switch(config-if)# exit

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch1 显示结果:

Switch# show ipv6 ospf database
            OSPFv3 Router with ID (1.1.1.1) (Process 100)
                Link-LSA (Interface eth-0-9)
Link State ID   ADV Router      Age  Seq#       CkSum  Prefix
0.0.0.9         1.1.1.1          614 0x80000001 0x6a40      1
0.0.0.9         2.2.2.2           68 0x80000001 0x4316      1
                Router-LSA (Area 0.0.0.0)
Link State ID   ADV Router      Age  Seq#       CkSum    Link
0.0.0.0         1.1.1.1           54 0x80000003 0xb74b      1
0.0.0.0         2.2.2.2           55 0x80000003 0x9965      1
                Network-LSA (Area 0.0.0.0)
Link State ID   ADV Router      Age  Seq#       CkSum
0.0.0.9         1.1.1.1           54 0x80000001 0x3ed1
                Intra-Area-Prefix-LSA (Area 0.0.0.0)
Link State ID   ADV Router      Age  Seq#       CkSum  Prefix  Reference
0.0.0.2         1.1.1.1           53 0x80000001 0x450a      1  Network-LSA

Switch# show ipv6 ospf neighbor
OSPFv3 Process (100)
Neighbor ID     Pri   State           Dead Time   Interface  Instance ID
2.2.2.2           1   Full/Backup      00:00:33    eth-0-9    0

Switch# show ipv6 ospf route
OSPFv3 Process (100)
Codes: C - connected, D - Discard, O - OSPF, IA - OSPF inter area
       E1 - OSPF external type 1, E2 - OSPF external type 2
   Destination                                   Metric
     Next-hop
C  2004:12:9::/96                                     1
     directly connected, eth-0-9, Area 0.0.0.0

Switch2 显示结果:

Switch# show ipv6 ospf database
            OSPFv3 Router with ID (2.2.2.2) (Process 200)
                Link-LSA (Interface eth-0-9)
Link State ID   ADV Router      Age  Seq#       CkSum  Prefix
0.0.0.9         1.1.1.1          774 0x80000001 0x6a40      1
0.0.0.9         2.2.2.2          228 0x80000001 0x4316      1
                Router-LSA (Area 0.0.0.0)
Link State ID   ADV Router      Age  Seq#       CkSum    Link
0.0.0.0         1.1.1.1          217 0x80000003 0xb74b      1
0.0.0.0         2.2.2.2          214 0x80000003 0x9965      1
                Network-LSA (Area 0.0.0.0)
Link State ID   ADV Router      Age  Seq#       CkSum
0.0.0.9         1.1.1.1          215 0x80000001 0x3ed1
                Intra-Area-Prefix-LSA (Area 0.0.0.0)
Link State ID   ADV Router      Age  Seq#       CkSum  Prefix  Reference
0.0.0.2         1.1.1.1          214 0x80000001 0x450a      1  Network-LSA

Switch# show ipv6 ospf neighbor
OSPFv3 Process (200)
Neighbor ID     Pri   State           Dead Time   Interface  Instance ID
1.1.1.1           1   Full/DR          00:00:35    eth-0-9    0

Switch# show ipv6 ospf route
OSPFv3 Process (200)
Codes: C - connected, D - Discard, O - OSPF, IA - OSPF inter area
       E1 - OSPF external type 1, E2 - OSPF external type 2
   Destination                                   Metric
     Next-hop
C  2004:12:9::/96                                     1
     directly connected, eth-0-9, Area 0.0.0.0

12.2.2.3 配置优先级

OSPFv3 priority

这个例子主要讲述了如何配置接口优先级,优先级高的成为DR。优先级为0的不参与DR选举。Switch3的优先级是10,这比Switch1Switch2的默认优先级1要高,因此Switch3将成为这个网络内的DR

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局使能ipv6

Switch(config)# ipv6 enable

 步骤3 创建OSPFv3实例

switch1配置:

Switch(config)# router ipv6 ospf 100
Switch(config-router)# router-id 1.1.1.1
Switch(config-router)# exit

switch2配置:

Switch(config)# router ipv6 ospf 200
Switch(config-router)# router-id 2.2.2.2
Switch(config-router)# exit

switch3配置:

Switch(config)# router ipv6 ospf 300
Switch(config-router)# router-id 3.3.3.3
Switch(config-router)# exit

 步骤4 进入接口配置模式,配置接口属性

Switch1的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2004:12:9::1/96
Switch(config-if)# ipv6 router ospf 100 area 0 instance 0
Switch(config-if)# exit

Switch2的接口配置:

Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2004:12:9::2/96
Switch(config-if)# ipv6 router ospf 200 area 0 instance 0
Switch(config-if)# exit

Switch3的接口配置:

Switch(config)# interface eth-0-13
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2004:12:9::3/96
Switch(config-if)# ipv6 router ospf 300 area 0 instance 0
Switch(config-if)# ipv6 ospf priority 10
Switch(config-if)# exit

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

Switch1 显示结果:

Switch# show ipv6 ospf neighbor
OSPFv3 Process (100)
Neighbor ID     Pri   State               Dead Time   Interface  Instance ID
2.2.2.2           1   Full/Backup         00:00:31    eth-0-9    0
3.3.3.3          10   Full/DR             00:00:36    eth-0-9    0
Switch#
Switch# show ipv6
interface    isis         mif          mld          mroute       mroute-rpf  
multicast    neighbors    ospf         pim          prefix-list  protocols   
rip          route       
Switch# show ipv6 ospf interface
eth-0-9 is up, line protocol is up
  Interface ID 9
  IPv6 Prefixes
    fe80::20e6:7eff:fee2:d400/10 (Link-Local Address)
    2004:12:9::1/96
  OSPFv3 Process (100), Area 0.0.0.0, Instance ID 0
    Router ID 1.1.1.1, Network Type BROADCAST, Cost: 1
    Transmit Delay is 1 sec, State DROther, Priority 1
    Designated Router (ID) 3.3.3.3
      Interface Address fe80::ba5d:79ff:fe55:ed00
    Backup Designated Router (ID) 2.2.2.2
      Interface Address fe80::fcc8:7bff:fe3e:ec00
    Timer interval configured, Hello 10, Dead 40, Wait 40, Retransmit 5
      Hello due in 00:00:03
    Neighbor Count is 2, Adjacent neighbor count is 2

Switch2 显示结果:

Switch# show ipv6 ospf neighbor
OSPFv3 Process (200)
Neighbor ID     Pri   State               Dead Time   Interface  Instance ID
1.1.1.1           1   Full/DROther        00:00:31    eth-0-17   0
3.3.3.3          10   Full/DR             00:00:37    eth-0-17   0

Switch# show ipv6 ospf interface
eth-0-17 is up, line protocol is up
  Interface ID 17
  IPv6 Prefixes
    fe80::fcc8:7bff:fe3e:ec00/10 (Link-Local Address)
    2004:12:9::2/96
  OSPFv3 Process (200), Area 0.0.0.0, Instance ID 0
    Router ID 2.2.2.2, Network Type BROADCAST, Cost: 1
    Transmit Delay is 1 sec, State Backup, Priority 1
    Designated Router (ID) 3.3.3.3
      Interface Address fe80::ba5d:79ff:fe55:ed00
    Backup Designated Router (ID) 2.2.2.2
      Interface Address fe80::fcc8:7bff:fe3e:ec00
    Timer interval configured, Hello 10, Dead 40, Wait 40, Retransmit 5
      Hello due in 00:00:07
    Neighbor Count is 2, Adjacent neighbor count is 2

Switch3 显示结果:

Switch# show ipv6 ospf neighbor
OSPFv3 Process (300)
Neighbor ID     Pri   State               Dead Time   Interface  Instance ID
1.1.1.1           1   Full/DROther        00:00:40    eth-0-13   0
2.2.2.2           1   Full/Backup         00:00:29    eth-0-13   0

Switch# show ipv6 ospf interface
eth-0-13 is up, line protocol is up
  Interface ID 13
  IPv6 Prefixes
    fe80::ba5d:79ff:fe55:ed00/10 (Link-Local Address)
    2004:12:9::3/96
  OSPFv3 Process (300), Area 0.0.0.0, Instance ID 0
    Router ID 3.3.3.3, Network Type BROADCAST, Cost: 1
    Transmit Delay is 1 sec, State DR, Priority 10
    Designated Router (ID) 3.3.3.3
      Interface Address fe80::ba5d:79ff:fe55:ed00
    Backup Designated Router (ID) 2.2.2.2
      Interface Address fe80::fcc8:7bff:fe3e:ec00
    Timer interval configured, Hello 10, Dead 40, Wait 40, Retransmit 5
      Hello due in 00:00:06
    Neighbor Count is 2, Adjacent neighbor count is 2

12.2.2.4 配置OSPFv3区域参数

OSPFv3 area

您可以选择性地配置多个OSPFv3区域参数。这些参数将区域配置为末梢区域(Stub)Stub区域是一些特定的区域,Stub区域的ABR不传播它们接收到的自治系统外部路由,在这些区域中路由器的路由表规模以及路由信息传递的数量都会大大减少。为保证到自治系统外的路由依旧可达,该区域的ABR将生成一条缺省路由,并发布给Stub 区域中的其他非ABR路由器。

路由聚合是指ABRASBR将具有相同前缀的路由信息聚合,只发布一条路由到其它区域。AS被划分成不同的区域后,区域间可以通过路由聚合来减少路由信息,减小路由表的规模,提高路由器的运算速度。如果网络号是连续的,你可以使用area range命令将这些连续的网段聚合成一个网段。这样ABR 只发送一条聚合后的LSA,所有属于本命令指定的聚合网段范围的LSA 将不再会被单独发送出去,这样可减少其它区域中LSDB的规模。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局使能ipv6

Switch(config)# ipv6 enable

 步骤3 创建OSPFv3实例

switch1配置:

Switch(config)# router ipv6 ospf 100
Switch(config-router)# router-id 1.1.1.1
Switch(config-router)# exit

switch2配置:

Switch(config)# router ipv6 ospf 200
Switch(config-router)# router-id 2.2.2.2
Switch(config-router)# exit

switch3配置:

Switch(config)# router ipv6 ospf 300
Switch(config-router)# router-id 3.3.3.3
Switch(config-router)# exit

Switch(config)# router ipv6 ospf 300
Switch(config-router)# area 100 range 2004:4::/32
Switch(config-router)# area 100 stub no-summary
Switch(config-router)# exit

switch4配置:

Switch(config)# router ipv6 ospf 400
Switch(config-router)# router-id 4.4.4.4
Switch(config-router)# area 100 stub no-summary
Switch(config-router)# exit

 步骤4 进入接口配置模式,配置接口属性

Switch1的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2004:12:9::1/96
Switch(config-if)# ipv6 router ospf 100 area 0 instance 0
Switch(config-if)# exit

Switch(config)#interface eth-0-13
Switch(config-if)#no switchport
Switch(config-if)#no shutdown
Switch(config-if)# ipv6 address 2004:13:13::2/96
Switch(config-if)# ipv6 router ospf 100 area 0 instance 0
Switch(config-if)# exit

Switch2的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2004:12:9::2/96
Switch(config-if)# ipv6 router ospf 200 area 0 instance 0
Switch(config-if)# exit

Switch(config)#interface eth-0-17
Switch(config-if)#no switchport
Switch(config-if)#no shutdown
Switch(config-if)# ipv6 address 2004:23:17::1/96
Switch(config-if)# ipv6 router ospf 200 area 0 instance 0
Switch(config-if)# exit

Switch3的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2004:4:100::1/96
Switch(config-if)# ipv6 router ospf 300 area 100 instance 0
Switch(config-if)# exit

Switch(config)# interface eth-0-13
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2004:13:13::2/96
Switch(config-if)# ipv6 router ospf 300 area 0 instance 0
Switch(config-if)# exit

Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2004:23:17::2/96
Switch(config-if)# ipv6 router ospf 300 area 0 instance 0
Switch(config-if)# exit

Switch4的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2004:4:1::1/96
Switch(config-if)# ipv6 router ospf 400 area 100 instance 0
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2004:4:2::1/96
Switch(config-if)# ipv6 router ospf 400 area 100 instance 0
Switch(config-if)# exit

Switch(config)# interface eth-0-3
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2004:4:3::1/96
Switch(config-if)# ipv6 router ospf 400 area 100 instance 0
Switch(config-if)# exit

Switch(config)# interface eth-0-4
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2004:4:4::1/96
Switch(config-if)# ipv6 router ospf 400 area 100 instance 0
Switch(config-if)# exit

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2004:4:100::2/96
Switch(config-if)# ipv6 router ospf 400 area 100 instance 0
Switch(config-if)# exit

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

Switch1 显示结果:

Switch# show ipv6 route
IPv6 Routing Table
Codes: C - connected, S - static, R - RIP, I - IS-IS, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       Dr - DHCPV6 Relay
       [*] - [AD/Metric]
Timers: Uptime
O IA    2004:4::/32 [110/3]
       via fe80::c629:f2ff:fe02:3600, eth-0-13, 00:01:00
C       2004:12:9::/96
       via ::, eth-0-9, 00:15:56
C       2004:12:9::1/128
       via ::1, eth-0-9, 00:15:56
C       2004:13:13::/96
       via ::, eth-0-13, 00:15:55
C       2004:13:13::2/128
       via ::1, eth-0-13, 00:15:55
O       2004:23:17::/96 [110/2]
       via fe80::bc22:aeff:fe64:aa00, eth-0-9, 00:08:10
       via fe80::c629:f2ff:fe02:3600, eth-0-13, 00:08:10
C       fe80::/10
       via ::, Null0, 00:15:57

Switch2 显示结果:

Switch# show ipv6 route
IPv6 Routing Table
Codes: C - connected, S - static, R - RIP, I - IS-IS, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       Dr - DHCPV6 Relay
       [*] - [AD/Metric]
Timers: Uptime
O IA    2004:4::/32 [110/3]
       via fe80::c629:f2ff:fe02:3600, eth-0-17, 00:00:57
C       2004:12:9::/96
       via ::, eth-0-9, 00:12:24
C       2004:12:9::2/128
       via ::1, eth-0-9, 00:12:24
O       2004:13:13::/96 [110/2]
       via fe80::b242:55ff:fe05:ff00, eth-0-9, 00:07:52
       via fe80::c629:f2ff:fe02:3600, eth-0-17, 00:07:52
C       2004:23:17::/96
       via ::, eth-0-17, 00:12:24
C       2004:23:17::1/128
       via ::1, eth-0-17, 00:12:24
C       fe80::/10
       via ::, Null0, 00:12:26

Switch3 显示结果:

Switch# show ipv6 route
IPv6 Routing Table
Codes: C - connected, S - static, R - RIP, I - IS-IS, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       Dr - DHCPV6 Relay
       [*] - [AD/Metric]
Timers: Uptime
O       2004:4::/32 [110/0]
       via ::, Null0, 00:08:31
O       2004:4:1::/96 [110/2]
       via fe80::ee66:91ff:fe45:db00, eth-0-9, 00:01:08
O       2004:4:2::/96 [110/2]
       via fe80::ee66:91ff:fe45:db00, eth-0-9, 00:01:08
O       2004:4:3::/96 [110/2]
       via fe80::ee66:91ff:fe45:db00, eth-0-9, 00:01:08
O       2004:4:4::/96 [110/2]
       via fe80::ee66:91ff:fe45:db00, eth-0-9, 00:01:08
C       2004:4:100::/96
       via ::, eth-0-9, 00:08:32
C       2004:4:100::1/128
       via ::1, eth-0-9, 00:08:32
O       2004:12:9::/96 [110/2]
       via fe80::b242:55ff:fe05:ff00, eth-0-13, 00:08:03
       via fe80::bc22:aeff:fe64:aa00, eth-0-17, 00:08:03
O       2004:13:13::/96 [110/1]
       via fe80::b242:55ff:fe05:ff00, eth-0-13, 00:08:18
C       2004:23:17::/96
       via ::, eth-0-17, 00:08:32
C       2004:23:17::2/128
       via ::1, eth-0-17, 00:08:32
C       fe80::/10
       via ::, Null0, 00:08:34

Switch4 显示结果:

Switch# show ipv6 route
IPv6 Routing Table
Codes: C - connected, S - static, R - RIP, I - IS-IS, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       Dr - DHCPV6 Relay
       [*] - [AD/Metric]
Timers: Uptime
O IA    ::/0 [110/2]
       via fe80::c629:f2ff:fe02:3600, eth-0-9, 00:00:53
C       2004:4:1::/96
       via ::, eth-0-1, 00:03:09
C       2004:4:1::1/128
       via ::1, eth-0-1, 00:03:09
C       2004:4:2::/96
       via ::, eth-0-2, 00:03:08
C       2004:4:2::1/128
       via ::1, eth-0-2, 00:03:08
C       2004:4:3::/96
       via ::, eth-0-3, 00:03:08
C       2004:4:3::1/128
       via ::1, eth-0-3, 00:03:08
C       2004:4:4::/96
       via ::, eth-0-4, 00:03:09
C       2004:4:4::1/128
       via ::1, eth-0-4, 00:03:09
C       2004:4:100::/96
       via ::, eth-0-9, 00:03:09
C       2004:4:100::2/128
       via ::1, eth-0-9, 00:03:09
C       fe80::/10
   via ::, Null0, 00:03:10

12.2.2.5 配置OSPFv3重分布路由

OSPFv3 Redistribute

区域内和区域间路由描述的是AS 内部的网络结构,外部路由则描述了应该如何选择到AS 以外目的地址的路由。OSPF 将引入的AS 外部路由分为两类:Type1 Type2

第一类外部路由是指接收的是IGPInterior Gateway Protocol,内部网关协议)路由(例如静态路由和RIPng 路由)。由于这类路由的可信程度较高,并且和OSPFv3 自身路由的开销具有可比性,所以到第一类外部路由的开销等于本路由器到相应的ASBR 的开销与ASBR 到该路由目的地址的开销之和。

第二类外部路由是指接收的是EGPExterior Gateway Protocol,外部网关协议)路由。由于这类路由的可信度比较低,所以OSPFv3 协议认为从ASBR 到自治系统之外的开销远远大于在自治系统之内到达ASBR 的开销。所以计算路由开销时将主要考虑前者,即到第二类外部路由的开销等于ASBR 到该路由目的地址的开销。如果计算出开销值相等的两条路由,再考虑本路由器到相应的ASBR 的开销。下面例子RIP路由将作为外部路由被重分布到OSPFv3网络中。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局使能ipv6

Switch(config)# ipv6 enable

 步骤3 创建OSPFv3实例

switch1配置:

Switch(config)# router ipv6 ospf 100
Switch(config-router)# router-id 1.1.1.1
Switch(config-router)# exit

switch2配置:

Switch(config)# router ipv6 ospf 200
Switch(config-router)# router-id 2.2.2.2
Switch(config-router)# exit

switch3配置:

Switch(config)# router ipv6 ospf 300
Switch(config-router)# router-id 3.3.3.3
Switch(config-router)# redistribute ripng
Switch(config-router)# exit

 步骤4 配置Rip实例

switch3配置:

Switch(config)# router ipv6 rip
Switch(config-router)# exit

switch4配置:

Switch(config)# router ipv6 rip
Switch(config-router)# exit

 步骤5 进入接口配置模式,配置接口属性

Switch1的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2004:12:9::1/96
Switch(config-if)# ipv6 router ospf 100 area 0 instance 0
Switch(config-if)# exit

Switch(config)#interface eth-0-13
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2004:13:13::2/96
Switch(config-if)# ipv6 router ospf 100 area 0 instance 0
Switch(config-if)# exit

Switch2的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2004:12:9::2/96
Switch(config-if)# ipv6 router ospf 200 area 0 instance 0
Switch(config-if)# exit

Switch(config)#interface eth-0-17
Switch(config-if)#no switchport
Switch(config-if)#no shutdown
Switch(config-if)# ipv6 address 2004:23:17::1/96
Switch(config-if)# ipv6 router ospf 200 area 0 instance 0
Switch(config-if)# exit

Switch3的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2004:4:100::1/96
Switch(config-if)# ipv6 router rip
Switch(config-if)# exit

Switch(config)# interface eth-0-13
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2004:13:13::2/96
Switch(config-if)# ipv6 router ospf 300 area 0 instance 0
Switch(config-if)# exit

Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2004:23:17::2/96
Switch(config-if)# ipv6 router ospf 300 area 0 instance 0
Switch(config-if)# exit

Switch4的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2004:4:1::1/96
Switch(config-if)# ipv6 router rip
Switch(config-if)# exit

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2004:4:100::2/96
Switch(config-if)# ipv6 router rip
Switch(config-if)# exit

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

Switch1 显示结果:

Switch# show ipv6 route
IPv6 Routing Table
Codes: C - connected, S - static, R - RIP, I - IS-IS, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       Dr - DHCPV6 Relay
       [*] - [AD/Metric]
Timers: Uptime
O E2    2004:4:1::/96 [110/20]
       via fe80::c629:f2ff:fe02:3600, eth-0-13, 00:00:03
C       2004:12:9::/96
       via ::, eth-0-9, 00:34:20
C       2004:12:9::1/128
       via ::1, eth-0-9, 00:34:20
C       2004:13:13::/96
       via ::, eth-0-13, 00:34:19
C       2004:13:13::2/128
       via ::1, eth-0-13, 00:34:19
O       2004:23:17::/96 [110/2]
       via fe80::bc22:aeff:fe64:aa00, eth-0-9, 00:26:34
       via fe80::c629:f2ff:fe02:3600, eth-0-13, 00:26:34
C       fe80::/10
       via ::, Null0, 00:34:21

Switch# show ipv6 ospf database external
            OSPFv3 Router with ID (1.1.1.1) (Process 100)
                AS-external-LSA
  LS age: 140
  LS Type: AS-External-LSA
  Link State ID: 0.0.0.1
  Advertising Router: 3.3.3.3
  LS Seq Number: 0x80000001
  Checksum: 0x66F7
  Length: 44
    Metric Type: 2 (Larger than any link state path)
    Metric: 20
    Prefix: 2004:4:1::/96
    Prefix Options: 0 (-|-|-|-)
    External Route Tag: 0

Switch2 显示结果:

Switch# show ipv6 route
IPv6 Routing Table
Codes: C - connected, S - static, R - RIP, I - IS-IS, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       Dr - DHCPV6 Relay
       [*] - [AD/Metric]
Timers: Uptime
O E2    2004:4:1::/96 [110/20]
       via fe80::c629:f2ff:fe02:3600, eth-0-17, 00:02:43
C       2004:12:9::/96
       via ::, eth-0-9, 00:33:31
C       2004:12:9::2/128
       via ::1, eth-0-9, 00:33:31
O       2004:13:13::/96 [110/2]
       via fe80::b242:55ff:fe05:ff00, eth-0-9, 00:28:59
       via fe80::c629:f2ff:fe02:3600, eth-0-17, 00:28:59
C       2004:23:17::/96
       via ::, eth-0-17, 00:33:31
C       2004:23:17::1/128
       via ::1, eth-0-17, 00:33:31
C       fe80::/10
       via ::, Null0, 00:33:33

Switch# show ipv6 ospf database external
show ipv6 ospf database external
            OSPFv3 Router with ID (2.2.2.2) (Process 200)
                AS-external-LSA
  LS age: 195
  LS Type: AS-External-LSA
  Link State ID: 0.0.0.1
  Advertising Router: 3.3.3.3
  LS Seq Number: 0x80000001
  Checksum: 0x66F7
  Length: 44
    Metric Type: 2 (Larger than any link state path)
    Metric: 20
    Prefix: 2004:4:1::/96
    Prefix Options: 0 (-|-|-|-)
    External Route Tag: 0

Switch3 显示结果:

Switch# show ipv6 route
IPv6 Routing Table
Codes: C - connected, S - static, R - RIP, I - IS-IS, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       Dr - DHCPV6 Relay
       [*] - [AD/Metric]
Timers: Uptime
R       2004:4:1::/96 [120/2]
       via fe80::ee66:91ff:fe45:db00, eth-0-9, 00:03:43
C       2004:4:100::/96
       via ::, eth-0-9, 00:07:01
C       2004:4:100::1/128
       via ::1, eth-0-9, 00:07:01
O       2004:12:9::/96 [110/2]
       via fe80::b242:55ff:fe05:ff00, eth-0-13, 00:29:57
       via fe80::bc22:aeff:fe64:aa00, eth-0-17, 00:29:57
O       2004:13:13::/96 [110/1]
       via fe80::b242:55ff:fe05:ff00, eth-0-13, 00:30:12
C       2004:23:17::/96
       via ::, eth-0-17, 00:30:26
C       2004:23:17::2/128
       via ::1, eth-0-17, 00:30:26
C       fe80::/10
       via ::, Null0, 00:30:28

Switch# show ipv6 ospf database external
show ipv6 ospf database external
            OSPFv3 Router with ID (3.3.3.3) (Process 300)
                AS-external-LSA
  LS age: 250
  LS Type: AS-External-LSA
  Link State ID: 0.0.0.1
  Advertising Router: 3.3.3.3
  LS Seq Number: 0x80000001
  Checksum: 0x66F7
  Length: 44
    Metric Type: 2 (Larger than any link state path)
    Metric: 20
    Prefix: 2004:4:1::/96
    Prefix Options: 0 (-|-|-|-)
    External Route Tag: 0

Switch4 显示结果:

Switch# show ipv6 route
IPv6 Routing Table
Codes: C - connected, S - static, R - RIP, I - IS-IS, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       Dr - DHCPV6 Relay
       [*] - [AD/Metric]
Timers: Uptime
C       2004:4:1::/96
       via ::, eth-0-1, 00:04:48
C       2004:4:1::1/128
       via ::1, eth-0-1, 00:04:48
C       2004:4:100::/96
       via ::, eth-0-9, 00:06:59
C       2004:4:100::2/128
       via ::1, eth-0-9, 00:06:59
C       fe80::/10
       via ::, Null0, 00:07:00

12.2.2.6 配置OSPFv3 Cost

OSPFv3 Cost

你可以通过修改接口的COST值来使路由成为最优路由。在下面的例子中,通过修改COST值可以使Switch2成为Switch1的下一跳。

默认接口的COST值是1(1000M speed)Switch2eth-0-17优先级100Switch4eth-0-9优先级150. 那么到达Switch3的网络2004:3:1::/96Cost值将不一样:

Switch2: 1+1+100 = 102

Switch3: 1+1+150 = 152

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局使能ipv6

Switch(config)# ipv6 enable

 步骤3 创建OSPFv3实例

switch1配置:

Switch(config)# router ipv6 ospf 100
Switch(config-router)# router-id 1.1.1.1
Switch(config-router)# exit

switch2配置:

Switch(config)# router ipv6 ospf 200
Switch(config-router)# router-id 2.2.2.2
Switch(config-router)# exit

switch3配置:

Switch(config)# router ipv6 ospf 300
Switch(config-router)# router-id 3.3.3.3
Switch(config-router)# exit

switch4配置:

Switch(config)# router ipv6 ospf 400
Switch(config-router)# router-id 4.4.4.4
Switch(config-router)# exit

 步骤4 进入接口配置模式,配置接口属性

Switch1的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2004:12:9::1/96
Switch(config-if)# ipv6 router ospf 100 area 0 instance 0
Switch(config-if)# exit

Switch(config)#interface eth-0-17
Switch(config-if)#no switchport
Switch(config-if)#no shutdown
Switch(config-if)# ipv6 address 2004:14:17::1/96
Switch(config-if)# ipv6 router ospf 100 area 0 instance 0
Switch(config-if)# exit

Switch2的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2004:12:9::2/96
Switch(config-if)# ipv6 router ospf 200 area 0 instance 0
Switch(config-if)# exit

Switch(config)#interface eth-0-17
Switch(config-if)#no switchport
Switch(config-if)#no shutdown
Switch(config-if)# ipv6 address 2004:23:17::1/96
Switch(config-if)# ipv6 router ospf 200 area 0 instance 0
Switch(config-if)# ipv6 ospf cost 100
Switch(config-if)# exit

Switch3的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2004:3:1::1/96
Switch(config-if)# ipv6 router ospf 300 area 0 instance 0
Switch(config-if)# exit

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2004:34:9::1/96
Switch(config-if)# ipv6 router ospf 300 area 0 instance 0
Switch(config-if)# exit

Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2004:23:17::2/96
Switch(config-if)# ipv6 router ospf 300 area 0 instance 0
Switch(config-if)# exit

Switch4的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2004:34:9::2/96
Switch(config-if)# ipv6 router ospf 400 area 0 instance 0
Switch(config-if)# ipv6 ospf cost 150
Switch(config-if)# exit

Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2004:14:17::2/96
Switch(config-if)# ipv6 router ospf 400 area 0 instance 0
Switch(config-if)# end

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

Switch1 显示结果:

Switch# show ipv6 ospf route
IPv6 Routing Table
Codes: C - connected, S - static, R - RIP, I - IS-IS, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       Dr - DHCPV6 Relay
       [*] - [AD/Metric]
Timers: Uptime
O       2004:3:1::/96 [110/102]
       via fe80::bc22:aeff:fe64:aa00, eth-0-9, 00:08:06
C       2004:12:9::/96
       via ::, eth-0-9, 01:15:43
C       2004:12:9::1/128
       via ::1, eth-0-9, 01:15:43
C       2004:14:17::/96
       via ::, eth-0-17, 00:18:38
C       2004:14:17::1/128
       via ::1, eth-0-17, 00:18:38
O       2004:23:17::/96 [110/101]
       via fe80::bc22:aeff:fe64:aa00, eth-0-9, 00:08:06
O       2004:34:9::/96 [110/102]
       via fe80::bc22:aeff:fe64:aa00, eth-0-9, 00:03:56
C       fe80::/10
       via ::, Null0, 01:15:44

Switch2 显示结果:

Switch# show ipv6 ospf route
IPv6 Routing Table
Codes: C - connected, S - static, R - RIP, I - IS-IS, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       Dr - DHCPV6 Relay
       [*] - [AD/Metric]
Timers: Uptime
O       2004:3:1::/96 [110/101]
       via fe80::c629:f2ff:fe02:3600, eth-0-17, 00:08:33
C       2004:12:9::/96
       via ::, eth-0-9, 01:12:40
C       2004:12:9::2/128
       via ::1, eth-0-9, 01:12:40
O       2004:14:17::/96 [110/2]
       via fe80::b242:55ff:fe05:ff00, eth-0-9, 00:18:43
C       2004:23:17::/96
       via ::, eth-0-17, 01:12:40
C       2004:23:17::1/128
       via ::1, eth-0-17, 01:12:40
O       2004:34:9::/96 [110/101]
       via fe80::c629:f2ff:fe02:3600, eth-0-17, 00:04:23
C       fe80::/10
       via ::, Null0, 01:12:42

Switch3 显示结果:

Switch# show ipv6 ospf route
IPv6 Routing Table
Codes: C - connected, S - static, R - RIP, I - IS-IS, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       Dr - DHCPV6 Relay
       [*] - [AD/Metric]
Timers: Uptime
C       2004:3:1::/96
       via ::, eth-0-1, 00:13:54
C       2004:3:1::1/128
       via ::1, eth-0-1, 00:13:54
O       2004:12:9::/96 [110/2]
       via fe80::bc22:aeff:fe64:aa00, eth-0-17, 00:19:47
O       2004:14:17::/96 [110/2]
       via fe80::ee66:91ff:fe45:db00, eth-0-9, 00:02:27
C       2004:23:17::/96
       via ::, eth-0-17, 01:09:02
C       2004:23:17::2/128
       via ::1, eth-0-17, 01:09:02
C       2004:34:9::/96
       via ::, eth-0-9, 00:04:52
C       2004:34:9::1/128
       via ::1, eth-0-9, 00:04:52
C       fe80::/10
       via ::, Null0, 01:09:04

Switch4 显示结果:

Switch# show ipv6 route
IPv6 Routing Table
Codes: C - connected, S - static, R - RIP, I - IS-IS, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       Dr - DHCPV6 Relay
       [*] - [AD/Metric]
Timers: Uptime
O       2004:3:1::/96 [110/103]
       via fe80::b242:55ff:fe05:ff00, eth-0-17, 00:02:35
O       2004:12:9::/96 [110/2]
       via fe80::b242:55ff:fe05:ff00, eth-0-17, 00:02:35
C       2004:14:17::/96
       via ::, eth-0-17, 00:04:09
C       2004:14:17::2/128
       via ::1, eth-0-17, 00:04:09
O       2004:23:17::/96 [110/102]
       via fe80::b242:55ff:fe05:ff00, eth-0-17, 00:02:35
C       2004:34:9::/96
       via ::, eth-0-9, 00:06:06
C       2004:34:9::2/128
       via ::1, eth-0-9, 00:06:06
C       fe80::/10
       via ::, Null0, 00:44:59

12.2.2.7 配置监听OSPFv3

您可以通过命令显示具体的统计数据,如IPv6路由表的内容,缓存和数据库。

 显示OSPF进程信息

Switch# show ipv6 ospf
Routing Process "OSPFv3 (300)" with ID 3.3.3.3
Process uptime is 3 hours 23 minutes
SPF schedule delay min 0.500 secs, SPF schedule delay max 50.0 secs
Minimum LSA interval 5 secs, Minimum LSA arrival 1 secs
Number of incomming current DD exchange neighbors 0/5
Number of outgoing current DD exchange neighbors 0/5
Number of external LSA 0. Checksum Sum 0x0000
Number of AS-Scoped Unknown LSA 0
Number of LSA originated 6
Number of LSA received 43
Number of areas in this router is 1
    Area BACKBONE(0)
        Number of interfaces in this area is 1(1)
        SPF algorithm executed 14 times
        Number of LSA 5.  Checksum Sum 0x30DCD
        Number of Unknown LSA 0

 显示OSPF链路状态信息库

Switch# show ipv6 ospf database database-summary

            OSPFv3 Router with ID (3.3.3.3) (Process ID 300)
Area (0.0.0.0) database summary
  LSA Type              Count         MaxAge
  Router                  3             0
  Network                 1             0
  Inter-Prefix            0             0
  Inter-Router            0             0
  Intra-Prefix            1             0
  Subtotal                5             0

Process 300 database summary
  LSA Type              Count         MaxAge
  Router                  3             0
  Network                 1             0
  Inter-Prefix            0             0
  Inter-Router            0             0
  Type-5 Ext              0             0
  Link                    3             0
  Intra-Prefix            1             0
  Total                   8             0

Switch# show ipv6 ospf database router

            OSPFv3 Router with ID (3.3.3.3) (Process 300)

                Router-LSA (Area 0.0.0.0)

  LS age: 600
  LS Type: Router-LSA
  Link State ID: 0.0.0.0
  Advertising Router: 1.1.1.1
  LS Seq Number: 0x80000008
  Checksum: 0x9A57
  Length: 40
  Flags: 0x00 (-|-|-|-|-)
  Options: 0x000013 (-|R|-|-|E|V6)

    Link connected to: a Transit Network
      Metric: 1
      Interface ID: 9
      Neighbor Interface ID: 13
      Neighbor Router ID: 3.3.3.3



  LS age: 597
  LS Type: Router-LSA
  Link State ID: 0.0.0.0
  Advertising Router: 2.2.2.2
  LS Seq Number: 0x8000000D
  Checksum: 0xE2FD
  Length: 40
  Flags: 0x00 (-|-|-|-|-)
  Options: 0x000013 (-|R|-|-|E|V6)

    Link connected to: a Transit Network
      Metric: 1
      Interface ID: 17
      Neighbor Interface ID: 13
      Neighbor Router ID: 3.3.3.3



  LS age: 599
  LS Type: Router-LSA
  Link State ID: 0.0.0.0
  Advertising Router: 3.3.3.3
  LS Seq Number: 0x8000000C
  Length: 40
  Flags: 0x00 (-|-|-|-|-)
  Options: 0x000013 (-|R|-|-|E|V6)

    Link connected to: a Transit Network
      Metric: 1
      Interface ID: 13
      Neighbor Interface ID: 13
      Neighbor Router ID: 3.3.3.3

Switch# show ipv6 ospf database network self-originate

            OSPFv3 Router with ID (3.3.3.3) (Process 300)

                Network-LSA (Area 0.0.0.0)

  LS age: 1261
  LS Type: Network-LSA
  Link State ID: 0.0.0.13
  Advertising Router: 3.3.3.3
  LS Seq Number: 0x80000004
  Checksum: 0x727E
  Length: 36
  Options: 0x000013 (-|R|-|-|E|V6)
    Attached Router: 3.3.3.3
    Attached Router: 1.1.1.1
    Attached Router: 2.2.2.2

Switch# show ipv6 ospf database inter-router

            OSPFv3 Router with ID (3.3.3.3) (Process 300)

Switch# show ipv6 ospf database intra-prefix

            OSPFv3 Router with ID (3.3.3.3) (Process 300)

                Intra-Area-Prefix-LSA (Area 0.0.0.0)

  LS age: 1623
  LS Type: Intra-Area-Prefix-LSA
  Link State ID: 0.0.0.2
  Advertising Router: 3.3.3.3
  LS Seq Number: 0x80000004
  Checksum: 0x8FA8
  Length: 48
  Number of Prefixes: 1
  Referenced LS Type: 0x2002
  Referenced Link State ID: 0.0.0.13
  Referenced Advertising Router: 3.3.3.3

    Prefix: 2004:12:9::/96
    Prefix Options: 0 (-|-|-|-)
    Metric: 0



Switch# show ipv6 ospf database inter-prefix

            OSPFv3 Router with ID (3.3.3.3) (Process 300)

Switch# show ipv6 ospf database link

            OSPFv3 Router with ID (3.3.3.3) (Process 300)

                Link-LSA (Interface eth-0-13)

  LS age: 641
  LS Type: Link-LSA
  Link State ID: 0.0.0.9
  Advertising Router: 1.1.1.1
  LS Seq Number: 0x80000005
  Checksum: 0x9C1C
  Length: 60
  Priority: 1
  Options: 0x000013 (-|R|-|-|E|V6)
  Link-Local Address: fe80::20e6:7eff:fee2:d400
  Number of Prefixes: 1

    Prefix: 2004:12:9::/96
    Prefix Options: 0 (-|-|-|-)




  LS age: 698
  LS Type: Link-LSA
  Link State ID: 0.0.0.17
  Advertising Router: 2.2.2.2
  LS Seq Number: 0x80000008
  Checksum: 0x2159
  Length: 60
  Priority: 1
  Options: 0x000013 (-|R|-|-|E|V6)
  Link-Local Address: fe80::fcc8:7bff:fe3e:ec00
  Number of Prefixes: 1

    Prefix: 2004:12:9::/96
    Prefix Options: 0 (-|-|-|-)



  LS age: 1535
  LS Type: Link-LSA
  Link State ID: 0.0.0.13
  Advertising Router: 3.3.3.3
  LS Seq Number: 0x80000008
  Checksum: 0x6E9A
  Length: 60
  Priority: 10
  Options: 0x000013 (-|R|-|-|E|V6)
  Link-Local Address: fe80::ba5d:79ff:fe55:ed00
  Number of Prefixes: 1

    Prefix: 2004:12:9::/96
    Prefix Options: 0 (-|-|-|-)

Switch# show ipv6 ospf database external

            OSPFv3 Router with ID (3.3.3.3) (Process 300)

 显示OSPFv3接口信息

Switch# show ipv6 ospf interface
eth-0-13 is up, line protocol is up
  Interface ID 13
  IPv6 Prefixes
    fe80::ba5d:79ff:fe55:ed00/10 (Link-Local Address)
    2004:12:9::3/96
  OSPFv3 Process (300), Area 0.0.0.0, Instance ID 0
    Router ID 3.3.3.3, Network Type BROADCAST, Cost: 1
    Transmit Delay is 1 sec, State DR, Priority 10
    Designated Router (ID) 3.3.3.3
      Interface Address fe80::ba5d:79ff:fe55:ed00
    Backup Designated Router (ID) 2.2.2.2
      Interface Address fe80::fcc8:7bff:fe3e:ec00
    Timer interval configured, Hello 10, Dead 40, Wait 40, Retransmit 5
      Hello due in 00:00:01
    Neighbor Count is 2, Adjacent neighbor count is 2

 显示OSPFv3邻居信息

Switch# show ipv6 ospf neighbor
OSPFv3 Process (300)
Neighbor ID     Pri   State               Dead Time   Interface  Instance ID
1.1.1.1           1   Full/DROther        00:00:39    eth-0-13   0
2.2.2.2           1   Full/Backup         00:00:33    eth-0-13   0

12.2.3 应用场景配置举例

12.3 RIPng配置

12.3.1 概述

12.3.1.1 功能简介

RIPngRouting Information Protocol Next Generation)是对原来的IPv4网络中RIP-2协议的扩展,RIP-2的大多数概念都可以用于RIPngRIPng是一种较为简单的内部网关协议(Interior Gateway ProtocolIGP),主要用于规模较小的网络中。

RIPng是一种基于距离矢量(Distance-Vector)算法的协议,它通过UDP报文进行路由信息的交换。RIPng 使用跳数(Hop Count)来衡量到达目的地址的距离,也称为路由开销(Routing Cost)。在RIPng中,一个路由器到达与它直连的网络的跳数为0,到与它相隔一个路由器的网络的跳数为1,以此类推。为限制收敛时间,RIP规定cost的取值为015之间的整数,cost取值大于或等于16的跳数被定义为无穷大,即目的网络或主机不可达。

为提高性能,防止产生路由环,RIPng支持水平分割(Split Horizon)。RIPng还可引入其它路由协议所得到的路由。

为了在IPv6网络中应用,RIPng对原有的RIP协议进行了修改:

UDP端口号:使用UDP 521 端口发送和接收路由信息。

组播地址:使用FF02::9 作为链路本地范围内的RIPng 路由器组播地址。

下一跳地址:使用128 比特的IPv6 地址。

源地址:使用链路本地地址FE80::/10 作为源地址发送RIPng 路由信息更新报文。

12.3.1.2 原理描述

参考:RFC 2080 – RIPng for IPv6

12.3.2 配置

12.3.2.1 配置启用RIPng

RIPng

在两个交换机上启用RIPng路由协议的配置步骤如下所示。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局使能ipv6

Switch(config)# ipv6 enable

 步骤3 进入接口配置模式,配置接口属性

Switch1的接口配置:

Switch(config)# interface eth-0-12
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2001:db8:12::1/64
Switch(config-if)# ipv6 router rip
Switch(config-if)# exit

Switch(config)# interface eth-0-48
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2001:db8:48::2/64
Switch(config-if)# ipv6 router rip
Switch(config-if)# exit

Switch2的接口配置:

Switch(config)# interface eth-0-12
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address  2001:db8:12::2/64
Switch(config-if)# ipv6 router rip
Switch(config-if)# exit

Switch(config)# interface eth-0-48
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ipv6 address 2001:ab8:49::2/64
Switch(config-if)# ipv6 router rip
Switch(config-if)# exit

 步骤4 退出配置模式

Switch(config)# end

 步骤5 检查配置

Switch1 显示结果:

Switch# show ipv6 rip database
Codes: R - RIP, Rc - RIP connected, Rs - RIP static, Ra - RIP aggregated,
       Rcx - RIP connect suppressed, Rsx - RIP static suppressed,
       K - Kernel, C - Connected, S - Static, O - OSPF, I - IS-IS, B - BGP
   Network                     Next Hop                  If       Met Tag Time
R  2001:ab8:49::/64            fe80::1271:d1ff:fec8:3300 eth-0-12 5   0   00:02:34
Rc 2001:db8:12::/64            ::                        eth-0-12 1   0  
Rc 2001:db8:48::/64            ::                        eth-0-48 1   0  

Switch# show ipv6 rip interface
eth-0-12 is up, line protocol is up
  Routing Protocol: RIPng
    Passive interface: Disabled
    Split horizon: Enabled with Poisoned Reversed
    IPv6 interface address:
      2001:db8:12::1/64
      fe80::7e14:63ff:fe76:8900/10
eth-0-48 is up, line protocol is up
  Routing Protocol: RIPng
    Passive interface: Disabled
    Split horizon: Enabled with Poisoned Reversed
    IPv6 interface address:
      2001:db8:48::2/64
      fe80::7e14:63ff:fe76:8900/10

Switch# show ipv6 protocols rip
Routing Protocol is "ripng"
  Sending updates every 30 seconds with +/-5 seconds, next due in 7 seconds
  Timeout after 180 seconds, garbage collect after 120 seconds
  Outgoing update filter list for all interface is not set
  Incoming update filter list for all interface is not set
  Default redistribute metric is 1
  Redistributing:
  Interface
    eth-0-12        
    eth-0-48        
  Routing for Networks:
  Number of routes (including connected): 3
  Distance: (default is 120)

Switch# show ipv6 route rip
IPv6 Routing Table
Codes: C - connected, S - static, R - RIP, I - IS-IS, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       Dr - DHCPV6 Relay
       [*] - [AD/Metric]
Timers: Uptime
R       2001:ab8:49::/64 [120/5]
       via fe80::1271:d1ff:fec8:3300, eth-0-12, 00:26:05

Switch2 显示结果:

Switch# show ipv6 rip database
Codes: R - RIP, Rc - RIP connected, Rs - RIP static, Ra - RIP aggregated,
       Rcx - RIP connect suppressed, Rsx - RIP static suppressed,
       K - Kernel, C - Connected, S - Static, O - OSPF, I - IS-IS, B - BGP
   Network                     Next Hop                  If       Met Tag Time
Rc 2001:ab8:49::/64            ::                        eth-0-48 1   0  
Rc 2001:db8:12::/64            ::                        eth-0-12 1   0  
R  2001:db8:48::/64            fe80::7e14:63ff:fe76:8900 eth-0-12 2   0   00:02:33

Switch# show ipv6 rip interface
eth-0-12 is up, line protocol is up
  Routing Protocol: RIPng
    Passive interface: Disabled
    Split horizon: Enabled with Poisoned Reversed
    IPv6 interface address:
      2001:db8:12::2/64
      fe80::1271:d1ff:fec8:3300/10
eth-0-48 is up, line protocol is up
  Routing Protocol: RIPng
    Passive interface: Disabled
    Split horizon: Enabled with Poisoned Reversed
    IPv6 interface address:
      2001:ab8:49::2/64
      fe80::1271:d1ff:fec8:3300/10

Switch# show ipv6 protocols rip
Routing Protocol is "ripng"
  Sending updates every 30 seconds with +/-5 seconds, next due in 13 seconds
  Timeout after 180 seconds, garbage collect after 120 seconds
  Outgoing update filter list for all interface is not set
  Incoming update filter list for all interface is not set
  Outgoing routes will have 3 added to metric if on list ripng_acl
  Default redistribute metric is 1
  Redistributing:
  Interface
    eth-0-12        
    eth-0-48        
  Routing for Networks:
  Number of routes (including connected): 3
  Distance: (default is 120)

Switch# show ipv6 route rip
IPv6 Routing Table
Codes: C - connected, S - static, R - RIP, I - IS-IS, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       Dr - DHCPV6 Relay
       [*] - [AD/Metric]
Timers: Uptime
R       2001:db8:48::/64 [120/2]
       via fe80::7e14:63ff:fe76:8900, eth-0-12, 00:23:31

12.3.2.2 配置Metric参数

偏移度量值是附加在RIPng路由上的输入输出度量值,包括发送偏移度量值和接收偏移度量值。发送偏移度量值不会改变路由表中的路由度量值,仅当接口发送RIP路由信息时才会添加到发送路由上;接收偏移度量值会影响接收到的路由度量值,接口接收到一条合法的RIP 路由时,在将其加入路由表前会把度量值附加到该路由上。偏移度量值一般包括如下的参数:

指定增加路由MetricACL参数说明如下:

In:应用在从邻居路由器学习到的RIPng的路由上

Out:应用在发布给邻居路由器RIPng通告上

匹配ACL路由的偏移值Metric

应用偏移列表的接口

如果一个路由匹配全局偏移表(不指定接口)和一个基于接口的偏移列表,此时基于接口的偏移列表优先。在这种情况下,基于接口的偏移列表的度量值会被加到路由上。

RIPng Metric

下面例子讲述如何在Switch1上将2001:db8:48::2/64eth-0-12接口上增加metric 3

 步骤1 检查当前配置

Switch1 当前配置:

Switch# show running-config
!
ipv6 enable
!
Switch# show run
interface eth-0-12
no switchport
ipv6 address auto link-local
ipv6 address 2001:db8:12::1/64
ipv6 router rip
!
interface eth-0-48
no switchport
ipv6 nd ra mtu suppress
ipv6 address auto link-local
ipv6 address 2001:db8:48::2/64
ipv6 router rip
!
router ipv6 rip
!

Switch2 当前配置:

Switch# show running-config
!
ipv6 enable
!
interface eth-0-12
no switchport
ipv6 address auto link-local
ipv6 address 2001:db8:12::2/64
ipv6 router rip
!
interface eth-0-48
no switchport
ipv6 nd ra mtu suppress
ipv6 address auto link-local
ipv6 address 2001:ab8:48::2/64
ipv6 router rip
!
router ipv6 rip
!

查看Switch2 RIPng 运行状态:

Switch# show ipv6 route rip
R       2001:db8:48::/64 [120/2]
       via fe80::7e14:63ff:fe76:8900, eth-0-12, 00:44:47

以下配置在Switch1 进行:

 步骤2 进入配置模式

Switch# configure terminal

 步骤3 创建ACL

Switch(config)#ipv6 access-list ripngoffset
Switch(config-ipv6-acl)# permit any 2001:db8:48::/64 any
Switch(config-ipv6-acl)# exit

 步骤4 RIPng视图下应用ACL

Switch(config)# router ipv6 rip
Switch(config-router)# offset-list ripngoffset out 3 eth-0-12
Switch(config-router)# exit

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

查看Switch2 显示结果:

Switch# show ipv6 route rip
R       2001:db8:48::/64 [120/5]
       via fe80::7e14:63ff:fe76:8900, eth-0-12, 00:00:07

12.3.2.3 配置管理距离

默认情况下,RIPng的管理距离是120。比较路由时,管理距离越低,路由越容易被选中。

RIPng Distance

下面例子讲述了如何修改RIPng的管理距离。

 步骤1 检查当前配置

Switch1 当前配置:

Switch# show running-config
!
ipv6 enable
!
interface eth-0-12
no switchport
ipv6 address auto link-local
ipv6 address 2001:db8:12::1/64
ipv6 router rip
!
interface eth-0-48
no switchport
ipv6 nd ra mtu suppress
ipv6 address auto link-local
ipv6 address 2001:db8:48::2/64
ipv6 router rip
!
router ipv6 rip
!

Switch2 当前配置:

Switch# show running-config
!
ipv6 enable
!
interface eth-0-12
no switchport
ipv6 address auto link-local
ipv6 address 2001:db8:12::2/64
ipv6 router rip
!
interface eth-0-48
no switchport
ipv6 nd ra mtu suppress
ipv6 address auto link-local
ipv6 address 2001:ab8:48::2/64
ipv6 router rip
!
router ipv6 rip
!

查看Switch2 RIPng 运行状态:

Switch# show ipv6 route rip
R       2001:db8:48::/64 [120/2]
       via fe80::7e14:63ff:fe76:8900, eth-0-12, 00:44:47

以下配置在Switch2 进行:

 步骤2 进入配置模式

Switch# configure terminal

 步骤3 设置RIPng管理距离

Switch(config)# router ipv6 rip
Switch(config-router)# distance 100
Switch(config-router)# exit

 步骤4 退出配置模式

Switch(config)# end

 步骤4 检查配置

查看Switch2 显示结果:

Switch# show ipv6 route rip
R       2001:db8:48::/64 [100/5]
       via fe80::7e14:63ff:fe76:8900, eth-0-12, 00:00:09

12.3.2.4 配置重分布

你可以将静态路由,直连路由以及其他路由协议比如OSPFv3的路由重分布到RIP中并被RIPng发送给它的邻居。

默认RIPng的重发布Metric1,最大16

将特定的路由重发布到RIPng上,其度量值可以是默认的,也可以是修改后的。

RIPng redistribute

下面例子讲述如何重分布其他的路由信息到RIPng

 步骤1 检查当前配置

Switch1 当前配置:

Switch# show running-config
!
ipv6 enable
!
interface eth-0-12
no switchport
ipv6 address auto link-local
ipv6 address 2001:db8:12::1/64
ipv6 router rip
!
interface eth-0-48
no switchport
ipv6 nd ra mtu suppress
ipv6 address auto link-local
ipv6 address 2001:db8:48::2/64
ipv6 router rip
!
router ipv6 rip
!

Switch2 当前配置:

Switch# show running-config
!
ipv6 enable
!
interface eth-0-12
no switchport
ipv6 address auto link-local
ipv6 address 2001:db8:12::2/64
ipv6 router rip
!
interface eth-0-13
no switchport
ipv6 address auto link-local
ipv6 address 2001:db8:13::1/64
ipv6 router ospf area 0
!
interface eth-0-48
no switchport
ipv6 nd ra mtu suppress
ipv6 address auto link-local
ipv6 address 2001:ab8:48::2/64
ipv6 router rip
!
router ipv6 rip
!
router ipv6 ospf
router-id 1.1.1.1

Switch3 当前配置:

Switch# show running-config
!
ipv6 enable
!
interface eth-0-1
no switchport
ipv6 address auto link-local
ipv6 address 2001:db8:1::1/64
ipv6 router ospf area 0
!
interface eth-0-13
no switchport
ipv6 address 2001:db8:13::2/64
ipv6 router ospf area 0
!
router ipv6 ospf
router-id 2.2.2.2
!

查看Switch1 RIPng 运行状态:

Switch# show ipv6 route rip
R       2001:ab8:48::/64 [120/5]
       via fe80::1271:d1ff:fec8:3300, eth-0-12, 01:43:37

查看Switch2 RIPng 运行状态:

Switch# show ipv6 route
O       2001:db8:1::/64 [110/2]
       via fe80::5c37:1dff:febe:2d00, eth-0-13, 00:31:17
R       2001:db8:48::/64 [100/5]
       via fe80::7e14:63ff:fe76:8900, eth-0-12, 00:49:57

以下配置在Switch2 进行:

 步骤2 进入配置模式

Switch# configure terminal

 步骤3 指定默认的Metric,配置重发布

Switch(config)# router ipv6 rip
Switch(config-router)# default-metric 2
Switch(config-router)# redistribute ospfv3 metric 5
Switch(config-router)# exit

 步骤4 退出配置模式

Switch(config)# end

 步骤5 检查配置

查看Switch1 显示结果:

Switch# show ipv6 route rip
R       2001:ab8:48::/64 [120/5]
       via fe80::1271:d1ff:fec8:3300, eth-0-12, 01:48:23
R       2001:db8:1::/64 [120/6]
       via fe80::1271:d1ff:fec8:3300, eth-0-12, 00:00:19

12.3.2.5 配置水平分割参数

通常情况下,连接到组播网络并且使用距离矢量路由协议的路由器,需要使用水平分割机制来避免环路。

配置水平分割可以使得从一个接口学到的路由不能通过此接口向外发布,这通常优化了多个路由器之间的通信,尤其在链路中断时。

配置毒性逆转可以使得从一个接口学到的路由还从这个接口向外发布,但这些路由的度量值已设置为16(即路由不可达)

RIPng Split-horizon

 步骤1 检查当前配置

Switch1 当前配置:

Switch# show running-config
!
ipv6 enable
!
interface eth-0-12
no switchport
ipv6 address auto link-local
ipv6 address 2001:db8:12::1/64
ipv6 router rip
!
interface eth-0-48
no switchport
ipv6 nd ra mtu suppress
ipv6 address auto link-local
ipv6 address 2001:db8:48::2/64
ipv6 router rip
!
router ipv6 rip
!

Switch2 当前配置:

Switch# show running-config
!
ipv6 enable
!
interface eth-0-12
no switchport
ipv6 address auto link-local
ipv6 address 2001:db8:12::2/64
ipv6 router rip
!
interface eth-0-48
no switchport
ipv6 nd ra mtu suppress
ipv6 address auto link-local
ipv6 address 2001:ab8:48::2/64
ipv6 router rip
!
router ipv6 rip
!

打开Switch2 debug开关:

Switch# debug ipv6 rip packet send detail
Switch# terminal monitor

以下配置在Switch2 进行:

 步骤2 进入配置模式

Switch# configure terminal

 步骤3 在接口配置模式下设置水平分割

禁用水平分割:

Switch(config)#interface eth-0-12
Switch(config-if)# no ipv6 rip split-horizon
Switch(config-if)# exit

系统log

Oct 24 10:00:06 Switch RIPNG6-7: SEND[eth-0-12]: Send to [ff02::9]:521
Oct 24 10:00:06 Switch RIPNG6-7: SEND[eth-0-12]: RESPONSE version 1 packet size 64
Oct 24 10:00:06 Switch RIPNG6-7: 2001:ab8:49::/64 metric 4 tag 0
Oct 24 10:00:06 Switch RIPNG6-7: 2001:db8:12::/64 metric 1 tag 0
Oct 24 10:00:06 Switch RIPNG6-7: 2001:db8:48::/64 metric 5 tag 0

启用水平分割:

Switch(config)#interface eth-0-12
Switch(config-if)# ipv6 rip split-horizon
Switch(config-if)# exit

系统log

Oct 24 10:05:16 Switch RIPNG6-7: SEND[eth-0-12]: Send to [ff02::9]:521
Oct 24 10:05:16 Switch RIPNG6-7: SEND[eth-0-12]: RESPONSE version 1 packet size 44
Oct 24 10:05:16 Switch RIPNG6-7: 2001:ab8:49::/64 metric 4 tag 0
Oct 24 10:05:16 Switch RIPNG6-7: 2001:db8:12::/64 metric 1 tag 0

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch# show ipv6 rip interface
eth-0-12 is up, line protocol is up
  Routing Protocol: RIPng
    Passive interface: Disabled
    Split horizon: Disabled
    IPv6 interface address:
      2001:ab8:48::2/64
      2001:db8:12::2/64
      fe80::7eff:80ff:fef4:ff00/10

12.3.2.6 配置Timer

RIPng受多个定时器的控制,比如路由更新的频率,路由失效的时间等等。您可以调整这些计时器以调整RIPng的性能,以更好地满足您的互联网工作的需要。如下参数可供调整:

Update定时器,定义了发送更新报文的时间间隔。

Timeout 定时器,定义了路由老化时间。如果在老化时间内没有收到关于某条路由的更新报文,则该条路由在路由表中的度量值将会被设置为16

Garbage-Collect 定时器,定义了一条路由从度量值变为16开始,直到它从路由表里被删除所经过的时间。

使用如下所示的命令配置Timer

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入RIPng配置模式,设置定时器

指定路由表 update timer 10秒,指定路由信息超时180秒,垃圾信息收集时间120秒:

Switch(config)# router ipv6 rip
Switch(config-router)# timers basic 10 180 120
Switch(config-router)# exit

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

使用如下命令,验证上述配置:

Switch# show ipv6 protocols rip
Routing Protocol is "ripng"
  Sending updates every 10 seconds with +/-5 seconds, next due in 5 seconds
  Timeout after 180 seconds, garbage collect after 120 seconds
  Outgoing update filter list for all interface is not set
  Incoming update filter list for all interface is not set
  Outgoing routes will have 3 added to metric if on list ripng_acl
  Default redistribute metric is 2
  Redistributing:
  Interface
    eth-0-12        
    eth-0-48        
  Routing for Networks:
  Number of routes (including connected): 3
  Distance: (default is 100)

12.3.2.7 配置RIPng路由过滤列表

路由器提供路由信息过滤功能,通过指定访问控制列表和地址前缀列表,可以配置入口或出口过滤策略,对接收或发布的路由进行过滤。一个路由过滤列表通常包括如下参数:

一个被用作过滤器的ACLprefix list

In方向:过滤器被应用在学习到的路由上;Out方向:过滤器被应用在发布的路由上。

应用过滤器的接口(可选)。

RIPng Route Distribute Filters

 步骤1 检查当前配置

Switch1 当前配置:

Switch# show running-config
!
ipv6 enable
!
interface eth-0-12
no switchport
ipv6 address auto link-local
ipv6 address 2001:db8:12::1/64
ipv6 router rip
!
interface eth-0-48
no switchport
ipv6 nd ra mtu suppress
ipv6 address auto link-local
ipv6 address 2001:db8:48::2/64
ipv6 router rip
!
router ipv6 rip
!

Switch2 当前配置:

Switch# show running-config
!
ipv6 enable
!
interface eth-0-12
no switchport
ipv6 address auto link-local
ipv6 address 2001:db8:12::2/64
ipv6 router rip
!
interface eth-0-13
no switchport
ipv6 address auto link-local
ipv6 address 2001:db8:13::1/64
ipv6 router rip
!
interface eth-0-48
no switchport
ipv6 nd ra mtu suppress
ipv6 address auto link-local
ipv6 address 2001:ab8:48::2/64
ipv6 router rip
!
router ipv6 rip
!

查看Switch1 RIPng 运行状态:

Switch# show ipv6 route rip
R       2001:ab8:48::/64 [120/5]
       via fe80::1271:d1ff:fec8:3300, eth-0-12, 00:18:29
R       2001:db8:13::/64 [120/2]
       via fe80::1271:d1ff:fec8:3300, eth-0-12, 00:03:37

以下配置在Switch2 进行:

 步骤2 进入配置模式

Switch# configure terminal

 步骤3 创建IPv6 Prefix 列表

Switch(config)# ipv6 prefix-list ripngfilter seq 5 deny 2001:db8:48::/64
Switch(config)# ipv6 prefix-list ripngfilter seq 10 permit any

 步骤4 RIPng配置模式中应用列表

Switch(config)# router ipv6 rip
Switch(config-router)# distribute-list prefix ripngfilter out eth-0-12
Switch(config-router)# exit

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

Switch1 显示结果:

Switch# show ipv6 route rip
R       2001:db8:13::/64 [120/2]
       via fe80::1271:d1ff:fec8:3300, eth-0-12, 00:03:37

12.3.3 应用场景配置举例

12.4 Ipv6 Prefix-list配置

12.4.1 概述

12.4.1.1 功能简介

路由策略(Routing Policy)是为了改变网络流量所经过的途径而修改路由信息的技术,主要通过改变路由属性(包括可达性)来实现。地址前缀列表是路由策略的一种,作用比较灵活。一个地址前缀列表由前缀列表名标识。每个前缀列表可以包含多个表项,每个表项可以独立指定一个网络前缀形式的匹配范围,并用一个索引号来标识,索引号指明了进行匹配检查的顺序。在匹配的过程中,交换机按升序依次检查由索引号标识的各个表项。只要有某一表项满足条件,就意味着本次匹配过程结束,而不再进行下一个表项的匹配。

12.4.1.2 原理描述

12.4.2 配置

12.4.2.1 基础配置

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置IPv6 Prefix 列表

Switch(config)# ipv6 prefix-list test seq 1 deny 2001:db8::1/32 le 48
Switch(config)# ipv6 prefix-list test permit any
Switch(config)# ipv6 prefix-list test description this ipv6 prefix list is fot test
Switch(config)# ipv6 prefix-list test permit 2001:abc::1/32 le 48

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch# show ipv6 prefix-list detail
Prefix-list list number: 1
Prefix-list entry number: 3
Prefix-list with the last deletion/insertion: test
ipv6 prefix-list test:
   Description: this ipv6 prefix list is fot test
   count: 3, range entries: 0, sequences: 1 - 10
     seq 1 deny 2001:db8::1/32 le 48 (hit count: 0, refcount: 0)
     seq 5 permit any (hit count: 0, refcount: 0)
     seq 10 permit 2001:abc::1/32 le 48 (hit count: 0, refcount: 0)

12.4.2.2 配置RIPng简单应用

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置IPv6 Prefix 列表

Switch(config)# ipv6 prefix-list aa seq 11 deny 2001:db8::1/32 le 48
Switch(config)# ipv6 prefix-list aa permit any

 步骤3 应用IPv6 Prefix 列表

Switch(config)# router ipv6 rip
Switch(config-router)# distribute-list prefix aa out
Switch(config-router)# exit

 步骤4 退出配置模式

Switch(config)# end

 步骤5 检查配置

Switch# show ipv6 prefix-list
ipv6 prefix-list aa: 2 entries
     seq 11 deny 1:db8::1/32 le 48
     seq 15 permit any

Switch# show running-config
Building configuration...

ipv6 prefix-list aa seq 11 deny 1:db8::1/32 le 48
ipv6 prefix-list aa seq 15 permit any

router ipv6 rip
distribute-list prefix aa out

12.4.2.3 配置Route-map简单应用

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置IPv6 Prefix 列表

Switch(config)# ipv6 prefix-list ripng_pre_1 seq 11 permit fe80::a8f0:d8ff:fe7d:c501/128
Switch(config)# ipv6 prefix-list ripng_pre_1 permit any

 步骤3 创建Route map并应用IPv6 Prefix 列表

Switch(config)# route-map ripng_rmap permit
Switch(config-route-map)# match ipv6 address prefix-list ripng_pre_1
Switch(config-route-map)# set local-preference 200
Switch(config-route-map)# exit

 步骤4 RIPng中应用route map

Switch(config)# router ipv6 rip
Switch(config-router)# redistribute static route-map ripng_rmap
Switch(config-router)# exit

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

Switch # show route-map
route-map ripng_rmap, permit, sequence 10
  Match clauses:
    ipv6 next-hop prefix-list ripng_pre_1
  Set clauses:
    ipv6 next-hop local fe80::1

Switch # show running-config
Building configuration...

ipv6 prefix-list ripng_pre_1 seq 11 permit fe80::a8f0:d8ff:fe7d:c501/128
ipv6 prefix-list ripng_pre_1 seq 15 permit any
!
!
route-map ripng_rmap permit 10
match ipv6 next-hop prefix-list ripng_pre_1
set ipv6 next-hop local fe80::1
!
router ipv6 rip
redistribute static route-map ripng_rmap

ipv6 route 2001:dbc::/64 fe80::a8f0:d8ff:fe7d:c501 eth-0-9
!

Switch# show ipv6 rip database
S  2001:dbc::/64               fe80::1                   eth-0-9  1   0  

12.4.3 应用场景配置举例

13   IPv6组播配置指导  

13.1 IPv6 组播路由配置

13.1.1 概述

13.1.1.1 功能简介

随着Internet网络的不断发展,网络数据、语音、视频信息等多种交互业务与日俱增。另外,新兴的电子商务、网上会议、网上拍卖、视频点播、远程教学等对带宽和实时数据交互要求较高的服务逐渐兴起,这些服务对信息安全性、可计费性、网络带宽提出了更高的要求。

当网络中需要某信息的用户量不确定时,单播和广播方式的效率会很低,IPv6组播技术的出现改变了这一现状。当网络中的某些用户需要特定信息时,组播信息发送者(即组播源)仅发送一次信息,借助组播路由协议为组播数据包建立树型路由,被传递的信息在距离用户端尽可能近的节点才开始复制和分发。

通过组播路由协议,多个接收者能跨越不同网络接收到组播数据。

MLD(Multicast Listener Discovery,组播侦听发现协议)IPv6协议族中负责IPv6组播成员管理的协议。它用来在IPv6主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。

PIMv6Protocol Independent Multicast,协议无关组播),用于IPv6组播路由器或多层交换机之间。为IPv6组播提供路由的单播路由协议,可以是静态路由、RIPngOSPFv3 等,组播路由和单播路由协议无关,只要单播路由协议能产生路由表项即可。借助RPFReverse Path Forwarding,逆向路径转发)机制,PIMv6实现了在网络中传递组播信息。为了描述上的方便,我们把由支持PIMv6协议的组播路由器所组成的网络称为PIMv6组播域,PIMv6有两种模式:密集模式和稀疏模式,我们目前只支持稀疏模式。

13.1.1.2 原理描述

13.1.2 配置

13.1.2.1 配置组播路由规格

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 设置组播路由的最大规格

Switch(config)# ipv6 multicast route-limit 1000

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch# show ipv6 mroute route-limit
IPv6 Max Multicast Route Limit Number: 1000
IPv6 Multicast Route Limit Warning Threshold: 1000
IPv6 Multicast Hardware Route Limit: 255
IPv6 Current Multicast Route Entry Number: 0

13.1.3 应用场景配置举例

13.2 MLD 配置

13.2.1 概述

13.2.1.1 功能简介

参与IPv6组播的主机、路由器、多层交换机必须具备MLD功能。该协议定义了查询器和主机角色:

网络设备的查询器发送查询消息给网络中特定组来发现组播中的成员。

主机发送MLD报告报文(响应查询报文)来通知查询者主机要加入相应的组播组列表中。

一个组播组的成员是动态的,主机可以随时加入和离开。一个多播组成员在位置或数量上没有限制。

一个主机可同时加入多个组播组。在网络中,组播组的存在可以持续很长一段时间,也可以非常短暂。

MLD报文使用下面的组播地址:

MLD普通组查询以ff02::1为目的地址(在一个子网中的所有系统)

MLD特定组的查询以特定组IPv6地址为目的查询。

MLD组成员发送Report报文给特定的组播IPv6地址。

MLD版本1(MLDv1)离开组播组时,发送离开消息给ff02::2

13.2.1.2 原理描述

MLD模块是基于以下RFC

RFC 2710

RFC 3810

13.2.2 配置

MLD的使能依赖于PIMv6的使能,当接口上使能PIMv6MLD将会在接口上自动启用。

MLD开始工作之前,IPv6转发和IPv6组播路由必须在全局模式启用。

系统支持动态学习MLD组记录,也可以配置静态MLD组。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局使能ipv6ipv6组播

Switch(config)# ipv6 enable
Switch(config)# ipv6 multicast-routing

 步骤3 进入接口配置模式,配置地址和使能pim sparse mode

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2001:1::1/64
Switch(config-if)# ipv6 pim sparse-mode

 步骤4 配置MLD接口参数(可选)

Switch(config-if)# ipv6 mld version 2
Switch(config-if)# ipv6 mld query-interval 120
Switch(config-if)# ipv6 mld query-max-response-time 12
Switch(config-if)# ipv6 mld robustness-variable 3
Switch(config-if)# ipv6 mld last-member-query-count 3
Switch(config-if)# ipv6 mld last-member-query-interval 2000

 步骤5 配置最大MLD组数目(可选)

配置接口最大MLD组数目为1000

Switch(config-if)# ipv6 mld limit 1000
Switch(config-if)# exit

配置全局最大MLD组数目为2000

Switch(config)# ipv6 mld limit 2000

 步骤6 配置静态MLD

Switch(config)# interface eth-0-1
Switch(config-if)# ipv6 mld static-group ff0e::1234
Switch(config-if)# exit

 步骤7 配置MLD代理(可选)

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# ipv6 pim sparse-mode
Switch(config-if)# ipv6 mld proxy-service
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# no switchport
Switch(config-if)# ipv6 pim sparse-mode
Switch(config-if)# ipv6 mld mroute-proxy eth-0-1
Switch(config-if)# exit

 步骤8 退出配置模式

Switch(config)# end

 步骤9 检查配置

显示MLD接口信息:

Switch# show ipv6 mld interface
Interface eth-0-2 (Index 2)
MLD Inactive, Version 1 (default)
MLD mroute-proxy interface is eth-0-1
MLD global limit is 2000
MLD global limit states count is currently 0
MLD interface limit is 4096
MLD interface has 0 group-record states
MLD activity: 0 joins, 0 leaves
MLD query interval is 125 seconds
MLD querier timeout is 255 seconds
MLD max query response time is 10 seconds
Last member query response interval is 1000 milliseconds
Group Membership interval is 260 seconds
Last memeber query count is 2
Robustness Variable is 2
Interface eth-0-1 (Index 1)
MLD Inactive, Configured for Version 2 proxy-service
MLD host version 2
MLD global limit is 2000
MLD global limit states count is currently 0
MLD interface limit is 1000
MLD interface has 0 group-record states
MLD activity: 0 joins, 0 leaves
MLD query interval is 120 seconds
MLD querier timeout is 366 seconds
MLD max query response time is 12 seconds
Last member query response interval is 2000 milliseconds
Group Membership interval is 372 seconds
Last memeber query count is 3
Robustness Variable is 3

显示MLD 组信息:

Switch# show ipv6 mld groups
MLD Connected Group Membership
Group Address                           Interface            Expires
ff0e::1234                              eth-0-1              stopped  

13.2.3 应用场景配置举例

13.3 PIMv6-SM配置

13.3.1 概述

13.3.1.1 功能简介

协议无关组播稀疏模式(PIMv6-SM)是一个组播路由协议,用来将稀疏分散的组播设备联系起来协同工作。它将有助于分散的网络节点节约带宽和通过发送单一流量到多个接收者来降低网络流量。

PIMv6-SM使用的IP组播模型中,接收者需要主动发起请求成为组成员。支持共享和最短路径树,并使用软状态机制,以适应不断变化的网络条件。它依赖于单播路由协议来建立和维护路由器间的组播路由。

13.3.1.2 原理描述

PIMv6-SM模块基于以下IETF标准: RFC 4601

相关术语:

汇聚点(RP)RPRendezvous Point)在SM模式中作为组播的汇聚点,发送者和接收者在RP处进行汇聚。对于所有的组播路由器,必须知道某个组播组对应哪个RP。所有的组播数据需要在RP上注册,然后所有需要组播数据的接收者通过向RP发送JOIN报文来请求数据。源的注册机制就是让RP知道现在网络内有什么源的数据。

组播路由信息库(MRIB):反向路径转发是指路由器在接受数据包从源A通过接口IF1时,只有IF1是到达源A的出接口时才会接受这个包。反向路径转发通过使用单播路由表来决定入端口是否正确。这个数据包将被转发是由于单播路由表表明了接口IF1是到达源A的最短路径。单播路由表为组播数据选择最短路径。

组播树状态信息库(TIB):组播树状态信息库是组播路由器上保存所有组播转发树信息的一个信息库,通过收到PIMv6加入/剪枝消息,Assert消息和MLD消息建立起来。

上游Upstream:朝向树根,树根可能是源或RP

下游Downstream:远离树根,树根可能是源或RP

基于源的树:基于源的树的转发路径是到达源的最短转发路径,如果单播路由度量是跳数,基于源的树的转发路径的跳数最小,如果单播路由度量是延迟,基于源的树的转发路径的延迟最小。对于每个组播源,有一个对应的组播转发树直接将源和接收者连接起来。所有发往指定组的流量沿着对应的转发树进行转发。

共享树:共享树依赖于汇聚点(RP),所有流量从源发往那个汇聚点,然后汇聚点再将流量发送给接收者。对于每一个组播组来说,不管有多少个源,只有一个转发树。共享树是单向的,流量只会从RP流向接收者。如果一个源要发送组播数据,首先组播数据要被发到RP,然后在从RP发送到接收者。

自举路由器(BSR):当一个组播源开始发送组播数据或者一个接收者开始发送加入信息到RP,组播路由器必须知道汇聚点的信息。自举路由器负责在PIMv6-SM网络启动后,收集网络内的RP信息,为每个组选举出RP,然后将RP集(即组-RP映射数据库)发布到整个PIMv6-SM网络。

(数据流从源到接收者)发送Hello消息PIMv6路由器定期的发送Hello消息来发现PIMv6路由器邻居。Hello消息是组播报文,使用ff02::d这个地址。PIMv6路由器对Hello消息进行响应,Hello消息中的Hold时间来决定信息的有效时间。

选举指定路由器:在一个多路访问的网络中如果有多个组播路由器,只能有一个组播路由器被选为指定路由器,负责为本地网络的组播接收者往RP发送加入/剪枝消息。

RP发现PIMv6-SM通过自举路由器来产生自举消息,然后发布RP信息给所有的组播路由器。组播路由器接收和保存自举消息,当DR从直连host收到一个MLD报文或组播数据,DR计算出该组播组的RP,然后发送加入/剪枝到RP或者封装register报文到RP。在小网络环境下可以静态指定RP

加入共享树:要加入一个多播组,主机发送一个MLD消息给上游路由器,组播路由器向RP方向的上游的PIMv6邻居发送加入报文。当组播路由器接收到下游设备的加入请求后,检查本地的组播组是否存在。如果存在,说明加入消息被送到共享树,收到消息的接口被称为outgoing的接口。如果不存在,条目将被创建,收到消息接口的被加入到outgoing中并再次向RP方向的上游的PIMv6邻居发送加入报文。

组播源注册:与组播源S直接相连的路由器接收到该组播报文后,就将该报文封装成Register注册报文,并单播发送给对应的RP。当RP接收到来自组播源S的注册消息后,一方面解封装注册消息并将组播信息沿着RPT树转发到接收者,另一方面朝组播源S逐跳发送(SG)加入消息,从而让RP和组播源S之间的所有路由器上都生成了(SG)表项,这些沿途经过的路由器就形成了SPT树的一个分支。SPT源树以组播源S为根,以RP为目的地组播源S发出的组播信息沿着已经建立好的SPT树到达RP,然后由RP将信息沿着RPT共享树进行转发。

发送注册停止消息:当RP从组播源接收到注册报文后也收到未封装的组播报文,将发送注册停止消息给组播源一侧的DR,当DR收到注册停止消息后将不再发送注册消息给RP了。

剪枝端口:接收者侧的组播路由器向RP方向的上游的PIMv6邻居发送剪枝报文,当上联组播路由器收到剪枝报文后,将收到剪枝报文的端口从转发端口中删除,当本路由器上没有其他接收者后会继续向RP方向的上游的PIMv6邻居发送剪枝报文。

转发组播数据PIMv6-SM路由器将组播数据发往那些已经明确表示加入组播组的接收者。组播路由器将进行RPF检查,只有检查通过的组播数据包才将通过出端口发送出去。

13.3.2 配置

13.3.2.1 配置通用PIMv6 Sparse-mode (静态RP)

PIMv6-SM是一个软状态协议。要求所需的接口上启用PIMv6-SM协议,并通过静态或动态的方法正确配置的RP信息。所有组播组的状态依据MLD报告/离开和PIMv6加入/剪枝消息动态的维护。

PIMv6 Sparse-mode

下面的例子中使用的网络拓扑如上图。

例子中Switch1RP,所有的路由器都配置静态RP

每个路由器配置静态RP地址2001:1::1

所有接口上必须启用PIMv6-SM功能。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局使能ipv6ipv6组播

Switch(config)# ipv6 enable
Switch(config)# ipv6 multicast-routing

 步骤3 进入接口配置模式,配置接口属性

Switch1的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2001:1::1/64
Switch(config-if)# ipv6 pim sparse-mode
Switch(config-if)# exit

Switch(config)# interface eth-0-9
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2001:9::1/64
Switch(config-if)# ipv6 pim sparse-mode
Switch(config-if)# exit

Switch2的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2001:2::1/64
Switch(config-if)# ipv6 pim sparse-mode
Switch(config-if)# exit

Switch(config)# interface eth-0-9
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2001:9::2/64
Switch(config-if)# ipv6 pim sparse-mode
Switch(config-if)# exit

 步骤4 配置静态单播路由

switch1配置:

Switch(config)# ipv6 route 2001:2::/64 2001:9::2

switch2配置:

Switch(config)# ipv6 route 2001:1::/64 2001:9::1

 步骤5 配置静态RP地址

Switch(config)# ipv6 pim rp-address 2001:1::1

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

所有的路由器配置使用相同的RP地址2001:1::1,使用以下命令来验证RP的配置,接口的详细信息和组播路由表。

13.3.2.1.1.1 详细说明

Switch1上,显示PIMv6稀疏模式RP映射的命令表明2001:1::1是对所有组播组ff00::/8静态配置的RP。所有其他路由器都会有类似的输出:

Switch# show ipv6 pim sparse-mode rp mapping
PIM Group-to-RP Mappings
Group(s): ff00::/8, Static
    RP: 2001:1::1
         Uptime: 00:00:04
Embedded RP Groups:

13.3.2.1.1.2 接口的详细信息

显示Switch1接口的组播信息。

Switch# show ipv6 pim sparse-mode interface
Interface    VIFindex Ver/   Nbr    DR  
                      Mode   Count  Prior
eth-0-1      2        v2/S   0      1   
    Address       : fe80::fc94:efff:fe96:2600               
    Global Address: 2001:1::1                               
    DR            : this system
eth-0-9      0        v2/S   0      1   
    Address       : fe80::fc94:efff:fe96:2600               
    Global Address: 2001:9::1                               
    DR            : this system

13.3.2.1.1.3 IPv6组播路由表

显示PIMv6-SM的组播路由表。

Switch1 显示结果:

Switch# show ipv6 pim sparse-mode mroute detail
IPv6 Multicast Routing Table
(*,*,RP) Entries: 0
(*,G) Entries: 1
(S,G) Entries: 0
(S,G,rpt) Entries: 0
FCR Entries: 0
*, ff0e::1234:5678
Type: (*,G)
Uptime: 00:01:37
  RP: 2001:1::1, RPF nbr: None, RPF idx: None
  Upstream:
   State: JOINED, SPT Switch: Enabled, JT: off
   Macro state: Join Desired,
  Downstream:
   eth-0-1:
     State: NO INFO, ET: off, PPT: off
     Assert State: NO INFO, AT: off
      Winner: ::, Metric: 4294967295, Pref: 4294967295, RPT bit: on
     Macro state: Could Assert, Assert Track
  Local Olist:
   eth-0-1

Switch2 显示结果:

Switch# show ipv6 pim sparse-mode mroute detail
IPv6 Multicast Routing Table
(*,*,RP) Entries: 0
(*,G) Entries: 1
(S,G) Entries: 0
(S,G,rpt) Entries: 0
FCR Entries: 0
*, ff0e::1234:5678
Type: (*,G)
Uptime: 00:00:06
  RP: 2001:1::1, RPF nbr: None, RPF idx: None
  Upstream:
   State: JOINED, SPT Switch: Enabled, JT: off
   Macro state: Join Desired,
  Downstream:
   eth-0-1:
     State: NO INFO, ET: off, PPT: off
     Assert State: NO INFO, AT: off
      Winner: ::, Metric: 4294967295, Pref: 4294967295, RPT bit: on
     Macro state: Could Assert, Assert Track
  Local Olist:
   eth-0-1

13.3.2.2 配置通用PIMv6 Sparse-mode (动态RP)

在小型并且简单的网络中,组播信息量少,全网络仅依靠一个RP进行信息转发即可,此时可以在SM域中各路由器上静态指定RP位置。但是更多的情况下,PIMv6-SM网络规模都很大,通过RP转发的组播信息量巨大,为了缓解RP的负担同时优化共享树的拓扑结构,不同组播组应该对应不同的RP,此时就需要自举机制来动态选举RP

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局使能ipv6ipv6组播

Switch(config)# ipv6 enable
Switch(config)# ipv6 multicast-routing

 步骤3 进入接口配置模式,配置接口属性

Switch1的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2001:1::1/64
Switch(config-if)# ipv6 pim sparse-mode
Switch(config-if)# exit

Switch(config)# interface eth-0-9
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2001:9::1/64
Switch(config-if)# ipv6 pim sparse-mode
Switch(config-if)# exit

Switch2的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2001:2::1/64
Switch(config-if)# ipv6 pim sparse-mode
Switch(config-if)# exit

Switch(config)# interface eth-0-9
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2001:9::2/64
Switch(config-if)# ipv6 pim sparse-mode
Switch(config-if)# exit

 步骤4 配置静态单播路由

switch1配置:

Switch(config)# ipv6 route 2001:2::/64 2001:9::2

switch2配置:

Switch(config)# ipv6 route 2001:1::/64 2001:9::1

 步骤5 配置候选RP接口

switch1配置:

Switch(config)# ipv6 pim rp-candidate eth-0-1

switch2配置:

Switch(config)# ipv6 pim rp-candidate eth-0-9

 步骤6 配置候选BSR接口

switch2配置:

Switch(config)# ipv6 pim bsr-candidate eth-0-9

选择最高优先级的路由器为RP。如果有两个或多个路由器的优先级相同,使用BSR机制的哈希函数来选择RP,确保在PIMv6域内所有路由器的同一个组都选择相同的RP。可以使用ipv6 pim rp-candidate IFNAME PRIORITY命令来改变候选RP的默认的优先级。

 步骤7 退出配置模式

Switch(config)# end

 步骤8 检查配置

13.3.2.2.1.1 PIMv6-SM的组-RP的Mapping关系

使用show ipv6 pim sparse-mode rp mapping命令,来显示组-RP的映射的详细信息,输出内容是候选RP信息。在这个例子中,组的范围ff00::/8,有两个候选RP。候选RP 2001:1::1默认的优先级192,候选RP 2001:9::2的优先级被配置为2。由于候选RP 2001:1::1由于具有更高的优先权,它被选中作为组播组ff00::/8RP

Switch2 显示结果:

Switch# show ipv6 pim sparse-mode rp mapping
PIM Group-to-RP Mappings
This system is the Bootstrap Router (v2)
Group(s): ff00::/8
  RP: 2001:9::2
    Info source: 2001:9::2, via bootstrap, priority 2
         Uptime: 00:00:32, expires: 00:02:02
  RP: 2001:1::1
    Info source: 2001:1::1, via bootstrap, priority 192
         Uptime: 00:00:31, expires: 00:02:03
Embedded RP Groups:

13.3.2.2.1.2 RP 详细显示

要显示特定组的RP路由器的信息,使用下面的命令。此输出显示,2001:9::2已经被选择作为ff02::1234的组播组的RP

Switch2 显示结果:

Switch# show ipv6 pim sparse-mode rp-hash ff02::1234

Info source: 2001:9::2, via bootstrap

RP信息需要通知域中的所有PIMv6路由器,通过各种状态机保持所有路由器的组成员的加入/剪枝的结果。要显示接口的详细信息和组播路由表的信息,请参见以上配置RP的静态部分。

13.3.2.3 配置自举路由器

BSR

每个组播组需要有一个为它服务的RP,这个RP作为基于组播组的分发树的根。为了组播数据能从发送者到达接收者,在一个组播域内的组播路由器需要使用同样的组播组-RP的映射。为了选择指定组播组的RP,组播路由器需要维护一系列的组播组-RP的映射关系,这被称为RP集。自举路由器的机制就是用来让在同一个组播域内的组播路由器能够学习到这个RP集。

BSRPIMv6-SM网络里的管理核心,主要负责:

负责收集网络中Candidate-RPC-RP)发来的Advertisement宣告信息。

为每个组播组选择部分C-RP信息以组成RP-Set集(即组播组和RP的映射数据库)。

发布到整个PIMv6-SM网络,从而使网络内的所有路由器(包括DR)都会知道RP的位置。

在一个PIMv6域中,需要配置一个或多个候选BSR,候选BSR之间通过自动选举,产生自举路由器BSR,负责收集并发布RP信息。下面简单描述一下候选BSR之间的自动选举:

在将路由器配置为候选BSR时,必须同时指定一个启动了PIMv6-SM的接口。

每个候选BSR开始都认为自己是本PIMv6-SMBSR,并使用这个接口的IPv6地址作为BSR地址,发送自举报文(Bootstrap message)。

当候选BSR收到其它路由器发来的自举报文时,它将新收到的自举报文的BSR地址与自己的BSR地址进行比较,比较标准包括优先级和IPv6地址,优先级相同的情况下,较大的IPv6地址被认为是更好的。如果前者更好,则将这个新的BSR地址替换自己的BSR地址,并且不再认为自己是BSR。否则,保留自己的BSR地址,继续将自己视为BSR

备选RP将自己的RP信息报告给自举路由器,然后自举路由器将汇聚的RP集通过自举报文发布到整个组播域的所有路由器。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局使能ipv6ipv6组播

Switch(config)# ipv6 enable
Switch(config)# ipv6 multicast-routing

 步骤3 指定BSR候选接口

switch1配置:

Switch(config)# ipv6 pim bsr-candidate eth-0-1

switch2配置:

Switch(config)# ipv6 pim bsr-candidate eth-0-1 10 25

 步骤4 指定RP候选接口

switch2配置:

Switch(config)# ipv6 pim rp-candidate eth-0-1 priority 0

 步骤5 进入接口配置模式,配置接口属性

Switch2的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# ipv6 pim dr-priority 10
Switch(config-if)# ipv6 pim unicast-bsm
Switch(config-if)# exit

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

检查候选BSR路由器

Switch# show ipv6 pim sparse-mode bsr-router
PIM6v2 Bootstrap information
This system is the Bootstrap Router (BSR)
  BSR address: 2001:9::1 (?)
  Uptime:      00:01:27, BSR Priority: 64, Hash mask length: 126
  Next bootstrap message in 00:00:16
  Role: Candidate BSR
  State: Elected BSR

检查候选BSR路由器

Switch# show ipv6 pim sparse-mode bsr-router
PIM6v2 Bootstrap information
  BSR address: 2001:9::1 (?)
  Uptime:      00:01:34, BSR Priority: 64, Hash mask length: 126
  Expires:     00:01:51
  Role: Candidate BSR
  State: Candidate BSR
  Candidate RP: 2001:9::2(eth-0-9)
    Advertisement interval 60 seconds
    Next C-RP advertisement in 00:00:35

E-BSR上检查RP

Switch# show ipv6 pim sparse-mode rp mapping
PIM Group-to-RP Mappings
This system is the Bootstrap Router (v2)
Group(s): ff00::/8
  RP: 2001:9::2
    Info source: 2001:9::2, via bootstrap, priority 0
         Uptime: 00:45:37, expires: 00:02:29
Embedded RP Groups:

C-BSR上检查RP

Switch# show ipv6 pim sparse-mode rp mapping
PIM Group-to-RP Mappings
Group(s): ff00::/8
  RP: 2001:9::2
    Info source: 2001:9::1, via bootstrap, priority 0
         Uptime: 00:03:14, expires: 00:01:51
Embedded RP Groups:

13.3.2.4 配置PIMv6-SSM

PIMv6-SSM可以跟PIMv6-SM在组播路由器上一起工作。PIMv6-SSM默认是disable的。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局使能PIMv6-ssm

Switch(config)# ipv6 pim ssm default
Switch(config)# ipv6 pim ssm range ipv6acl

 步骤3 退出配置模式

Switch(config)# end

13.3.3 应用场景配置举例

13.4 PIMv6-DM配置

13.4.1 概述

13.4.1.1 功能简介

协议无关组播密集模式(PIMv6-DM)是一个组播路由协议,用来将密集分布的组播设备联系起来协同工作。它将有助于分散的网络节点节约带宽和通过发送单一流量到多个接收者来降低网络流量。

PIMv6-DM设想当一个组播源开始发送组播流的时候,所有的下游系统都期望接受这个组播流。刚开始组播流被泛洪到整个网络。当泛洪的时候,PIMv6-DM使用RPF来防止组播流的环路。如果某些网络区域没有该组播组的接收成员,PIMv6-DM会把转发分支通过剪枝来删除掉。

剪枝状态有一个生命周期,当生命周期超时后,组播数据将再一次开始转发,每个(S,G)对应的组播组都有自己的剪枝状态。当某个组播组有新的接收者出现在已经被剪枝的区域里,路由器会通过朝组播源发送"graft"消息来把剪枝状态转换成转发路径。

13.4.1.2 原理描述

PIMv6-DM模块基于以下IETF标准: RFC 3973

13.4.2 配置

13.4.2.1 配置通用 PIMv6 dense-mode

PIMv6-DM是一个软状态协议,要求在所需的接口上启用PIMv6-DM协议,所有组播组的状态通过MLD报告/离开消息和PIMv6消息来动态的维护。

PIMv6 dense-mode

本节提供了一个PIMv6-DM配置的相关的场景。下面的例子中使用的网络拓扑如上图; 组播流从Switch1eth-0-1口进来,接收者来与Switch2eth-0-1相连。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局使能ipv6ipv6组播

Switch(config)# ipv6 enable
Switch(config)# ipv6 multicast-routing

 步骤3 进入接口配置模式,配置接口属性

Switch1的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2001:1::1/64
Switch(config-if)# ipv6 pim dense-mode
Switch(config-if)# exit

Switch(config)# interface eth-0-9
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2001:2::1/64
Switch(config-if)# ipv6 pim dense-mode
Switch(config-if)# exit

Switch2的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2001:3::1/64
Switch(config-if)# ipv6 pim dense-mode
Switch(config-if)# exit

Switch(config)# interface eth-0-9
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2001:2::2/64
Switch(config-if)# ipv6 pim dense-mode
Switch(config-if)# exit

 步骤4 配置静态单播路由

switch1配置:

Switch(config)# ipv6 route 2001:3::/64 2001:2::2

switch2配置:

Switch(config)# ipv6 route 2001:1::/64 2001:2::1

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

13.4.2.1.1.1 接口的详细信息

show ipv6 pim dense-mode interface来显示Switch1上接口的详细信息.

Switch# show ipv6 pim dense-mode interface
Neighbor Address                         Interface   VIFIndex Ver/   Nbr
                                                              Mode   Count
fe80::326f:c9ff:fef2:8200                eth-0-1     0        v2/D   0    
fe80::326f:c9ff:fef2:8200                eth-0-9     2        v2/D   1

13.4.2.1.1.2 邻居的详细信息

show ipv6 pim dense-mode neighbor 来显示Switch1上邻居的详细信息

Switch# show ipv6 pim sparse-mode neighbor
Neighbor Address                         Interface   Uptime/Expires    Ver
fe80::ce47:6eff:feb7:1400                eth-0-9     00:51:51/00:01:24 v2

13.4.2.1.1.3 组播路由表的信息

show ipv6 pim dense-mode mroute来显示PIM-DM组播路由表的信息.

Switch1 显示结果:

Switch# show ipv6 pim dense-mode mroute
PIM-DM Multicast Routing Table
(2001:1::2, ff0e::1)
  Source directly connected on eth-0-1
  State-Refresh Originator State: Originator
  Upstream IF: eth-0-1
    Upstream State: Forwarding
    Assert State: NoInfo
  Downstream IF List:
    eth-0-9, in 'olist':
      Downstream State: NoInfo
      Assert State: NoInfo

Switch2 显示结果:

Switch# show ipv6 pim dense-mode mroute
PIM-DM Multicast Routing Table
(2001:1::2, ff0e::1)
  RPF Neighbor: none
  Upstream IF: eth-0-9
    Upstream State: AckPending
    Assert State: Loser
  Downstream IF List:
    eth-0-1, in 'olist':
      Downstream State: NoInfo
      Assert State: NoInfo

13.4.3 应用场景配置举例

13.5 MLD Snooping 配置

13.5.1 概述

13.5.1.1 功能简介

MLD SnoopingMulticast Listener DiscoveryMLD侦听)是运行在二层以太网交换机上的IPv6组播约束机制,用于管理和控制IPv6组播组。

二层交换机通过MLD Snooping来控制IPv6组播流量的泛洪。当二层以太网交换收到主机和路由器之间传递的MLD报文时,MLD Snooping将对MLD报文所带的信息进行分析,将端口和MAC组播地址建立起映射关系,并根据这样的映射关系转发IPv6组播数据。IPv6组播路由器定期发送通用组查询来维护IPv6组播组成员关系。所有接收者将发送MLD报告报文来响应这个查询,交换机通过这个监听MLD报告报文来建立转发表项。

二层的组播组可以通过MLD报文动态建立,也可以静态配置。静态配置的组播组将覆盖动态学习的组播组。

限制和指导:

VRRPRIPngOSPFv3等协议使用了IPv6组播,因此在使能了MLD Snooping的网络中,要避免使用这些IPv6组播地址,以免产生冲突而导致异常:

VRRP使用了ff02::12,因此组播MAC 3333.0000.0012映射出的组播IPv6MLD SnoopingVRRP的网络中避免使用。

RIPv6使用了ff02::9,因此组播MAC 3333.0000.0009映射出的组播IPv6MLD SnoopingRIPng的网络中避免使用。

OSPF使用了ff02::5,因此组播MAC 3333.0000.0005映射出的组播IPv6MLD SnoopingOSPFv3的网络中避免使用。

13.5.1.2 原理描述

13.5.2 配置

13.5.2.1 配置启用MLD Snooping

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局使能mld snooping

Switch(config)# ipv6 mld snooping

 步骤3 vlan使能mld snooping

Switch(config)#ipv6 mld snooping vlan 1

 步骤4 退出配置模式

Switch(config)# end

 步骤5 检查配置

Switch # show ipv6 mld snooping vlan 1
Global Mld Snooping Configuration
-------------------------------------------------
Mld Snooping                             :Enabled
Mld Snooping Fast-Leave                  :Disabled
Mld Snooping Version                     :1
Mld Snooping Max-Member-Number           :4096
Mld Snooping Unknown Multicast Behavior  :Flood
Mld Snooping Report-Suppression          :Enabled
Vlan 1
-----------
Mld Snooping                             :Enabled
Mld Snooping Fast-Leave                  :Disabled
Mld Snooping Report-Suppression          :Enabled
Mld Snooping Version                     :1
Mld Snooping Max-Member-Number           :4096
Mld Snooping Unknown Multicast Behavior  :Flood
Mld Snooping Group Access-list           :N/A
Mld Snooping Mrouter Port                :
Mld Snooping Mrouter Port Aging Interval(sec) :255

13.5.2.2 配置MLD Snooping快速离开

正常情况下,MLD Snooping在接收到MLD离开报文后不会直接将端口从组播组中删除,而是发送MLD特定组查询报文,如果等待一段时间后没有得到响应,才将该端口从组播组中删除。启动快速删除功能后,MLD Snooping收到MLD离开报文时,直接将端口从组播组中删除。当端口下只有一个用户时,快速删除可以节省带宽。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局使能快速离开

Switch(config)# ipv6 mld snooping fast-leave

 步骤3 vlan使能快速离开

Switch(config)# ipv6 mld snooping vlan 1 fast-leave

 步骤4 退出配置模式

Switch(config)# end

 步骤5 检查配置

Switch# show ipv6 mld snooping vlan 1
Global Mld Snooping Configuration
-------------------------------------------------
Mld Snooping                             :Enabled
Mld Snooping Fast-Leave                  :Enabled
Mld Snooping Version                     :1
Mld Snooping Max-Member-Number           :4096
Mld Snooping Unknown Multicast Behavior  :Flood
Mld Snooping Report-Suppression          :Enabled
Vlan 1
-----------
Mld Snooping                             :Enabled
Mld Snooping Fast-Leave                  :Enabled
Mld Snooping Report-Suppression          :Enabled
Mld Snooping Version                     :1
Mld Snooping Max-Member-Number           :4096
Mld Snooping Unknown Multicast Behavior  :Flood
Mld Snooping Group Access-list           :N/A
Mld Snooping Mrouter Port                :
Mld Snooping Mrouter Port Aging Interval(sec) :255

13.5.2.3 配置MLD Snooping查询参数(可选)

三层交换机在所连接的网段上周期性的发送MLD通用查询报文,通过解析返回的MLD主机报告报文,获知该网段内哪些组播组有成员。组播路由器周期性地发送查询报文,当得到某一组成员的MLD主机报告报文的时候,刷新该网段相应的组成员关系信息。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置mld查询参数

设置查询时间间隔和最大响应时间:

Switch(config)# ipv6 mld snooping query-interval 100
Switch(config)# ipv6 mld snooping query-max-response-time 5

仅存最后一个成员时的查询间隔:

Switch(config)# ipv6 mld snooping last-member-query-interval 2000

设置vlan1的查询参数:

Switch(config)# ipv6 mld snooping vlan 1 querier address fe80::1
Switch(config)# ipv6 mld snooping vlan 1 querier
Switch(config)# ipv6 mld snooping vlan 1 query-interval 200
Switch(config)# ipv6 mld snooping vlan 1 query-max-response-time 5
Switch(config)# ipv6 mld snooping vlan 1 querier-timeout 100
Switch(config)# ipv6 mld snooping vlan 1 last-member-query-interval 2000
Switch(config)# ipv6 mld snooping vlan 1 discard-unknown

在全局模式下设置丢弃未知组播报文:

Switch(config)# ipv6 mld snooping discard-unknown

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch # show ipv6 mld snooping querier
Global Mld Snooping Querier Configuration
-------------------------------------------------
Version                           :1
Last-Member-Query-Interval (msec) :2000
Max-Query-Response-Time (sec)     :5
Query-Interval (sec)              :100
Global Source-Address             :::
TCN Query Count                   :2
TCN Query Interval (sec)          :10
Vlan 1:   MLD snooping querier status
--------------------------------------------
Elected querier is : fe80::1
--------------------------------------------
Admin state                       :Enabled
Admin version                     :1
Operational state                 :Querier
Querier operational address       :fe80::1
Querier configure address         :fe80::1
Last-Member-Query-Interval (msec) :2000
Max-Query-Response-Time (sec)     :5
Query-Interval (sec)              :200
Querier-Timeout (sec)             :100

13.5.2.4 配置MLD Snooping组播路由端口

组播路由端口是交换机上连接到组播路由器的端口,可以动态学习或者静态配置。当某个VLAN的端口上收到MLD通用组查询报文或者是PIMv6 Hello报文,该端口成为这个VLAN的组播路由端口。所有从组播路由端口上收到的的MLD查询报文要在所属VLAN内广播。所有VLAN上收到MLD报告/离开报文也将从组播路由端口转发(报文抑制关闭的情况下),另外所有从该VLAN上收到的组播流量将从组播路由端口转发。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局启用MLD Snooping的报告抑制功能

Switch(config)# ipv6 mld snooping report-suppression

 步骤3 配置静态组播路由端口

Switch(config)# ipv6 mld snooping vlan 1 mrouter interface eth-0-1

 步骤4 配置vlanmld snooping属性

启用报告抑制功能和配置端口老化时间

Switch(config)# ipv6 mld snooping vlan 1 report-suppression
Switch(config)# ipv6 mld snooping vlan 1 mrouter-aging-interval 200

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

Switch# show ipv6 mld snooping vlan 1
Global Mld Snooping Configuration
-------------------------------------------------
Mld Snooping                             :Enabled
Mld Snooping Fast-Leave                  :Enabled
Mld Snooping Version                     :1
Mld Snooping Max-Member-Number           :4096
Mld Snooping Unknown Multicast Behavior  :Discard
Mld Snooping Report-Suppression          :Enabled
Vlan 1
-----------
Mld Snooping                             :Enabled
Mld Snooping Fast-Leave                  :Enabled
Mld Snooping Report-Suppression          :Enabled
Mld Snooping Version                     :1
Mld Snooping Max-Member-Number           :4096
Mld Snooping Unknown Multicast Behavior  :Discard
Mld Snooping Group Access-list           :N/A
Mld Snooping Mrouter Port                :eth-0-1(static)
Mld Snooping Mrouter Port Aging Interval(sec) :200

13.5.2.5 配置MLD Snooping查询TCN

可以通过配置TCN的时间间隔以及查询次数来适应STP收敛拓扑后的组播组学习以及更新。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置MLD Snooping查询TCN参数

设置TCN的查询次数和查询时间间隔

Switch(config)# ipv6 mld snooping querier tcn query-count 5
Switch(config)# ipv6 mld snooping querier tcn query-interval 20

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch # show ipv6 mld snooping querier
Global Mld Snooping Querier Configuration
-------------------------------------------------
Version                           :1
Last-Member-Query-Interval (msec) :2000
Max-Query-Response-Time (sec)     :5
Query-Interval (sec)              :100
Global Source-Address             :::
TCN Query Count                   :5
TCN Query Interval (sec)          :20
Vlan 1:   MLD snooping querier status
--------------------------------------------
Elected querier is : fe80::1
--------------------------------------------
Admin state                       :Enabled
Admin version                     :1
Operational state                 :Querier
Querier operational address       :fe80::1
Querier configure address         :fe80::1
Last-Member-Query-Interval (msec) :2000
Max-Query-Response-Time (sec)     :5
Query-Interval (sec)              :200
Querier-Timeout (sec)             :100

13.5.2.6 配置MLD Snooping报告抑制

交换机使用MLD报告抑制功能来防止同一个MLD报文重复发送给组播路由器。当MLD路由器抑制使能时(默认情况下使能抑制),交换机将第一个MLD报告报文发送给组播路由器,其余同样的MLD报告报文将不再发送给组播路由器。这样就阻止了重复MLD报告报文发送给组播路由器了。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局启用报告抑制

Switch(config)# ipv6 mld snooping report-suppression

 步骤3 vlan启用报告抑制

Switch(config)# ipv6 mld snooping vlan 1 report-suppression

 步骤4 退出配置模式

Switch(config)# end

 步骤5 检查配置

Switch # show ipv6 mld snooping
Global Mld Snooping Configuration
-------------------------------------------------
Mld Snooping                             :Enabled
Mld Snooping Fast-Leave                  :Disabled
Mld Snooping Version                     :2
Mld Snooping Max-Member-Number           :4096
Mld Snooping Unknown Multicast Behavior  :Flood
Mld Snooping Report-Suppression          :Enabled
Vlan 1
-----------
Mld Snooping                             :Enabled
Mld Snooping Fast-Leave                  :Disabled
Mld Snooping Report-Suppression          :Enabled
Mld Snooping Version                     :2
Mld Snooping Max-Member-Number           :4096
Mld Snooping Unknown Multicast Behavior  :Flood
Mld Snooping Group Access-list           :N/A
Mld Snooping Mrouter Port                :
Mld Snooping Mrouter Port Aging Interval(sec) :255

13.5.2.7 配置静态组播组

交换机在二层端口上收到MLD报文时会建立MLD Snooping的组记录。目前系统中也支持静态配置MLD Snooping的组记录,在静态配置时需要指定组地址,二层端口,以及二层端口所属的VLAN

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置静态组播组

Switch(config)# ipv6 mld snooping vlan 1 static-group ff0e::1234 interface eth-0-2

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch# show ipv6 mld snooping groups
VLAN  Interface  Group Address                            Uptime     Expire-time
1     eth-0-2    ff0e::1234                               00:00:02   stopped

13.5.3 应用场景配置举例

13.6 MVR6 配置

13.6.1 概述

13.6.1.1 功能简介

在传统的IPv6组播点播方式下,汇聚组播路由器下连一些接入交换机,接入交换机上连接了分布在不同VLAN中的用户。当这些不同VLAN的用户点播相同Group的节目时,汇聚的组播路由器需要为每个VLAN内的用户复制一份数据,每个VLAN的组播流量都要占用接入交换机的带宽。这样既增加了汇聚路由器的负担,也浪费接入设备的带宽。

MVR6(IPv6组播VLAN注册)功能能够很好的解决这个问题。在靠近用户侧的接入交换机上启用组播VLAN,汇聚路由器只需把组播数据在源VLAN内发送给接入交换机,而不必在每个用户VLAN内都复制一份,接入交换机收到组播数据后再根据用户请求进行复制,给每个VLAN内的用户发送一份组播数据。从而节省了网络带宽,也减轻了三层设备的负担。

MVR6依赖于MLD Snooping进行工作,而且只有MVR6全局配置的Group才会生效。如果在MVR6的下游口上接收的MLD报文中组播组不在MVR6全局Group中,该报文将被忽略。通过在MVR6的下游口上接收的MLD报告/离开报文来维护接收者信息,MVR6上游口收到IPv6组播数据后根据下游口的IPv6组播组信息来决定将IPv6组播数据从哪些VLAN的端口转发出去。

13.6.1.2 原理描述

13.6.2 配置

MVR6

 步骤1 进入配置模式

Switch配置:

Switch# configure terminal

Router配置:

Router# configure terminal

 步骤2 进入vlan配置模式,创建vlan

Switch配置:

Switch(config)# vlan database
Switch(config-vlan)# vlan 111,10,30
Switch(config-vlan)# quit

 步骤3 进入接口配置模式,配置接口属性

Router的接口配置:

Router(config)# interface eth-0-1
Router(config-if)# no switchport
Router(config-if)# no shutdown
Router(config-if)# ipv6 address 2001:1::1/64
Router(config-if)# ipv6 pim sparse-mode
Router(config-if)# end

Switch的接口配置:

Switch(config)# interface vlan 111
Switch(config-if)# exit

Switch(config)# interface vlan 10
Switch(config-if)# exit

Switch(config)# interface vlan 30
Switch(config-if)# exit

Switch(config)# interface eth-0-1
Switch(config-if)# switchport access vlan111
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# switchport access vlan10
Switch(config-if)# exit

Switch(config)# interface eth-0-3
Switch(config-if)# switchport access vlan30
Switch(config-if)# exit

 步骤4 启用MVR6

switch启用MVR6,这样从RouterSwitch只会拷贝一份组播流,在Switch上再将这个组播流从eth-0-2eth-0-3发送出去。

Switch(config)# no ipv6 multicast-routing
Switch(config)# mvr6
Switch(config)# mvr6 vlan 111
Switch(config)# mvr6 group ff0e::1234 64
Switch(config)# mvr6 source-address fe80::1111

Switch(config)# interface eth-0-1
Switch(config-if)# mvr6 type source
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# mvr6 type receiver vlan 10
Switch(config-if)# exit

Switch(config)# interface eth-0-3
Switch(config-if)# mvr6 type receiver vlan 30
Switch(config-if)# exit

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

Router 的显示结果:

Router# show ipv6 mld groups
MLD Connected Group Membership
Group Address                           Interface            Expires
ff0e::1234                              eth-0-2              00:03:01
ff0e::1235                              eth-0-2              00:03:01
ff0e::1236                              eth-0-2              00:03:01
ff0e::1237                              eth-0-2              00:03:01
ff0e::1238                              eth-0-2              00:03:01
………… 
ff0e::1273                              eth-0-2              00:03:01

Switch 的显示结果:

Switch# show mvr6
MVR6 Running: TRUE
MVR6 Multicast VLAN: 111
MVR6 Source-address: fe80::111
MVR6 Max Multicast Groups: 1024
MVR6 Hw Rt Limit: 224
MVR6 Current Multicast Groups: 64


VLAN  Interface  Group Address                            Uptime     Expire-time
10     eth-0-2   ff0e::1234                               00:03:23   00:02:03  
10     eth-0-2   ff0e::1235                               00:03:23   00:02:03  
10     eth-0-2   ff0e::1236                               00:03:23   00:02:03  
10     eth-0-2   ff0e::1237                               00:03:23   00:02:03  
10     eth-0-2   ff0e::1238                               00:03:23   00:02:03  
10     eth-0-2   ff0e::1239                               00:03:23   00:02:03  
……
10     eth-0-2   ff0e::1273                               00:03:23   00:02:03

13.6.3 应用场景配置举例

14   VPN配置指导  

14.1 VRF配置

14.1.1 概述

14.1.1.1 功能简介

VRFVPN路由转发表的简称。可以理解为VPN-instance(VPN实例),是PE为直接相连的站点建立并维护的一个专门实体,每个站点在PE上都有自己的VPN-instance,每个VPN-instance包含到一个或多个与该PE直接相连的CE的路由和转发表。

VRF可以把一台路由器在逻辑上划分为多台虚拟的路由器,每台虚拟的路由器就像单独的一台路由器一样工作,有自己独立的路由表和相应的参与数据转发的接口,并且彼此业务隔离。这从根本上解决了多种业务并存于一台物理设备且又需要隔离的问题,能够节省用户在设备及通信资源方面的投资。

14.1.1.2 原理描述

14.1.2 配置

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建VRF实例

Switch(config)# ip vrf vpn1
Switch(config-vrf)# rd 100:1
Switch(config-vrf)# router-id 1.1.1.1
Switch(config-vrf)# route-target both 100:1
Switch(config-vrf)# import map route-map

rd route-target 形式上可以是一个AS号和一个数字的组合(xxx:y),也可以是一个IP地址和一个数字的组合(A.B.C.D:y)

 步骤3 进入接口配置模式,配置接口属性

Switch(config-vrf)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# no switch
Switch(config-if)# ip vrf forwarding vpn1
Switch(config-if)# ip add 1.1.1.1/24
Switch(config-if)# end

 步骤4 退出配置模式

Switch(config)# end

 步骤5 检查配置

使用命令show ip vrf来验证配置会得到类似如下的屏幕回显信息:

Switch# show ip vrf
VRF vpn1, FIB ID 1
Router ID: 1.1.1.1 (config)
Interfaces:
  eth-0-1

Switch# show ip vrf interfaces vpn1
Interface             IP-Address      VRF                     Protocol
eth-0-1               1.1.1.1         vpn1                    up
Switch# show ip vrf bgp brief
Name                    Default RD           Interfaces
vpn1                    100:1                eth-0-1

Switch# show ip vrf bgp detail
VRF vpn1; default RD 100:1
Interfaces:
  eth-0-1
VRF Table ID = 1
Export VPN route-target communities
  RT:100:1
Import VPN route-target communities
  RT:100:1
import-map: route-map
No export route-map

14.1.3 应用场景配置举例

14.2 IPv4 over IPv4 GRE隧道配置

14.2.1 概述

14.2.1.1 功能简介

隧道技术是一种封装技术,它利用一种网络协议来传输另一种网络协议,即一种网络协议将其他网络协议的数据报文封装在自己的报文中,然后在网络中传输。封装后的数据报文在网络中传输的路径,称为隧道。隧道是一条虚拟的点对点连接,隧道的两端需要对数据报文进行封装及解封装。隧道技术就是指包括数据封装、传输和解封装在内的全过程。

14.2.1.2 原理描述

IPv4 gre over IPv4

当两个相隔离的IPv4 网络需要相互通信,此时就需要在两个网络之间创建一个隧道机制。在IPv4 网络上用于连接两个相隔离IPv4 孤岛的gre 隧道,称为 IPv4 gre 隧道, 即IPv4 报文通过gre 协议被封装在IPv4 报文中,实现IPv4 报文的透明传输。Gre隧道协议在封装IPv4报文时会添加gre头,gre头中包含keysequencechecksum等可选信息。为了实现gre 隧道,需要在IPv4 网络与IPv4 网络交界的边界交换机上启动IPv4 双协议栈。

IPv4 gre over IPv4 隧道对报文的处理过程如下:

IPv4 网络中的设备发送IPv4 报文,该报文到达隧道的源端设备Switch1

Switch1根据路由表判定该报文要通过隧道进行转发后,在IPv4 报文前先封装上gre 头然后再封装外层IPv4 的报文头,通过隧道的实际物理接口将报文转发出去。

封装报文通过隧道到达隧道目的端设备 Switch2Switch2 判断该封装报文的目的地是本设备后,将对报文进行解封装。

Switch2根据解封装后的IPv4报文的目的地址转发该IPv4 报文。如果目的地就是本设备,则将IPv4 报文转给上层协议处理。在解封装过程中,会校验gre 头中的key选项,只有当key相匹配时才会对该IP4报文作处理,否则丢弃。

这种技术的优点是,当IPv4/IPv4网络的边缘设备实现隧道功能,便可以将报文从一端透传到另外一端并可以进行报文校验,可以大大利用现有的IPv4网络投资。

GRE隧道的源和目的地址是手工指定的,它提供了一个点到点的连接。GRE隧道可以建立在两个边界路由器之间为被IPv4网络分离的IPv4网络提供稳定的连接,或建立在终端系统与边界路由器之间为终端系统访问IPv4网络提供连接。 GRE隧道要求在设备上手工配置隧道的源地址和目的地址,此外gre key配置是可选配置。

14.2.2 配置

IPv4 gre Tunnel

如上图所示,两个IPv4 网络分别通过Switch1Switch2IPv4 网络连接,要求在Switch1Switch2之间建立IPv4 gre 隧道,使两个IPv4 网络可以互通。

必须使IPv4报文3层路由可达,否则会造成tunnel报文转发失败。

tunnel接口上必须配置IPv4地址,否则配置在该接口上的路由无效。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性

Switch1 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 192.168.10.1/24
Switch(config-if)# tunnel enable
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 192.168.11.1/24
Switch(config-if)# exit

Switch2 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 192.168.20.1/24
Switch(config-if)# tunnel enable
Switch(config-if)# exit
   
Switch(config)# interface eth-0-2
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 192.168.11.2/24
Switch(config-if)# exit

 步骤3 配置tunnel 接口

Switch1 Tunnel接口配置:

Switch(config)# interface tunnel1
Switch(config-if)# tunnel mode gre
Switch(config-if)# tunnel source eth-0-1
Switch(config-if)# tunnel destination 192.168.20.1
Switch(config-if)# tunnel gre key 100
Switch(config-if)# ip address 192.192.168.1/24
Switch(config-if)# keepalive 5 3
Switch(config-if)# exit

Switch2 Tunnel接口配置:

Switch(config)# interface tunnel1
Switch(config-if)# tunnel mode gre
Switch(config-if)# tunnel source eth-0-1
Switch(config-if)# tunnel destination 192.168.10.1
Switch(config-if)# tunnel gre key 100
Switch(config-if)# ip address 192.192.168.2/24
Switch(config-if)# keepalive 5 3
Switch(config-if)# exit

 步骤4 配置静态路由和静态arp

switch1配置:

Switch(config)# ip route 192.168.20.0/24 192.168.10.2
Switch(config)# arp 192.168.10.2 0.0.2222

Switch(config)# ip route 3.3.3.3/24 tunnel1

switch2配置:

Switch(config)# ip route 192.168.10.0/24 192.168.20.2
Switch(config)# arp 192.168.20.2 0.0.1111

Switch(config)# ip route 4.4.4.4/24 tunnel1

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

Switch1 显示结果:

Switch# show interface tunnel1
Interface tunnel1
  Interface current state: UP
  Hardware is Tunnel
  Index 8193 , Metric 1 , Encapsulation TUNNEL
  VRF binding: not bound
  Internet primary address:
    192.192.168.1/24 pointopoint 192.192.168.255
  Tunnel protocol/transport GRE/IP, Status Valid
  Tunnel source 192.168.10.1(eth-0-1), destination 192.168.20.1
  Tunnel DSCP inherit,  Tunnel TTL 255
  Tunnel GRE key enable: 100
  Tunnel GRE keepalive enable, Send period: 5, Retry times: 3
  0 packets input, 0 bytes
  0 packets output, 0 bytes

Switch2 显示结果:

Switch# show interface tunnel1
Interface tunnel1
  Interface current state: UP
  Hardware is Tunnel
  Index 8193 , Metric 1 , Encapsulation TUNNEL
  VRF binding: not bound
  Internet primary address:
    192.192.168.2/24 pointopoint 192.192.168.255
  Tunnel protocol/transport GRE/IP, Status Valid
  Tunnel source 192.168.20.1(eth-0-1), destination 192.168.10.1
  Tunnel DSCP inherit,  Tunnel TTL 255
  Tunnel GRE key enable: 100
  Tunnel GRE keepalive enable, Send period: 5, Retry times: 3
  0 packets input, 0 bytes
  0 packets output, 0 bytes

14.2.3 应用场景配置举例

15   可靠性配置指导  

15.1 BHM 配置

15.1.1 概述

15.1.1.1 功能简介

BHM全称Beat heart Monitor,是用于监控其他协议进程的一个模块,当某个受监控进程长时间(30秒)无响应时,BHM模块会采取措施恢复系统,或者提示用户恢复系统。这些措施包括在终端打印警告信息、关闭所有端口,或者重启系统。系统使用何种措施是可配置的,默认是重启系统。

BHM监控的协议模块有:RIPRIPNGOSPFOSPF6BGPLDPRSVPPIMPIM6802.1XLACPMSTPDHCP-RELAYDHCP-RELAY6RMONOAMONMSSHSNMPPTPSSM,以及一些系统进程:NSM,IMICHSMHSRVD

15.1.1.2 原理描述

15.1.2 配置

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局使能监控功能,使能BHM模块功能

Switch(config)# sysmon enable
Switch(config)# heart-beat-monitor enable

 步骤3 配置监控措施为重启设备

Switch(config)# heart-beat-monitor reactivate reload system

reload/shutdown/warning三个选项。

 步骤4 退出配置模式

Switch(config)# end

 步骤5 检查配置

Switch# show heart-beat-monitor
heart-beat-monitor enable.
heart-beat-monitor reactivation: restart system.

15.1.3 应用场景配置举例

15.2 EFM 配置

15.2.1 概述

15.2.1.1 功能简介

链路级以太网 OAM 技术:多应用于网络的PE 设备—CE 设备用户设备之间(也叫最后一公里)的以太网物理链路,用于监测用户网络与运营商网络之间的链路状态,典型协议为EFM OAM 协议。

15.2.1.2 原理描述

参考 IEEE 802.3ah (2004)

15.2.2 配置

15.2.2.1 配置启用EFM

EFM

以下配置Switch1Switch2相同。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,启用EFM功能

Switch(config)# interface eth-0-9
Switch(config-if)# ethernet oam enable
Switch(config-if)# ethernet oam mode active
Switch(config-if)# ethernet oam link-monitor frame threshold high 10 window 50
Switch(config-if)# exit

模式可以选择activepassivepassive如下配置:

Switch(config-if)# ethernet oam mode passive

Switch1Switch2至少有一台要选择active。两台都配置active也可以正常工作。

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

当两台设备的 EFM 发现状态机都进入“send any”状态则表示协商已经成功。EFM有如下这些状态:

ACTIVE_SEND_LOCAL:如果设备的状态为ACTIVE_SEND_LOCAL表示该设备在等待对端设备的答复。只有主动模式的设备才会进入该状态。

PASSIVE_WAIT:如果设备的状态为 PASSIVE_WAIT表示该设备在等待对端设备发起请求。只有被动模式的设备才会进入该状态。

SEND_LOCAL_REMOTE:这是个中间状态,设备收到对端的Information OAMPDU 后加入自己的Information OAMPDU再发给对端时,设备进入该状态。

SEND_LOCAL_REMOTE_OK:这是个中间状态,设备发现本端的配置和对端的配置一致可以协商则进入该状态。

SEND_ANY:这是两端协商成功的最终状态。

FAULT:如果端口的OAM 重置,关闭或者超时则进入该状态。

Switch1 检查结果

Switch# show ethernet oam discovery interface eth-0-9
eth-0-9
Local client:
-------------
  Administrative configurations:
     Mode:                              active
     Unidirection:                      not supported
     Link monitor:                      supported(on)
     Remote Loopback:                   not supported
     MIB retrieval:                     not supported
     MTU Size    :                      1518
  Operational status:
     Port status:                       send any
     Loopback status:                   no loopback
     PDU revision:                      1
Remote client:
--------------
  MAC address: e6c2.47f6.7809
  PDU revision: 1
  Vendor(oui): e6 c2 47
  Administrative configurations:
     Mode:                              active
     Unidirection:                      not supported
     Link monitor:                      supported
     Remote Loopback:                   not supported
     MIB retrieval:                     not supported
     MTU Size    :                      1518

Switch2 检查结果

Switch# show ethernet oam discovery interface eth-0-9
eth-0-9
Local client:
-------------
  Administrative configurations:
     Mode:                              active
     Unidirection:                      not supported
     Link monitor:                      supported(on)
     Remote Loopback:                   not supported
     MIB retrieval:                     not supported
     MTU Size    :                      1518
  Operational status:
     Port status:                       operational
     Loopback status:                   no loopback
     PDU revision:                      1
Remote client:
--------------
  MAC address: 409c.ba1a.5a09
  PDU revision: 1
  Vendor(oui): 40 9c ba
  Administrative configurations:
     Mode:                              active
     Unidirection:                      not supported
     Link monitor:                      supported
     Remote Loopback:                   not supported
     MIB retrieval:                     not supported
     MTU Size    :                      1518

15.2.2.2 配置远端环回

EFM

远端环回功能是指主动模式下的OAM实体向对端(远端)发送除OAMPDU以外的所有其它报文时,对端收到该报文后直接将其环回给本端。它可用于定位链路故障和检测链路质量:网络管理员通过观察非OAMPDU 报文的返回情况,可以对链路性能(包括丢包率、时延、抖动等)作出评判。

以下配置如无特殊说明,则Switch1Switch2相同。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,使能远端环回功能

Switch(config)# interface eth-0-9
Switch(config-if)# ethernet oam enable
Switch(config-if)# ethernet oam remote loopback supported
Switch(config-if)# exit

 步骤3 退出配置模式

Switch(config)# end

 步骤4 在端口上启用环回功能

这项配置在Switch1进行:

Switch# ethernet oam remote-loopback start interface eth-0-9

 步骤5 检查配置

swith1上查看ethernet oam状态机:

Switch# show ethernet oam state-machine interface eth-0-9
State Machine Details:
--------------------------------
Local OAM mode:                         Active
Local OAM enable:                        Enable
Local link status:                           OK
Local pdu status:                           ANY
Local Satisfied:                            True
Local Stable:                               True
Remote Satisfied valid:                     True
Remote Stable:                             True
Local Parser State:                         Discard
Local Multiplexer State:                     Forward
Remote Parser State:                        Loopback
Remote Multiplexer State:                   Discard

15.2.2.3 配置链路事件

EFM

用户可以为链路事件配置最高、最低阈值。如果超过最高阈值设备可以通过用户的配置自动将端口设为error disable状态。

以下配置和检查在Switch1进行:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置错误报文的最高和最低阀值

Switch(config)#interface eth-0-9
Switch(config-if)# ethernet oam link-monitor frame threshold high 5000 low 200 window 500
Switch(config-if)# ethernet oam link-monitor frame-seconds threshold high 600 low 200 window 9000

 上述"ethernet oam link-monitor frame threshold"命令,指定了一段时间内(以配置的"window 500"为准,单位是100 millisecond,这里是50秒,如果不指定window,则取默认值1秒),允许出现错误报文的个数,高阈值是5000个,低阈值是200个。

上述"ethernet oam link-monitor frame-seconds"命令,指定了一段时间内(以配置的"window 9000"为准,单位是100 millisecond,这里是900秒,如果不指定window,则取默认值100秒)有错误报文出现的时间,高阈值为600秒,低阈值为200秒。

 步骤3 设置错包超过阈值以后的动作

超过步骤2中锁配置的高阈值后,将端口设为error-disable状态。

Switch(config-if)# ethernet oam link-monitor high-threshold action error-disable-interface
Switch(config-if)# exit

 步骤4 退出配置模式

Switch(config)# end

 步骤5 检查配置

Switch#show ethernet oam status interface eth-0-9
eth-0-9
General:
-------
   Mode:                                  active
   PDU max rate:                          1 packets per second
   PDU min rate:                          1 packet per 1 second
   Link timeout:                          10 seconds
   High threshold action:                 disable interface
   Link fault action:                     no action
   Dying gasp action:                     no action
   Critical event action:                 no action
Link Monitoring:
----------------
     Status:                              supported(on)
     Frame Error:
        Window:                           500 x 100 milliseconds
        Low threshold:                    200 error frame(s)
        High threshold:                   5000 error frame(s)
        Last Window Frame Errors:         0 Frame(s)
        Total Frame Errors:               0 Frame(s)
        Total Frame Errors Events:        0 Events(s)
        Relative Timestamp of the Event:  0 x 100 milliseconds
     Frame Seconds Error:
        Window:                           9000 x 100 milliseconds
        Low threshold:                    200 error second(s)
        High threshold:                   600 error second(s)
        Last Window Frame Second Errors:  0 error second(s)
        Total Frame Second Errors:        0 error second(s)
        Total Frame Second Errors Events: 0 Events(s)
        Relative Timestamp of the Event:  0 x 100 milliseconds

15.2.2.4 配置发现对端触发紧急事件应对

EFM

当对端发生紧急链路事件时,用户可以通过配置将端口设为error disable状态。

以下配置和检查在Switch1进行:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置当对端发生紧急链路事件时,将端口状态设为error disable状态

Switch(config)#interface eth-0-9
Switch(config-if)# ethernet oam remote-failure critical-event dying-gasp link-fault action error-disable-interface
Switch(config-if)# exit

 步骤3 退出配置模式

Switch(config)# end

15.2.3 应用场景配置举例

15.3 CFM 配置

15.3.1 概述

15.3.1.1 功能简介

CFM全称Connectivity Fault Management

CFM能够根据802.1ag协议去检测,验证,定位和通知以太网中的连接故障。CFM也能够发现和验证以太网中的路径。CFM是操作维护管理模块OAM的一部份。CFM对用户数据报文是透明的并且能最大限度地发现连接错误。

15.3.1.2 原理描述

参考 IEEE 802.1ag/D8.1

CFM使用标准的以太网报文,仅以太网协议类型不同。支持的CFM消息如下:

 连续性检查(CC)消息

连续性检查消息周期性发送,使维护域端点MEP和维护域中间节点MIP可以发现其它MEP。它用于检测任何一对MEP间的连续性丢失(LOC)

 以太网环回(LB)消息

MEP发送一个LB消息来验证另一个MEPMIP是否可达。LB消息和网间控制消息协议ICMP ping消息类似。

 以太网链路追踪(LT)消息

MEP发送LT消息以追踪到一个目的MEP/MIP中间每一跳的MIPLT消息类似UDP链路追踪消息。

 以太网帧延时测量(DM)消息

ETH-DM 可用于按需的OAM,测量帧时延和帧时延变化。帧时延和帧时延变化的测量是通过向对等MEP周期地发送带有ETH-DM信息的帧,并在诊断间隔内从对等MEP接收带有ETH-DM信息的帧来完成的。每一个MEP都可以进行帧时延和帧时延变化的测量。

当一个MEP能产生带有ETH-DM信息的帧时,它向同一ME内它对等的MEP周期地发送带有ETH-DM信息的帧。当一个MEP产生带有ETH-DM 信息的帧时,它也预期在同一MEP中从对等的MEP接收带有ETH-DM信息的帧。

 以太网锁定信号(LCK)消息

以太网锁定信号功能(ETH-LCK)用于通告服务器层(子层)MEP的管理性锁定以及随后的数据业务流中断,该业务流是送往期待接收这业务流的MEP的。它使得接收带有ETH-LCK信息的帧的MEP能区分是故障情况,还是服务器层(子层)MEP的管理性锁定动作。

 以太网客户端信号失败功能(CSF)

以太网客户端信号失败功能是由服务器MEP将客户端检查到的失败或错误通知到对应服务器MEP,再由对端服务器MEP通知对端的客户端MEP。通常应用于客户端MEP无法直接通知到对端MEP的情况,此时CCAIS是均无法使用的。CSF消息是由服务器MEP发给对端服务器的MEP的消息。CSF仅应用于点对点的以太网传输中。

 以太网帧丢失测量(LM)消息

ETH-LM用于收集计数器的数值,应用于入口和出口处的服务帧,此计数器在一对MEP之间保持着发送和接收的数据帧的计数。

ETH-LM的功能是通过向其对等MEP发送带有ETH-LM信息的帧,并类似地从对等MEP接收带有ETH-LM信息的帧来实现的。

15.3.2 配置

CFM802.1xmirror destination配在同一端口上时功能冲突,因此CFM不应该与这些功能配在同一端口上。

15.3.2.1 配置CC/LB/LT/AIS/DM

CFM

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式,并创建vlan

Switch(config)# vlan database
Switch(config vlan)# vlan 30
Switch(config vlan)# exit

 步骤3 全局使能cfm,设置cfm模式为y1731

Switch(config)# ethernet cfm enable
Switch(config)# ethernet cfm mode y1731

 步骤4 创建维护域,在维护域中将服务和vlan绑定

创建一个叫cust的域,等级是5

Switch(config)# ethernet cfm domain cust level 5
Switch(config-ether-cfm)# service cst vlan 30
Switch(config-ether-cfm)# exit

创建一个叫provid的域,等级是3

Switch23配置:

Switch(config)# ethernet cfm domain provid level 3
Switch(config-ether-cfm)# service cst vlan 30
Switch(config-ether-cfm)# exit

服务域的等级(level)取值范围是0-7,数字越大优先级越高。在vlan相同的情况下,优先级高的域,其报文可以穿越那些优先级低的域。

 步骤5 进入端口配置模式,配置端口属性

Switch1 的端口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 30
Switch(config-if)# ethernet cfm mep down mpid 66 domain cust vlan 30 interval 1
Switch(config-if)# ethernet cfm mep crosscheck mpid 99 domain cust vlan 30 mac d036.4567.8009
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch2 的端口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 30
Switch(config-if)# ethernet cfm mip level 5 vlan 30
Switch(config-if)# ethernet cfm mep up mpid 666 domain provid vlan 30 interval 1
Switch(config-if)# ethernet cfm mep crosscheck mpid 999 domain provid vlan 30 mac 6a08.051e.bd09
Switch(config-if)# ethernet cfm ais status enable all domain provid vlan 30 level 5 multicast
Switch(config-if)# ethernet cfm server-ais status enable level 5 interval 1
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-17
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 30
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch3 的端口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 30
Switch(config-if)# ethernet cfm mip level 5 vlan 30
Switch(config-if)# ethernet cfm mep up mpid 999 domain provid vlan 30 interval 1
Switch(config-if)# ethernet cfm mep crosscheck mpid 666 domain provid vlan 30 mac 0e1d.a7d7.fb09
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-17
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 30
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch4 的端口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 30
Switch(config-if)# ethernet cfm mep down mpid 99 domain cust vlan 30 interval 1
Switch(config-if)# ethernet cfm mep crosscheck mpid 66 domain cust vlan 30 mac fa02.cdff.6a09
Switch(config-if)# no shutdown
Switch(config-if)# exit

 步骤6 启用维护域的连续性检查功能

Switch14配置:

Switch1(config)# ethernet cfm cc enable domain cust vlan 30

Switch23配置:

Switch2(config)# ethernet cfm cc enable domain provid vlan 30

 步骤7 告警指示信号处理(可选)

配置当收到告警指示信号ais报文且存在loc错误时抑制其它loc error

Switch1配置:

 Switch(config)# ethernet cfm ais suppress alarm enable domain cust vlan 30

 步骤8 退出配置模式

Switch(config)# end

 步骤9 检查配置

15.3.2.1.1.1 检查MEP and MIP

以下命令可用于查看Switch1Switch2MEPMIP的相关信息。

Switch1

Switch# show ethernet cfm maintenance-points
######Local MEP:
MPID Direction DOMAIN LEVEL TYPE VLAN PORT     CC-Status Mac-address    RDI  Interval
--------------------------------------------------------------------------------------
66   Down MEP   cust    5      MEP  30   eth-0-9  enabled   fa02.cdff.6a09 True 3.33ms
######Local MIP:
Level   VID  TYPE    PORT           MAC
------------------------------------------------------
######Remote MEP:
MPID  LEVEL VLAN ACTIVE Remote Mac     RDI   FLAGS    STATE
---------------------------------------------------------
99    5     30   Yes    d036.4567.8009 True  Learnt    UP

Switch2

Switch# show ethernet cfm maintenance-points
######Local MEP:
MPID Direction DOMAIN LEVEL TYPE VLAN PORT     CC-Status Mac-address    RDI 
----------------------------------------------------------------------------
666  Up MEP     provid 3      MEP  30    eth-0-9  enabled   0e1d.a7d7.fb09 False
######Local MIP:
Level   VID  TYPE    PORT           MAC
------------------------------------------------------
5       30    MIP     eth-0-9        0e1d.a7d7.fb09
######Remote MEP:
MPID  LEVEL VLAN ACTIVE Remote Mac      RDI   FLAGS     STATE
---------------------------------------------------------
999   3      30    Yes    6a08.051e.bd09  True  Learnt    UP

15.3.2.1.1.2 以太网回环检查

以下命令用于在Switch1上根据远端MEP的地址回环远端MEP

Switch# ethernet cfm loopback mac d036.4567.8009 unicast mepid 66 domain cust vlan 30
Sending 1 Ethernet CFM loopback messages, timeout is 5 seconds:
(! Pass . Fail)
!
Loopback completed.
-----------------------------------
Success rate is 100 percent(1/1)

以下命令用于在Switch1上根据组播地址回环远端MEP

Switch# ethernet cfm loopback multicast mepid 66 domain cust vlan 30
Sending 1 Ethernet CFM loopback messages, timeout is 5 seconds:
(! Pass . Fail)
Host MEP: 66
Number of RMEPs that replied to mcast frame = 1
LBR received from the following
  9667.bb68.f308
success rate is  100 (1/1)

以下命令用于在Switch1上根据远端MEP的标识回环远端MEP

Switch# ethernet cfm loopback unicast rmepid 99 mepid 66 domain cust vlan 30
Sending 1 Ethernet CFM loopback messages, timeout is 5 seconds:
(! Pass . Fail)
!
Loopback completed.
-----------------------------------
Success rate is 100 percent(1/1)

以下命令用于在Switch1上根据远端MIP的地址回环远端MIP

Switch# ethernet cfm loopback mac 0e1d.a7d7.fb09 unicast mepid 66 domain cust vlan 30
Sending 1 Ethernet CFM loopback messages, timeout is 5 seconds:
(! Pass . Fail)
!
Loopback completed.
-----------------------------------
Success rate is 100 percent(1/1)

15.3.2.1.1.3 检查远端故障指示RDI

以下命令显示Switch1上的RDI的信息。

Switch# show ethernet cfm maintenance-points local mep domain cust
MPID Direction DOMAIN LEVEL TYPE VLAN PORT    CC-Status Mac-address    RDI Interval
-------------------------------------------------------------------------------
66   Down MEP  cust   5  MEP  30   eth-0-9  enabled   fa02.cdff.6a09 True 3.33ms

15.3.2.1.1.4 错误检查

在清除本地MEP错误前,Switch1错误信息显示如下所示。

Switch# show ethernet cfm errors domain cust
Level Vlan MPID RemoteMac      Reason                            ServiceId
5      30   66  d036.4567.8009 errorCCMdefect: rmep not found       cst
5      30   66  d036.4567.8009 errorCCMdefect: rmep not found clear cst
Time
2011/05/27 3:19:18
2011/05/27 3:19:32

以下命令用于清除Switch1的错误信息。

Switch# clear ethernet cfm errors domain cust

当清除本地MEP的错误信息后,Switch1错误信息如下所示。

Switch# clear ethernet cfm errors domain cust
Level Vlan MPID RemoteMac      Reason                            ServiceId

15.3.2.1.1.5 检查AIS

以下命令用于关闭Switch1上的连续性检查功能。

Switch(config)# no ethernet cfm cc enable domain cust vlan 30

以下命令用于关闭Switch3上的连续性检查功能。

Switch(config)# no ethernet cfm cc enable domain cust vlan 30

以下命令用于检查Switch2上的ais的状态。

Switch# show ethernet cfm ais mep 666 domain cust vlan 30
AIS-Status: Enabled
AIS Period: 1
Level to transmit AIS: 7
AIS Condition: No
----------------------------------------------------
   Configured defect condition     detected(yes/no)
----------------------------------------------------
   unexpected-period                no
   unexpected-MEG level             no
   unexpected-MEP                   no
   Mismerge                             no
   LOC                              yes

以下命令用于检查Switch1ais状态。

Switch# show ethernet cfm ais mep 66 domain cust vlan 30
AIS-Status: Disabled
AIS Condition: Yes

15.3.2.1.1.6 检查LinkTrace

以下命令用于在Switch1上根据远端MEP的地址追踪远端MEP

Switch# ethernet cfm linktrace mac d036.4567.8009 mepid 66 domain cust vlan 30
Sending Ethernet CFM linktrace messages,TTL is 64.Per-Hop Timeout is 5 seconds:
Please wait a moment
-------------------------------
Received Hops: 1
-------------------------------
TTL                         : 63
Fowarded                    : True
Terminal MEP                : False
Relay Action                : Rly FDB
Ingress Action              : IngOk
Ingress MAC address         : 0e1d.a7d7.fb09
Ingress Port ID Type        : ifName
Ingress Port ID             : eth-0-9
-------------------------------
Received Hops: 2
-------------------------------
TTL                         : 62
Fowarded                    : True
Terminal MEP                : False
Relay Action                : Rly FDB
Egress Action               : EgrOk
Egress MAC address          : 6a08.051e.bd09
Egress Port ID Type         : ifName
Egress Port ID              : eth-0-9
-------------------------------
Received Hops: 3
-------------------------------
TTL                         : 61
Fowarded                    : False
Terminal MEP                : True
Relay Action                : Rly Hit
Ingress Action              : IngOk
Ingress MAC address         : d036.4567.8009
Ingress Port ID Type        : ifName
Ingress Port ID             : eth-0-9

以下命令用于在Switch1上根据远端MEP的标识追踪远端MEP

Switch# ethernet cfm linktrace rmepid 99 mepid 66 domain cust vlan 30
Sending Ethernet CFM linktrace messages,TTL is 64.Per-Hop Timeout is 5 seconds:
Please wait a moment
-------------------------------
Received Hops: 1
-------------------------------
TTL                         : 63
Fowarded                    : True
Terminal MEP                : False
Relay Action                : Rly FDB
Ingress Action              : IngOk
Ingress MAC address         : 0e1d.a7d7.fb09
Ingress Port ID Type        : ifName
Ingress Port ID         : eth-0-9
-------------------------------
Received Hops: 2
-------------------------------
TTL                         : 62
Fowarded                    : True
Terminal MEP                : False
Relay Action                : Rly FDB
Egress Action               : EgrOk
Egress MAC address          : 6a08.051e.bd09
Egress Port ID Type         : ifName
Egress Port ID              : eth-0-9
-------------------------------
Received Hops: 3
-------------------------------
TTL                         : 61
Fowarded                    : False
Terminal MEP                : True
Relay Action                : Rly Hit
Ingress Action              : IngOk
Ingress MAC address         : d036.4567.8009
Ingress Port ID Type        : ifName
Ingress Port ID             : eth-0-9

以下命令用于在Switch1上根据远端MIP的地址追踪远端MIP

Switch# ethernet cfm linktrace 6a08.051e.bd09 mepid 66 domain cust vlan 30
Sending Ethernet CFM linktrace messages,TTL is 64.Per-Hop Timeout is 5 seconds:
Please wait a moment
-------------------------------
Received Hops: 1
-------------------------------
TTL                         : 63
Fowarded                    : True
Terminal MEP                : False
Relay Action                : Rly FDB
Ingress Action              : IngOk
Ingress MAC address         : 0e1d.a7d7.fb09
Ingress Port ID Type        : ifName
Ingress Port ID             : eth-0-9
-------------------------------
Received Hops: 2
-------------------------------
TTL                         : 62
Fowarded                    : False
Terminal MEP                : False
Relay Action                : Rly Hit
Egress Action               : EgrOk
Egress MAC address          : 6a08.051e.bd09
Egress Port ID Type         : ifName
Egress Port ID              : eth-0-9

15.3.2.1.1.7 帧时延测量检查

以下命令用于在Switch1上测量双向的延时和延时变化:

Switch# ethernet cfm dmm  rmepid 99 mepid 66 count 5 domain cust vlan 30
    Delay measurement statistics:
     DMM Packets transmitted        : 5
     Valid DMR packets received     : 5
     Index      Two-way delay      Two-way delay variation
         1          4288 usec                       0 usec
         2          4312 usec                      24 usec
         3          4296 usec                      16 usec
         4          4320 usec                      24 usec
         5          4264 usec                      56 usec
     Average delay                  : 4296 usec
     Average delay variation        : 24 usec
     Best case delay                : 4264 usec
     Worst case delay               : 4320 usec

在启用单向时延测量前,时钟应该同步。以下命令显示了在Switch1上启用了单向时延测量:

Switch1#ethernet cfm 1dm rmepid 99 mepid 66 count 5 domain cust vlan 30

以下命令在Switch4上显示了单向时延测量的结果:

Switch4# show ethernet cfm delaymeasurement cache
    Remote MEP       : 66
     Remote MEP vlan  : 30
     Remote MEP level : 5
     DMM Packets transmitted            : 0
     Valid DMR packets received         : 0
     Valid 1DM packets received         : 5
     Index   One-way delay   One-way delay variation   Received Time
         1      16832 usec                    0 usec   2011/07/19 17:27:46
         2      16176 usec                  656 usec   2011/07/19 17:27:47
         3      15448 usec                  728 usec   2011/07/19 17:27:48
         4      14800 usec                  648 usec   2011/07/19 17:27:49
         5      15406 usec                  606 usec   2011/07/19 17:27:50
     Average delay                  : 15732 usec
     Average delay variation        : 527 usec
     Best case delay                : 14800 usec
     Worst case delay               : 16832 usec

15.3.2.2 配置 LCK

CFM

 步骤1 检查当前配置

配置CC/LB/LT/AIS/DM”章节一致。

 步骤2 配置LCK

Switch2上配置:

Switch(config)# interface eth-0-9
Switch(config-if)# ethernet cfm lck enable mep 666 domain provid vlan 30 tx-level 5 interval 1

 步骤3 检查配置

以下命令用来显示Switch2LCK状态:

Switch2# show ethernet cfm lck
En-LCK Enable, Y(Yes)/N(No)
Rx-LC, Receive LCK packets and enter LCK condition, Y(Yes)/N(No)
Rx-I, The period which is gotten from LCK packets
Tx-Domain, frames with ETH-LCK information are sent to this Domain
Tx-I, Transmit Interval
------------------------------------------------------------------------
MPID Domain       VLAN En Rx-LC Rx-I Tx-Domain    Tx-I
------------------------------------------------------------------------
666  provid       30   Y  N     N/A  cust         1  

以下命令用来显示Switch1LCK状态:

Switch1# show ethernet cfm lck
En-LCK Enable, Y(Yes)/N(No)
Rx-LC, Receive LCK packets and enter LCK condition, Y(Yes)/N(No)
Rx-I, The period which is gotten from LCK packets
Tx-Domain, frames with ETH-LCK information are sent to this Domain
Tx-I, Transmit Interval
------------------------------------------------------------------------
MPID Domain       VLAN En Rx-LC Rx-I Tx-Domain    Tx-I
------------------------------------------------------------------------
66   cust         30   N  Y     1    N/A          N/A

15.3.2.3 配置CSF

CFM CSF

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式,并创建vlan

Switch1 配置:

Switch(config)# vlan database
Switch(config vlan)# vlan 30
Switch(config vlan)# exit

Switch23 配置:

Switch3(config)# vlan database
Switch3(config vlan)# vlan 20,30
Switch3(config vlan)# exit

 步骤3 全局使能cfm,设置cfm模式为y1731

Switch(config)# ethernet cfm enable
Switch(config)# ethernet cfm mode y1731

 步骤4 创建维护域,在维护域中将服务和vlan绑定

创建一个叫cust的域,等级是5

Switch(config)# ethernet cfm domain cust level 5
Switch(config-ether-cfm)# service cst vlan 30
Switch(config-ether-cfm)# exit

创建一个叫provid的域,等级是3

Switch23配置:

Switch(config)# ethernet cfm domain provid level 3
Switch(config-ether-cfm)# service cst vlan 20
Switch(config-ether-cfm)# exit

 步骤5 进入端口配置模式,配置端口属性

Switch1 的端口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 30
Switch(config-if)# ethernet cfm mep down mpid 66 domain cust vlan 30 interval 1
Switch(config-if)# ethernet cfm mep crosscheck mpid 99 domain cust vlan 30 mac d036.4567.8009
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch2 的端口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 30
Switch(config-if)# ethernet cfm mep down mpid 99 domain cust vlan 30 interval 1
Switch(config-if)# ethernet cfm mep crosscheck mpid 66 domain cust vlan 30 mac fa02.cdff.6a09
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)#interface eth-0-17
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 20
Switch(config-if)# ethernet cfm mep down mpid 666 domain provid vlan 20 interval 1
Switch(config-if)# no shutdown  
Switch(config-if)# exit

Switch3 的端口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 30
Switch(config-if)# ethernet cfm mep down mpid 88 domain cust vlan 30 interval 1
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)#interface eth-0-17
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 20
Switch(config-if)# ethernet cfm mep down mpid 999 domain provid vlan 20 interval 1
Switch(config-if)# no shutdown
Switch(config-if)# exit

 步骤6 启用维护域的连续性检查功能

Switch(config)# ethernet cfm cc enable domain cust vlan 30

 步骤7 配置CSF连接关系

Switch2配置:

Switch(config)# ethernet cfm csf client domain cust vlan 30 mepid 99 server domain provid vlan 20 mepid 666 interval 1

Switch3配置:

Switch(config)# ethernet cfm csf client domain cust vlan 30 mepid 88 server domain provid vlan 20 mepid 999 interval 1

 步骤8 检查配置

以下命令用来关闭Switch1上的连续性检查,使Switch2上触发loc错误:

Switch (config)#no ethernet cfm cc enable domain cust vlan 30

Switch2上的MEP 99会上报loc,引发MEP 666发送CSF报文(原因los)。 以下命令用来显示Switch2CSF状态:

Switch# show ethernet cfm csf
CTR-Client Trigger reason, L(los)/F(fdi)/R(rdi)/D(dci) or N/A
ECC-Enter CSF Condition, Y(Yes)/N(No)
SRR-Server Rx Reason, L(los)/F(fdi)/R(rdi)/D(dci) or N/A
Tx-I, Transmit Interval
Rx-I, The period which is gotten from CSF packets
------------------------------------------------------------------------
Client Mep                       Server Mep
MPID Cli-Domain   VLAN CTR   ECC MPID Srv-Domain   VLAN SRR   Tx-I Rx-I
------------------------------------------------------------------------
99   cust         30   L      N   666  provid       20   N/A   1    N/A

Switch3上,MEP 999会收到CSF的报文并通知客户MEP 88, 然后客户MEP会进入CSF状态。以下命令用来显示Switch3CSF状态:

Switch3# show ethernet cfm csf
CTR-Client Trigger reason, L(los)/F(fdi)/R(rdi)/D(dci) or N/A
ECC-Enter CSF Condition, Y(Yes)/N(No)
SRR-Server Rx Reason, L(los)/F(fdi)/R(rdi)/D(dci) or N/A
Tx-I, Transmit Interval
Rx-I, The period which is gotten from CSF packets
------------------------------------------------------------------------
Client Mep                       Server Mep
MPID Cli-Domain   VLAN CTR   ECC MPID Srv-Domain   VLAN SRR   Tx-I Rx-I
------------------------------------------------------------------------
88   cust         30   N/A   Y   999  provid       20   L      1    1  

15.3.2.4 配置双端LM

CFM

 步骤1 检查当前配置

配置CC/LB/LT/AIS/DM”章节一致。

 步骤2 配置双端LM

Switch1配置:

Switch(config)# ethernet cfm lm enable dual-ended domain cust vlan 30 mepid 66 all-cos cache-size 10

Switch4配置:

Switch(config)# ethernet cfm lm enable dual-ended domain cust vlan 30 mepid 99 all-cos cache-size 10

 步骤3 检查配置

以下命令用来显示Switch1lm的结果:

Switch# show ethernet cfm lm domain cust vlan 30 mepid 66
DOMAIN     : cust       
VLAN       : 30
MEPID      : 66
Start Time : 2013/07/16 1:36:56
End Time   : 2013/07/16 1:37:07
Notes      : 1. When the difference of Tx is less than the difference of Rx,
                the node is invalid, loss and loss ratio should be "-";
             2. When loc is reported for mep, the loss should be "-" and loss
                ratio should be 100%;
             3. When calculate average loss and loss ratio, invalid or loc nodes
                will be excluded;
Latest dual-ended loss statistics:
--------------------------------------------------------------------------------
Index Cos Local-loss Local-loss ratio Remote-loss Remote-loss ratio Time    
--------------------------------------------------------------------------------
1     all          0        000.0000%           0         000.0000% 01:36:57
2     all          0        000.0000%           0         000.0000% 01:36:58
3     all          0        000.0000%           0         000.0000% 01:36:59
4     all          0        000.0000%           0         000.0000% 01:37:00
5     all          0        000.0000%           0         000.0000% 01:37:01
6     all          0        000.0000%           0         000.0000% 01:37:02
7     all          0        000.0000%           0         000.0000% 01:37:03
8     all          0        000.0000%           0         000.0000% 01:37:04
9     all          0        000.0000%           0         000.0000% 01:37:05
10    all          0        000.0000%           0         000.0000% 01:37:07
--------------------------------------------------------------------------------
Maximum Local-loss  : 0          Maximum Local-loss Ratio  : 000.0000%
Minimum Local-loss  : 0          Minimum Local-loss Ratio  : 000.0000%
Average Local-loss  : 0          Average Local-loss Ratio  : 000.0000%
Maximum Remote-loss : 0          Maximum Remote-loss Ratio : 000.0000%
Minimum Remote-loss : 0          Minimum Remote-loss Ratio : 000.0000%
Average Remote-loss : 0          Average Remote-loss Ratio : 000.0000%

以下命令用来显示Switch4lm的结果:

Switch# show ethernet cfm lm domain cust vlan 30 mepid 99
DOMAIN     : cust       
VLAN       : 30
MEPID      : 99
Start Time : 2013/07/16 1:37:11
End Time   : 2013/07/16 1:37:22
Notes      : 1. When the difference of Tx is less than the difference of Rx,
                the node is invalid, loss and loss ratio should be "-";
             2. When loc is reported for mep, the loss should be "-" and loss
                ratio should be 100%;
             3. When calculate average loss and loss ratio, invalid or loc nodes
                will be excluded;
Latest dual-ended loss statistics:
--------------------------------------------------------------------------------
Index Cos Local-loss Local-loss ratio Remote-loss Remote-loss ratio Time    
--------------------------------------------------------------------------------
1     all          0        000.0000%           0         000.0000% 01:37:12
2     all          0        000.0000%           0         000.0000% 01:37:13
3     all          0        000.0000%           0         000.0000% 01:37:14
4     all          0        000.0000%           0         000.0000% 01:37:16
5     all          0        000.0000%           0         000.0000% 01:37:17
6     all          0        000.0000%           0         000.0000% 01:37:18
7     all          0        000.0000%           0         000.0000% 01:37:19
8     all          0        000.0000%           0         000.0000% 01:37:20
9     all          0        000.0000%           0         000.0000% 01:37:21
10    all          0        000.0000%           0         000.0000% 01:37:22
--------------------------------------------------------------------------------
Maximum Local-loss  : 0          Maximum Local-loss Ratio  : 000.0000%
Minimum Local-loss  : 0          Minimum Local-loss Ratio  : 000.0000%
Average Local-loss  : 0          Average Local-loss Ratio  : 000.0000%
Maximum Remote-loss : 0          Maximum Remote-loss Ratio : 000.0000%
Minimum Remote-loss : 0          Minimum Remote-loss Ratio : 000.0000%
Average Remote-loss : 0          Average Remote-loss Ratio : 000.0000%

15.3.2.5 配置单端LM

CFM

 步骤1 检查当前配置

配置CC/LB/LT/AIS/DM”章节一致。

 步骤2 配置单端LM

Switch1配置:

Switch(config)# ethernet cfm lm enable single-ended domain cust vlan 30 mepid 66 all-cos

Switch4配置:

 Switch(config)# ethernet cfm lm enable single-ended domain cust vlan 30 mepid 99 all-cos

 步骤3 检查配置

以下命令用于从Switch1上发送LMM消息,并显示LM的结果:

Switch#  ethernet cfm lm single-ended domain cust vlan 30 rmepid 99 mepid 66 count 10
DOMAIN     : cust       
VLAN       : 30
MEPID      : 66
Start Time : 2013/07/16 1:39:38
End Time   : 2013/07/16 1:39:38
Notes      : 1. When the difference of Tx is less than the difference of Rx,
                the node is invalid, loss and loss ratio should be "-";
             2. When loc is reported for mep, the loss should be "-" and loss
                ratio should be 100%;
             3. When calculate average loss and loss ratio, invalid or loc nodes
                will be excluded;
Latest single-ended loss statistics:
--------------------------------------------------------------------------------
Index Cos Local-loss Local-loss ratio Remote-loss Remote-loss ratio
--------------------------------------------------------------------------------
1     all          0        000.0000%           0         000.0000%
2     all          0        000.0000%           0         000.0000%
3     all          0        000.0000%           0         000.0000%
4     all          0        000.0000%           0         000.0000%
5     all          0        000.0000%           0         000.0000%
6     all          0        000.0000%           0         000.0000%
7     all          0        000.0000%           0         000.0000%
8     all          0        000.0000%           0         000.0000%
9     all          0        000.0000%           0         000.0000%
--------------------------------------------------------------------------------
Maximum Local-loss  : 0          Maximum Local-loss Ratio  : 000.0000%
Minimum Local-loss  : 0          Minimum Local-loss Ratio  : 000.0000%
Average Local-loss  : 0          Average Local-loss Ratio  : 000.0000%
Maximum Remote-loss : 0          Maximum Remote-loss Ratio : 000.0000%
Minimum Remote-loss : 0          Minimum Remote-loss Ratio : 000.0000%
Average Remote-loss : 0          Average Remote-loss Ratio : 000.0000%

15.3.2.6 配置单端Test

CFM

 步骤1 检查当前配置

配置CC/LB/LT/AIS/DM”章节一致。

 步骤2 配置Test

Switch1配置Test发送功能:

Switch(config)# ethernet cfm tst transmission enable domain cust vlan 30 mep 66 tx-mode continuous pattern-type random packet-size 6

Switch4配置Test接收功能:

Switch(config)# ethernet cfm tst reception enable domain cust vlan 30 mep 99

 步骤3 检查配置

以下命令用于从Switch1上发送Test消息:

Switch#  ethernet cfm tst start rate 1000 time second 1

以下命令用于在Switch1上显示Test的信息:

Switch#  show ethernet cfm tst
DOMAIN           : cust       
VLAN             : 30
MEPID            : 66
Transmission     : Enabled
Reception        : Disabled
Status           : Non-Running
Start Time       : 06:32:48
Predict End Time : 06:33:18
Actual End Time  : 06:33:18
Packet Type      : TST
Rate             : 1000 mbps
Packet Size      : 64 bytes
Tx Number        : 29
Tx Bytes         : 1856
Rx Number        : 0
Rx Bytes         : 0

以下命令用于在Switch4上显示Test的信息:

Switch#  show ethernet cfm tst
DOMAIN           : cust       
VLAN             : 30
MEPID            : 99
Transmission     : Disabled
Reception        : Enabled
Status           : Non-Running
Start Time       : null
End Time         : null
Packet Type      : null
Rate             : null
Packet Size      : null
Tx Number        : 0
Tx Bytes         : 0
Rx Number        : 29
Rx Bytes         : 1856

15.3.3 应用场景配置举例

15.4 CPU Traffic 配置

15.4.1 概述

15.4.1.1 功能简介

本章描述如何配置CPU流量限制并查看CPU流量。

CPU流量限制是一种很有用的保护CPU的机制,通过对进入CPU的报文的流量进行限制实现。

CPU流量限制包含两个级别的CPU保护措施:

其一,限制各个进入CPUreason的流量。在芯片中,是通过配置这个reason对应的queue shaping实现的。

其二,限制所有进入CPU的报文的流量。芯片中是通过配置CPU端口上的shaping实现的。

这里提到的reason,意思是各种协议报文的类型,比如bgpospfrip等分别是不同的reason

下表列出了各种reason和对应的描述:

Reason

描述

arp

arp协议报文

bpdu

bpdu协议报文(包括 STP, RSTP, MSTP)

dhcp

dhcp协议报文

eapol

dot1x协议报文

erps

erps协议报文

fwd-to-cpu

转发到CPU的报文

icmp-redirect

Icmp重定向

igmp

IGMP或者IGMP Snooping报文

ip-option

带有可选字段的IP报文

ipda

ipda协议报文

ssh

SSH协议报文

telnet

Telnet协议报文

mlag

MLAG协议报文

tcp

TCP协议报文

ldp

ldp协议报文

macsa-mismatch

与一个端口security entry不匹配时的学习报文

mcast-rpf-fail

组播报文RPF检查失败

mpls-ttl-fail

ttl失效mpls报文

ip-mtu-fail

超过mtu长度的ip报文

ospf

ospf协议报文

pim

pim协议报文

port-security-discard

端口security entry学满时的学习报文

rip

rip协议报文

sflow-egress

在出口方向sflow的采样报文

sflow-ingress

在入口方向sflow的采样报文

slow-protocol

slow协议报文.(包括 EFM, LACPSYNCE),ttl失效的组播报文

smart-link

Smart link 协议报文

ucast-ttl-fail

ttl失效的单播IP报文

udld

udld协议报文

vlan-security-discard

vlan内学习的mac达到限制是的学习报文

vrrp

vrrp协议报文

bfd-learning

BFD学习报文

dot1x-mac-bypass

Dot1x旁路认证报文

bgp

边界网关协议报文

egress-ttl-fail

出方向TTL失效的IP报文

icmpv6

ICMPv6报文

l2protocol-tunnel

二层隧道协议报文

loopback-detection

环路检测报文

mirror-to-cpu

镜像到cpu的报文

ndp

邻居发现协议报文

tunnel-gre-keepalive

gre隧道持续回应报文

默认速率和优先级配置如下:

reason

rate(pps)

class

arp

256

1

bpdu

64

3

dhcp

128

0

eapol

128

0

erps

128

3

fwd-to-cpu

64

0

icmp-redirect

128

0

igmp

128

2

ip-option

512

0

ipda

1000

0

ssh

64

3

telnet

64

3

mlag

1000

1

tcp

64

2

ldp

512

1

macsa-mismatch

128

0

mcast-rpf-fail

128

1

mpls-ttl-fail

64

0

ip-mtu-fail

64

0

ospf

256

1

pim

128

1

port-security-discard

128

0

rip

64

1

sflow-egress

128

0

sflow-ingress

128

0

slow-protocol

256

1

smart-link

128

2

ucast-ttl-fail

64

0

udld

128

3

vlan-security-discard

128

0

vrrp

512

1

bfd-learning

128

1

dot1x-mac-bypass

64

2

bgp

256

1

egress-ttl-fail

64

0

icmpv6

64

2

l2protocol-tunnel

1000

0

loopback-detection

64

3

mirror-to-cpu

1000

0

ndp

64

2

tunnel-gre-keepalive

64

0

15.4.1.2 原理描述

术语

PDU:英文全称Protocol Data Unit,协议数据单元

15.4.2 配置

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置总限速

总限速默认值2000,单位ppspacket-per-second

Switch(config)# cpu-traffic-limit total rate 3000

 步骤3 配置单个类型报文限速

RIP报文为例:

Switch(config)# cpu-traffic-limit reason rip rate 500

 步骤4 修改优先级类别

Switch(config)# cpu-traffic-limit reason rip class 3

 优先级类别支持0-3,数字越大表示优先级越高。

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

使用命令“show cpu traffic-limit”查看配置结果,详细信息类似如下所示。

Switch# show cpu traffic-limit
reason                     rate (pps)   class
dot1x-mac-bypass           64            2
bpdu                       64            3
slow-protocol              256           1
eapol                      128           0
erps                       128           3
smart-link                 128           2
udld                       128           3
loopback-detection         64            3
arp                        256           1
dhcp                       128           0
rip                        500           3
ldp                        512           1
ospf                       256           1
pim                        128           1
bgp                        256           1
vrrp                       512           1
ndp                        64            2
icmpv6                     64            2
ssh                        64            3
telnet                     64            3
mlag                       1000          1
tcp                        64            2
ipda                       1000          0
icmp-redirect              128           0
mcast-rpf-fail             128           1
macsa-mismatch             128           0
port-security-discard      128           0
vlan-security-discard      128           0
egress-ttl-fail            64            0
ip-mtu-fail                64            0
bfd-learning               128           1
ptp                        512           2
ip-option                  512           0
tunnel-gre-keepalive       64            0
ucast-ttl-fail             64            0
mpls-ttl-fail              64            0
igmp                       128           2
sflow-ingress              128           0
sflow-egress               128           0
fwd-to-cpu                 64            0
l2protocol-tunnel          1000          0
mirror-to-cpu              1000          0
Total rate:      3000 (pps)

使用命令“show cpu traffic-statistics receive all”查看流量统计,详细信息类似如下所示。

Switch# show cpu traffic-statistics receive all
statistics rate time is 5 second(s)
reason           count(packets)    rate(pps)
dot1x-mac-bypass       0               0         
bpdu                   0               0         
slow-protocol          0               0         
eapol                  0               0         
erps                   0               0         
smart-link             0               0         
udld                   0               0         
loopback-detection     0               0         
arp                    0               0         
dhcp                   0               0         
rip                    0               0         
ldp                    0               0         
ospf                   0               0         
pim                    0               0         
bgp                    0               0         
vrrp                   0               0         
rsvp                   0               0         
ndp                    0               0         
icmpv6                 0               0         
ssh                    0               0         
telnet                 0               0         
mlag                   0               0         
tcp                    0               0         
ipda                   0               0         
icmp-redirect          0               0         
mcast-rpf-fail         0               0         
macsa-mismatch         0               0         
port-security-discard  0               0         
vlan-security-discard  0               0         
egress-ttl-fail        0               0         
ip-mtu-fail            0               0         
bfd-learning           0               0         
ptp                    0               0         
ip-option              0               0         
tunnel-gre-keepalive   0               0         
ucast-ttl-fail         0               0         
mpls-ttl-fail          0               0         
igmp                   0               0         
sflow-ingress          0               0         
sflow-egress           0               0         
fwd-to-cpu             0               0         
l2protocol-tunnel      0               0         
mirror-to-cpu          0               0         
mpls-tp-pwoam          0               0         
other                  0               0         
Total                  0               0         

15.4.3 应用场景配置举例

15.5 G.8031 配置

15.5.1 概述

15.5.1.1 功能简介

此文档描述了G.8031以太网线性保护的配置方法。

线性保护机制的目标是实现以太网快速保护切换。线性保护意味着对于一条或多条工作链路,有一个保护链路,可以在工作链路发生故障的时候承载工作链路上的数据流量,实现1:1或者N:1的保护。

为了实现流量保护,保护链路必须在故障发生之前准备好。一般来说,数据流量都在工作链路上转发。节点故障、链路故障、管理员命令可以触发切换。

15.5.1.2 原理描述

参考 ITU-T G.8031/Y.1342 (06/2006)

15.5.2 配置

G.8031

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式,并创建vlan

Switch(config)# vlan database
Switch(config-vlan)# vlan 10-20
Switch(config-vlan)# exit

 步骤3 设置STP模式,创建mstp实例

Switch(config)# spanning-tree mode mstp
Switch(config)# spanning-tree mst configuration
Switch(config-mst)# instance 10 vlan 10-20
Switch(config-mst)# exit

 步骤4 全局使能CFM,创建维护域,并绑定vlan。在维护域和vlan上使能连通性检查

Switch1(config)#ethernet cfm enable
Switch1(config)# ethernet cfm domain test level 5
Switch1(config-ether-cfm)# service test1 vlan 10
Switch1(config-ether-cfm)# service test2 vlan 11
Switch1(config-ether-cfm)# exit
Switch1(config)# ethernet cfm cc enable domain test vlan 10
Switch1(config)# ethernet cfm cc enable domain test vlan 11

 步骤5 进入接口配置模式,配置接口属性

Switch1 的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10-20
Switch(config-if)# ethernet cfm mep down mpid 10 domain test vlan 10 interval 1
Switch(config-if)# ethernet cfm mep crosscheck mpid 12 domain test vlan 10 mac bab3.08a4.c709
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-10
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10-20
Switch(config-if)# ethernet cfm mep down mpid 11 domain test vlan 11 interval 1
Switch(config-if)# ethernet cfm mep crosscheck mpid 13 domain test vlan 11 mac bab3.08a4.c70a
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch2 的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10-20
Switch(config-if)# ethernet cfm mep down mpid 12 domain test vlan 10 interval 1
Switch(config-if)# ethernet cfm mep crosscheck mpid 10 domain test vlan 10 mac bab3.08a4.c809
Switch(config-if)# spanning-tree port disable
Switch(config-if)# exit

Switch(config)# interface eth-0-10
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10-20
Switch(config-if)# ethernet cfm mep down mpid 13 domain test vlan 11 interval 1
Switch(config-if)# ethernet cfm mep crosscheck mpid 11 domain test vlan 11 mac bab3.08a4.c80a
Switch(config-if)# spanning-tree port disable
Switch(config-if)# exit

 步骤6 创建G8031组,并绑定要保护的mstp实例

Switch(config)# g8031 eps-id 10 working-port eth-0-9 protection-port eth-0-10
Switch(g8031-config-switching)# domain test working-service test1 protection-service test2
Switch(g8031-config-switching)# instance 10
Switch(config-if)# exit

 步骤7 退出配置模式

Switch(config)# end

 步骤8 检查配置

Switch1 显示结果:

Switch# show g8031
Codes: ID - Group id of G.8031
       IF-W - Interface of working entity, IF-P - Interface of protection entity
       MD - Maintenance domain
       MA-W - Maintenance association of working entity
       MA-W - Maintenance association of protection entity
       CS - Current state, LS - Last state, LE - Last event, FS - Far end state
       R/B - Request signal & bridged signal, MODE - Revertive or Non-revertive
       WTR - Wait to restore, DFOP - Failure of protocol defects
=============================================================================
ID   IF-W     IF-P     MD    MA-W  MA-P  CS    LS    LE    FS    R/B    MODE
-----------------------------------------------------------------------------
10   eth-0-9  eth-0-10 test   test1   test2  NR    NR    NR    NR    null   REV 
APS Vid - 11
Active-Path - Working
DFOP State - Not in defect mode
Protected Instance - 10 
=============================================================================

Switch2 显示结果:

Switch# show g8031
Codes: ID - Group id of G.8031
       IF-W - Interface of working entity, IF-P - Interface of protection entity
       MD - Maintenance domain
       MA-W - Maintenance association of working entity
       MA-W - Maintenance association of protection entity
       CS - Current state, LS - Last state, LE - Last event, FS - Far end state
       R/B - Request signal & bridged signal, MODE - Revertive or Non-revertive
       WTR - Wait to restore, DFOP - Failure of protocol defects
=============================================================================
ID   IF-W     IF-P     MD    MA-W  MA-P  CS    LS    LE    FS    R/B    MODE
-----------------------------------------------------------------------------
10   eth-0-9  eth-0-10 test   test1   test2  NR    NR    NR    NR    null   REV 
APS Vid - 11
Active-Path - Working
DFOP State - Not in defect mode
Protected Instance - 10

15.5.3 应用场景配置举例

15.6 G8032 配置

15.6.1 概述

以太环网拓扑与其他拓扑相比,是一种比较经济的网络拓扑,它可以通过更少的链路,实现更大范围的网络互连。环上每个节点都通过两条独立的链路与它的相邻节点互连,加入到同一个环网中。在同一个环上,邻接节点之间互连的链路称为环链路,互连的接口称为环接口。要形成一个环网,至少要有两台设备。

环网保护要解决的两个基本问题是:

阻止成环,防止广播风暴。

数据流量的mac学习和转发机制。

阻止成环意味着,在任何时候,数据报文在环网上的节点之间流通,但是必须有一处断开。这处断开的链路被称为环保护链路(RPL)。在正常情况下该链路被人为的阻塞,不能转发数据报文,保护链路的一端设备被称为owner,负责在这个链路上阻塞报文。

在环网出现故障的时候,会触发环网保护切换,owner负责打开环保护链路,保证了网络畅通,业务不会中断。

环网发生故障的消息是通过APS协议报文在环上转发的。环网上的每个节点都需要做相应的配置。

15.6.1.1 功能简介

15.6.1.2 原理描述

参考:

T-REC-G.8032-200806-I!!PDF-E.pdf

T-REC-G.8032-201003-I!!PDF-E.pdf

T-REC-G.8032-201708-I!Cor1!PDF-E.pdf

15.6.2 拓扑

单环拓扑

G8032单环拓扑

多环拓扑

G8032多环拓扑

15.6.3 单环配置

 步骤1 Switch1 配置

Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# vlan database
Switch(config-vlan)# vlan 10-100
Switch(config-vlan)# exit
Switch(config)# spanning-tree mode mstp
Switch(config)# spanning-tree mst configuration
Switch(config-mst)# instance 1 vlan 10-99
Switch(config-mst)# exit
Switch(config)# no ip igmp snooping vlan 100
Switch(config)# interface eth-0-9
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10-100
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-20
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10-100
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# g8032 ring-id 1 east-interface eth-0-9 west-interface eth-0-20
Switch(g8032-config-switch)# rpl owner east-interface
Switch(g8032-config-switch)# instance 1
Switch(g8032-config-switch)# control-vlan 100
Switch(g8032-config-switch)# ring enable

 步骤2 Switch1检查配置

Switch# show g8032
RingID  MajorRing  State         East      Status     West      Status   
-------------------------------------------------------------------------------
1       N/A        Pending       eth-0-9   Blocked    eth-0-20  Forward

Control Vlan             : 100
Is Enabled               : Yes
Mode                     : Revertive
Node Role                : Owner
Is Sub_ring              : No
Protect Instance         : 1 
RPL                      : east-interface
Wait-to-restore          : 04:26 (266492 msecs)
Hold-off Timer           : 0 (msecs) 
Guard Timer              : 500 (msecs)
WTB Timer                : 5500 (msecs)
RAPS MEL                 : 7
Is Forward-to-cpu        : 1
-------------------------------------------------------------------------------

 步骤3 Switch2 配置

Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# vlan database
Switch(config-vlan)# vlan 10-100
Switch(config-vlan)# exit
Switch(config)# spanning-tree mode mstp
Switch(config)# spanning-tree mst configuration
Switch(config-mst)# instance 1 vlan 10-99
Switch(config-mst)# exit
Switch(config)# no ip igmp snooping vlan 100
Switch(config)# interface eth-0-9
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10-100
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-20
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10-100
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# g8032 ring-id 1 east-interface eth-0-9 west-interface eth-0-20
Switch(g8032-config-switch)# instance 1
Switch(g8032-config-switch)# control-vlan 100
Switch(g8032-config-switch)# ring enable

 步骤4 Switch2检查配置

Switch# show g8032
RingID  MajorRing  State         East      Status     West      Status   
-------------------------------------------------------------------------------
1       N/A        Pending       eth-0-9   Blocked    eth-0-20  Forward

Control Vlan             : 100
Is Enabled               : Yes
Mode                     : Revertive
Node Role                : N/A
Is Sub_ring              : No
Protect Instance         : 1 
Wait-to-restore          : 05:00
Hold-off Timer           : 0 (msecs) 
Guard Timer              : 500 (msecs)
WTB Timer                : 5500 (msecs)
RAPS MEL                 : 7
Is Forward-to-cpu        : 1
-------------------------------------------------------------------------------

 步骤5 Switch3 配置

Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# vlan database
Switch(config-vlan)# vlan 10-100
Switch(config-vlan)# exit
Switch(config)# spanning-tree mode mstp
Switch(config)# spanning-tree mst configuration
Switch(config-mst)# instance 1 vlan 10-99
Switch(config-mst)# exit
Switch(config)# no ip igmp snooping vlan 100
Switch(config)# interface eth-0-9
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10-100
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-20
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10-100
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# g8032 ring-id 1 east-interface eth-0-9 west-interface eth-0-20
Switch(g8032-config-switch)# instance 1
Switch(g8032-config-switch)# control-vlan 100
Switch(g8032-config-switch)# ring enable

 步骤6 Switch3检查配置

Switch# show g8032
RingID  MajorRing  State         East      Status     West      Status   
-------------------------------------------------------------------------------
1       N/A        Pending       eth-0-9   Blocked    eth-0-20  Forward

Control Vlan             : 100
Is Enabled               : Yes
Mode                     : Revertive
Node Role                : N/A 
Is Sub_ring              : No
Protect Instance         : 1
Wait-to-restore          : 05:00
Hold-off Timer           : 0 (msecs) 
Guard Timer              : 500 (msecs)
WTB Timer                : 5500 (msecs)
RAPS MEL                 : 7
Is Forward-to-cpu        : 1
-------------------------------------------------------------------------------

 步骤7 Switch4 配置

Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# vlan database
Switch(config-vlan)# vlan 10-100
Switch(config-vlan)# exit
Switch(config)# spanning-tree mode mstp
Switch(config)# spanning-tree mst configuration
Switch(config-mst)# instance 1 vlan 10-99
Switch(config-mst)# exit
Switch(config)# no ip igmp snooping vlan 100
Switch(config)# interface eth-0-9
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10-100
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-20
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10-100
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# g8032 ring-id 1 east-interface eth-0-9 west-interface eth-0-20
Switch(g8032-config-switch)# instance 1
Switch(g8032-config-switch)# control-vlan 100
Switch(g8032-config-switch)# ring enable

 步骤8 Switch4检查配置

Switch# show g8032
RingID  MajorRing  State         East      Status     West      Status   
-------------------------------------------------------------------------------
1       N/A        Pending       eth-0-9   Blocked    eth-0-20  Forward

Control Vlan             : 100
Is Enabled               : Yes
Mode                     : Revertive
Node Role                : N/A 
Is Sub_ring              : No
Protect Instance         : 1 
Wait-to-restore          : 05:00
Hold-off Timer           : 0 (msecs) 
Guard Timer              : 500 (msecs)
WTB Timer                : 5500 (msecs)
RAPS MEL                 : 7
Is Forward-to-cpu        : 1
-------------------------------------------------------------------------------

15.6.4 多环配置 - 非虚拟通道

 步骤1 Switch1 配置

Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# vlan database
Switch(config-vlan)# vlan 10-150
Switch(config-vlan)# exit
Switch(config)# spanning-tree mode mstp
Switch(config)# spanning-tree mst configuration
Switch(config-mst)# instance 1 vlan 10-99
Switch(config-mst)# instance 2 vlan 101-150
Switch(config-mst)# exit
Switch(config)# no ip igmp snooping vlan 100
Switch(config)# no ip igmp snooping vlan 20
Switch(config)# interface eth-0-9
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10-150
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-13
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10-150
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-20
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 101-150
Switch(config-if)# switchport trunk allowed vlan add 20
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# g8032 ring-id 1 east-interface eth-0-9 west-interface eth-0-13
Switch(g8032-config-switch)# rpl owner east-interface
Switch(g8032-config-switch)# instance 1
Switch(g8032-config-switch)# instance 2
Switch(g8032-config-switch)# control-vlan 100
Switch(g8032-config-switch)# ring enable
Switch(g8032-config-switch)# exit
Switch(config)# g8032 ring-id 2 interface eth-0-20 major-ring-id 1
Switch(g8032-config-switch)# instance 2
Switch(g8032-config-switch)# control-vlan 20
Switch(g8032-config-switch)# ring enable

 步骤2 Switch1检查配置

Switch# show g8032
RingID  MajorRing  State         East      Status     West      Status   
-------------------------------------------------------------------------------
1       N/A        Pending       eth-0-9   Blocked    eth-0-13  Forward 

Control Vlan             : 100
Is Enabled               : Yes
Mode                     : Revertive
Node Role                : Owner
Is Sub_ring              : No
Protect Instance         : 1-2
Sub-ring                 : 2   
RPL                      : east-interface
Wait-to-restore          : 04:26 (266492 msecs)
Hold-off Timer           : 0 (msecs) 
Guard Timer              : 500 (msecs)
WTB Timer                : 5500 (msecs)
RAPS MEL                 : 7
Is Forward-to-cpu        : 1
-------------------------------------------------------------------------------

RingID  MajorRing  State           East        Status     West        Status   
-------------------------------------------------------------------------------
2       1          Pending         eth-0-20    Blocked      N/A         N/A      

Control Vlan             : 20 
Is Enabled               : No
Mode                     : Revertive
Node Role                : N/A
Is Sub_ring              : Yes
Virtual-channel          : Disable
Protect Instance         : 2
Wait-to-restore          : 05:00
Hold-off Timer           : 0 (msecs) 
Guard Timer              : 500 (msecs)
WTB Timer                : 5500 (msecs)
RAPS MEL                 : 7
Is Forward-to-cpu        : 1
-------------------------------------------------------------------------------

 步骤3 Switch2 配置

Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# vlan database
Switch(config-vlan)# vlan 10-150
Switch(config-vlan)# exit
Switch(config)# spanning-tree mode mstp
Switch(config)# spanning-tree mst configuration
Switch(config-mst)# instance 1 vlan 10-99
Switch(config-mst)# instance 2 vlan 101-150
Switch(config-mst)# exit
Switch(config)# no ip igmp snooping vlan 100
Switch(config)# interface eth-0-9
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10-150
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-20
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10-150
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# g8032 ring-id 1 east-interface eth-0-9 west-interface eth-0-20
Switch(g8032-config-switch)# instance 1
Switch(g8032-config-switch)# instance 2
Switch(g8032-config-switch)# control-vlan 100
Switch(g8032-config-switch)# ring enable

 步骤4 Switch2检查配置

Switch# show g8032
RingID  MajorRing  State         East      Status     West      Status   
-------------------------------------------------------------------------------
1       N/A        Pending       eth-0-9   Blocked    eth-0-20  Forward

Control Vlan             : 100
Is Enabled               : Yes
Mode                     : Revertive
Node Role                : N/A
Is Sub_ring              : No
Protect Instance         : 1-2
Wait-to-restore          : 05:00
Hold-off Timer           : 0 (msecs) 
Guard Timer              : 500 (msecs)
WTB Timer                : 5500 (msecs)
RAPS MEL                 : 7
Is Forward-to-cpu        : 0
-------------------------------------------------------------------------------

 步骤5 Switch3 配置

Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# vlan database
Switch(config-vlan)# vlan 10-150
Switch(config-vlan)# exit
Switch(config)# spanning-tree mode mstp
Switch(config)# spanning-tree mst configuration
Switch(config-mst)# instance 1 vlan 10-99
Switch(config-mst)# instance 2 vlan 101-150
Switch(config-mst)# exit
Switch(config)# no ip igmp snooping vlan 100
Switch(config)# no ip igmp snooping vlan 20
Switch(config)# interface eth-0-9
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 101-150
Switch(config-if)# switchport trunk allowed vlan add 20
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-13
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10-150
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-20
Switch(config-if-eth-0-20)# switchport mode trunk
Switch(config-if-eth-0-20)# switchport trunk allowed vlan add 10-150
Switch(config-if-eth-0-20)# spanning-tree port disable
Switch(config-if-eth-0-20)# no shutdown
Switch(config-if-eth-0-20)# exit
Switch(config)# g8032 ring-id 1 east-interface eth-0-13 west-interface eth-0-20
Switch(g8032-config-switch)# rpl owner east-interface
Switch(g8032-config-switch)# instance 1
Switch(g8032-config-switch)# instance 2
Switch(g8032-config-switch)# control-vlan 100
Switch(g8032-config-switch)# ring enable
Switch(g8032-config-switch)# exit
Switch(config)# g8032 ring-id 2 interface eth-0-9 major-ring-id 1
Switch(g8032-config-switch)# instance 2
Switch(g8032-config-switch)# control-vlan 20
Switch(g8032-config-switch)# ring enable

 步骤6 Switch3检查配置

Switch# show g8032
RingID  MajorRing  State         East      Status     West      Status   
-------------------------------------------------------------------------------
1       N/A        Pending       eth-0-13  Blocked    eth-0-20  Forward 

Control Vlan             : 100
Is Enabled               : Yes
Mode                     : Revertive
Node Role                : N/A
Is Sub_ring              : No
Protect Instance         : 1-2
Sub-ring                 : 2   
Wait-to-restore          : 05:00
Hold-off Timer           : 0 (msecs) 
Guard Timer              : 500 (msecs)
WTB Timer                : 5500 (msecs)
RAPS MEL                 : 7
Is Forward-to-cpu        : 0
-------------------------------------------------------------------------------

RingID  MajorRing  State           East        Status     West        Status   
-------------------------------------------------------------------------------
2       1          Pending         eth-0-9     Blocked    N/A         N/A      

Control Vlan             : 20 
Is Enabled               : No
Mode                     : Revertive
Node Role                : N/A
Is Sub_ring              : Yes
Virtual-channel          : Disable
Protect Instance         : 2
Wait-to-restore          : 05:00
Hold-off Timer           : 0 (msecs) 
Guard Timer              : 500 (msecs)
WTB Timer                : 5500 (msecs)
RAPS MEL                 : 7
Is Forward-to-cpu        : 1
-------------------------------------------------------------------------------

 步骤7 Switch4 配置

Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# vlan database
Switch(config-vlan)# vlan 101-150
Switch(config-vlan)# exit
Switch(config)# spanning-tree mode mstp
Switch(config)# spanning-tree mst configuration
Switch(config-mst)# instance 2 vlan 101-150
Switch(config-mst)# exit
Switch(config)# no ip igmp snooping vlan 20
Switch(config)# interface eth-0-9
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 101-150
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-20
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 101-150
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# g8032 ring-id 2 east-interface eth-0-9 west-interface eth-0-20 is-sub-ring
Switch(g8032-config-switch)# instance 2
Switch(g8032-config-switch)# rpl owner east-interface
Switch(g8032-config-switch)# control-vlan 20
Switch(g8032-config-switch)# ring enable

 步骤8 Switch4检查配置

Switch# show g8032
RingID  MajorRing  State         East      Status     West      Status   
-------------------------------------------------------------------------------
2       N/A        Pending       eth-0-9   Blocked    eth-0-20  Forward 

Control Vlan             : 20
Is Enabled               : Yes
Mode                     : Revertive
Node Role                : Owner
Is Sub_ring              : Yes
Protect Instance         : 1-2
RPL                      : east-interface
Wait-to-restore          : 05:00
Hold-off Timer           : 0 (msecs) 
Guard Timer              : 500 (msecs)
WTB Timer                : 5500 (msecs)
RAPS MEL                 : 7
Is Forward-to-cpu        : 0
-------------------------------------------------------------------------------

15.6.5 多环配置 - 虚拟通道

 步骤1 Switch1 配置

Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# vlan database
Switch(config-vlan)# vlan 10-150
Switch(config-vlan)# exit
Switch(config)# spanning-tree mode mstp
Switch(config)# spanning-tree mst configuration
Switch(config-mst)# instance 1 vlan 10-99
Switch(config-mst)# instance 2 vlan 101-150
Switch(config-mst)# exit
Switch(config)# no ip igmp snooping vlan 100
Switch(config)# no ip igmp snooping vlan 20
Switch(config)# interface eth-0-9
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10-150
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-13
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10-150
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-20
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 101-150
Switch(config-if)# switchport trunk allowed vlan add 20
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# g8032 ring-id 1 east-interface eth-0-9 west-interface eth-0-13
Switch(g8032-config-switch)# rpl owner east-interface
Switch(g8032-config-switch)# instance 1
Switch(g8032-config-switch)# instance 2
Switch(g8032-config-switch)# control-vlan 100
Switch(g8032-config-switch)# ring enable
Switch(g8032-config-switch)# exit
Switch(config)# g8032 ring-id 2 interface eth-0-20 major-ring-id 1
Switch(g8032-config-switch)# instance 2
Switch(g8032-config-switch)# control-vlan 20
Switch(g8032-config-switch)# virtual-channel enable
Switch(g8032-config-switch)# ring enable

 步骤2 Switch1检查配置

Switch# show g8032
RingID  MajorRing  State         East      Status     West      Status   
-------------------------------------------------------------------------------
1       N/A        Pending       eth-0-9   Blocked    eth-0-13  Forward 

Control Vlan             : 100
Is Enabled               : Yes
Mode                     : Revertive
Node Role                : Owner
Is Sub_ring              : No
Protect Instance         : 1-2
Sub-ring                 : 2   
RPL                      : east-interface
Wait-to-restore          : 04:26 (266492 msecs)
Hold-off Timer           : 0 (msecs) 
Guard Timer              : 500 (msecs)
WTB Timer                : 5500 (msecs)
RAPS MEL                 : 7
Is Forward-to-cpu        : 1
-------------------------------------------------------------------------------

RingID  MajorRing  State           East        Status     West        Status   
-------------------------------------------------------------------------------
2       1          Pending         eth-0-20    Blocked      N/A         N/A      

Control Vlan             : 20 
Is Enabled               : No
Mode                     : Revertive
Node Role                : N/A
Is Sub_ring              : Yes
Virtual-channel          : Enable
Protect Instance         : 2
Wait-to-restore          : 05:00
Hold-off Timer           : 0 (msecs) 
Guard Timer              : 500 (msecs)
WTB Timer                : 5500 (msecs)
RAPS MEL                 : 7
Is Forward-to-cpu        : 0
-------------------------------------------------------------------------------

 步骤3 Switch2 配置

Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# vlan database
Switch(config-vlan)# vlan 10-150
Switch(config-vlan)# exit
Switch(config)# spanning-tree mode mstp
Switch(config)# spanning-tree mst configuration
Switch(config-mst)# instance 1 vlan 10-99
Switch(config-mst)# instance 2 vlan 101-150
Switch(config-mst)# exit
Switch(config)# no ip igmp snooping vlan 100
Switch(config)# interface eth-0-9
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10-150
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-20
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10-150
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# g8032 ring-id 1 east-interface eth-0-9 west-interface eth-0-20
Switch(g8032-config-switch)# instance 1
Switch(g8032-config-switch)# instance 2
Switch(g8032-config-switch)# control-vlan 100
Switch(g8032-config-switch)# ring enable

 步骤4 Switch2检查配置

Switch# show g8032
RingID  MajorRing  State         East      Status     West      Status   
-------------------------------------------------------------------------------
1       N/A        Pending       eth-0-9   Blocked    eth-0-20  Forward

Control Vlan             : 100
Is Enabled               : Yes
Mode                     : Revertive
Node Role                : N/A
Is Sub_ring              : No
Protect Instance         : 1-2
Wait-to-restore          : 05:00
Hold-off Timer           : 0 (msecs) 
Guard Timer              : 500 (msecs)
WTB Timer                : 5500 (msecs)
RAPS MEL                 : 7
Is Forward-to-cpu        : 0
-------------------------------------------------------------------------------

 步骤5 Switch3 配置

Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# vlan database
Switch(config-vlan)# vlan 10-150
Switch(config-vlan)# exit
Switch(config)# spanning-tree mode mstp
Switch(config)# spanning-tree mst configuration
Switch(config-mst)# instance 1 vlan 10-99
Switch(config-mst)# instance 2 vlan 101-150
Switch(config-mst)# exit
Switch(config)# no ip igmp snooping vlan 100
Switch(config)# no ip igmp snooping vlan 20
Switch(config)# interface eth-0-9
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 101-150
Switch(config-if)# switchport trunk allowed vlan add 20
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-13
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10-150
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-20
Switch(config-if-eth-0-20)# switchport mode trunk
Switch(config-if-eth-0-20)# switchport trunk allowed vlan add 10-150
Switch(config-if-eth-0-20)# spanning-tree port disable
Switch(config-if-eth-0-20)# no shutdown
Switch(config-if-eth-0-20)# exit
Switch(config)# g8032 ring-id 1 east-interface eth-0-13 west-interface eth-0-20
Switch(g8032-config-switch)# rpl owner east-interface
Switch(g8032-config-switch)# instance 1
Switch(g8032-config-switch)# instance 2
Switch(g8032-config-switch)# control-vlan 100
Switch(g8032-config-switch)# ring enable
Switch(g8032-config-switch)# exit
Switch(config)# g8032 ring-id 2 interface eth-0-9 major-ring-id 1
Switch(g8032-config-switch)# instance 2
Switch(g8032-config-switch)# control-vlan 20
Switch(g8032-config-switch)# virtual-channel enable
Switch(g8032-config-switch)# ring enable

 步骤6 Switch3检查配置

Switch# show g8032
RingID  MajorRing  State         East      Status     West      Status   
-------------------------------------------------------------------------------
1       N/A        Pending       eth-0-13  Blocked    eth-0-20  Forward 

Control Vlan             : 100
Is Enabled               : Yes
Mode                     : Revertive
Node Role                : N/A
Is Sub_ring              : No
Protect Instance         : 1-2
Sub-ring                 : 2   
Wait-to-restore          : 05:00
Hold-off Timer           : 0 (msecs) 
Guard Timer              : 500 (msecs)
WTB Timer                : 5500 (msecs)
RAPS MEL                 : 7
Is Forward-to-cpu        : 0
-------------------------------------------------------------------------------

RingID  MajorRing  State           East        Status     West        Status   
-------------------------------------------------------------------------------
2       1          Pending         eth-0-9     Blocked    N/A         N/A      

Control Vlan             : 20 
Is Enabled               : No
Mode                     : Revertive
Node Role                : N/A
Is Sub_ring              : Yes
Virtual-channel          : Enable
Protect Instance         : 2
Wait-to-restore          : 05:00
Hold-off Timer           : 0 (msecs) 
Guard Timer              : 500 (msecs)
WTB Timer                : 5500 (msecs)
RAPS MEL                 : 7
Is Forward-to-cpu        : 0
-------------------------------------------------------------------------------

 步骤7 Switch4 配置

Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# vlan database
Switch(config-vlan)# vlan 101-150
Switch(config-vlan)# exit
Switch(config)# spanning-tree mode mstp
Switch(config)# spanning-tree mst configuration
Switch(config-mst)# instance 2 vlan 101-150
Switch(config-mst)# exit
Switch(config)# no ip igmp snooping vlan 20
Switch(config)# interface eth-0-9
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 101-150
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-20
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 101-150
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# g8032 ring-id 2 east-interface eth-0-9 west-interface eth-0-20 is-sub-ring
Switch(g8032-config-switch)# instance 2
Switch(g8032-config-switch)# rpl owner east-interface
Switch(g8032-config-switch)# control-vlan 20
Switch(g8032-config-switch)# virtual-channel enable
Switch(g8032-config-switch)# ring enable

 步骤8 Switch4检查配置

Switch# show g8032
RingID  MajorRing  State         East      Status     West      Status   
-------------------------------------------------------------------------------
2       N/A        Pending       eth-0-9   Blocked    eth-0-20  Forward 

Control Vlan             : 20
Is Enabled               : Yes
Mode                     : Revertive
Node Role                : Owner
Is Sub_ring              : Yes
Virtual-channel          : Enable
Protect Instance         : 1-2
RPL                      : east-interface
Wait-to-restore          : 05:00
Hold-off Timer           : 0 (msecs) 
Guard Timer              : 500 (msecs)
WTB Timer                : 5500 (msecs)
RAPS MEL                 : 7
Is Forward-to-cpu        : 0
-------------------------------------------------------------------------------

15.6.6 G8032与CFM的联动

当前,触发G8032进行保护倒换的机制有两种:

端口linkdown/shutdown触发

CFM检测到链路故障触发

在上述的单环配置中采用的是端口linkdown/shutdown触发,这里结合CFM的配置,来说明CFMG8032的联动关系。

 步骤1 Switch1 配置

Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# vlan database
Switch(config-vlan)# vlan 10-100
Switch(config-vlan)# vlan 5
Switch(config-vlan)# exit
Switch(config)# spanning-tree mode mstp
Switch(config)# spanning-tree mst configuration
Switch(config-mst)# instance 1 vlan 10-99
Switch(config-mst)# exit
Switch(config)# no ip igmp snooping vlan 100
Switch(config)# ethernet cfm enable
Switch(config)# ethernet cfm domain md1 level 5
Switch(config-ether-cfm)# service ma1 vlan 5
Switch(config-ether-cfm)# exit
Switch(config)#  ethernet cfm cc enable domain md1 vlan 5
Switch(config)# interface eth-0-9
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10-100
Switch(config-if)# spanning-tree port disable
Switch(config-if)# ethernet cfm mep down mpid 101 domain md1 vlan 5 interval 1
Switch(config-if)# ethernet cfm mep crosscheck mpid 201 domain md1 vlan 5 mac e03e.b1e1.3309
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-20
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10-100
Switch(config-if)# spanning-tree port disable
Switch(config-if)# ethernet cfm mep down mpid 102 domain md1 vlan 5 interval 1
Switch(config-if)# ethernet cfm mep crosscheck mpid 402 domain md1 vlan 5 mac b2d0.60e4.c314
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# g8032 ring-id 1 east-interface eth-0-9 west-interface eth-0-20
Switch(g8032-config-switch)# rpl owner east-interface
Switch(g8032-config-switch)# instance 1
Switch(g8032-config-switch)# control-vlan 100
Switch(g8032-config-switch)# domain md1 service ma1
Switch(g8032-config-switch)# ring enable

 步骤2 Switch1检查配置

Switch# show g8032
RingID  MajorRing  State         East      Status     West      Status   
-------------------------------------------------------------------------------
1       N/A        Pending       eth-0-9   Blocked    eth-0-20  Forward

Control Vlan             : 100
MD Name                  : md1
Service Id               : ma1
Is Enabled               : Yes
Mode                     : Revertive
Node Role                : Owner
Is Sub_ring              : No
Protect Instance         : 1 
RPL                      : east-interface
Wait-to-restore          : 04:26 (266492 msecs)
Hold-off Timer           : 0 (msecs) 
Guard Timer              : 500 (msecs)
WTB Timer                : 5500 (msecs)
RAPS MEL                 : 7
Is Forward-to-cpu        : 1
-------------------------------------------------------------------------------

Switch# show ethernet cfm maintenance-points
######Local MEP:
Dir-Direction;
L-Level;
MPID Dir  DOMAIN       L VLAN PORT       CC-Status MAC-Address    RDI   Interval
--------------------------------------------------------------------------------
101    down md1         5 5   eth-0-9    Enabled  104e.40d1.e309 False 3.3ms
102    down md1         5 5   eth-0-20   Enabled  104e.40d1.e314 False 3.3ms

######Remote MEP:
MPID  LEVEL VLAN Remote Mac     RDI   FLAGS      STATE
---------------------------------------------------------
201     5     5  e03e.b1e1.3309 False Mac_config Up
402     5     5  b2d0.60e4.c314 False Mac_config Up

 步骤3 Switch2 配置

Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# vlan database
Switch(config-vlan)# vlan 10-100
Switch(config-vlan)# vlan 5
Switch(config-vlan)# exit
Switch(config)# spanning-tree mode mstp
Switch(config)# spanning-tree mst configuration
Switch(config-mst)# instance 1 vlan 10-99
Switch(config-mst)# exit
Switch(config)# no ip igmp snooping vlan 100
Switch(config)# ethernet cfm enable
Switch(config)# ethernet cfm domain md1 level 5
Switch(config-ether-cfm)# service ma1 vlan 5
Switch(config-ether-cfm)# exit
Switch(config)#  ethernet cfm cc enable domain md1 vlan 5
Switch(config)# interface eth-0-9
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10-100
Switch(config-if)# spanning-tree port disable
Switch(config-if)# ethernet cfm mep down mpid 201 domain md1 vlan 5 interval 1
Switch(config-if)# ethernet cfm mep crosscheck mpid 101 domain md1 vlan 5 mac 104e.40d1.e309
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-20
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10-100
Switch(config-if)# spanning-tree port disable
Switch(config-if)# ethernet cfm mep down mpid 202 domain md1 vlan 5 interval 1
Switch(config-if)# ethernet cfm mep crosscheck mpid 302 domain md1 vlan 5 mac a0cd.ce44.5514
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# g8032 ring-id 1 east-interface eth-0-9 west-interface eth-0-20
Switch(g8032-config-switch)# instance 1
Switch(g8032-config-switch)# control-vlan 100
Switch(g8032-config-switch)# domain md1 service ma1
Switch(g8032-config-switch)# ring enable

 步骤4 Switch2检查配置

Switch# show g8032
RingID  MajorRing  State         East      Status     West      Status   
-------------------------------------------------------------------------------
1       N/A        Pending       eth-0-9   Blocked    eth-0-20  Forward

Control Vlan             : 100
MD Name                  : md1
Service Id               : ma1 
Is Enabled               : Yes
Mode                     : Revertive
Node Role                : N/A
Is Sub_ring              : No
Protect Instance         : 1 
Wait-to-restore          : 05:00
Hold-off Timer           : 0 (msecs) 
Guard Timer              : 500 (msecs)
WTB Timer                : 5500 (msecs)
RAPS MEL                 : 7
Is Forward-to-cpu        : 1
-------------------------------------------------------------------------------

Switch# show ethernet cfm maintenance-points
######Local MEP:
Dir-Direction;
L-Level;
MPID Dir  DOMAIN       L VLAN PORT       CC-Status MAC-Address    RDI   Interval
--------------------------------------------------------------------------------
201    down md1         5 5   eth-0-9    Enabled  e03e.b1e1.3309 False 3.3ms
202    down md1         5 5   eth-0-20   Enabled  e03e.b1e1.3314 False 3.3ms

######Remote MEP:
MPID  LEVEL VLAN Remote Mac     RDI   FLAGS      STATE
---------------------------------------------------------
101     5     5  104e.40d1.e309 False Mac_config Up
302     5     5  a0cd.ce44.5514 False Mac_config Up

 步骤5 Switch3 配置

Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# vlan database
Switch(config-vlan)# vlan 10-100
Switch(config-vlan)# vlan 5
Switch(config-vlan)# exit
Switch(config)# spanning-tree mode mstp
Switch(config)# spanning-tree mst configuration
Switch(config-mst)# instance 1 vlan 10-99
Switch(config-mst)# exit
Switch(config)# no ip igmp snooping vlan 100
Switch(config)# ethernet cfm enable
Switch(config)# ethernet cfm domain md1 level 5
Switch(config-ether-cfm)# service ma1 vlan 5
Switch(config-ether-cfm)# exit
Switch(config)#  ethernet cfm cc enable domain md1 vlan 5
Switch(config)# interface eth-0-9
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10-100
Switch(config-if)# spanning-tree port disable
Switch(config-if)# ethernet cfm mep down mpid 301 domain md1 vlan 5 interval 1
Switch(config-if)# ethernet cfm mep crosscheck mpid 401 domain md1 vlan 5 mac b2d0.60e4.c309
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-20
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10-100
Switch(config-if)# spanning-tree port disable
Switch(config-if)# ethernet cfm mep down mpid 302 domain md1 vlan 5 interval 1
Switch(config-if)# ethernet cfm mep crosscheck mpid 202 domain md1 vlan 5 mac e03e.b1e1.3314
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# g8032 ring-id 1 east-interface eth-0-9 west-interface eth-0-20
Switch(g8032-config-switch)# instance 1
Switch(g8032-config-switch)# control-vlan 100
Switch(g8032-config-switch)# domain md1 service ma1
Switch(g8032-config-switch)# ring enable

 步骤6 Switch3检查配置

Switch# show g8032
RingID  MajorRing  State         East      Status     West      Status   
-------------------------------------------------------------------------------
1       N/A        Pending       eth-0-9   Blocked    eth-0-20  Forward

Control Vlan             : 100
MD Name                  : md1
Service Id               : ma1 
Is Enabled               : Yes
Mode                     : Revertive
Node Role                : N/A 
Is Sub_ring              : No
Protect Instance         : 1
Wait-to-restore          : 05:00
Hold-off Timer           : 0 (msecs) 
Guard Timer              : 500 (msecs)
WTB Timer                : 5500 (msecs)
RAPS MEL                 : 7
Is Forward-to-cpu        : 1
-------------------------------------------------------------------------------

Switch# show ethernet cfm maintenance-points
######Local MEP:
Dir-Direction;
L-Level;
MPID Dir  DOMAIN       L VLAN PORT       CC-Status MAC-Address    RDI   Interval
--------------------------------------------------------------------------------
301    down md1         5 11   eth-0-9    Enabled  a0cd.ce44.5509 False 3.3ms
302    down md1         5 11   eth-0-20   Enabled  a0cd.ce44.5514 False 3.3ms

######Remote MEP:
MPID  LEVEL VLAN Remote Mac     RDI   FLAGS      STATE
---------------------------------------------------------
401     5     11  b2d0.60e4.c309 False Mac_config Up
202     5     11  e03e.b1e1.3314 False Mac_config Up

 步骤7 Switch4 配置

Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# vlan database
Switch(config-vlan)# vlan 10-100
Switch(config-vlan)# vlan 5
Switch(config-vlan)# exit
Switch(config)# spanning-tree mode mstp
Switch(config)# spanning-tree mst configuration
Switch(config-mst)# instance 1 vlan 10-99
Switch(config-mst)# exit
Switch(config)# no ip igmp snooping vlan 100
Switch(config)# ethernet cfm enable
Switch(config)# ethernet cfm domain md1 level 5
Switch(config-ether-cfm)# service ma1 vlan 5
Switch(config-ether-cfm)# exit
Switch(config)#  ethernet cfm cc enable domain md1 vlan 5
Switch(config)# interface eth-0-9
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10-100
Switch(config-if)# spanning-tree port disable
Switch(config-if)# ethernet cfm mep down mpid 401 domain md1 vlan 5 interval 1
Switch(config-if)# ethernet cfm mep crosscheck mpid 301 domain md1 vlan 5 mac a0cd.ce44.5509
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-20
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10-100
Switch(config-if)# spanning-tree port disable
Switch(config-if)# ethernet cfm mep down mpid 402 domain md1 vlan 5 interval 1
Switch(config-if)# ethernet cfm mep crosscheck mpid 102 domain md1 vlan 5 mac 104e.40d1.e314
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# g8032 ring-id 1 east-interface eth-0-9 west-interface eth-0-20
Switch(g8032-config-switch)# instance 1
Switch(g8032-config-switch)# control-vlan 100
Switch(g8032-config-switch)# domain md1 service ma1
Switch(g8032-config-switch)# ring enable

 步骤8 Switch4检查配置

Switch# show g8032
RingID  MajorRing  State         East      Status     West      Status   
-------------------------------------------------------------------------------
1       N/A        Pending       eth-0-9   Blocked    eth-0-20  Forward

Control Vlan             : 100
MD Name                  : md1
Service Id               : ma1
Is Enabled               : Yes
Mode                     : Revertive
Node Role                : N/A 
Is Sub_ring              : No
Protect Instance         : 1 
Wait-to-restore          : 05:00
Hold-off Timer           : 0 (msecs) 
Guard Timer              : 500 (msecs)
WTB Timer                : 5500 (msecs)
RAPS MEL                 : 7
Is Forward-to-cpu        : 1
-------------------------------------------------------------------------------

Switch# show ethernet cfm maintenance-points
######Local MEP:
Dir-Direction;
L-Level;
MPID Dir  DOMAIN       L VLAN PORT       CC-Status MAC-Address    RDI   Interval
--------------------------------------------------------------------------------
401    down md1         5 11   eth-0-9    Enabled  b2d0.60e4.c309 False 3.3ms
402    down md1         5 11   eth-0-20   Enabled  b2d0.60e4.c314 False 3.3ms

######Remote MEP:
MPID  LEVEL VLAN Remote Mac     RDI   FLAGS      STATE
---------------------------------------------------------
301     5     11  a0cd.ce44.5509 False Mac_config Up
102     5     11  104e.40d1.e314 False Mac_config Up

15.7 UDLD配置

15.7.1 概述

15.7.1.1 功能简介

UDLD (Unidirectional Link Detection,单向链路检测) 是一种可以检测和禁用单向链路的轻量级的协议。通过使用UDLD可以防止生成树等协议在单向链接时产生的异常情况。

15.7.1.2 原理描述

15.7.2 配置

UDLD

以下配置在Switch1 Switch2相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,在接口上使能UDLD

Switch(config)# interface eth-0-9
Switch(config-if)# no shutdown
Switch(config-if)# udld port
Switch(config-if)# exit

 步骤3 全局使能UDLD

 Switch(config)# udld enable

 步骤4 配置UDLD报文时间间隔(可选)

如不显式配置,默认值15,单位秒。

Switch(config)# udld message interval 10

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

Switch1 显示结果:

Switch# show udld eth-0-9
Interface eth-0-9
---
UDLD mode         : normal
Operation state  : Bidirectional
Message interval : 10
Message timeout   : 3
  Neighbor 1
  ---
  Device ID       : 4c7b.8510.ab00
  Port ID         : eth-0-9
  Device Name     : Switch
  Message interval: 10
  Message timeout : 3
  Link Status     : bidirectional
  Expiration time : 29

Switch2 显示结果:

Switch# show udld eth-0-9
Interface eth-0-9
---
UDLD mode       : normal
Operation state : Bidirectional
Message interval: 10
Message timeout : 3
  Neighbor 1
  ---
  Device ID       : 28bc.83db.8400
  Port ID         : eth-0-9
  Device Name     : Switch
  Message interval: 10
  Message timeout : 3
  Link Status     : bidirectional
  Expiration time : 23

15.7.3 应用场景配置举例

15.8 ERPS配置

15.8.1 概述

15.8.1.1 功能简介

在网络规划和实际组网应用中,大多采用环网来提供高可靠性。环网技术简单来说,就是将一些网络设备通过环的形状连接到一起,实现相互通信的一种技术。为了避免环网中产生广播风暴,最初采用了已被普遍应用的STP协议环路保护机制。但实际应用中STP协议的收敛时间受网络拓扑的影响,在网络直径较大时收敛时间较长,因而往往不能满足传输质量较高的数据的要求。为了缩短环网的收敛时间并消除网络大小的影响,专门开发了ERPS技术。ERPS技术提高了以太网环的可用性和耐用性,在链路发生中断的时候可以在50毫秒以内完成收敛。

其主要思想描述如下:环域上,一个交换机被指定为主节点,而其他所有节点指定为传输节点。主节点的一个端口被指定为主端口,另一个端口被指定为副端口。在一个预先设定的时间间隔,主节点从主端口发送keep-alive消息,域内的传输节点转发ERPS消息,当主节点的副端口收到自己发出来的keep-alive消息后会阻塞副端口,除了ERPS报文其他报文都不允许通过。当传输节点检测到链路发生故障后,就会发送linkdown消息给相邻节点,邻节点收到后会传递给另一个端口的相邻节点,直到主节点收到。在收到链路故障报文后,主节点将重新打开副端口允许传输数据流量通过。

15.8.1.2 原理描述

参考: RFC 3619

15.8.2 配置

ERPS是一个软件控制的协议,只要在需要该功能的设备上启用ERPS并按照网络拓扑来正确配置ERPS

本节提供了典型网络拓扑下的ERPS配置实例。

15.8.2.1 配置ERPS单环拓扑

ERPS

Switch1Switch2Switch3上配置相同的ERPS域和环,交换机1配置成ERPS主节点,其他两个交换机配置成ERPS传输节点,AGG11接口有两个成员分别是eth-0-9eth-0-10AGG11接口配置成ERPS域的主端口,eth-0-13配置成ERPS域的副端口。

 ERPS环上的接口必须配置成Trunk模式并且允许控制VLAN和数据VLAN的报文通过。如果设备启用了堆叠功能, ERPS环上的接口不可以是从设备上的端口,否则ERPS不能正常工作。

ERPS端口环需要加入控制VLAN,允许ERPS协议报文发送和接收。

ERPS环中的端口必须把STP关闭。

只有一个节点能配置成Master

控制VLAN不能配置成三层VLAN接口。

VLAN MAP关系不能在ERPS端口上启用。

本地VLAN不能设置成第一控制VLAN和第二控制VLAN

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式并创建vlan

Switch(config)# vlan database
Switch(config-vlan)# vlan 15
Switch(config-vlan)# exit

 步骤3 进入端口配置模式,配置端口属性

按拓扑所示,Switch12eth-0-9eth-0-10加入agg11并直连。 Switch13eth-0-13直连。 Switch23eth-0-17直连。

Switch1 Switch2 agg 11 端口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no shutdown
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 15
Switch(config-if)# static-channel-group 11
Switch(config-if)# exit

Switch(config)# interface eth-0-10
Switch(config-if)# no shutdown
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 15
Switch(config-if)# static-channel-group 11
Switch(config-if)# exit

Switch(config)# interface agg11
Switch(config-if)# spanning-tree port disable

Switch1 Switch3 eth-0-13 端口配置:

Switch(config)# interface eth-0-13
Switch(config-if)# no shutdown
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 15
Switch(config-if)# spanning-tree port disable
Switch(config-if)# exit

Switch2 Switch3 eth-0-17 端口配置:

Switch(config)# interface eth-0-17
Switch(config-if)# no shutdown
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 15
Switch(config-if)# spanning-tree port disable
Switch(config-vlan)# exit

 步骤4 配置和启用ERPS

Switch1 erps 域:

Switch(config)# erps 11
Switch(config)# erps 11 primary control vlan 15
Switch(config)# erps 11 mstp instance 0
Switch(config)# erps 11 ring 1 level primary
Switch(config)# erps 11 ring 1 mode master
Switch(config)# erps 11 ring 1 primary interface agg11
Switch(config)# erps 11 ring 1 secondary interface eth-0-13
Switch(config)# erps 11 ring 1 enable
Switch(config)# erps 11 enable

Switch2 erps 域:

Switch(config)# erps 11
Switch(config)# erps 11 primary control vlan 15
Switch(config)# erps 11 mstp instance 0
Switch(config)# erps 11 ring 1 level primary
Switch(config)# erps 11 ring 1 mode transit
Switch(config)# erps 11 ring 1 primary interface agg11
Switch(config)# erps 11 ring 1 secondary interface eth-0-17
Switch(config)# erps 11 ring 1 enable
Switch(config)# erps 11 enable

Switch3 erps 域:

Switch(config)# erps 11
Switch(config)# erps 11 primary control vlan 15
Switch(config)# erps 11 mstp instance 0
Switch(config)# erps 11 ring 1 level primary
Switch(config)# erps 11 ring 1 mode transit
Switch(config)# erps 11 ring 1 primary interface eth-0-17
Switch(config)# erps 11 ring 1 secondary interface eth-0-13
Switch(config)# erps 11 ring 1 enable
Switch(config)# erps 11 enable

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

Switch1 显示结果:

Switch# show erps 11
ERPS domain ID: 11
ERPS domain name: ERPS0011
ERPS domain mode: normal
ERPS domain primary control VLAN ID: 15
ERPS domain sub control VLAN ID: 0
ERPS domain hello timer interval: 1 second(s)
ERPS domain fail timer interval: 3 second(s)
ERPS domain protected mstp instance: 0
ERPS ring ID: 1
ERPS ring level: primary
ERPS ring 1 node mode: master
ERPS ring 1 node state: complete
ERPS ring 1 primary interface name: agg11          state:unblock
ERPS ring 1 secondary interface name: eth-0-13     state:block
ERPS ring 1 stats:
Sent:
  total packets:51
  hello packets:47                    ring-up-flush-fdb packets:2
  ring-down-flush-fdb packets:2       link-down packets:0
  edge-hello packets:0                major-fault packets:0
Received:
  total packets:21
  hello packets:21                    ring-up-flush-fdb packets:0
  ring-down-flush-fdb packets:0       link-down packets:0
  edge-hello packets:0                major-fault packets:0

Switch2 显示结果:

Switch# show erps 11
ERPS domain ID: 11
ERPS domain name: ERPS0011
ERPS domain mode: normal
ERPS domain primary control VLAN ID: 15
ERPS domain sub control VLAN ID: 0
ERPS domain hello timer interval: 1 second(s)
ERPS domain fail timer interval: 3 second(s)
ERPS domain protected mstp instance: 0
ERPS ring ID: 1
ERPS ring level: primary
ERPS ring 1 node mode: transit
ERPS ring 1 node state: link up
ERPS ring 1 primary interface name: agg11          state:unblock
ERPS ring 1 secondary interface name: eth-0-17     state:unblock
ERPS ring 1 stats:
Sent:
  total packets:0
  hello packets:0                     ring-up-flush-fdb packets:0
  ring-down-flush-fdb packets:0       link-down packets:0
  edge-hello packets:0                major-fault packets:0
Received:
  total packets:114
  hello packets:113                   ring-up-flush-fdb packets:1
  ring-down-flush-fdb packets:0       link-down packets:0
  edge-hello packets:0                major-fault packets:0

Switch3 显示结果:

Switch# show erps 11
ERPS domain ID: 11
ERPS domain name: ERPS0011
ERPS domain mode: normal
ERPS domain primary control VLAN ID: 15
ERPS domain sub control VLAN ID: 0
ERPS domain hello timer interval: 1 second(s)
ERPS domain fail timer interval: 3 second(s)
ERPS domain protected mstp instance: 0
ERPS ring ID: 1
ERPS ring level: primary
ERPS ring 1 node mode: transit
ERPS ring 1 node state: link up
ERPS ring 1 primary interface name: eth-0-17       state:unblock
ERPS ring 1 secondary interface name: eth-0-13     state:unblock
ERPS ring 1 stats:
Sent:
  total packets:0
  hello packets:0                     ring-up-flush-fdb packets:0
  ring-down-flush-fdb packets:0       link-down packets:0
  edge-hello packets:0                major-fault packets:0
Received:
  total packets:130
  hello packets:129                   ring-up-flush-fdb packets:1
  ring-down-flush-fdb packets:0       link-down packets:0
  edge-hello packets:0                major-fault packets:0

15.8.2.2 配置ERPS交叉环拓扑

ERPS

Switch1Switch2Switch3Switch4配置成相同的ERPS域,Switch1Switch2Switch3组成ERPS环网的主环ring 1Switch1配置成ring 1的主节点,其他两台设备配置成ring 1中的传输节点,Switch2Switch3Switch4配置成ERPS环网的子环ring 2Switch4配置成ring 2的主节点.此外Switch2配置成边缘节点,Switch3配置成辅助边缘节点。

注意事项:

端口接入ERPS环需要配置控制VLAN的成员,允许ERPS数据包发送和接收。

ERPS环中的端口必须把STP关闭。

只有一个节点能配置成Master

边缘节点和辅助边缘节点必须是两个环的交叉点。

子环的边缘节点和辅助边缘节点必须传输节点。

通用的接口必须为两环相交接口。

边缘端口只能属于一个子环。

主环和子环共存必须要有边缘节点或边缘辅助节点。

必须在主环创建后再创建子环。

子环的取消和删除操作必须在主环之前。

一个交换机只能成为一个域的主节点或者域中的子环的传输节点。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式并创建vlan

Switch(config)# vlan database
Switch(config-vlan)# vlan 11,12
Switch(config-vlan)# exit

 步骤3 进入接口配置模式,配置接口属性

Switch(config)# interface eth-0-9
Switch(config-if)# no shutdown
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 11,12
Switch(config-if)# spanning-tree port disable
Switch(config-if)# exit

Switch(config)# interface eth-0-13
Switch(config-if)# no shutdown
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 11,12
Switch(config-if)# spanning-tree port disable
Switch(config-if)# exit

Switch2 Switch3eth-0-20接口配置:

Switch(config)# interface eth-0-20
Switch(config-if)# no shutdown
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 11,12
Switch(config-if)# spanning-tree port disable
Switch(config-if)# exit

 步骤4 配置和启用ERPS

Switch1 erps 域:

Switch(config)# erps 1
Switch(config)# erps 1 primary control vlan 11
Switch(config)# erps 1 sub control vlan 12
Switch(config)# erps 1 mstp instance 0
Switch(config)# erps 1 ring 1 level primary
Switch(config)# erps 1 ring 1 mode master
Switch(config)# erps 1 ring 1 primary interface eth-0-9
Switch(config)# erps 1 ring 1 secondary interface eth-0-13
Switch(config)# erps 1 ring 1 enable
Switch(config)# erps 1 enable

Switch2 erps 域:

Switch(config)# erps 1
Switch(config)# erps 1 primary control vlan 11
Switch(config)# erps 1 sub control vlan 12
Switch(config)# erps 1 mstp instance 0
Switch(config)# erps 1 ring 1 level primary
Switch(config)# erps 1 ring 1 mode transit
Switch(config)# erps 1 ring 1 primary interface eth-0-9
Switch(config)# erps 1 ring 1 secondary interface eth-0-20
Switch(config)# erps 1 ring 1 enable

Switch(config)# erps 1 ring 2 level sub
Switch(config)# erps 1 ring 2 edge-mode edge
Switch(config)# erps 1 ring 2 edge interface eth-0-13
Switch(config)# erps 1 ring 2 common interface eth-0-20
Switch(config)# erps 1 ring 2 srpt disable
Switch(config)# erps 1 ring 2 enable
Switch(config)# erps 1 enable

Switch3 erps 域:

Switch(config)# erps 1
Switch(config)# erps 1 primary control vlan 11
Switch(config)# erps 1 sub control vlan 12
Switch(config)# erps 1 mstp instance 0
Switch(config)# erps 1 ring 1 level primary
Switch(config)# erps 1 ring 1 mode transit
Switch(config)# erps 1 ring 1 primary interface eth-0-13
Switch(config)# erps 1 ring 1 secondary interface eth-0-20
Switch(config)# erps 1 ring 1 enable

Switch(config)# erps 1 ring 2 level sub
Switch(config)# erps 1 ring 2 edge-mode assistant-edge
Switch(config)# erps 1 ring 2 edge interface eth-0-9
Switch(config)# erps 1 ring 2 common interface eth-0-20
Switch(config)# erps 1 ring 2 enable
Switch(config)# erps 1 enable

Switch4 erps 域:

Switch(config)# erps 1
Switch(config)# erps 1 sub control vlan 12
Switch(config)# erps 1 mstp instance 0
Switch(config)# erps 1 ring 2 level sub
Switch(config)# erps 1 ring 2 mode master
Switch(config)# erps 1 ring 2 primary interface eth-0-9
Switch(config)# erps 1 ring 2 secondary interface eth-0-13
Switch(config)# erps 1 ring 2 enable
Switch(config)# erps 1 enable

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

Switch1 显示结果:

Switch# show erps 1
ERPS domain ID: 1
ERPS domain name: ERPS001
ERPS domain mode: normal
ERPS domain primary control VLAN ID: 11
ERPS domain sub control VLAN ID: 12
ERPS domain hello timer interval: 1 second(s)
ERPS domain fail timer interval: 3 second(s)
ERPS domain protected mstp instance: 0
ERPS ring ID: 1
ERPS ring level: primary
ERPS ring 1 node mode: master
ERPS ring 1 node state: complete
ERPS ring 1 primary interface name: eth-0-9        state:unblock
ERPS ring 1 secondary interface name: eth-0-13     state:block
ERPS ring 1 stats:
Sent:
  total packets:1310
  hello packets:1303                  ring-up-flush-fdb packets:3
  ring-down-flush-fdb packets:4       link-down packets:0
  edge-hello packets:0                major-fault packets:0
Received:
  total packets:921
  hello packets:921                   ring-up-flush-fdb packets:0
  ring-down-flush-fdb packets:0       link-down packets:0
  edge-hello packets:0                major-fault packets:0

Switch2 显示结果:

Switch# show erps 1
ERPS domain ID: 1
ERPS domain name: ERPS001
ERPS domain mode: normal
ERPS domain primary control VLAN ID: 11
ERPS domain sub control VLAN ID: 12
ERPS domain hello timer interval: 1 second(s)
ERPS domain fail timer interval: 3 second(s)
ERPS domain protected mstp instance: 0
ERPS ring ID: 1
ERPS ring level: primary
ERPS ring 1 node mode: transit
ERPS ring 1 node state: link up
ERPS ring 1 primary interface name: eth-0-9        state:unblock
ERPS ring 1 secondary interface name: eth-0-20     state:unblock
ERPS ring 1 stats:
Sent:
  total packets:0
  hello packets:0                     ring-up-flush-fdb packets:0
  ring-down-flush-fdb packets:0       link-down packets:0
  edge-hello packets:0                major-fault packets:0
Received:
  total packets:988
  hello packets:985                   ring-up-flush-fdb packets:2
  ring-down-flush-fdb packets:1       link-down packets:0
  edge-hello packets:0                major-fault packets:0
ERPS ring ID: 2
ERPS ring level: sub
ERPS ring 2 node mode: transit
ERPS ring 2 edge node mode: edge
ERPS ring 2 node state: link up
ERPS ring 2 edge interface name: eth-0-13       state: unblock
ERPS ring 2 common interface name: eth-0-20     state: unblock
EPRS ring 2 SRPT is disabled
ERPS ring 2 stats:
Sent:
  total packets:0
  hello packets:0                     ring-up-flush-fdb packets:0
  ring-down-flush-fdb packets:0       link-down packets:0
  edge-hello packets:0                major-fault packets:0
Received:
  total packets:858
  hello packets:856                   ring-up-flush-fdb packets:1
  ring-down-flush-fdb packets:1       link-down packets:0
  edge-hello packets:0                major-fault packets:0

Switch3 显示结果:

Switch# show erps 1
ERPS domain ID: 1
ERPS domain name: ERPS001
ERPS domain mode: normal
ERPS domain primary control VLAN ID: 11
ERPS domain sub control VLAN ID: 12
ERPS domain hello timer interval: 1 second(s)
ERPS domain fail timer interval: 3 second(s)
ERPS domain protected mstp instance: 0
ERPS ring ID: 1
ERPS ring level: primary
ERPS ring 1 node mode: transit
ERPS ring 1 node state: link up
ERPS ring 1 primary interface name: eth-0-13       state:unblock
ERPS ring 1 secondary interface name: eth-0-20     state:unblock
ERPS ring 1 stats:
Sent:
  total packets:0
  hello packets:0                     ring-up-flush-fdb packets:0
  ring-down-flush-fdb packets:0       link-down packets:0
  edge-hello packets:0                major-fault packets:0
Received:
  total packets:645
  hello packets:644                   ring-up-flush-fdb packets:1
  ring-down-flush-fdb packets:0       link-down packets:0
  edge-hello packets:0                major-fault packets:0
ERPS ring ID: 2
ERPS ring level: sub
ERPS ring 2 node mode: transit
ERPS ring 2 edge node mode: assistant edge
ERPS ring 2 node state: link up
ERPS ring 2 edge interface name: eth-0-9        state: unblock
ERPS ring 2 common interface name: eth-0-20     state: unblock
ERPS ring 2 stats:
Sent:
  total packets:0
  hello packets:0                     ring-up-flush-fdb packets:0
  ring-down-flush-fdb packets:0       link-down packets:0
  edge-hello packets:0                major-fault packets:0
Received:
  total packets:645
  hello packets:644                   ring-up-flush-fdb packets:1
  ring-down-flush-fdb packets:0       link-down packets:0
  edge-hello packets:0                major-fault packets:0

Switch4 显示结果:

Switch# show erps 1
ERPS domain ID: 1
ERPS domain name: ERPS001
ERPS domain mode: normal
ERPS domain primary control VLAN ID: 0
ERPS domain sub control VLAN ID: 12
ERPS domain hello timer interval: 1 second(s)
ERPS domain fail timer interval: 3 second(s)
ERPS domain protected mstp instance: 0
ERPS ring ID: 2
ERPS ring level: sub
ERPS ring 2 node mode: master
ERPS ring 2 node state: complete
ERPS ring 2 primary interface name: eth-0-9        state:unblock
ERPS ring 2 secondary interface name: eth-0-13     state:block
ERPS ring 2 stats:
Sent:
  total packets:814
  hello packets:810                   ring-up-flush-fdb packets:2
  ring-down-flush-fdb packets:2       link-down packets:0
  edge-hello packets:0                major-fault packets:0
Received:
  total packets:774
  hello packets:774                   ring-up-flush-fdb packets:0
  ring-down-flush-fdb packets:0       link-down packets:0
  edge-hello packets:0                major-fault packets:0
Switch#

15.8.3 应用场景配置举例

15.9 Smart-Link配置

15.9.1 概述

15.9.1.1 功能简介

Smart Link,中文译为灵活链路,又称为备份链路,是一种为链路双上行提供可靠高效的备份和切换机制的解决方案,常用于双上行组网。相比STPSpanning Tree Protocol, 生成树协议),Smart Link技术能够提供更快速的收敛性能,相比ERPSSmart Link技术提供了更简洁的配置使用方式。

该功能还能提供链路负载均衡的功能。

15.9.1.2 原理描述

15.9.2 配置

Smart-Link Typical Topology

上图是一个Smart-link的典型配置,交换机12配置Smart-link组;交换机345配置Smart-link的报文接收。

下面的示例给出了Smart Link链路双上行保护的配置,拓扑图示Figure 9-1

注意事项:

Smart Link组的控制vlan和保护vlan必须事先在 vlan database创建好。

Smart Link组的端口必须把STP关闭。

Smart Link组的保护实例必须事先在MSTP模块先创建好。

给每台交换机配置VLAN 1-3MSTP instance1-3

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式,并创建vlan

Switch(config)# vlan database
Switch(config-vlan)# vlan 2-20
Switch(config-vlan)# exit

 步骤3 设置STP模式,创建mstp实例

mstp实例在Switch1 Switch2 创建:

Switch(config)# spanning-tree mode mstp
Switch(config)# spanning-tree mst configuration
Switch(config-mst)# instance 1 vlan 1
Switch(config-mst)# instance 2 vlan 2
Switch(config-mst)# instance 3 vlan 3
Switch(config-mst)# exit

 步骤4 进入接口配置模式,配置接口属性

Switch1 Switch2 的接口配置:

Switch(config)# interface eth-0-13
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan all
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-17
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan all
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch3 Switch4 的接口配置:

Switch(config)# interface eth-0-13
Switch(config-if)# switchport mode trunk
Switch(config-if)# no shutdown
Switch(config-if)# switchport trunk allowed vlan all
Switch(config-if)# smart-link flush receive control-vlan 10 password simple test
Switch(config-if)# exit

Switch(config)# interface eth-0-17
Switch(config-if)# no shutdown
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan all
Switch(config-if)# smart-link flush receive control-vlan 10 password simple test
Switch (config-if)# exit

Switch3 eth-0-19

Switch(config)# interface eth-0-19
Switch(config-if)# switchport mode trunk
Switch(config-if)# no shutdown
Switch(config-if)# switchport trunk allowed vlan all
Switch(config-if)# exit

Switch4 eth-0-21

Switch(config)# interface eth-0-21
Switch(config-if)# switchport mode trunk
Switch(config-if)# no shutdown
Switch(config-if)# switchport trunk allowed vlan all
Switch(config-if)# exit

Switch5 的接口配置:

Switch(config)# interface eth-0-19
Switch(config-if)# switchport mode trunk
Switch(config-if)# no shutdown
Switch(config-if)# switchport trunk allowed vlan all
Switch(config-if)# smart-link flush receive control-vlan 10 password simple test
Switch(config-if)# exit

Switch(config)# interface eth-0-21
Switch(config-if)# switchport mode trunk
Switch(config-if)# no shutdown
Switch(config-if)# switchport trunk allowed vlan all
Switch(config-if)# smart-ink flush receive control-vlan 10 password simple test
Switch(config-if)# exit

 步骤5 创建smart link组并配置其属性

smart link组在Switch1 Switch2 创建:

Switch(config)# smart-link group 1
Switch(config-smlk-group)# interface eth-0-13 master
Switch(config-smlk-group)# interface eth-0-17 slave
Switch(config-smlk-group)# protected mstp instance 1
Switch(config-smlk-group)# protected mstp instance 2
Switch(config-smlk-group)# protected mstp instance 3
Switch(config-smlk-group)# load-balance instance 3
Switch(config-smlk-group)# restore time 40
Switch(config-smlk-group)# restore enable
Switch(config-smlk-group)# flush send control-vlan 10 password simple test
Switch(config-smlk-group)# group enable
Switch(config-smlk-group)# exit

 步骤6 取消smart link relay功能

Switch5 配置:

Switch(config)# no smart-link relay enable

 步骤7 退出配置模式

Switch(config)# end

 步骤8 检查配置

Switch1 显示结果:

Switch1# show smart-link group 1
Smart-link group 1 information:
The smart-link group was enabled.
============================================================
Auto-restore:
   state       time            count    Last-time
   enabled      40               0      N/A
============================================================
Protected instance: 1  2  3 
Load balance instance: 3 
Flush sender , Control-vlan ID: 10    Password:test
============================================================
INTERFACE:
Role   Member    DownCount Last-Down-Time  FlushCount Last-Flush-Time
MASTER eth-0-13    0       N/A                   0     N/A                 
SLAVE  eth-0-17    0       N/A                   0     N/A                 
============================================================
Instance states in the member interfaces:
   A - ACTIVE ,   B -BLOCK  , D-The interface is link-down
Map-instance-ID   MASTER(eth-0-13)    SLAVE(eth-0-17)
       1              A                  B
       2              A                  B
       3              B                  A

Switch2 显示结果:

Switch# show smart-link group 1
Smart-link group 1 information:
The smart-link group was enabled.
============================================================
Auto-restore:
   state       time            count    Last-time
   enabled      40               0      N/A
============================================================
Protected instance: 1  2  3 
Load balance instance: 3 
Flush sender , Control-vlan ID: 10    Password:test
============================================================
INTERFACE:
Role   Member    DownCount Last-Down-Time  FlushCount Last-Flush-Time
MASTER eth-0-13    0       N/A                   0     N/A                 
SLAVE  eth-0-17    0       N/A                   0     N/A                 
============================================================
Instance states in the member interfaces:
   A - ACTIVE ,   B -BLOCK  , D-The interface is link-down
Map-instance-ID   MASTER(eth-0-13)    SLAVE(eth-0-17)
       1              A                  B
       2              A                  B
       3              B                  A

Switch3 显示结果:

Switch# show smart-link
Relay smart-link flush packet is enabled
Smart-link flush receiver interface:
    eth-0-13   control-vlan:10   password:test
    eth-0-17   control-vlan:10   password:test
Smart-link received flush packet number:0
Smart-link processed flush packet number:0
Smart link Group Number is 0.

Switch4 显示结果:

Switch# show smart-link
Relay smart-link flush packet is enabled
Smart-link flush receiver interface:
    eth-0-13   control-vlan:10   password:test
    eth-0-17   control-vlan:10   password:test
Smart-link received flush packet number:0
Smart-link processed flush packet number:0
Smart link Group Number is 0.

Switch5 显示结果:

Switch# show smart-link
Relay smart-link flush packet is disabled
Smart-link flush receiver interface:
    eth-0-21   control-vlan:10   password: test
    eth-0-19   control-vlan:10   password:test
Smart-link received flush packet number:0
Smart-link processed flush packet number:0
Smart link Group Number is 0.

15.9.3 应用场景配置举例

15.10 Multi-Link配置

15.10.1 概述

15.10.1.1 功能简介

Multi-Link,中文译为多链路,又称为多备份链路,是一种为链路多上行提供可靠高效的备份和切换机制的解决方案。该计划功能和Smart Link类似,备份的链路从一条扩充为多条,最多可以有4个成员。

该功能还能提供链路负载均衡的功能。

15.10.1.2 原理描述

15.10.2 配置

Multi-Link Typical Topology

上面是一个Mulit-link的典型配置,交换机1配置Multi-link组;交换机2345配置Multi-link的报文接收。

下面的示例给出了Multi-Link链路多上行保护的配置。

注意事项:

Multi-Link组的控制vlan和保护vlan必须事先在 vlan database创建好。

Multi-Link组的端口必须把STP关闭。

Multi-Link组的保护实例必须事先在MSTP模块先创建好。

给每台交换机配置VLAN 2-10MSTP instance1-4

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式,并创建vlan

Switch(config)# vlan database
Switch(config- vlan)# vlan 2-10
Switch(config- vlan)# exit

 步骤3 设置STP模式,创建mstp实例

Switch(config)# spanning-tree mode mstp
Switch(config)# spanning-tree mst configuration
Switch(config-mst)# instance 1 vlan 1
Switch(config-mst)# instance 2 vlan 2
Switch(config-mst)# instance 3 vlan 3
Switch(config-mst)# instance 4 vlan 4-10
Switch(config-mst)# exit

 步骤4 进入接口配置模式,配置接口属性

Switch1 的接口配置:

Switch(config)# interface range eth-0-1 - 4
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan all
Switch(config-if)# spanning-tree port disable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch2 ~ 5 的接口配置:

Switch(config)# interface eth-0-13
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan all
Switch(config-if)# multi-link flush receive control-vlan 10 password simple test
Switch(config-if)# no shutdown
Switch(config-if)# exit

 步骤5 配置multi link组并设置组的属性

Switch1配置multi link组:

Switch(config)# multi-link group 1
Switch(config-multilk-group)# interface eth-0-1 priority 1
Switch(config-multilk-group)# interface eth-0-2 priority 2
Switch(config-multilk-group)# interface eth-0-3 priority 3
Switch(config-multilk-group)# interface eth-0-4 priority 4
Switch(config-multilk-group)# protected mstp instance 1
Switch(config-multilk-group)# protected mstp instance 2
Switch(config-multilk-group)# protected mstp instance 3
Switch(config-multilk-group)# protected mstp instance 4
Switch(config-multilk-group)# load-balance instance 2 priority 2
Switch(config-multilk-group)# load-balance instance 3 priority 3
Switch(config-multilk-group)# load-balance instance 4 priority 4
Switch(config-multilk-group)# restore time 40
Switch(config-multilk-group)# restore enable
Switch(config-multilk-group)# flush send control-vlan 10 password simple test
Switch(config-multilk-group)# group enable
Switch(config-multilk-group)# exit

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

Switch1 显示结果:

Switch# show multi-link group 1
Multi-link group 1 information:
The multi-link group was enabled.
============================================================
Auto-restore:
   state       time            count    Last-time
   enabled      40               0      N/A
============================================================
Protected instance: 1  2  3  4 
Load balance instance: 2(to P2)  3(to P3)  4(to P4) 
Flush sender , Control-vlan ID: 10    Password:test
============================================================
INTERFACE:
Role   Member    DownCount Last-Down-Time      FlushCount Last-Flush-Time
PRI1   eth-0-1   0         N/A                 1          2016/09/05,07:13:24 
PRI2   eth-0-2   0         N/A                 1          2016/09/05,07:13:24 
PRI3   eth-0-3   0         N/A                 1          2016/09/05,07:13:24 
PRI4   eth-0-4   0         N/A                 1          2016/09/05,07:13:24 
============================================================
Instance states in the member interfaces:
   A - ACTIVE ,   B -BLOCK  , D-The interface is link-down
Map-instance-ID  P1(eth-0-1 )  P2(eth-0-2 )  P3(eth-0-3 )  P4(eth-0-4 )
1                A             B             B             B
2                B             A             B             B
3                B             B             A             B
4                B             B             B             A

Switch2~5 显示结果:

Switch# show multi-link
Relay multi-link flush packet is enabled
Multi-link flush receiver interface:
    eth-0-13   control-vlan:10   password:test
Multi-link received flush packet number:0
Multi-link processed flush packet number:0
Multi-link tcn is disabled
Multi-link tcn query count    :2
Multi-link tcn query interval :10
Multi-link Group Number is 0.

15.10.3 应用场景配置举例

15.10.3.1 Multi-Link增强配置

当分布在不同交换机的两组multi-link 作相互链路备份时,会由于一方的multi-link 成员的保护实例被block 住而无法进行链路相互备份。 比如如下用户场景:

核心交换机A、核心交换机B、接入交换机A、接入交换机B形成全网状拓扑。

接入交换机A配置multi-link协议,链路abc优先级分别为123

接入交换机B配置multi-link协议,链路de优先级分别为12

正常情况下,链路bce处于block状态,链路ad处于active状态,如下图所示:

当接入交换机B链路de全部断掉后,仅余下链路c与接入交换机A连接,如下图所示:

此时,接入交换机A链路a处于active状态,接入交换机对应链路c的端口处于block状态,接入交换机B处于孤岛状态。

Multilink-enhance Typical Topology

上图是一个Mulit-link的典型配置,交换机1, 2均配置Multi-link组。Switch1 multi-link组里面配有三个成员 ,且优先级最低的成员为multi-link增强的接受口。Switch2 multi-link组里面配有两个成员,此外还配有multi-link增强的发送口。

下面的示例给出了Multi-Link链路多上行保护的配置。

注意事项:

Multi-Link组的控制vlan和保护vlan必须事先在 vlan database创建好。

Multi-Link组的端口必须把STP关闭。

Multi-Link组的保护实例必须事先在MSTP模块先创建好。

Multi-link 组中需要先配flush sendcontrol vlanpassword,然后才能配置multilink 增强

给每台交换机配置VLAN 10, 20, 30, 40MSTP instance1,2

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式,并创建vlan

Switch(config)# vlan database
Switch(config- vlan)# vlan 10
Switch(config- vlan)# vlan 20
Switch(config- vlan)# vlan 30
Switch(config- vlan)# vlan 40
Switch(config- vlan)# exit

 步骤3 设置STP模式,创建mstp实例

Switch(config)# spanning-tree mode mstp
Switch(config)# spanning-tree mst configuration
Switch(config-mst)# instance 1 vlan 10
Switch(config-mst)# instance 1 vlan 30
Switch(config-mst)# instance 2 vlan 20
Switch(config-mst)# instance 2 vlan 40
Switch(config-mst)# exit

 步骤4 进入接口配置模式,配置接口属性

Switch1 的接口配置:

Switch1(config)# interface range eth-0-9
Switch1(config-if)# switchport mode trunk
Switch1(config-if)# switchport trunk allowed vlan all
Switch1(config-if)# spanning-tree port disable
Switch1(config-if)# no shutdown
Switch1(config-if)# exit

Switch1(config)# interface range eth-0-13
Switch1(config-if)# switchport mode trunk
Switch1(config-if)# switchport trunk allowed vlan all
Switch1(config-if)# spanning-tree port disable
Switch1(config-if)# no shutdown
Switch1(config-if)# exit

Switch1(config)# interface range eth-0-17
Switch1(config-if)# switchport mode trunk
Switch1(config-if)# switchport trunk allowed vlan all
Switch1(config-if)# spanning-tree port disable
Switch1(config-if)# no shutdown
Switch1(config-if)# exit

Switch2 的接口配置:

Switch(config)# interface eth-0-13
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan all
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-17
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan all
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-9
Switch(config-if)# multi-link flush receive control-vlan 30 password simple a
Switch(config-if)#exit

Switch3 的接口配置:

Switch(config)# interface eth-0-13
Switch(config-if)# multi-link flush receive control-vlan 30 password simple a
Switch(config-if)#exit

Switch(config)# interface eth-0-17
Switch(config-if)# multi-link flush receive control-vlan 30 password simple b
Switch(config-if)#exit

Switch4 的接口配置:

Switch(config)# interface eth-0-13
Switch(config-if)# multi-link flush receive control-vlan 30 password simple b
Switch(config-if)#exit

Switch(config)# interface eth-0-17
Switch(config-if)# multi-link flush receive control-vlan 30 password simple a
Switch(config-if)#exit

 步骤5 配置multi link组并设置组的属性

Switch1 multi link组:

Switch(config)# multi-link group 1
Switch(config-multilk-group)# interface eth-0-13 priority 1
Switch(config-multilk-group)# interface eth-0-17 priority 2
Switch(config-multilk-group)# interface eth-0-9 priority 3
Switch(config-multilk-group)# protected mstp instance 1
Switch(config-multilk-group)# protected mstp instance 2
Switch(config-multilk-group)# flush send control-vlan 30 password simple a
Switch(config-multilk-group)# multilink-enhance receive control-vlan 10 password b interface eth-0-9
Switch(config-multilk-group)# group enable
Switch(config-multilk-group)# end

Switch2 multi link组:

Switch(config)# multi-link group 1
Switch(config-multilk-group)# interface eth-0-13 priority 1
Switch(config-multilk-group)# interface eth-0-17 priority 2
Switch(config-multilk-group)# protected mstp instance 1
Switch(config-multilk-group)# protected mstp instance 2
Switch(config-multilk-group)# flush send control-vlan 10 password simple b
Switch(config-multilk-group)# multilink-enhance interface eth-0-9
Switch(config-multilk-group)# group enable
Switch(config-multilk-group)# exit

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

Switch1 显示结果:

Switch1# show multi-link group 1
Multi-link group 1 information:
The multi-link group was enabled.
============================================================
Auto-restore:
   state       time            count     Last-time
   disabled    60              0         N/A
============================================================
Protected instance: 1  2 
Load balance instance:
Flush sender , Control-vlan ID: 30    Password: a
============================================================
INTERFACE:
Role   Member    DownCount Last-Down-Time      FlushCount Last-Flush-Time
PRI1   eth-0-13  0         N/A                 5          2017/05/15,07:50:11 
PRI2   eth-0-17  0         N/A                 0          N/A                 
PRI3   eth-0-9   1         2017/05/15,07:48:46 5          2017/05/15,07:50:11 
PRI4   N/A       0         N/A                 0          N/A                 
============================================================
Instance states in the member interfaces:
   A-ACTIVE ,    B-BLOCK ,  A(E)-ENHANCE_ACTIVE    D-The interface is link-down
Map-instance-ID  P1(eth-0-13)    P2(eth-0-17)    P3(eth-0-9)     P4(N/A)      
1                A               B               B               D
2                A               B               B               D

Switch# show multi-link
Relay multi-link flush packet is enabled
Multi-link enhance receiver interface:
    eth-0-9    control-vlan:10   password:b
Multi-link received flush packet number : 0
Multi-link processed flush packet number: 0
Multi-link received enhance packet number : 4
Multi-link processed enhance packet number: 4
Multi-link tcn is disabled
Multi-link tcn query count    : 2
Multi-link tcn query interval : 10
Multi-link Group Number is 1.
  Group-ID    State       Pri-1      Pri-2      Pri-3      Pri-4
  1           enabled     eth-0-13   eth-0-17   eth-0-9    N/A      

Switch2 显示结果:

Switch# show multi-link group1
Multi-link group 1 information:
The multi-link group was enabled.
============================================================
Auto-restore:
   state       time            count     Last-time
   disabled    60              0         N/A
============================================================
Protected instance: 1  2 
Load balance instance:
Flush sender , Control-vlan ID: 10    Password: b
Multilk enhance interface: eth-0-9, Control-vlan ID: 10  Password: b
============================================================
INTERFACE:
Role   Member    DownCount Last-Down-Time      FlushCount Last-Flush-Time
PRI1   eth-0-13  1         2017/05/15,07:49:15 0          N/A                 
PRI2   eth-0-17  2         2017/05/15,07:50:03 3          2017/05/15,07:50:11 
PRI3   N/A       0         N/A                 0          N/A                 
PRI4   N/A       0         N/A                 0          N/A                 
============================================================
ENHANCE INTERFACE:
Role   Member    DownCount Last-Down-Time      EnhanceCount Last-SendEnhance-Ti
me
M-En   eth-0-9   0         N/A                 0            N/A               
       
============================================================
Instance states in the member interfaces:
   A-ACTIVE ,    B-BLOCK ,  A(E)-ENHANCE_ACTIVE    D-The interface is link-down
Map-instance-ID  P1(eth-0-13)    P2(eth-0-17)    P3(N/A)         P4(N/A)      
1                A               B               D               D
2                A               B               D               D

Switch# show multi-link
Relay multi-link flush packet is enabled
Multi-link received flush packet number : 0
Multi-link processed flush packet number: 0
Multi-link received enhance packet number : 0
Multi-link processed enhance packet number: 0
Multi-link tcn is disabled
Multi-link tcn query count    : 2
Multi-link tcn query interval : 10
Multi-link Group Number is 1.
  Group-ID    State       Pri-1      Pri-2      Pri-3      Pri-4
  1           enabled     eth-0-13   eth-0-17   N/A        N/A

15.11 Monitor-Link配置

15.11.1 概述

15.11.1.1 功能简介

Monitor Link是对Smart Link进行补充而引入的端口联动方案,用于扩展Smart Link的链路备份的范围,通过监控上行链路对下行链路进行同步设置,达到上行链路故障迅速传达给下行设备,从而触发Smart Link的主备链路切换,防止长时间因上行链路故障而出现流量丢失。

15.11.1.2 原理描述

15.11.2 配置

monitor link

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,打开接口

Switch(config)# interface range eth-0-1 - 3
Switch(config-if-range)# no shutdown
Switch(config-if-range)# exit

 步骤3 配置monitor link组并设置组的属性

Switch(config)# monitor-link group 1
Switch(config-mtlk-group)# monitor-link uplink interface eth-0-1
Switch(config-mtlk-group)# monitor-link downlink interface eth-0-2
Switch(config-mtlk-group)# monitor-link downlink interface eth-0-3
Switch(config-mtlk-group)# exit

 步骤4 退出配置模式

Switch(config)# end

 步骤5 检查配置

Switch# show monitor-link group
Group Id: 1
Monitor link status: UP
Role     Member   Last-up-time     Last-down-time          upcount   downcount
UpLk 1  eth-0-1  2011/07/15,02:07:31  2011/07/15,02:07:31     2         1
DwLk 1  eth-0-2  2011/07/15,02:07:34  2011/07/15,02:07:31     1         1
DwLk 2  eth-0-3  N/A                      N/A                        0         0

15.11.3 应用场景配置举例

15.12 VRRP配置

15.12.1 概述

15.12.1.1 功能简介

通常,子网内的所有主机都设置一条相同的到网关的缺省路由。主机发出的所有目的地址不在本网段的报文将通过缺省路由发往网关,从而实现主机与外部网络的通信。当网关发生故障时,本网段内所有以网关为缺省路由的主机将中断与外部网络的通信。

缺省路由为用户的配置操作提供了方便,但是对缺省网关设备提出了很高的稳定性要求。增加出口网关是提高系统可靠性的常见方法,此时如何在多个出口之间进行选路就成为需要解决的问题。

VRRPVirtual Router Redundancy Protocol,虚拟路由器冗余协议)可以解决以上问题。在具有多播或广播能力的局域网(如以太网)中,借助VRRP 能在某台设备出现故障时仍然提供高可靠的缺省链路,而无需修改用户的配置信息。

VRRP 将局域网内的一组路由器(包括一个Master 路由器和若干个Backup 路由器)组成一个备份组,功能上相当于一台虚拟路由器。

VRRP 备份组具有以下特点:

局域网内的主机仅需要知道这个虚拟路由器的IP 地址,并将其设置为缺省路由的下一跳地址。

网络内的主机通过这个虚拟路由器与外部网络进行通信。

备份组内的路由器根据一定的选举机制,分别承担网关的功能。当备份组内承担网关功能的路由器发生故障时,其余的路由器将取代它继续履行网关职责。

 VRRP不支持MD5验证。

15.12.1.2 原理描述

参考: RFC 3768 (VRRP)Knight, S., et.al "Virtual Router Redundancy Protocol (VRRP)

术语

Backup RouterVRRP备份路由器。当Master路由器转发失败的时候启用备份路由器。

Critical IPVRRP路由器发送/接收一个特定的会话信息的IP地址。

IP Address OwnerVRRP路由器将虚拟路由器的IP地址作为真实的接口地址。当这台设备正常工作时,它会响应目的地址是虚拟IP地址的报文,如pingTCP连接等。

Master Router:拥有虚拟IP地址的路由器。此时它成为主机的默认网关,负责转发数据流。

Virtual IP:虚拟路由器的IP地址,一个虚拟路由器可以有一个IP地址,由用户配置。

Virtual Router:由VRRP管理的抽象设备,又称为VRRP备份组,被当作一个共享局域网内主机的缺省网关。它包括了一个虚拟路由器标识符和一个虚拟IP地址。

VRRP Router:运行VRRP的设备,它可能属于一个或多个虚拟路由器。

通常情况下,终端主机是通过将在同一个局域网内的路由器作为其第一个下一跳连接到企业网的。终端主机最常见的配置就是静态配置这个默认网关。这可以最大限度地减少配置和处理开销。此配置方法的主要问题是如果这第一跳路由器出问题,它会产生一个单点故障。

Without VRRP

虚拟路由器冗余协议试图通过引入一个虚拟路由器的概念来解决这个问题,它通常由在同一子网中的两个或两个以上的VRRP路由器组成。同时它还引入了一个虚拟IP地址的概念,终端主机使用这个IP作为它们的默认网关地址。只有主路由器负责转发数据包,在主路由器出现故障时,其他路由器(备份)中的一个代替主路由器负责转发。

With VRRP

上述配置概述可能不是非常有用,因为它的成本增加一倍,并且一台路由器在大部分时间都闲置。然而,我们可以创建两个虚拟路由器进行负载分担来避免这个问题。

15.12.2 配置

15.12.2.1 配置VRRP (一个虚拟路由器)

VRRP with one virtual router

主备备份方式表示业务仅由Master路由器承担。当Master路由器出现故障时,才会从其他Backup路由器选举出一个接替工作。主备备份方式仅需要一个备份组,不同路由器在该备份组中拥有不同优先级,优先级最高的路由器将成为Master路由器。

下面的例子中,所有的终端主机将虚拟路由器1作为其默认网关。路由器R1R2都运行了VRRP协议。 R1配置为虚拟路由器1VRID = 1)的主路由器, R2作为虚拟路由器1的备份路由器。如果R1出现问题,R2将接管转发,并为主机提供不间断的服务。这样的配置只有一个虚拟路由器,R2被闲置。

以下配置如未说明在哪个设备配置,则表示所有设备配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,设置接口属性并配置地址

R1 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.10.10.50/24
Switch(config-if)# no shutdown
Switch(config-if)# exit

R2 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.10.10.40/24
Switch(config-if)# no shutdown
Switch(config-if)# exit

 步骤3 创建vrrp实例

Switch(config)# router vrrp 1
Switch(config-router)# virtual-ip 10.10.10.60
Switch(config-router)# interface eth-0-1
Switch(config-router)# preempt-mode true
Switch(config-router)# advertisement-interval 5

 步骤4 设置优先级(可选)

R2配置。R1不配优先级则选用默认值

Switch(config-router)# priority 200

 步骤5 启用vrrp实例然后退出

Switch(config-router)# enable
Switch(config-router)# exit

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

R1 显示结果:

Switch# show vrrp
vrrp session count: 1
VRID <1>
State               : Backup
Virtual IP          : 10.10.10.60(Not IP owner)
Interface           : eth-0-1
VMAC                : 0000.5e00.0101
VRF                 : Default
Advt timer          : 5 second(s)
Preempt mode        : TRUE
Conf pri            : Unset          Run pri   : 100
Increased pri       : 0             
Master router ip    : 10.10.10.40
Master priority     : 200           
Master advt timer   : 5 second(s)
Master down timer   : 16 second(s)
Preempt delay       : 0 second(s)
Learn master mode   : FALSE  

R2 显示结果:

Switch# show vrrp
vrrp session count: 1
VRID <1>
State               : Master
Virtual IP          : 10.10.10.60(Not IP owner)
Interface           : eth-0-1
VMAC                : 0000.5e00.0101
VRF                 : Default
Advt timer          : 5 second(s)
Preempt mode        : TRUE
Conf pri            : 200            Run pri   : 200
Increased pri       : 0             
Master router ip    : 10.10.10.40
Master priority     : 200           
Master advt timer   : 5 second(s)
Master down timer   : 15 second(s)
Preempt delay       : 0 second(s)
Learn master mode   : FALSE

15.12.2.2 配置VRRP (两个虚拟路由器)

VRRP with two virtual router

在路由器的一个接口上可以创建多个备份组,使得该路由器可以在一个备份组中作为Master 路由器,在其他的备份组中作为Backup路由器。

负载分担方式是指多台路由器同时承担业务,因此负载分担方式需要两个或者两个以上的备份组,每个备份组都包括一个Master路由器和若干个Backup路由器,各备份组的Master路由器可以各不相同。

下面的例子讲述如何使用两个虚拟路由器进行负载分担。R1R2各自转发不同的流量,他们之间互为备份,确保流量的负载均衡。

以下配置如未说明在哪个设备配置,则表示所有设备配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,设置接口属性并配置地址

R1 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.10.10.81/24
Switch(config-if)# no shutdown
Switch(config-if)# exit

R2 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.10.10.82/24
Switch(config-if)# no shutdown
Switch(config-if)# exit

 步骤3 创建vrrp实例

R1配置:

Switch(config)# router vrrp 1
Switch(config-router)# virtual-ip 10.10.10.81
Switch(config-router)# interface eth-0-1
Switch(config-router)# preempt-mode true
Switch(config-router)# advertisement-interval 5
Switch(config-router)# enable
Switch(config-router)# exit

Switch(config)# router vrrp 2
Switch(config-router)# virtual-ip 10.10.10.82
Switch(config-router)# interface eth-0-1
Switch(config-router)# priority 200
Switch(config-router)# preempt-mode true
Switch(config-router)# advertisement-interval 5
Switch(config-router)# enable
Switch(config-router)# exit

R2配置:

Switch(config)# router vrrp 1
Switch(config-router)# virtual-ip 10.10.10.81
Switch(config-router)# interface eth-0-1
Switch(config-router)# priority 200
Switch(config-router)# preempt-mode true
Switch(config-router)# advertisement-interval 5
Switch(config-router)# enable
Switch(config-router)# exit

Switch(config)# router vrrp 2
Switch(config-router)# virtual-ip 10.10.10.82
Switch(config-router)# interface eth-0-1
Switch(config-router)# preempt-mode true
Switch(config-router)# advertisement-interval 5
Switch(config-router)# enable
Switch(config-router)# exit

 步骤4 退出配置模式

Switch(config)# end

 步骤5 检查配置

R1 显示结果:

Switch# show vrrp
vrrp session count: 2
VRID <1>
State               : Master
Virtual IP          : 10.10.10.81(IP owner)
Interface           : eth-0-9
VMAC                : 0000.5e00.0101
VRF                 : Default
Advt timer          : 5 second(s)
Preempt mode        : TRUE
Conf pri            : Unset          Run pri   : 255
Increased pri       : 0             
Master router ip    : 10.10.10.81
Master priority     : 255           
Master advt timer   : 5 second(s)
Master down timer   : 15 second(s)
Preempt delay       : 0 second(s)
Learn master mode   : FALSE
VRID <2>
State               : Backup
Virtual IP          : 10.10.10.82(Not IP owner)
Interface           : eth-0-9
VMAC                : 0000.5e00.0102
VRF                 : Default
Advt timer          : 5 second(s)
Preempt mode        : TRUE
Conf pri            : 200            Run pri   : 200
Increased pri       : 0             
Master router ip    : 10.10.10.82
Master priority     : 255           
Master advt timer   : 5 second(s)
Master down timer   : 15 second(s)
Preempt delay       : 0 second(s)
Learn master mode   : FALSE

R2 显示结果:

Switch# show vrrp
vrrp session count: 2
VRID <1>
State               : Backup
Virtual IP          : 10.10.10.81(Not IP owner)
Interface           : eth-0-9
VMAC                : 0000.5e00.0101
VRF                 : Default
Advt timer          : 5 second(s)
Preempt mode        : TRUE
Conf pri            : 200            Run pri   : 200
Increased pri       : 0             
Master router ip    : 10.10.10.81
Master priority     : 255           
Master advt timer   : 5 second(s)
Master down timer   : 15 second(s)
Preempt delay       : 0 second(s)
Learn master mode   : FALSE
VRID <2>
State               : Master
Virtual IP          : 10.10.10.82(IP owner)
Interface           : eth-0-9
VMAC                : 0000.5e00.0102
VRF                 : Default
Advt timer          : 5 second(s)
Preempt mode        : TRUE
Conf pri            : Unset          Run pri   : 255
Increased pri       : 0             
Master router ip    : 10.10.10.82
Master priority     : 255           
Master advt timer   : 5 second(s)
Master down timer   : 15 second(s)
Preempt delay       : 0 second(s)
Learn master mode   : FALSE

15.12.2.3 配置VRRP Circuit Failover

VRRP Circuit Failover

之所以需要VRRP链路故障检测功能,是由于VRRPv2无法跟踪网关上行链路状态。引入对上行链路的监控可以有效的驱动虚拟路由器的切换从而避免黑洞路由。当主路由器上行接口链路发生故障时,原来的master路由器将切换为backup路由器,而原来的backup路由器将接替成为master路由器。

为了实现VRRP链路故障检测功能,我们需要为监视的接口配置一个priority-delta值,这个值将被附加到master路由器上以实现VRRP路由器从masterbackup的切换。

在下面的例子中,两个路由器R1R2配置了不同的优先级值,priority-delta的配置要大于R1R2优先级之间的差值。R1配置有一个100的优先级,R2有一个90的优先级,由于R1优先级较高成为master路由器。priority-delta值配置为20,当在R1上的上行接口eth2发生故障,R1的优先级将变为8010020)。此时由于R2R1有更大的优先级,R2变成Master。当R1恢复时候,R1优先级为100,重新成为Master

以下配置如未说明在哪个设备配置,则表示所有设备配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,设置接口属性并配置地址

R1 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.10.10.50/24
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.10.11.50/24
Switch(config-if)# no shutdown
Switch(config-if)# exit

R2 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.10.10.40/24
Switch(config-if)# no shutdown
Switch(config-if)# exit

 步骤3 创建一个track实例,监视端口状态

R1配置:

Switch(config)# track 10 interface eth-0-2 linkstate

关于track的更多信息请参考“track配置章节。

 步骤3 创建vrrp实例

R1配置:

Switch(config)# router vrrp 1
Switch(config-router)# virtual-ip 10.10.10.1
Switch(config-router)# interface eth-0-1
Switch(config-router)# preempt-mode true
Switch(config-router)# advertisement-interval 5
Switch(config-router)# priority 100
Switch(config-router)# track 10 decrement 20
Switch(config-router)# enable

R2配置:

Switch(config)# router vrrp 1
Switch(config-router)# virtual-ip 10.10.10.1
Switch(config-router)# interface eth-0-1
Switch(config-router)# preempt-mode true
Switch(config-router)# advertisement-interval 5
Switch(config-router)# priority 90
Switch(config-router)# enable

 步骤7 退出配置模式

Switch(config)# end

 步骤8 检查配置

R1 显示结果:

Switch# show vrrp
vrrp session count: 1
VRID <1>
State               : Master
Virtual IP          : 10.10.10.1(Not IP owner)
Interface           : eth-0-9
VMAC                : 0000.5e00.0101
VRF                 : Default
Advt timer          : 5 second(s)
Preempt mode        : TRUE
Conf pri            : 100            Run pri   : 100
Increased pri       : 0             
Track Object        : 10
Decre pri           : 20
Master router ip    : 10.10.10.50
Master priority     : 100           
Master advt timer   : 5 second(s)
Master down timer   : 16 second(s)
Preempt delay       : 0 second(s)
Learn master mode   : FALSE

R2 显示结果:

Switch# show vrrp
vrrp session count: 1
VRID <1>
State               : Backup
Virtual IP          : 10.10.10.1(Not IP owner)
Interface           : eth-0-9
VMAC                : 0000.5e00.0101
VRF                 : Default
Advt timer          : 5 second(s)
Preempt mode        : TRUE
Conf pri            : 90             Run pri   : 90
Increased pri       : 0             
Master router ip    : 10.10.10.50
Master priority     : 100           
Master advt timer   : 5 second(s)
Master down timer   : 16 second(s)
Preempt delay       : 0 second(s)
Learn master mode   : FALSE

15.12.2.4 配置IPv6 VRRP(一个虚拟路由器)

IPv6 VRRP with one virtual router

主备备份方式表示业务仅由Master路由器承担。当Master路由器出现故障时,才会从其他Backup路由器选举出一个接替工作。主备备份方式仅需要一个备份组,不同路由器在该备份组中拥有不同优先级,优先级最高的路由器将成为Master路由器。

下面的例子中,所有的终端主机将虚拟路由器1作为其默认网关。路由器R1R2都运行了VRRP协议。 R1配置为虚拟路由器1VRID = 1)的主路由器, R2作为虚拟路由器1的备份路由器。如果R1出现问题,R2将接管转发,并为主机提供不间断的服务。这样的配置只有一个虚拟路由器,R2被闲置。

以下配置如未说明在哪个设备配置,则表示所有设备配置相同:

 步骤1 进入配置模式,使能IPv6

Switch# configure terminal
Switch(config)# ipv6 enable

 步骤2 进入接口配置模式,设置接口属性并配置地址

R1 的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address fe80::1 link-local
Switch(config-if)# no shutdown
Switch(config-if)# exit

R2 的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address fe80::2 link-local
Switch(config-if)# no shutdown
Switch(config-if)# exit

 步骤3 创建IPv6 VRRP实例

Switch(config)# router ipv6 vrrp 1
Switch(config-router)# virtual-ipv6 fe80::1 link-local
Switch(config-router)# interface eth-0-9

 步骤4 设置优先级(可选)

R1配置。R2不配优先级则选用默认值100

Switch(config-router)# priority 200

 步骤5 启用IPv6 VRRP实例,然后退出路由配置视图

Switch(config-router)# enable
Switch(config-router)# exit

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

R1 显示结果:

Switch# show ipv6 vrrp 1
VRID <1>
State               : Master
Virtual IP          : fe80::1(IP owner)
Interface           : eth-0-9
VMAC                : 0000.5e00.0201
VRF                 : Default
Advt timer          : 1 second(s)
Preempt mode        : TRUE
Conf pri            : 200            Run pri   : 255
Master router ip    : fe80::1
Master priority     : 255           
Master advt timer   : 100 centi-second(s)
Master down timer   : 3 second(s)
Preempt delay       : 0 second(s)

R2 显示结果:

Switch# show ipv6 vrrp 1
VRID <1>
State               : Backup
Virtual IP          : fe80::1(Not IP owner)
Interface           : eth-0-9
VMAC                : 0000.5e00.0201
VRF                 : Default
Advt timer          : 1 second(s)
Preempt mode        : TRUE
Conf pri            : Unset          Run pri   : 100
Master router ip    : fe80::1
Master priority     : 255           
Master advt timer   : 100 centi-second(s)
Master down timer   : 4 second(s)
Preempt delay       : 0 second(s)

15.12.2.5 配置IPv6 VRRP (两个虚拟路由器)

IPv6 VRRP with two virtual router

在路由器的一个接口上可以创建多个备份组,使得该路由器可以在一个备份组中作为Master 路由器,在其他的备份组中作为Backup路由器。

负载分担方式是指多台路由器同时承担业务,因此负载分担方式需要两个或者两个以上的备份组,每个备份组都包括一个Master路由器和若干个Backup路由器,各备份组的Master路由器可以各不相同。

下面的例子讲述如何使用两个虚拟路由器进行负载分担。R1R2各自转发不同的流量,他们之间互为备份,确保流量的负载均衡。

以下配置如未说明在哪个设备配置,则表示所有设备配置相同:

 步骤1 进入配置模式,使能IPv6

Switch# configure terminal
Switch(config)# ipv6 enable

 步骤2 进入接口配置模式,设置接口属性并配置地址

R1 的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2000::1/64
Switch(config-if)# no shutdown
Switch(config-if)# exit

R2 的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2000::2/64
Switch(config-if)# no shutdown
Switch(config-if)# exit

 步骤3 创建IPv6 VRRP实例

R1配置:

Switch(config)# router ipv6 vrrp 1
Switch(config-router)# interface eth-0-9
Switch(config-router)# priority 200
Switch(config-router)# virtual-ipv6 fe80::1 link-local
Switch(config-router)# virtual-ipv6 2000::1
Switch(config-router)# enable
Switch(config-router)# exit

Switch(config)# router ipv6 vrrp 2
Switch(config-router)# interface eth-0-9
Switch(config-router)# virtual-ipv6 fe80::3 link-local
Switch(config-router)# virtual-ipv6 2000::2
Switch(config-router)# enable
Switch(config-router)# exit

R2配置:

Switch(config)# router ipv6 vrrp 1
Switch(config-router)# interface eth-0-9
Switch(config-router)# virtual-ipv6 fe80::1 link-local
Switch(config-router)# virtual-ipv6 2000::1
Switch(config-router)# enable
Switch(config-router)# exit

Switch(config)# router vrrp 2
Switch(config-router)# interface eth-0-9
Switch(config-router)# priority 200
Switch(config-router)# virtual-ipv6 fe80::3 link-local
Switch(config-router)# virtual-ipv6 2000::2
Switch(config-router)# enable
Switch(config-router)# exit

 步骤4 退出配置模式

Switch(config)# end

 步骤5 检查配置

R1 显示结果:

Switch# show ipv6 vrrp
IPv6 vrrp session count: 2
VRID <1>
State               : Master
Virtual IP          : fe80::1(Not IP owner)
                       2000::1(IP owner)
Interface           : eth-0-9
VMAC                : 0000.5e00.0201
VRF                 : Default
Advt timer          : 1 second(s)
Preempt mode        : TRUE
Conf pri            : 200            Run pri   : 255
Master router ip    : fe80::48cc:69ff:fec8:5b00
Master priority     : 255           
Master advt timer   : 100 centi-second(s)
Master down timer   : 3 second(s)
Preempt delay       : 0 second(s)
VRID <2>
State               : Backup
Virtual IP          : fe80::3(Not IP owner)
                       2000::2(Not IP owner)
Interface           : eth-0-9
VMAC                : 0000.5e00.0202
VRF                 : Default
Advt timer          : 1 second(s)
Preempt mode        : TRUE
Conf pri            : Unset          Run pri   : 100
Master router ip    : fe80::b002:86ff:febc:3700
Master priority     : 255           
Master advt timer   : 100 centi-second(s)
Master down timer   : 4 second(s)
Preempt delay       : 0 second(s)

R2 显示结果:

Switch# show ipv6 vrrp
IPv6 vrrp session count: 2
VRID <1>
State               : Backup
Virtual IP          : fe80::1(Not IP owner)
                       2000::1(Not IP owner)
Interface           : eth-0-9
VMAC                : 0000.5e00.0201
VRF                 : Default
Advt timer          : 1 second(s)
Preempt mode        : TRUE
Conf pri            : Unset          Run pri   : 100
Master router ip    : fe80::48cc:69ff:fec8:5b00
Master priority     : 255           
Master advt timer   : 100 centi-second(s)
Master down timer   : 4 second(s)
Preempt delay       : 0 second(s)
VRID <2>
State               : Master
Virtual IP          : fe80::3(Not IP owner)
                       2000::2(IP owner)
Interface           : eth-0-9
VMAC                : 0000.5e00.0202
VRF                 : Default
Advt timer          : 1 second(s)
Preempt mode        : TRUE
Conf pri            : 200            Run pri   : 255
Master router ip    : fe80::b002:86ff:febc:3700
Master priority     : 255           
Master advt timer   : 100 centi-second(s)
Master down timer   : 3 second(s)
Preempt delay       : 0 second(s)
 

15.12.2.6 配置IPv6 VRRP Circuit Failover

IPv6 VRRP Circuit Failover

之所以需要VRRP链路故障检测功能,是由于VRRPv2无法跟踪网关上行链路状态。引入对上行链路的监控可以有效的驱动虚拟路由器的切换从而避免黑洞路由。当主路由器上行接口链路发生故障时,原来的master路由器将切换为backup路由器,而原来的backup路由器将接替成为master路由器。

为了实现VRRP链路故障检测功能,我们需要为监视的接口配置一个priority-delta值,这个值将被附加到master路由器上以实现VRRP路由器从masterbackup的切换。

在下面的例子中,两个路由器R1R2配置了不同的优先级值,priority-delta的配置要大于R1R2优先级之间的差值。R1配置有一个100的优先级,R2有一个90的优先级,由于R1优先级较高成为master路由器。priority-delta值配置为20,当在R1上的上行接口eth2发生故障,R1的优先级将变为8010020)。此时由于R2R1有更大的优先级,R2变成Master。当R1恢复时候,R1优先级为100,重新成为Master

以下配置如未说明在哪个设备配置,则表示所有设备配置相同:

 步骤1 进入配置模式,使能IPv6

Switch# configure terminal
Switch(config)# ipv6 enable

 步骤2 进入接口配置模式,设置接口属性并配置地址

R1 的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2000::1/64
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# exit

R2 的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2000::2/64
Switch(config-if)# no shutdown
Switch(config-if)# exit

 步骤3 创建一个track实例,监视端口状态

R1配置:

Switch(config)# track 10 interface eth-0-1 linkstate

关于track的更多信息请参考“track配置章节。

 步骤4 创建IPv6 VRRP实例

R1配置:

Switch(config)# router ipv6 vrrp 1
Switch(config-router)# interface eth-0-9
Switch(config-router)# virtual-ipv6 fe80::1 link-local
Switch(config-router)# virtual-ipv6 2000::3
Switch(config-router)# track 10 decrement 20
Switch(config-router)# enable

R2配置:

Switch(config)# router ipv6 vrrp 1
Switch(config-router)# interface eth-0-9
Switch(config-router)# priority 90
Switch(config-router)# virtual-ipv6 fe80::1 link-local
Switch(config-router)# virtual-ipv6 2000::3
Switch(config-router)# enable

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

R1 显示结果:

Switch# show ipv6 vrrp
IPv6 vrrp session count: 1
VRID <1>
State               : Master
Virtual IP          : fe80::1(Not IP owner)
                       2000::3(Not IP owner)
Interface           : eth-0-9
VMAC                : 0000.5e00.0201
VRF                 : Default
Advt timer          : 1 second(s)
Preempt mode        : TRUE
Conf pri            : Unset          Run pri   : 100
Track Object        : 10             Decre pri : 20
Master router ip    : fe80::48cc:69ff:fec8:5b00
Master priority     : 100           
Master advt timer   : 100 centi-second(s)
Master down timer   : 4 second(s)
Preempt delay       : 0 second(s)       

R2 显示结果:

Switch# show ipv6 vrrp
IPv6 vrrp session count: 1
VRID <1>
State               : Backup
Virtual IP          : fe80::1(Not IP owner)
                       2000::3(Not IP owner)
Interface           : eth-0-9
VMAC                : 0000.5e00.0201
VRF                 : Default
Advt timer          : 1 second(s)
Preempt mode        : TRUE
Conf pri            : 90             Run pri   : 90
Master router ip    : fe80::48cc:69ff:fec8:5b00
Master priority     : 100           
Master advt timer   : 100 centi-second(s)
Master down timer   : 4 second(s)
Preempt delay       : 0 second(s)

 步骤7 关闭R1端口eth-0-1,退出配置模式

Switch# configure terminal
Switch(config)# interface eth-0-1
Switch(config-if)# shutdown
Switch(config-if)# end

 步骤8 检查配置,R1变为备份路由器,R2变为主路由器

R1 显示结果:

Switch# show ipv6 vrrp
IPv6 vrrp session count: 1
VRID <1>
State               : Backup
Virtual IP          : fe80::1(Not IP owner)
                       2000::3(Not IP owner)
Interface           : eth-0-9
VMAC                : 0000.5e00.0201
VRF                 : Default
Advt timer          : 1 second(s)
Preempt mode        : TRUE
Conf pri            : Unset          Run pri   : 80
Track Object        : 10             Decre pri : 20
Master router ip    : fe80::b002:86ff:febc:3700
Master priority     : 90            
Master advt timer   : 100 centi-second(s)
Master down timer   : 4 second(s)
Preempt delay       : 0 second(s)

R2 显示结果:

Switch# show ipv6 vrrp
IPv6 vrrp session count: 1
VRID <1>
State               : Master
Virtual IP          : fe80::1(Not IP owner)
                       2000::3(Not IP owner)
Interface           : eth-0-9
VMAC                : 0000.5e00.0201
VRF                 : Default
Advt timer          : 1 second(s)
Preempt mode        : TRUE
Conf pri            : 90             Run pri   : 90
Master router ip    : fe80::b002:86ff:febc:3700
Master priority     : 90            
Master advt timer   : 100 centi-second(s)
Master down timer   : 4 second(s)
Preempt delay       : 0 second(s)

15.12.3 应用场景配置举例

15.13 Track配置

15.13.1 概述

15.13.1.1 功能简介

Track的用以实现应用模块和监测功能模块之间的联动。构建一个应用模块--Track--监测功能的层次结构。Track可以屏蔽不同监测功能的差异,为应用模块提供统一的接口。

目前支持的监测功能有:

IP SLA

监测interface 状态

监测bfd状态

支持的应用模块有:

静态路由

VRRP

Track联结了监测功能和应用模块,当监测模块感知到链路状态、网络性能等发生变化以后,Track的状态发生变化,同时通知应用模块采取相应的处理,避免网络中断。

15.13.1.2 原理描述

15.13.2 配置

15.13.2.1 配置VRF接口的IP SLA

IP SLA

IP SLA (Service Level Agreement) 是一种通过动态监测来实施网络性能的测量和诊断工具。动态监测是指在交换机中, 用ping的方式,来衡量网络是否连通和网络的性能。每一个IP SLA操作均维护其各自操作时生成的一个返回值。这个返回值将会被tracking进程所中断。返回值可以是OK,超过阈值,还有其他返回代码。不同的操作可以有不同的返回值。因此在系统中, 只使用那些对于所有操作类型来说共通的返回值。在IPSLA中,我们可以通过使用ICMP echo来检查状态或路由的可达性。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建vrf条目

Switch(config)# ip vrf vpn1
Switch(config-vrf)# exit

 步骤3 进入接口配置模式,配置接口属性

Switch1 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip vrf forwarding vpn1
Switch(config-if)# ip address 192.168.0.2/24
Switch(config-if)# exit

Switch2 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip vrf forwarding vpn1
Switch(config-if)# ip address 192.168.0.1/24
Switch(config-if)# exit

 步骤4 创建ip sla条目并配置其属性

Switch1配置:

Switch(config)# ip sla monitor 1
Switch(config-ipsla)# type icmp-echo 192.168.0.1
Switch(config-ipsla)# frequency 35
Switch(config-ipsla)# timeout 6
Switch(config-ipsla)# threshold 3000
Switch(config-ipsla)# ttl 65
Switch(config-ipsla)# tos 1
Switch(config-ipsla)# data-size 29
Switch(config-ipsla)# data-pattern abababab
Switch(config-ipsla)# fail-percent 90
Switch(config-ipsla)# packets-per-test 4
Switch(config-ipsla)# interval 9
Switch(config-ipsla)# statistics packet 10
Switch(config-ipsla)# statistics test 3
Switch(config-ipsla)# vrf vpn1
Switch(config-ipsla)# exit

ip sla的部分属性:

frequency:两次探测之间的时间间隔,范围1-4800,默认值60,单位为秒。

timeouticmp报文超时时间,范围1-4800,默认值5,单位为秒。

threshold: icmp报文等待阈值,范围1-4800000,默认值5000,单位为毫秒。

packets-per-test:每次探测发送的报文个数,范围1-10,默认值3

interval:一次探测中每个报文的间隔时间,范围1-4800,默认值6,单位为秒。

statistics packet:参与计算统计数据的报文数,范围0-1000,默认50

statistics test 3:参与计算统计数据的探测次数,范围1-10,默认5

 步骤5 启用ip sla功能

Switch1配置:

Switch(config)# ip sla monitor schedule 1

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

Switch1 显示结果:

Switch# sho ip sla monitor 1
Entry 1
Type                 : Echo
Admin state          : Disable
Destination address  : 192.168.0.1
Frequency            : 35s
Timeout              : 6s
Threshold            : 3000ms
Interval             : 9s
Packet per test      : 4
TTL                  : 65
TOS                  : 1
Data Size            : 29 bytes
Fail Percent         : 90%
Packet Item Cnt      : 10
Test Item Cnt        : 3
Vrf                  : vpn1
Return code          : Unknown

15.13.2.2 配置三层接口的IP SLA

IP SLA

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性

Switch1 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 192.168.0.2/24
Switch(config-if)# exit

Switch2 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 192.168.0.1/24
Switch(config-if)# exit

 步骤3 创建ip sla条目并配置其属性

Switch1配置:

Switch(config)# ip sla monitor 1
Switch(config-ipsla)# type icmp-echo  192.168.0.1
Switch(config-ipsla)# frequency 10
Switch(config-ipsla)# timeout 5
Switch(config-ipsla)# exit

 步骤4 启用ip sla功能

Switch1配置:

Switch(config)# ip sla monitor schedule 1

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

Switch1 显示结果:

Switch# show ip sla monitor
Entry 1
    Type                        : Echo
    Admin state                 : Enable
    Destination address         : 192.168.0.1
    Frequency                   : 10 seconds
    Timeout                     : 5 seconds
    Threshold                   : 5 seconds
    Running Frequency           : 8 seconds
Return code                     : OK

Switch# ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=0.846 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=0.643 ms
64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=0.978 ms
64 bytes from 192.168.0.1: icmp_seq=4 ttl=64 time=0.640 ms
64 bytes from 192.168.0.1: icmp_seq=5 ttl=64 time=0.704 ms

Switch2eth-0-1关掉:

Switch(config)# interface eth-0-1
Switch(config-if)# shutdown

再次查看Switch1 显示结果:

Switch# show ip sla monitor
Entry 1
    Type                            : Echo
    Admin state                     : Enable
    Destination address             : 192.168.0.1
    Frequency                       : 10 seconds
    Timeout                         : 5 seconds
    Threshold                       : 5 seconds
    Running Frequency               : 9 seconds
    Running Timeout                 : 4 seconds
    Running Threshold               : 4 seconds
Return code                         : Timeout

15.13.2.3 配置静态路由出端口上的IP SLA

IP SLA

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性

Switch1 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 192.168.0.2/24n
Switch(config-if)# exit

Switch2 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 192.168.0.1/24
Switch(config-if)# exit

Switch(config)# interface loopback 1
Switch(config-if)# ip address 1.1.1.1/32
Switch(config-if)# exit

 步骤3 创建ip sla条目并配置其属性

Switch1配置:

Switch(config)# ip sla monitor 2
Switch(config-ipsla)# type icmp-echo 1.1.1.1
Switch(config-ipsla)# frequency 10
Switch(config-ipsla)# timeout 5
Switch(config-ipsla)# exit

 步骤4 启用ip sla功能

Switch1配置:

Switch(config)# ip sla monitor schedule 2

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

Switch1 显示结果:

Switch# show ip sla monitor 2
Entry 2
    Type                        : Echo
    Admin state                     : Enable
    Destination address             : 1.1.1.1
    Frequency                   : 10 seconds
    Timeout                     : 5 seconds
    Threshold                       : 5 seconds
    Running Frequency               : 1 seconds
    Return code                     : Unreachable
Switch# ping 1.1.1.1
connect: Network is unreachable

Switch1创建一条路由:

Switch#configure terminal
Switch(config)# ip route 1.1.1.1/32 192.168.0.1
Switch(config)# end

再次查看状态:

Switch# ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
64 bytes from 1.1.1.1: icmp_seq=1 ttl=64 time=1.03 ms
64 bytes from 1.1.1.1: icmp_seq=2 ttl=64 time=1.63 ms
64 bytes from 1.1.1.1: icmp_seq=3 ttl=64 time=0.661 ms
64 bytes from 1.1.1.1: icmp_seq=4 ttl=64 time=0.762 ms
64 bytes from 1.1.1.1: icmp_seq=5 ttl=64 time=0.942 ms


Entry 2
    Type                            : Echo
    Admin state                     : Enable
    Destination address             : 1.1.1.1
    Frequency                       : 10 seconds
    Timeout                         : 5 seconds
    Threshold                       : 5 seconds
    Running Frequency               : 8 seconds
    Return code                     : OK

15.13.2.4 配置track,监测interface状态

Track interface

VRRP 的监视接口功能更好地扩充了备份功能:不仅能在备份组中某路由器的接口出现故障时提供备份功能,还能在路由器的其它接口(如连接上行链路的接口)不可用时提供备份功能。路由器连接上行链路的接口出现故障时,备份组无法感知上行链路的故障,如果该路由器此时处于Master 状态,将会导致局域网内的主机无法访问外部网络。通过监视指定接口的功能,可以解决该问题。当连接上行链路的接口处于down 状态时,路由器主动降低自己的优先级,使得备份组内其它路由器的优先级高于这个路由器,以便优先级最高的路由器成为Master,承担转发任务。

以下配置在Master进行:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 创建track 并设置其属性

Switch(config)# track 1 interface eth-0-1 linkstate
Switch(config-track)# delay up 30
Switch(config-track)# delay down 30
Switch(config-track)# exit

Track 的部分参数:

delay up:当监测到端口状态恢复了,track延迟一段时间再将自己的状态恢复到up。范围1-180,单位是秒。默认不设delay up,即track状态立即更新。

delay down:当监测到端口不通,track延迟一段时间再将自己的状态设为down。范围1-180,单位是秒。默认不设delay down,即track状态立即更新。

当监测是通过bfdip sla的时候,delay updelay down的意义与上述监测interface的情况也是相同的。

 步骤3 退出配置模式

Switch(config)# end

 步骤4 检查配置

Switch#show track
Track 2
    Type                    : Interface Link state
    Interface              : eth-0-1
    State                   : down
    Delay up               : 30 seconds
Delay down                 : 30 seconds

15.13.2.5 配置track,监测ip sla 连通性

Track ip sla

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性

Switch1 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 192.168.0.2/24

Switch2 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 192.168.0.1/24

 步骤3 创建ip sla并使能

Switch1 配置:

Switch(config)# ip sla monitor 1
Switch(config-ipsla)# type icmp-echo  192.168.0.1
Switch(config-ipsla)# frequency 10
Switch(config-ipsla)# timeout 5
Switch(config-ipsla)# threshold 1
Switch(config-ipsla)# exit
Switch(config)# ip sla monitor schedule 1

 步骤4 创建track 并设置其属性

Switch1 配置:

Switch(config)# track 1 rtr 1 reachability
Switch(config-track)# delay up 30
Switch(config-track)# delay down 30
Switch(config-track)#exit

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

Switch#show track
Track 1
    Type                   : Response Time Reporter(RTR) Reachability
    RTR entry number     : 1
    State                  : up
    Delay up              : 30 seconds
Delay down                : 30 seconds

15.13.2.6 配置track,监测ip sla状态

Track ip sla

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性

Switch1 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 192.168.0.2/24

Switch2 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 192.168.0.1/24

 步骤3 创建ip sla并使能

Switch1 配置:

Switch(config)# ip sla monitor 1
Switch(config-ipsla)# type icmp-echo  192.168.0.1
Switch(config-ipsla)# frequency 10
Switch(config-ipsla)# timeout 5
Switch(config-ipsla)# threshold 1
Switch(config-ipsla)# exit
Switch(config)# ip sla monitor schedule 1

 步骤4 创建track 并设置其属性

Switch1 配置:

Switch(config)# track 1 rtr 1 state
Switch(config-track)# delay up 30
Switch(config-track)# delay down 30
Switch(config-track)#exit

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

Switch# show track
Track 1
    Type                   : Response Time Reporter(RTR) State
    RTR entry number     : 1
    State                  : up
    Delay up              : 30 seconds
Delay down                : 30 seconds

15.13.2.7 配置track bfd

Track bfd

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性

Switch1 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 9.9.9.1/24
Switch(config-if)# quit

Switch2 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 9.9.9.2/24
Switch(config-if)# quit

 步骤4 创建track 并设置其属性

Switch1 配置:

Switch(config)# track 1 bfd source interface eth-0-1 destination 9.9.9.2
Switch(config-track)# delay up 30
Switch(config-track)# delay down 30
Switch(config-track)# exit

Switch2 配置:

Switch(config)# track 1 bfd source interface eth-0-1 destination 9.9.9.1
Switch(config-track)# delay up 30
Switch(config-track)# delay down 30
Switch(config-track)# exit

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

Switch1 显示结果:

Switch #show track
Track 1
    Type                : BFD state
    Source interface    : eth-0-1
    Destination IP      : 9.9.9.2
    BFD Local discr     : 1
    State               : up

Switch2 显示结果:

Switch # show track
Track 1
    Type                : BFD state
    Source interface    : eth-0-1
    Destination IP      : 9.9.9.1
    BFD Local discr     : 1
    State               : up

15.13.2.8 配置VRRP track

VRRP Track

 步骤1 检查当前配置

参考VRRP章节配置VRRP (一个虚拟路由器)”段落。

R1 配置显示如下:

interface eth-0-1
no switchport
ip address 10.10.10.50/24
!
router vrrp 1
interface eth-0-1
virtual-ip 10.10.10.60
advertisement-interval 5
enable

R2 配置显示如下:

interface eth-0-1
no switchport
ip address 10.10.10.40/24
!
router vrrp 1
interface eth-0-1
priority 200
virtual-ip 10.10.10.60
advertisement-interval 5
enable

 步骤2 创建track 并设置其属性

R1 配置track

绑定端口状态

Switch(config)# track 1 interface eth-0-1 linkstate
Switch(config-track)# exit

或者绑定cfm状态(cfm配置参考配置cfm”章节)

Switch(config)# track 1 cfm domain cust service cst
Switch(config-track)# exit

注:如果希望关注CCM报文中RDI的状态,可以使用以下指令

Switch(config)# track 1 cfm domain cust service cst rdi-trigger

 步骤3 vrrp中应用track

R1 应用track

Switch(config)# router vrrp 1
Switch(config-router)# disable
Switch(config-router)# track 1 decrement 30
Switch(config-router)# enable

 步骤4 检查配置

Switch1 显示结果:

Switch# show vrrp
vrrp session count: 1
VRID <1>
State               : Backup
Virtual IP          : 10.10.10.60(Not IP owner)
Interface           : eth-0-9
VMAC                : 0000.5e00.0101
VRF                 : Default
Advt timer          : 5 second(s)
Preempt mode        : TRUE
Conf pri            : Unset          Run pri   : 100
Increased pri       : 0             
Track Object        : 1
Decre pri           : 30
Master router ip    : 10.10.10.40
Master priority     : 200           
Master advt timer   : 5 second(s)
Master down timer   : 16 second(s)
Preempt delay       : 0 second(s)
Learn master mode   : FALSE
BFD session state   : UNSET         

15.13.2.9 配置静态路由 TRACK

Static Route Track

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性

Switch1 的接口配置:

Switch(config)#interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 192.168.1.10/24
Switch(config-if)# exit

Switch2 的接口配置:

Switch(config)#interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 192.168.1.11/24
Switch(config-if)# exit

 步骤3 创建ip sla并使能

Switch1 配置:

Switch(config)# ip sla monitor 1
Switch(config-ipsla)# type icmp-echo 192.168.1.11
Switch(config-ipsla)# exit
Switch(config)# ip sla monitor schedule 1

 步骤4 创建track 并设置其属性

Switch1 配置:

Switch(config)# track 1 rtr 1 reachability
Switch(config-track)# exit

 步骤5 创建静态路由并绑定track

Switch(config)#ip route 10.10.10.0/24 192.168.1.11 track 1

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

Switch1 显示结果:

Switch# show ip sla monitor 1
Entry 1
    Type                 : Echo
    Admin state          : Enable
    Destination address  : 192.168.1.11
    Frequency            : 60 seconds
    Timeout              : 5 seconds
    Threshold            : 5 seconds
    Running Frequency    : 49 seconds
Return code          : OK

Switch# show track 1
Track 1
    Type                : Response Time Reporter(RTR) Reachability
    RTR entry number    : 1
    State               : up
Switch# show ip route static
S        10.10.10.0/24 [1/0] via 192.168.1.11, eth-0-1

Switch2eth-0-1关掉:

Switch(config)# interface eth-0-1
Switch(config-if)# shutdown

再次查看Switch1 显示结果:

Switch# show ip sla monitor 1
Entry 1
    Type                 : Echo
    Admin state          : Enable
    Destination address  : 192.168.1.11
    Frequency            : 60 seconds
    Timeout              : 5 seconds
    Threshold            : 5 seconds
    Running Frequency    : 8 seconds
Return code          : Timeout
Switch# show track 1
Track 1
    Type                : Response Time Reporter(RTR) Reachability
    RTR entry number    : 1
    State               : down
Switch# show ip route static
Switch#

15.13.3 应用场景配置举例

15.14 IP BFD配置

15.14.1 概述

15.14.1.1 功能简介

随着对网络的可靠性要求越来越高,快速寻找、切换到备份链路保证网络通畅也显得越来越重要。但是对于很多硬件或者软件无法提供这个功能,比如以太网。还有一些无法实现路径检测,比如转发引擎或者接口等,无法实现端到端的检测。

目前的网络一般采用慢Hello机制,尤其在路由协议中,在没有硬件帮助下,检测时间会很长。当数据速率越来越大,故障感应时间长代表着大量数据的丢失,并且对于不允许路由协议的节点没有办法检测链路的状态。同时,在现有的IP网络中并不具备秒以下的间歇性故障修复功能,而传统路由架构在对实时应用(如语音)进行准确故障检测方面能力有限。

BFD(双向链路检测),提出了一种轻载的、快速的链路状态检测的解决方案。BFD能够在系统之间的任何类型通道上进行故障检测,这些通道包括直接的物理链路、虚电路、隧道、MPLS LSP、多跳路由通道,以及非直接的通道。

当物理口上配置了CFMmep并且使能了LM, 同时,IP BFD配置在vlan interface 上且该物理口是vlan interface member, IP BFD无法正常工作。当LM关闭后,IP BFD应可以正常工作。

15.14.1.2 原理描述

参考 RFC 5880 Bidirectional Forwarding Detection (BFD)

15.14.2 配置

15.14.2.1 配置BFD单跳

BFD 单跳

这个拓扑包含3BFD会话,其中一条基于静态配置且绑定静态路由,一条基于OSPF,一条是bfd vrrp联动的。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性

Switch1 的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 9.9.9.1/24
Switch(config-if)# bfd interval mintx 3 minrx 3 multiplier 3
Switch(config-if)# exit

Switch(config)# interface eth-0-10
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 10.10.10.1/24
Switch(config-if)# bfd interval mintx 3 minrx 3 multiplier 3

Switch(config)# interface eth-0-11
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 11.11.11.1/24
Switch(config-if)# exit

Switch2 的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 9.9.9.2/24
Switch(config-if)# bfd interval mintx 3 minrx 3 multiplier 3
Switch(config-if)# exit

Switch(config)# interface eth-0-10
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 10.10.10.2/24
Switch(config-if)# bfd interval mintx 3 minrx 3 multiplier 3
Switch(config-if)# ip ospf bfd
Switch(config-if)# exit

Switch(config)# interface eth-0-11
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 11.11.11.2/24
Switch(config-if)# exit

Switch3 的接口配置:

Switch(config)# interface eth-0-11
Switch(config-if)# no shutdown
Switch(config-if)#exit

Switch(config)# interface eth-0-12
Switch(config-if)# no shutdown
Switch(config-if)#exit

 步骤3 配置ospf

Switch1配置:

Switch(config)# router ospf
Switch(config-router)# network 10.10.10.0/24 area 0
Switch(config-router)# exit

Switch2配置:

Switch(config)# router ospf
Switch(config-router)# network 10.10.10.0/24 area 0
Switch(config-router)# exit

 步骤4 配置VRRP

Switch1配置:

Switch(config)#router vrrp 1
Switch(config-router)#virtual-ip 11.11.11.100
Switch(config-router)# priority 120
Switch(config-router)#interface eth-0-11
Switch(config-router)# enable
Switch(config-router)# exit

Switch2配置:

switch(config)#bfd test peer-ip 11.11.11.1 interface eth-0-11 auto
switch(config)#track 1 bfd session test
Switch(config)#router vrrp 1
Switch(config-router)#virtual-ip 11.11.11.100
Switch(config-router)# priority 100
Switch(config-router)#interface eth-0-11
Switch(config-router)# track 1 increment 50
Switch(config-router)# enable
Switch(config-router)# exit

 步骤5 配置静态路由

Switch1配置:

Switch(config)# bfd test peer-ip 9.9.9.2 interface eth-0-9 auto
Switch(config)# ip route 1.1.1.0/24 9.9.9.2 bind bfd test

Switch2配置:

Switch(config)# bfd test peer-ip 9.9.9.1 interface eth-0-9 auto
Switch(config)# ip route 2.2.2.0/24 9.9.9.1 bind bfd test

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

Switch1 显示结果:

Switch# show bfd session
abbreviation:
LD: local Discriminator.    RD: Discriminator
S: single hop session.    M: multi hop session.
SD: Static Discriminator.  DD: Dynamic Discriminator
A: Admin down.    D:down.    I:init.    U:up.
======================================================
LD   RD   TYPE ST   UP-Time    Remote-Addr      vrf
1    1    S-DD U    00:01:05   9.9.9.2        default
2    2    S-DD U    00:00:25   10.10.10.2     default
Number of Sessions:    2

Switch2 显示结果:

Switch# show bfd session
abbreviation:
LD: local Discriminator.    RD: Discriminator
S: single hop session.    M: multi hop session.
SD: Static Discriminator.  DD: Dynamic Discriminator
A: Admin down.    D:down.    I:init.    U:up.
======================================================
LD   RD   TYPE ST   UP-Time    Remote-Addr        vrf
1    1    S-DD    U    00:01:27   9.9.9.1       default  
2    2    S-DD    U    00:00:46   10.10.10.1    default
3    3    S-DD    U    00:00:25   11.11.11.1    default
Number of Sessions:    3

15.14.2.2 配置BFD多跳

BFD 多跳

这个拓扑包含静态配置的多跳bfd会话且绑定静态路由。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性

Switch1 的接口配置:

Switch(config)# interface eth-0-11
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 11.11.11.1/24
Switch(config-if)# exit

Switch3 的接口配置:

Switch(config)# interface eth-0-11
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 11.11.11.2/24
Switch(config-if)# exit

Switch(config)#interface eth-0-12
Switch(config-if)#no switchport
Switch(config-if)#no shutdown
Switch(config-if)#ip address 12.12.12.1/24
Switch(config-if)#exit

Switch2 的接口配置:

Switch(config)# interface eth-0-12
Switch(config-if)#no switchport
Switch(config-if)#no shutdown
Switch(config-if)#ip address 12.12.12.2/24
Switch(config-if)#exit

 步骤3 配置静态路由

Switch1配置:

Switch1(config)#ip route 12.12.12.2/24 11.11.11.2
Switch1(config)# bfd test peer-ip 12.12.12.2 source-ip 11.11.11.1 local 10 remote 20
Switch1(config)# ip route 192.168.1.1/24 12.12.12.2 bind bfd test

switc2配置:

Switch3(config)#ip route 11.11.11.1/24 12.12.12.1
Switch3(config)#bfd test peer-ip 11.11.11.1 source-ip 12.12.12.2 local 20 remote 10
Switch3(config)#ip route 2.2.2.2/24 11.11.11.1 bind bfd test

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

Switch1 显示结果:

Switch# show bfd session
abbreviation:
LD: local Discriminator.    RD: Discriminator
S: single hop session.    M: multi hop session.
SD: Static Discriminator.  DD: Dynamic Discriminator
A: Admin down.    D:down.    I:init.    U:up.
======================================================
LD   RD   TYPE ST   UP-Time    Remote-Addr      vrf
10   20   S-SD U    00:01:27   12.12.12.2       default  

Switch2 显示结果:

Switch# show bfd session
abbreviation:
LD: local Discriminator.    RD: Discriminator
S: single hop session.    M: multi hop session.
SD: Static Discriminator.  DD: Dynamic Discriminator
A: Admin down.    D:down.    I:init.    U:up.
======================================================
LD   RD   TYPE ST   UP-Time    Remote-Addr      vrf
20   10   S-SD U    00:01:27   11.11.11.1       default

15.14.3 应用场景配置举例

15.15 VARP配置

15.15.1 概述

15.15.1.1 功能简介

虚拟ARP允许多台交换机根据相同的目的MAC地址同时路由报文。每台交换机都会配置相同的虚拟MAC地址,该虚拟MAC地址作为三层接口上虚拟ip地址的对应MAC地址。因为虚拟ARP工作在双活模式,并且没有额外的开销,所以在MLAG的应用环境中优于VRRP.

对于虚拟IP地址的ARPGARP请求, 虚拟ARP将会使用虚拟MAC地址回复对应请求。交换机主动发出报文时,不会使用虚拟MAC地址作为报文的源MAC地址。

15.15.1.2 原理描述

15.15.2 配置

VARP with MALG

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置虚拟MAC 地址

Switch(config)# ip virtual-router mac a.a.a

 步骤3 进入vlan配置模式,并创建vlan

Switch(config)# vlan database
Switch(config-vlan)# vlan 2
Switch(config-vlan)# exit

 步骤4 进入接口配置模式,设置接口属性

Switch(config)# interface eth-0-11
Switch(config-if)# switchport access vlan 2
Switch(config-if)# no shutdown
Switch(config-if)# exit

 步骤5 配置三层接口属性,指定virtual router的地址

Switch1配置:

Switch(config)# interface vlan 2
Switch(config-if)# ip address 10.10.10.1/24
Switch(config-if)# ip virtual-router address 10.10.10.254
Switch(config-if)# exit

Switch2配置:

Switch2(config-if)# interface vlan 2
Switch2(config-if)# ip address 10.10.10.2/24
Switch2(config-if)# ip virtual-router address 10.10.10.254
Switch(config-if)# exit

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

Switch1 显示结果:

Switch# show ip arp
Protocol    Address          Age (min)  Hardware Addr   Interface
Internet    10.10.10.1              -   cef0.12da.8100  vlan2    
Internet    10.10.10.254            -   000a.000a.000a  vlan2 

Switch1 显示结果:

Switch#  show ip arp
Protocol    Address          Age (min)  Hardware Addr   Interface
Internet    10.10.10.2              -   66d1.4c26.e100  vlan2    
Internet    10.10.10.254            -   000a.000a.000a  vlan2    

15.15.3 应用场景配置举例

15.16 UDP Helper 配置

15.16.1 概述

15.16.1.1 功能简介

本章描述如何配置UDP Helper

UDP Helper的主要功能是实现对IP广播报文中指定的UDP报文进行中继转发,即它能将IP广播报文中指定的UDP报文转换成单播报文发送给指定的服务器,起到一个中继的作用。

设备将接收到的所有广播UDP报文上送UDP模块处理。在使能UDP Helper功能后,设备会对接收到广播UDP报文的目的端口号作一个判断,对于目的端口号与UDP Helper配置的端口号相匹配的报文,将复制一份交由UDP Helper进行中继转发处理,修改其报文头的目的IP地址,发给指定的目的服务器。

UDP-Helper配置

系统默认支持的的6UDP端口号: | 协议 | UDP目的端口号 | |DNS (Domain Name System) | 53 | |NetBIOS-DS (NetBIOS Datagram Service) | 138 | |NetBIOS-NS (NetBIOS Name Service) | 137 | |TACACS (Terminal Access Controller Access Control System) | 49 | |TFTP (Trivial File Transfer Protocol) | 69 | |Time Service | 37 |

15.16.1.2 原理描述

15.16.2 配置

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 使能UDP Helper

Switch(config)# ip udp-helper enable

 步骤3 端口上配置IP地址以及UDP Helper Server地址

Switch(config)# vlan database
Switch(config-vlan)# vlan 10,20
Switch(config-vlan)# exit
Switch(config)# interface eth-0-1
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 20
Switch(config-if)# exit
Switch(config)# interface eth-0-2
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 10
Switch(config-if)# exit
Switch(config)# interface vlan 20
Switch(config-if)# ip address 10.110.1.1/24
Switch(config-if)# ip udp-helper server 10.10.1.1
Switch(config-if)# exit
Switch(config)# interface vlan 10
Switch(config-if)# ip address 10.10.1.2/24

 步骤4 配置ARP信息

Switch(config)# arp 10.10.1.1 0.0.1

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

使用命令“show ip udp-helper server”查看配置结果,详细信息类似如下所示。

Switch# show  ip udp-helper server
Interface      Server IP        Packet Received Packet Dropped
--------------+----------------+---------------+---------------
vlan20         10.10.1.1        0               0

15.16.3 应用场景配置举例

16   数据中心配置指导  

16.1 VXLAN配置

16.1.1 概述

16.1.1.1 功能简介

虚拟扩展局域网(VXLAN)是一种隧道网络技术,其将基于mac2层以太网数据报文封装在3UDP的数据报文中,通过3层路由网络实现承载在3层网络上的2层网络通信。VXLAN技术把逻辑网络的数量扩大到1600万个,并且支持异地跨ip2层互联。

16.1.1.2 原理描述

16.1.2 配置

16.1.2.1 配置vxlan

Vxlan

在下面的配置举例中,switch1switch2间三层路由联通,通过VXLAN技术,将两台设备上vlan 20的流量封装在vni 20000中,从而实现跨越三层网络的互联互通。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式并创建vlan,在vlan上使能overlay

Switch(config)# vlan database
Switch(config-vlan)# vlan 20
Switch(config-vlan)# vlan 20 overlay enable
Switch(config-vlan)# exit

 步骤3 进入接口配置模式,配置接口属性

Switch1 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# switchport access vlan 20
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 20
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 9.9.9.1/24
Switch(config-if)# overlay uplink enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface loopback0
Switch(config-if)# ip address 1.0.1.1/32
Switch(config-if)# exit

Switch2 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# switchport access vlan 20
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 20
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 9.9.9.2/24
Switch(config-if)# overlay uplink enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface loopback0
Switch(config-if)# ip address 1.0.1.2/32
Switch(config-if)# exit

 步骤4 配置静态路由

switch1配置:

Switch(config)# ip route 1.0.1.2/32 9.9.9.2

switch2配置:

Switch(config)# ip route 1.0.1.1/32 9.9.9.1

 步骤5 配置overlay

switch1配置:

Switch(config)# overlay
Switch(config-overlay)# source 1.0.1.1
Switch(config-overlay)# remote-vtep 1 ip-address 1.0.1.2 type vxlan
Switch(config-overlay)# vlan 20 vni 20000
Switch(config-overlay)# vlan 20 remote-vtep 1
Switch(config-overlay)# exit

switch2配置:

Switch(config)# overlay
Switch(config-overlay)# source 1.0.1.2
Switch(config-overlay)# remote-vtep 1 ip-address 1.0.1.1 type vxlan
Switch(config-overlay)# vlan 20 vni 20000
Switch(config-overlay)# vlan 20 remote-vtep 1
Switch(config-overlay)# exit

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

Switch1 显示结果:

Switch# show overlay vlan 20
-------------------------------------------------------------------------------
ECMP Mode        : Normal
Source VTEP      : 1.0.1.1
-------------------------------------------------------------------------------
VLAN ID                       : 20
VNI                           : 20000
EVPN Tunnel Data-fdb Learning : Enable
Remote VTEP NUM               : 1
          Index: 1, Ip address: 1.0.1.2, Source ip: 1.0.1.1, Type: VxLAN, Protocol: Static
DVR Gateway NUM: 0
-------------------------------------------------------------------------

Switch2 显示结果:

Switch# show overlay vlan 20
-------------------------------------------------------------------------------
ECMP Mode        : Normal
Source VTEP      : 1.0.1.2
-------------------------------------------------------------------------------
VLAN ID                       : 20
VNI                           : 20000
EVPN Tunnel Data-fdb Learning : Eanble
Remote VTEP NUM               : 1
          Index: 1, Ip address: 1.0.1.1, Source ip: 1.0.1.2, Type: VxLAN, Protocol: Static
DVR Gateway NUM: 0
-------------------------------------------------------------------------------

16.1.2.2 配置vxlan分布式路由

Vxlan

在下面的配置举例中,按上图所示,VM-1VM-3在同一个VNI中,通过VXLAN互联建立分布式路由;VM-2VM-4在同一个VNI中,通过VXLAN互联建立分布式路由。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式并创建vlan,在vlan上使能overlay

Switch(config)# vlan database
Switch(config-vlan)# vlan 20,30
Switch(config-vlan)# vlan 20 overlay enable
Switch(config-vlan)# vlan 30 overlay enable
Switch(config-vlan)# exit

 步骤3 创建vrf实例

Switch(config)# ip vrf tenant
Switch(config-vrf)# exit

 步骤4 创建三层接口,加入vrf并配置地址

switch1配置:

Switch(config)# interface vlan 20
Switch(config-if)# ip vrf forwarding tenant
Switch(config-if)# ip address 2.2.2.111/24
Switch(config-if)# exit

Switch(config)# interface vlan 30
Switch(config-if)# ip vrf forwarding tenant
Switch(config-if)# ip address 3.3.3.111/24
Switch(config-if)# exit

switch2配置:

Switch(config)# interface  vlan 20
Switch(config-if)# ip vrf forwarding tenant
Switch(config-if)# ip address 2.2.2.222/24
Switch(config-if)# exit

Switch(config)# interface  vlan 30
Switch(config-if)# ip vrf forwarding tenant
Switch(config-if)# ip address 3.3.3.222/24
Switch(config-if)# exit

 步骤5 进入接口配置模式,配置接口属性

Switch(config)# interface eth-0-1
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 20
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add  30
Switch(config-if)# no shutdown
Switch(config-if)# exit

switch1配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 9.9.9.1/24
Switch(config-if)# overlay uplink enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface loopback0
Switch(config-if)# ip address 1.0.1.1/32
Switch(config-if)# exit

switch2配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 9.9.9.2/24
Switch(config-if)# overlay uplink enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface loopback0
Switch(config-if)# ip address 1.0.1.2/32
Switch(config-if)# exit

 步骤6 配置overlay

switch1配置:

Switch(config)# overlay
Switch(config-overlay)# source 1.0.1.1
Switch(config-overlay)# remote-vtep 1 ip-address 1.0.1.2 type vxlan
Switch(config-overlay)# remote-vtep 1 virtual-mac 22.22.22
Switch(config-overlay)# vlan 20 vni 20000
Switch(config-overlay)# vlan 30 vni 30000
Switch(config-overlay)# vlan 20 remote-vtep 1
Switch(config-overlay)# vlan 30 remote-vtep 1
Switch(config-overlay)# vlan 20 gateway-mac a.a.a
Switch(config-overlay)# vlan 30 gateway-mac b.b.b
Switch(config-overlay)# exit

switch2配置:

Switch(config)# overlay
Switch(config-overlay)# source 1.0.1.2
Switch(config-overlay)# remote-vtep 1 ip-address 1.0.1.1 type vxlan
Switch(config-overlay)# remote-vtep 1 virtual-mac 11.11.11
Switch(config-overlay)# vlan 20 vni 20000
Switch(config-overlay)# vlan 30 vni 30000
Switch(config-overlay)# vlan 20 remote-vtep 1
Switch(config-overlay)# vlan 20 remote-vtep 1
Switch(config-overlay)# vlan 20 gateway-mac a.a.a
Switch(config-overlay)# vlan 30 gateway-mac b.b.b
Switch(config-overlay)# exit

 步骤7 配置静态路由和vxlan分布式路由

switch1配置:

Switch(config)# ip route 1.0.1.2/32 9.9.9.2
Switch(config)# ip route vrf tenant 2.2.2.2/32 remote-vtep 1 vni 20000 inner-macda 3.3.3
Switch(config)# ip route vrf tenant 3.3.3.2/32 remote-vtep 1 vni 30000 inner-macda 4.4.4

switch2配置:

Switch(config)# ip route 1.0.1.1/32 9.9.9.1
Switch(config)# ip route vrf tenant 2.2.2.1/32 remote-vtep 1 vni 20000 inner-macda 1.1.1
Switch(config)# ip route vrf tenant 3.3.3.1/32 remote-vtep 1 vni 30000 inner-macda 2.2.2

 步骤8 退出配置模式

Switch(config)# end

 步骤9 检查配置

Switch1 显示结果:

Switch# show ip route vrf tenant
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       Dc - DHCP Client
       [*] - [AD/Metric]
       * - candidate default
S        2.2.2.2/32 is in overlay remote vxlan vtep:1.0.1.1->1.0.1.2, vni:20000
S        3.3.3.2/32 is in overlay remote vxlan vtep:1.0.1.1->1.0.1.2, vni:30000

Switch2 显示结果:

Switch# show ip route vrf tenant
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       Dc - DHCP Client
       [*] - [AD/Metric]
       * - candidate default
S        2.2.2.1/32 is in overlay remote vxlan vtep:1.0.1.2->1.0.1.1, vni:20000
S        3.3.3.1/32 is in overlay remote vxlan vtep:1.0.1.2->1.0.1.1, vni:30000

16.1.2.3 配置vxlan分布式路由的EBGP EVPN方式

EBGP_EVPN

在下面的配置举例中,按上图所示,VM-1VM-2在同一个VNI中,通过EBGP EVPN进行VXLAN隧道信息发布和主机信息发布,经过VXLAN互联建立分布式路由;

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式并创建vlan,在vlan上使能overlay

Switch(config)# vlan database
Switch(config-vlan)# vlan 10, 20
Switch(config-vlan)# vlan 10 overlay enable
Switch(config-vlan)# exit

可选配置:使能vlan上的arp广播抑制功能

Switch(config-vlan)# vlan 10 arp-broadcast-suppress enable

 步骤3 配置overlayvlan vni

Switch(config)# overlay
Switch(config-overlay)# vlan 10 vni 10000
Switch(config-vlan)# exit

可选配置:去使能overlay上的inner fdb学习

Switch(config-overlay)# vlan 10 mac-address-tunnel learning-disable

 步骤4 配置evpn实例

Switch(config)# evpn
Switch(config-evpn)# vni 10000
Switch(config-evi)# rd auto
Switch(config-evi)# route-target both 1:10000
Switch(config-evi)# exit

 步骤5 创建vrf实例并使能EVPN

switch1配置:

Switch1(config)# ip vrf tenant
Switch1(config-vrf)# rd 1:20000
Switch1(config-vrf)# route-target both 1:10000 evpn
Switch1(config-vrf)# vxlan vni 20000
Switch1(config-vrf)# exit

switch2配置:

Switch2(config)# ip vrf tenant
Switch2(config-vrf)# rd 2:20000
Switch2(config-vrf)# route-target both 1:10000 evpn
Switch2(config-vrf)# vxlan vni 20000
Switch2(config-vrf)# exit

 步骤6 创建三层接口,加入vrf并配置地址, 使能分布式网关

switch1配置:

Switch1(config)# interface  vlan 10
Switch1(config-if)# ip vrf forwarding tenant
Switch1(config-if)# overlay distributed-gateway enable
Switch1(config-if)# overlay host-collect enable
Switch1(config-if)# ip address 10.1.1.1/24
Switch1(config-if)# exit
Switch1(config)# interface  vlan 20
Switch1(config-if)# ip address 20.1.1.1/24
Switch1(config-if)# exit

switch2配置:

Switch2(config)# interface  vlan 10
Switch2(config-if)# ip vrf forwarding tenant
Switch2(config-if)# overlay distributed-gateway enable
Switch2(config-if)# overlay host-collect enable
Switch2(config-if)# ip address 10.1.1.2/24
Switch2(config-if)# exit
Switch2(config)# interface  vlan 20
Switch2(config-if)# ip address 20.1.1.2/24
Switch2(config-if)# exit

 步骤7 进入接口配置模式,配置接口属性

Switch(config)# interface eth-0-1
Switch(config-if)# switchport access vlan 10
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# interface eth-0-9
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add  20
Switch(config-if)# vxlan uplink enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

 步骤8 配置overlayNVE接口

switch1配置:

Switch1(config)# interface loopback 1
Switch1(config-if)# ip address 1.1.1.1/32
Switch1(config-if)# exit
Switch1(config)# interface nve 1
Switch1(config-if)# source loopback 1
Switch1(config-if)# member vni 10000
Switch1(config-if)# member vni 20000 associate-vrf
Switch1(config-if)# exit

switch2配置:

Switch2(config)# interface loopback 1
Switch2(config-if)# ip address 2.2.2.2/32
Switch2(config-if)# exit
Switch2(config)# interface nve 1
Switch2(config-if)# source loopback 1
Switch2(config-if)# member vni 10000
Switch2(config-if)# member vni 20000 associate-vrf
Switch2(config-if)# exit

可选配置:配置EVPN VXLANtunnel属性

Switch(config-if)# keep-vlan-tag enable
Switch(config-if)# split-horizon disable
Switch(config-if)# encapsulation-dscp-strategy custom-assign 63
Switch(config-if)# virtual-mac a.a.a

 步骤9 配置BGP EVPN

switch1配置:

Switch1(config)# router bgp 100
Switch1(config-router)# neighbor 20.1.1.2 remote-as 200
Switch1(config-router)# address-family l2vpn evpn
Switch1(config-router-af)# neighbor 20.1.1.2 activate
Switch1(config-router-af)# neighbor 20.1.1.2 send-community extended
Switch1(config-router-af)# neighbor 20.1.1.2 attribute-unchanged next-hop
Switch1(config-router-af)# exit
Switch1(config-router)# exit

switch2配置:

Switch2(config)# router bgp 200
Switch2(config-router)# neighbor 20.1.1.1 remote-as 100
Switch2(config-router)# address-family l2vpn evpn
Switch2(config-router-af)# neighbor 20.1.1.1 activate
Switch2(config-router-af)# neighbor 20.1.1.1 send-community extended
Switch2(config-router-af)# neighbor 20.1.1.1 attribute-unchanged next-hop
Switch2(config-router-af)# exit
Switch2(config-router)# exit

 步骤10 配置静态路由

switch1配置:

Switch1(config)# ip route 2.2.2.2/32 10.1.1.2

switch2配置:

Switch(config2)# ip route 1.1.1.1/32 10.1.1.1

 步骤11 退出配置模式

Switch(config)# end

 步骤12 检查配置

Switch1 显示结果:

Switch1# show bgp evpn all
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 1:10000 (L2VNI 10000)
*> [2]:[0]:[48]:[4623.28ef.da00]:[32]:[0.0.0.0]/136
                    1.1.1.1                            32768 i
*> [2]:[0]:[48]:[4623.28ef.da00]:[32]:[10.1.1.3]/136
                    1.1.1.1                            32768 i
*> [2]:[0]:[48]:[ac7f.1cc5.fe00]:[32]:[0.0.0.0]/136
                    2.2.2.2                            0 200 i
*> [2]:[0]:[48]:[ac7f.1cc5.fe00]:[32]:[10.1.1.4]/136
                    2.2.2.2                            0 200 i
*> [3]:[0]:[32]:[1.1.1.1]/80
                    1.1.1.1                            32768 i
*> [3]:[0]:[32]:[10.20.30.40]/80
                    2.2.2.2                            0 200 i

Route Distinguisher: 1:10000
*> [2]:[0]:[48]:[ac7f.1cc5.fe00]:[32]:[0.0.0.0]/136
                    2.2.2.2                            0 200 i
*> [2]:[0]:[48]:[ac7f.1cc5.fe00]:[32]:[10.1.1.4]/136
                    2.2.2.2                            0 200 i
*> [3]:[0]:[32]:[2.2.2.2]/80
                    2.2.2.2                            0 200 i

Route Distinguisher: 1:20000 (L3VNI 20000)
*> [2]:[0]:[48]:[ac7f.1cc5.fe00]:[32]:[10.1.1.4]/136
                    2.2.2.2

Switch1# show overlay tunnel
-------------------------------------------------------------------------------
Vlan Vni       Type   Remote-vtep IP-Address       Src-Address      Head-end-flooding Protocol
10   10000     VxLAN  0           2.2.2.2          1.1.1.1          Enable            Evpn

Switch2 显示结果:

Head-end-floodingSwitch2# show bgp evpn all
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 1:10000 (L2VNI 10000)
*> [2]:[0]:[48]:[4623.28ef.da00]:[32]:[0.0.0.0]/136
                    1.1.1.1                                0 100 i
*> [2]:[0]:[48]:[4623.28ef.da00]:[32]:[10.1.1.3]/136
                    1.1.1.1                                0 100 i
*> [2]:[0]:[48]:[ac7f.1cc5.fe00]:[32]:[0.0.0.0]/136
                    2.2.2.2                        32768 i
*> [2]:[0]:[48]:[ac7f.1cc5.fe00]:[32]:[10.1.1.4]/136
                    2.2.2.2                        32768 i
*> [3]:[0]:[32]:[1.1.1.1]/80
                    1.1.1.1                                0 100 i
*> [3]:[0]:[32]:[2.2.2.2]/80
                    2.2.2.2                        32768 i

Route Distinguisher: 1:10000
*> [2]:[0]:[48]:[4623.28ef.da00]:[32]:[0.0.0.0]/136
                    1.1.1.1                                0 100 i
*> [2]:[0]:[48]:[4623.28ef.da00]:[32]:[10.1.1.3]/136
                    1.1.1.1                                0 100 i
*> [3]:[0]:[32]:[1.1.1.1]/80
                    1.1.1.1                                0 100 i

Route Distinguisher: 2:20000 (L3VNI 20000)
*> [2]:[0]:[48]:[4623.28ef.da00]:[32]:[10.1.1.3]/136
                    1.1.1.1                                0 100 i

Switch2# show overlay tunnel
-------------------------------------------------------------------------------
Vlan Vni       Type   Remote-vtep IP-Address       Src-Address      Head-end-flooding Protocol
10   10000     VxLAN  0           1.1.1.1          2.2.2.2          Enable            Evpn

16.1.2.4 配置vxlan分布式路由的IBGP EVPN方式

IBGP_EVPN

在下面的配置举例中,按上图所示,VM-1VM-2在同一个VNI中,通过IBGP EVPN进行VXLAN隧道信息发布和主机信息发布,经过VXLAN互联建立分布式路由;中间通过路由反射器进行EVPN路由交换。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式并创建vlan,在vlan上使能overlay

switch1配置:

Switch1(config)# vlan database
Switch1(config-vlan)# vlan 10, 20
Switch1(config-vlan)# vlan 10 overlay enable
Switch1(config-vlan)# exit

switch2配置:

Switch2(config)# vlan database
Switch2(config-vlan)# vlan 20, 30
Switch2(config-vlan)# exit

switch3配置:

Switch3(config)# vlan database
Switch3(config-vlan)# vlan 10, 30
Switch3(config-vlan)# vlan 10 overlay enable
Switch3(config-vlan)# exit

可选配置:使能vlan上的arp广播抑制功能

Switch(config-vlan)# vlan 10 arp-broadcast-suppress enable

 步骤3 配置overlayvlan vni

switch1配置:

Switch1(config)# overlay
Switch1(config-overlay)# vlan 10 vni 10000
Switch1(config-vlan)# exit

可选配置:去使能overlay上的inner fdb学习

Switch1(config-overlay)# vlan 10 mac-address-tunnel learning-disable

switch3配置:

Switch3(config)# overlay
Switch3(config-overlay)# vlan 10 vni 10000
Switch3(config-vlan)# exit

可选配置:去使能overlay上的inner fdb学习

Switch3(config-overlay)# vlan 10 mac-address-tunnel learning-disable

 步骤4 配置evpn实例

switch1配置:

Switch1(config)# evpn
Switch1(config-evpn)# vni 10000
Switch1(config-evi)# rd 2:2
Switch1(config-evi)# route-target both 20:20
Switch1(config-evi)# exit

switch2配置:

Switch2(config)# evpn

switch3配置:

Switch3(config)# evpn
Switch3(config-evpn)# vni 10000
Switch3(config-evi)# rd 4:4
Switch3(config-evi)# route-target both 20:20
Switch3(config-evi)# exit

 步骤5 创建vrf实例并使能EVPN

switch1配置:

Switch1(config)# ip vrf tenant
Switch1(config-vrf)# rd 22:22
Switch1(config-vrf)# route-target both 20:20 evpn
Switch1(config-vrf)# vxlan vni 20000
Switch1(config-vrf)# exit

switch3配置:

Switch3(config)# ip vrf tenant
Switch3(config-vrf)# rd 44:44
Switch3(config-vrf)# route-target both 20:20 evpn
Switch3(config-vrf)# vxlan vni 20000
Switch3(config-vrf)# exit

 步骤6 创建三层接口,加入vrf并配置地址, 使能分布式网关

switch1配置:

Switch1(config)# interface  vlan 10
Switch1(config-if)# ip vrf forwarding tenant
Switch1(config-if)# overlay distributed-gateway enable
Switch1(config-if)# overlay host-collect enable
Switch1(config-if)# ip address 10.1.1.2/24
Switch1(config-if)# exit
Switch1(config)# interface  vlan 20
Switch1(config-if)# ip address 20.1.1.1/24
Switch1(config-if)# exit

switch2配置:

Switch2(config)# interface  vlan 20
Switch2(config-if)# ip address 20.1.1.2/24
Switch2(config-if)# exit
Switch2(config)# interface  vlan 30
Switch2(config-if)# ip address 30.1.1.1/24
Switch2(config-if)# exit

switch3配置:

Switch3(config)# interface  vlan 10
Switch3(config-if)# ip vrf forwarding tenant
Switch3(config-if)# overlay distributed-gateway enable
Switch3(config-if)# overlay host-collect enable
Switch3(config-if)# ip address 10.1.1.3/24
Switch3(config-if)# exit
Switch3(config)# interface  vlan 30
Switch3(config-if)# ip address 30.1.1.2/24
Switch3(config-if)# exit

 步骤7 进入接口配置模式,配置接口属性

switch1配置:

Switch1(config)# interface eth-0-10
Switch1(config-if)# switchport access vlan 10
Switch1(config-if)# no shutdown
Switch1(config-if)# exit
Switch1(config)# interface eth-0-20
Switch1(config-if)# switchport mode trunk
Switch1(config-if)# switchport trunk allowed vlan add  20
Switch1(config-if)# vxlan uplink enable
Switch1(config-if)# no shutdown
Switch1(config-if)# exit

switch2配置:

Switch2(config)# interface eth-0-20
Switch2(config-if)# switchport mode trunk
Switch2(config-if)# switchport trunk allowed vlan add  20
Switch2(config-if)# vxlan uplink enable
Switch2(config-if)# no shutdown
Switch2(config-if)# exit
Switch2(config)# interface eth-0-30
Switch2(config-if)# switchport mode trunk
Switch2(config-if)# switchport trunk allowed vlan add  30
Switch2(config-if)# vxlan uplink enable
Switch2(config-if)# no shutdown
Switch2(config-if)# exit

switch3配置:

Switch3(config)# interface eth-0-10
Switch3(config-if)# switchport access vlan 10
Switch3(config-if)# no shutdown
Switch3(config-if)# exit
Switch3(config)# interface eth-0-30
Switch3(config-if)# switchport mode trunk
Switch3(config-if)# switchport trunk allowed vlan add  30
Switch3(config-if)# vxlan uplink enable
Switch3(config-if)# no shutdown
Switch3(config-if)# exit

 步骤8 配置overlayNVE接口

switch1配置:

Switch1(config)# interface loopback 2
Switch1(config-if)# ip address 2.2.2.2/32
Switch1(config-if)# exit
Switch1(config)# interface nve 1
Switch1(config-if)# source 2.2.2.2
Switch1(config-if)# member vni 10000
Switch1(config-if)# member vni 20000 associate-vrf
Switch1(config-if)# exit

switch2配置:

Switch2(config)# interface loopback 3
Switch2(config-if)# ip address 3.3.3.3/32
Switch2(config-if)# exit

switch3配置:

Switch3(config)# interface loopback 4
Switch3(config-if)# ip address 4.4.4.4/32
Switch3(config-if)# exit
Switch3(config)# interface nve 1
Switch3(config-if)# source 4.4.4.4
Switch3(config-if)# member vni 10000
Switch3(config-if)# member vni 20000 associate-vrf
Switch3(config-if)# exit

可选配置:配置EVPN VXLANtunnel属性

Switch(config-if)# keep-vlan-tag enable
Switch(config-if)# split-horizon disable
Switch(config-if)# encapsulation-dscp-strategy custom-assign 63
Switch(config-if)# virtual-mac a.a.a

 步骤9 配置BGP EVPN

switch1配置:

Switch1(config)# router bgp 100
Switch1(config-router)# neighbor 3.3.3.3 remote-as 100
Switch1(config-router)# neighbor 3.3.3.3 update-source loopback2
Switch1(config-router)# neighbor 20.1.1.2 remote-as 100
Switch1(config-router)# address-family ipv4
Switch1(config-router-af)# network 2.2.2.2 mask 255.255.255.255
Switch1(config-router-af)# neighbor 20.1.1.2 weight 32768
Switch1(config-router-af)# exit
Switch1(config-router)# address-family l2vpn evpn
Switch1(config-router-af)# neighbor 3.3.3.3 activate
Switch1(config-router-af)# neighbor 3.3.3.3 send-community extended
Switch1(config-router-af)# exit
Switch1(config-router)# exit

switch2配置:

Switch2(config)# router bgp 100
Switch2(config-router)# neighbor 2.2.2.2 remote-as 100
Switch2(config-router)# neighbor 2.2.2.2 update-source loopback3
Switch2(config-router)# neighbor 4.4.4.4 remote-as 100
Switch2(config-router)# neighbor 4.4.4.4 update-source loopback3
Switch2(config-router)# neighbor 20.1.1.1 remote-as 100
Switch2(config-router)# neighbor 30.1.1.2 remote-as 100
Switch2(config-router)# address-family ipv4
Switch2(config-router-af)# network 3.3.3.3 mask 255.255.255.255
Switch2(config-router-af)# network 20.1.1.0 mask 255.255.255.0
Switch2(config-router-af)# network 30.1.1.0 mask 255.255.255.0
Switch2(config-router-af)# neighbor 20.1.1.1 weight 32768
Switch2(config-router-af)# neighbor 20.1.1.1 route-reflector-client
Switch2(config-router-af)# neighbor 20.1.1.1 next-hop-self
Switch2(config-router-af)# neighbor 30.1.1.2 weight 32768
Switch2(config-router-af)# neighbor 30.1.1.2 route-reflector-client
Switch2(config-router-af)# neighbor 30.1.1.2 next-hop-self
Switch2(config-router-af)# exit
Switch2(config-router)# address-family l2vpn evpn
Switch2(config-router-af)# neighbor 2.2.2.2 activate
Switch2(config-router-af)# neighbor 2.2.2.2 route-reflector-client
Switch2(config-router-af)# neighbor 2.2.2.2 send-community extended
Switch2(config-router-af)# neighbor 4.4.4.4 activate
Switch2(config-router-af)# neighbor 4.4.4.4 route-reflector-client
Switch2(config-router-af)# neighbor 4.4.4.4 send-community extended
Switch2(config-router-af)# exit
Switch2(config-router)# exit

switch3配置:

Switch3(config)# router bgp 100
Switch3(config-router)# neighbor 3.3.3.3 remote-as 100
Switch3(config-router)# neighbor 3.3.3.3 update-source loopback4
Switch3(config-router)# neighbor 30.1.1.1 remote-as 100
Switch3(config-router)# address-family ipv4
Switch3(config-router-af)# network 4.4.4.4 mask 255.255.255.255
Switch3(config-router-af)# neighbor 30.1.1.1 weight 32768
Switch3(config-router-af)# exit
Switch3(config-router)# address-family l2vpn evpn
Switch3(config-router-af)# neighbor 3.3.3.3 activate
Switch3(config-router-af)# neighbor 3.3.3.3 send-community extended
Switch3(config-router-af)# exit
Switch3(config-router)# exit

 步骤10 退出配置模式

Switch(config)# end

 步骤11 检查配置

Switch1 显示结果:

Switch1# show bgp evpn all
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 2:2 (L2VNI 10000)
*> [2]:[0]:[48]:[988b.123a.4000]:[32]:[0.0.0.0]/136
                    2.2.2.2                            32768 i
*> [2]:[0]:[48]:[988b.123a.4000]:[32]:[10.1.1.1]/136
                    2.2.2.2                            32768 i
*> [3]:[0]:[32]:[2.2.2.2]/80
                    2.2.2.2                            32768 i
*>i[3]:[0]:[32]:[4.4.4.4]/80
                    4.4.4.4                       100      0 i

Route Distinguisher: 4:4
*>i[3]:[0]:[32]:[4.4.4.4]/80
                    4.4.4.4                       100      0 i


Switch1# show overlay tunnel
-------------------------------------------------------------------------------
Vlan Vni       Type   Remote-vtep IP-Address       Src-Address      Head-end-flooding Protocol
10   10000     VxLAN  0           4.4.4.4          2.2.2.2          Enable            Evpn  

Switch2 显示结果:

Switch2# show bgp evpn all
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 2:2
*>i[2]:[0]:[48]:[988b.123a.4000]:[32]:[0.0.0.0]/136
                    2.2.2.2                       100      0 i
*>i[2]:[0]:[48]:[988b.123a.4000]:[32]:[10.1.1.1]/136
                    2.2.2.2                       100      0 i
*>i[3]:[0]:[32]:[2.2.2.2]/80
                    2.2.2.2                       100      0 i

Route Distinguisher: 4:4
*>i[3]:[0]:[32]:[4.4.4.4]/80
                    4.4.4.4                       100      0 i

Switch3 显示结果:

Switch3# show bgp evpn all
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 2:2
*>i[2]:[0]:[48]:[988b.123a.4000]:[32]:[0.0.0.0]/136
                    2.2.2.2                       100      0 i
*>i[2]:[0]:[48]:[988b.123a.4000]:[32]:[10.1.1.1]/136
                    2.2.2.2                       100      0 i
*>i[3]:[0]:[32]:[2.2.2.2]/80
                    2.2.2.2                       100      0 i

Route Distinguisher: 4:4 (L2VNI 10000)
*>i[2]:[0]:[48]:[988b.123a.4000]:[32]:[0.0.0.0]/136
                    2.2.2.2                       100      0 i
*>i[2]:[0]:[48]:[988b.123a.4000]:[32]:[10.1.1.1]/136
                    2.2.2.2                       100      0 i
*>i[3]:[0]:[32]:[2.2.2.2]/80
                    2.2.2.2                       100      0 i
*> [3]:[0]:[32]:[4.4.4.4]/80
                    4.4.4.4                            32768 i

Route Distinguisher: 44:44 (L3VNI 20000)
*>i[2]:[0]:[48]:[988b.123a.4000]:[32]:[10.1.1.1]/136
                    2.2.2.2                       100      0 i

Switch3# show overlay tunnel
-------------------------------------------------------------------------------
Vlan Vni       Type   Remote-vtep IP-Address       Src-Address      Head-end-flooding Protocol
10   10000     VxLAN  0           2.2.2.2          4.4.4.4          Enable            Evpn

Switch3# show mac address-table
          Mac Address Table
-------------------------------------------
(*)  - Security Entry     (M)  - MLAG Entry
(MO) - MLAG Output Entry  (MI) - MLAG Input Entry
Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
30      fcc0.9318.0a00    dynamic     eth-0-9
10      988b.123a.4000    dynamic     VxLAN: 4.4.4.4->2.2.2.2(EI)

Switch3# show ip route vrf tenant
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       Dc - DHCP Client
       [*] - [AD/Metric]
       * - candidate default

C        10.1.1.0/24 is directly connected, vlan10
C        10.1.1.3/32 is in local loopback, vlan10
B        10.1.1.1/32 is in overlay remote vxlan vtep:4.4.4.4->2.2.2.2, vni:20000

16.2 NVGRE配置

16.2.1 概述

16.2.1.1 功能简介

NVGRE是一种利用通用路由封装的网络虚拟化技术,能够将虚拟网络承载在物理网络之上。NVGRE使用GRE的封装形式,利用GRE头的低24bit来代表虚拟网络IDVNI),类似VXLAN一样24bitID可以允许1600百万个虚拟网络。

16.2.1.2 原理描述

16.2.2 配置

16.2.2.1 配置GENEVE

NVGRE

在下面的配置举例中,通过NVGRE技术,将两台设备上vlan 20的流量封装在vni 20000中实现互联互通。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式并创建vlan,在vlan上使能overlay

Switch(config)# vlan database
Switch(config-vlan)# vlan 20
Switch(config-vlan)# vlan 20 overlay enable
Switch(config-vlan)# exit

 步骤3 进入接口配置模式,配置接口属性

Switch(config)# interface eth-0-1
Switch(config-if)# switchport access vlan 20
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 20
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch1 的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 9.9.9.1/24
Switch(config-if)# overlay uplink enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface loopback0
Switch(config-if)# ip address 1.1.1.1/32
Switch(config-if)# exit

Switch2 的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 9.9.9.2/24
Switch(config-if)# overlay uplink enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface loopback0
Switch(config-if)# ip address 2.2.2.2/32
Switch(config-if)# exit

 步骤4 配置静态路由

switch1配置:

Switch(config)# ip route 2.2.2.0/24 9.9.9.2

switch2配置:

Switch(config)# ip route 1.1.1.0/24 9.9.9.1

 步骤5 配置overlay

switch1配置:

Switch(config)# overlay
Switch(config-overlay)# source 1.1.1.1
Switch(config-overlay)# remote-vtep 1 ip-address 2.2.2.2 type nvgre
Switch(config-overlay)# vlan 20 vni 20000
Switch(config-overlay)# vlan 20 remote-vtep 1
Switch(config-overlay)# exit

switch2配置:

Switch(config)# overlay
Switch(config-overlay)# source 2.2.2.2
Switch(config-overlay)# remote-vtep 1 ip-address 1.1.1.1 type nvgre
Switch(config-overlay)# vlan 20 vni 20000
Switch(config-overlay)# vlan 20 remote-vtep 1
Switch(config-overlay)# exit

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

Switch1 显示结果:

Switch# show overlay vlan 20
-------------------------------------------------------------------------------
ECMP Mode        : Normal
Source VTEP      : 1.1.1.1
-------------------------------------------------------------------------------
VLAN ID                       : 20
VNI                           : 20000
EVPN Tunnel Data-fdb Learning : Eanble
Remote VTEP NUM: 1
          Index: 1, Ip address: 2.2.2.2, Source ip: 1.1.1.1, Type: NvGRE, Protocol: Static
DVR Gateway NUM: 0
-------------------------------------------------------------------------

Switch2 显示结果:

Switch# show overlay vlan 20
-------------------------------------------------------------------------------
ECMP Mode        : Normal
Source VTEP      : 2.2.2.2
-------------------------------------------------------------------------------
VLAN ID                       : 20
VNI                           : 20000
EVPN Tunnel Data-fdb Learning : Eanble
Remote VTEP NUM: 1
          Index: 1, Ip address: 1.1.1.1, Source ip: 2.2.2.2, Type: NvGRE, Protocol: Static
DVR Gateway NUM: 0
-------------------------------------------------------------------------

16.2.2.2 NVGRE分布式路由配置

NVGRE

在下面的配置举例中,按上图所示,VM-1VM-3在同一个VNI中,通过NVGRE互联建立分布式路由;VM-2VM-4在同一个VNI中,通过NVGRE互联建立分布式路由。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式并创建vlan,在vlan上使能overlay

Switch(config)# vlan database
Switch(config-vlan)# vlan 20,30
Switch(config-vlan)# vlan 20 overlay enable
Switch(config-vlan)# vlan 30 overlay enable
Switch(config-vlan)# exit

 步骤3 创建vrf实例

Switch(config)# ip vrf tenant
Switch(config-vrf)# exit

 步骤4 创建三层接口,加入vrf并配置地址

switch1配置:

Switch(config)# interface  vlan 20
Switch(config-if)# ip vrf forwarding tenant
Switch(config-if)# ip address 2.2.2.111/24
Switch(config-if)# exit

Switch(config)# interface  vlan 30
Switch(config-if)# ip vrf forwarding tenant
Switch(config-if)# ip address 3.3.3.111/24
Switch(config-if)# exit

switch2配置:

Switch(config)# interface  vlan 20
Switch(config-if)# ip vrf forwarding tenant
Switch(config-if)# ip address 2.2.2.222/24
Switch(config-if)# exit

Switch(config)# interface  vlan 30
Switch(config-if)# ip vrf forwarding tenant
Switch(config-if)# ip address 3.3.3.222/24
Switch(config-if)# exit

 步骤5 进入接口配置模式,配置接口属性

Switch(config)# interface eth-0-1
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 20
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add  30
Switch(config-if)# no shutdown
Switch(config-if)# exit

switch1配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 9.9.9.1/24
Switch(config-if)# overlay uplink enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface loopback0
Switch(config-if)# ip address 1.1.1.1/32
Switch(config-if)# exit

switch2配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 9.9.9.2/24
Switch(config-if)# overlay uplink enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface loopback0
Switch(config-if)# ip address 2.2.2.2/32
Switch(config-if)# exit

 步骤6 配置overlay

switch1配置:

Switch(config)# overlay
Switch(config-overlay)# source 1.1.1.1
Switch(config-overlay)# remote-vtep 1 ip-address 2.2.2.2 type nvgre
Switch(config-overlay)# remote-vtep 1 virtual-mac 22.22.22
Switch(config-overlay)# vlan 20 vni 20000
Switch(config-overlay)# vlan 30 vni 30000
Switch(config-overlay)# vlan 20 remote-vtep 1
Switch(config-overlay)# vlan 30 remote-vtep 1
Switch(config-overlay)# vlan 20 gateway-mac a.a.a
Switch(config-overlay)# vlan 30 gateway-mac b.b.b
Switch(config-overlay)# exit

switch2配置:

Switch(config)# overlay
Switch(config-overlay)# source 2.2.2.2
Switch(config-overlay)# remote-vtep 1 ip-address 1.1.1.1 type nvgre
Switch(config-overlay)# remote-vtep 1 virtual-mac 11.11.11
Switch(config-overlay)# vlan 20 vni 20000
Switch(config-overlay)# vlan 30 vni 30000
Switch(config-overlay)# vlan 20 remote-vtep 1
Switch(config-overlay)# vlan 30 remote-vtep 1
Switch(config-overlay)# vlan 20 gateway-mac a.a.a
Switch(config-overlay)# vlan 30 gateway-mac b.b.b
Switch(config-overlay)# exit

 步骤7 配置静态路由和nvgre分布式路由

switch1配置:

Switch(config)# ip route 2.2.2.0/24 9.9.9.2
Switch(config)# ip route vrf tenant 2.2.2.2/32 remote-vtep 1 vni 20000 inner-macda 3.3.3
Switch(config)# ip route vrf tenant 3.3.3.2/32 remote-vtep 1 vni 30000

switch2配置:

Switch(config)# ip route 1.1.1.0/24 9.9.9.1
Switch(config)# ip route vrf tenant 2.2.2.1/32 remote-vtep 1 vni 20000 inner-macda 1.1.1
Switch(config)# ip route vrf tenant 3.3.3.1/32 remote-vtep 1 vni 30000

 步骤8 退出配置模式

Switch(config)# end

 步骤9 检查配置

Switch1 显示结果:

Switch# show ip route vrf tenant
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       Dc - DHCP Client
       [*] - [AD/Metric]
       * - candidate default
S        2.2.2.2/32 is in overlay remote nvgre vtep:1.1.1.1->2.2.2.2, vni:20000
S        3.3.3.2/32 is in overlay remote nvgre vtep:1.1.1.1->2.2.2.2, vni:30000

Switch2 显示结果:

Switch# show ip route vrf tenant
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       Dc - DHCP Client
       [*] - [AD/Metric]
       * - candidate default
S        2.2.2.1/32 is in overlay remote nvgre vtep:2.2.2.2->1.1.1.1, vni:20000
S        3.3.3.1/32 is in overlay remote nvgre vtep:2.2.2.2->1.1.1.1, vni:30000

16.2.3 应用场景配置举例

16.3 GENEVE配置

16.3.1 概述

16.3.1.1 功能简介

通用网络虚拟化封装(GENEVE)是一种隧道网络技术,其将基于mac2层以太网数据报文封装在3UDP的数据报文中,通过3层路由网络实现承载在3层网络上的2层网络通信。GENEVE技术把逻辑网络的数量扩大到1600万个,并且支持异地跨ip2层互联以及可扩展的option

16.3.1.2 原理描述

16.3.2 配置

16.3.2.1 配置GENEVE

GENEVE

在下面的配置举例中,switch1switch2间有三层路由联通,通过GENEVE技术,将两台设备上vlan 20的流量封装在vni 20000中,从而实现互联互通。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式并创建vlan,在vlan上使能overlay

Switch(config)# vlan database
Switch(config-vlan)# vlan 20
Switch(config-vlan)# vlan 20 overlay enable
Switch(config-vlan)# exit

 步骤3 进入接口配置模式,配置接口属性

Switch(config)# interface eth-0-1
Switch(config-if)# switchport access vlan 20
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 20
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch1 的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 9.9.9.1/24
Switch(config-if)# overlay uplink enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface loopback0
Switch(config-if)# ip address 1.1.1.1/32
Switch(config-if)# exit

Switch2 的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 9.9.9.2/24
Switch(config-if)# overlay uplink enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface loopback0
Switch(config-if)# ip address 2.2.2.2/32
Switch(config-if)# exit

 步骤4 配置静态路由

switch1配置:

Switch(config)# ip route 2.2.2.0/24 9.9.9.2

switch2配置:

Switch(config)# ip route 1.1.1.0/24 9.9.9.1

 步骤5 配置overlay

switch1配置:

Switch(config)# overlay
Switch(config-overlay)# source 1.1.1.1
Switch(config-overlay)# remote-vtep 1 ip-address 2.2.2.2 type geneve
Switch(config-overlay)# vlan 20 vni 20000
Switch(config-overlay)# vlan 20 remote-vtep 1
Switch(config-overlay)# exit

switch2配置:

Switch(config)# overlay
Switch(config-overlay)# source 2.2.2.2
Switch(config-overlay)# remote-vtep 1 ip-address 1.1.1.1 type geneve
Switch(config-overlay)# vlan 20 vni 20000
Switch(config-overlay)# vlan 20 remote-vtep 1
Switch(config-overlay)# exit

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

Switch1 显示结果:

Switch# show overlay vlan 20
-------------------------------------------------------------------------------
ECMP Mode        : Normal
Source VTEP      : 1.1.1.1
-------------------------------------------------------------------------------
VLAN ID                       : 20
VNI                           : 20000
EVPN Tunnel Data-fdb Learning : Eanble
Remote VTEP NUM: 1
          Index: 1, Ip address: 2.2.2.2, Source ip: 1.1.1.1, Type: GENEVE, Protocol: Static
DVR Gateway NUM: 0
-------------------------------------------------------------------------

Switch2 显示结果:

Switch# show overlay vlan 20
-------------------------------------------------------------------------------
ECMP Mode        : Normal
Source VTEP      : 2.2.2.2
-------------------------------------------------------------------------------
VLAN ID                       : 20
VNI                           : 20000
EVPN Tunnel Data-fdb Learning : Enable
Remote VTEP NUM: 1
          Index: 1, Ip address: 1.1.1.1, Source ip: 2.2.2.2, Type: GENEVE, Protocol: Static
DVR Gateway NUM: 0
-------------------------------------------------------------------------

16.3.2.2 配置GENEVE分布式路由

GENEVE

在下面的配置举例中,按上图所示,VM-1VM-3在同一个VNI中,通过GENEVE互联建立分布式路由;VM-2VM-4在同一个VNI中,通过GENEVE互联建立分布式路由。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式并创建vlan,在vlan上使能overlay

Switch(config)# vlan database
Switch(config-vlan)# vlan 20,30
Switch(config-vlan)# vlan 20 overlay enable
Switch(config-vlan)# vlan 30 overlay enable
Switch(config-vlan)# exit

 步骤3 创建vrf实例

Switch(config)# ip vrf tenant
Switch(config-vrf)# exit

 步骤4 创建三层接口,加入vrf并配置地址

switch1配置:

Switch(config)# interface  vlan 20
Switch(config-if)# ip vrf forwarding tenant
Switch(config-if)# ip address 2.2.2.111/24
Switch(config-if)# exit

Switch(config)# interface  vlan 30
Switch(config-if)# ip vrf forwarding tenant
Switch(config-if)# ip address 3.3.3.111/24
Switch(config-if)# exit

switch2配置:

Switch(config)# interface  vlan 20
Switch(config-if)# ip vrf forwarding tenant
Switch(config-if)# ip address 2.2.2.222/24
Switch(config-if)# exit

Switch(config)# interface  vlan 30
Switch(config-if)# ip vrf forwarding tenant
Switch(config-if)# ip address 3.3.3.222/24
Switch(config-if)# exit

 步骤5 进入接口配置模式,配置接口属性

Switch(config)# interface eth-0-1
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 20
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add  30
Switch(config-if)# no shutdown
Switch(config-if)# exit

switch1配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 9.9.9.1/24
Switch(config-if)# overlay uplink enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface loopback0
Switch(config-if)# ip address 1.1.1.1/32
Switch(config-if)# exit

switch2配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 9.9.9.2/24
Switch(config-if)# overlay uplink enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface loopback0
Switch(config-if)# ip address 2.2.2.2/32
Switch(config-if)# exit

 步骤6 配置overlay

switch1配置:

Switch(config)# overlay
Switch(config-overlay)# source 1.1.1.1
Switch(config-overlay)# remote-vtep 1 ip-address 2.2.2.2 type geneve
Switch(config-overlay)# remote-vtep 1 virtual-mac 22.22.22
Switch(config-overlay)# vlan 20 vni 20000
Switch(config-overlay)# vlan 30 vni 30000
Switch(config-overlay)# vlan 20 remote-vtep 1
Switch(config-overlay)# vlan 30 remote-vtep 1
Switch(config-overlay)# vlan 20 gateway-mac a.a.a
Switch(config-overlay)# vlan 30 gateway-mac b.b.b
Switch(config-overlay)# exit

switch2配置:

Switch(config)# overlay
Switch(config-overlay)# source 2.2.2.2
Switch(config-overlay)# remote-vtep 1 ip-address 1.1.1.1 type geneve
Switch(config-overlay)# remote-vtep 1 virtual-mac 11.11.11
Switch(config-overlay)# vlan 20 vni 20000
Switch(config-overlay)# vlan 30 vni 30000
Switch(config-overlay)# vlan 20 remote-vtep 1
Switch(config-overlay)# vlan 20 remote-vtep 1
Switch(config-overlay)# vlan 20 gateway-mac a.a.a
Switch(config-overlay)# vlan 30 gateway-mac b.b.b
Switch(config-overlay)# exit

 步骤7 配置静态路由和vxlan分布式路由

switch1配置:

Switch(config)# ip route 2.2.2.0/24 9.9.9.2
Switch(config)# ip route vrf tenant 2.2.2.2/32 remote-vtep 1 vni 20000 inner-macda 3.3.3
Switch(config)# ip route vrf tenant 3.3.3.2/32 remote-vtep 1 vni 30000 inner-macda 4.4.4

switch2配置:

Switch(config)# ip route 1.1.1.0/24 9.9.9.1
Switch(config)# ip route vrf tenant 2.2.2.1/32 remote-vtep 1 vni 20000 inner-macda 1.1.1
Switch(config)# ip route vrf tenant 3.3.3.1/32 remote-vtep 1 vni 30000

 步骤8 退出配置模式

Switch(config)# end

 步骤9 检查配置

Switch1 显示结果:

switch# show ip route vrf tenant
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       Dc - DHCP Client
       [*] - [AD/Metric]
       * - candidate default
S        2.2.2.2/32 is in overlay remote geneve vtep:1.1.1.1->2.2.2.2, vni:20000
S        3.3.3.2/32 is in overlay remote geneve vtep:1.1.1.1->2.2.2.2, vni:30000

Switch2 显示结果:

switch# show ip route vrf tenant
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       Dc - DHCP Client
       [*] - [AD/Metric]
       * - candidate default
S        2.2.2.1/32 is in overlay remote geneve vtep:2.2.2.2->1.1.1.1, vni:20000
S        3.3.3.1/32 is in overlay remote geneve vtep:2.2.2.2->1.1.1.1, vni:30000

16.3.3 应用场景配置举例

16.4 Overlay配置

16.4.1 概述

16.4.1.1 功能简介

Overlay支持多上联,是为了满足用户针对不同的公网而设定不同的source ip地址,提高overlay 的可靠性。

Overlay也支持tunnel上关闭水平分割,即允许报文进入uplink 口解封装后,再次进入另外的tunnel进行加封装发送报文。

16.4.1.2 原理描述

16.4.2 配置

16.4.2.1 Overlay支持多上联配置

Overlay multiple source ip

在下面的配置举例中,以VXLAN 为例。NVGREGENEVE的配置类似。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式并创建vlan,在vlan上使能overlay

switch1配置:

Switch(config)# vlan database
Switch(config-vlan)# vlan 20,10
Switch(config-vlan)# vlan 20 overlay enable
Switch(config-vlan)# vlan 10 overlay enable
Switch(config-vlan)# exit

switch2配置:

Switch(config)# vlan database
Switch(config-vlan)# vlan 20
Switch(config-vlan)# vlan 20 overlay enable
Switch(config-vlan)# exit

switch3配置:

Switch(config)# vlan database
Switch(config-vlan)# vlan 10
Switch(config-vlan)# vlan 10 overlay enable
Switch(config-vlan)# exit

 步骤3 进入接口配置模式,配置接口属性

Switch1 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# switchport access vlan 20
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 9.9.9.1/24
Switch(config-if)# overlay uplink enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-10
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.10.10.1/24
Switch(config-if)# overlay uplink enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface loopback0
Switch(config-if)# ip address 1.1.1.1/32
Switch(config)# interface loopback1
Switch(config-if)# ip address 3.3.3.3/32
Switch(config-if)# exit

Switch2 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# switchport access vlan 20
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 20
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 9.9.9.2/24
Switch(config-if)# overlay uplink enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface loopback0
Switch(config-if)# ip address 2.2.2.2/32
Switch(config-if)# exit

Switch3 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# switchport access vlan 10
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 10
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-10
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.10.10.2/24
Switch(config-if)# overlay uplink enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface loopback0
Switch(config-if)# ip address 4.4.4.4/32
Switch(config-if)# exit

 步骤4 配置静态路由

switch1配置:

Switch(config)# ip route 2.2.2.0/24 9.9.9.2
Switch(config)# ip route 4.4.4.0/24 10.10.10.2

switch2配置:

Switch(config)# ip route 1.1.1.0/24 9.9.9.1

switch3配置:

Switch(config)# ip route 3.3.3.0/24 10.10.10.1

 步骤5 配置overlay

switch1配置:

Switch(config)# overlay
Switch(config-overlay)# source 1.1.1.1
Switch(config-overlay)# remote-vtep 1 ip-address 2.2.2.2 type vxlan
Switch(config-overlay)# remote-vtep 2 ip-address 4.4.4.4 type vxlan src-ip 3.3.3.3
Switch(config-overlay)# vlan 20 vni 20000
Switch(config-overlay)# vlan 10 vni 10000
Switch(config-overlay)# vlan 20 remote-vtep 1
Switch(config-overlay)# vlan 10 remote-vtep 2
Switch(config-overlay)# exit

switch2配置:

Switch(config)# overlay
Switch(config-overlay)# source 2.2.2.2
Switch(config-overlay)# remote-vtep 1 ip-address 1.1.1.1 type vxlan
Switch(config-overlay)# vlan 20 vni 20000
Switch(config-overlay)# vlan 20 remote-vtep 1
Switch(config-overlay)# exit

switch3配置:

Switch(config)# overlay
Switch(config-overlay)# source 4.4.4.4
Switch(config-overlay)# remote-vtep 1 ip-address 3.3.3.3 type vxlan
Switch(config-overlay)# vlan 10 vni 10000
Switch(config-overlay)# vlan 10 remote-vtep 1
Switch(config-overlay)# exit

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

Switch1 显示结果:

switch# show overlay vlan 20
---------------------------------------------------------------
ECMP Mode        : Normal
Source VTEP      : 1.1.1.1
---------------------------------------------------------------
VLAN ID                       : 2
VNI                           : 20000
EVPN Tunnel Data-fdb Learning : Eanble
Remote VTEP NUM: 1
          Index: 1, Ip address: 2.2.2.2, Source ip: 1.1.1.1, Type: VxLAN, Protocol: Static
          Index: 2, Ip address: 2.2.2.2, Source ip: 3.3.3.3, Type: VxLAN, Protocol: Static
DVR Gateway NUM: 0
---------------------------------------------------------------

16.4.2.2 OVERLAY关闭水平分割配置

OVERLAY without Horizon Split

在下面的配置举例中,拓扑如上图,switch1switch2之间建立tunnelswitch2switch3之间建立tunnel。在switch2上关闭overlay水平分割,使一侧tunnel过来的流量从另一侧tunnel出去。

配置以VXLAN 为例,NVGREGENEVE配置是类似的。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入vlan配置模式并创建vlan,在vlan上使能overlay

Switch(config)# vlan database
Switch(config-vlan)# vlan 20
Switch(config-vlan)# vlan 20 overlay enable
Switch(config-vlan)# exit

 步骤3 进入接口配置模式,配置接口属性

Switch1 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# switchport access vlan 20
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 20
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 9.9.9.1/24
Switch(config-if)# overlay uplink enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface loopback0
Switch(config-if)# ip address 1.1.1.1/32
Switch(config-if)# exit

Switch2 的接口配置:

Switch(config-if)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 9.9.9.2/24
Switch(config-if)# overlay uplink enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface loopback0
Switch(config-if)# ip address 2.2.2.2/32
Switch(config-if)# exit

Switch3 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# switchport access vlan 20
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 20
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 9.9.9.3/24
Switch(config-if)# overlay uplink enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface loopback0
Switch(config-if)# ip address 3.3.3.3/32
Switch(config-if)# exit

 步骤4 配置静态路由

switch1配置:

Switch(config)# ip route 2.2.2.0/24 9.9.9.2

switch2配置:

Switch(config)# ip route 1.1.1.0/24 9.9.9.1
Switch(config)# ip route 3.3.3.3/24 9.9.9.3

switch3配置:

Switch(config)# ip route 2.2.2.0/24 9.9.9.2

 步骤5 配置overlay

switch1配置:

Switch(config)# overlay
Switch(config-overlay)# source 1.1.1.1
Switch(config-overlay)# remote-vtep 1 ip-address 2.2.2.2 type vxlan
Switch(config-overlay)# vlan 20 vni 20000
Switch(config-overlay)# vlan 20 remote-vtep 1
Switch(config-overlay)# exit

switch2配置:

Switch(config)# overlay
Switch(config-overlay)# source 2.2.2.2
Switch(config-overlay)# remote-vtep 1 ip-address 1.1.1.1 type vxlan horizon-split-disable
Switch(config-overlay)# remote-vtep 2 ip-address 3.3.3.3 type vxlan horizon-split-disable
Switch(config-overlay)# vlan 20 vni 20000
Switch(config-overlay)# vlan 20 remote-vtep 1
Switch(config-overlay)# vlan 20 remote-vtep 2
Switch(config-overlay)# exit

switch3配置:

Switch(config)# overlay
Switch(config-overlay)# source 3.3.3.3
Switch(config-overlay)# remote-vtep 1 ip-address 2.2.2.2 type vxlan
Switch(config-overlay)# vlan 20 vni 20000
Switch(config-overlay)# vlan 20 remote-vtep 1
Switch(config-overlay)# exit

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

Switch2 显示结果:

switch# show overlay remote-vtep
Index Type   Virtual-Mac    IP-Address  Source-Ip   Split-Horizon Keep-vtag  Dscp-strategy
-------------------------------------------------------------------------------------------
1     VxLAN        -        1.1.1.1     2.2.2.2      Disable        Disable    Dscp-copy
 
2     VxLAN        -        3.3.3.3     2.2.2.2      Disable        Disable    Dscp-copy

16.4.3 应用场景配置举例

16.5 基于优先级的流量控制配置

16.5.1 概述

16.5.1.1 功能简介

基于优先级的流量控制(PFC)是对flow control机制的一种增强。当前以太网暂停选择(IEEE 802.3 Annex 31B)也能达到无丢包的要求,但它会阻止一条链路上的所有流量,本质上来讲,它会暂停整条链路。PFC 允许在一条以太网链路上创建 8 个虚拟通道,并为每条虚拟通道指定一个 IEEE 802.1P 优先等级,允许单独暂停和重启其中任意一条虚拟通道,同时允许其它虚拟通道的流量无中断通过。这一方法使网络能够为单个虚拟链路创建无丢包类别的服务,使其能够与同一接口上的其它流量类型共存。

16.5.1.2 原理描述

16.5.2 配置

Priority-based Flow Control

在下面的配置举例中,Switch1switch2的端口1和端口2分别直连,都启用PFC,在priority 2 3 4上使能。

以下配置在Switch1Switch2相同。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局使能lldp

Switch1(config)# lldp enable

 步骤3 进入接口配置模式,配置接口属性

Switch(config-if)#lldp enable txrx
Switch(config-if)# lldp tlv 8021-org-specific dcbx
Switch(config-if)# priority-flow-control mode  on
Switch(config-if)# priority-flow-control enable priority 2 3 4
Switch(config-if)# exit

Switch(config)# interface eth-0-2
Switch(config-if)#lldp enable txrx
Switch(config-if)# lldp tlv 8021-org-specific dcbx
Switch(config-if)# priority-flow-control mode  auto
Switch(config-if)# priority-flow-control enable priority 2 3 4
Switch (config-if)# exit

 步骤4 退出配置模式

Switch(config)# end

 步骤5 检查配置

Switch1 显示结果:

switch# show priority-flow-control
Port             PFC-enable          PFC-enable on priority
               admin    oper        admin     oper
---------------------------------------------------------------
eth-0-1        on       on          234       234    
eth-0-2        auto     off         234       off    
eth-0-3        off      off         off       off    
eth-0-4        off      off         off       off    
eth-0-5        off      off         off       off    
eth-0-6        off      off         off       off    
eth-0-7        off      off         off       off    
eth-0-8        off      off         off       off    
eth-0-9        off      off         off       off    
eth-0-10       off      off         off       off    
eth-0-11       off      off         off       off    
eth-0-12       off      off         off       off    
eth-0-13       off      off         off       off    
eth-0-14       off      off         off       off    
eth-0-15       off      off         off       off    
eth-0-16       off      off         off       off    
eth-0-17       off      off         off       off    
eth-0-18       off      off         off       off    
eth-0-19       off      off         off       off    
eth-0-20       off      off         off       off    
eth-0-21       off      off         off       off    
eth-0-22       off      off         off       off    
eth-0-23       off      off         off       off    
eth-0-24       off      off         off       off    

Switch2 显示结果:

switch# show priority-flow-control
Port             PFC-enable          PFC-enable on priority
               admin    oper        admin     oper
---------------------------------------------------------------
eth-0-1        on       on          234       234    
eth-0-2        auto     on          234       off    
eth-0-3        off      off         off       off    
eth-0-4        off      off         off       off    
eth-0-5        off      off         off       off    
eth-0-6        off      off         off       off    
eth-0-7        off      off         off       off    
eth-0-8        off      off         off       off    
eth-0-9        off      off         off       off    
eth-0-10       off      off         off       off    
eth-0-11       off      off         off       off    
eth-0-12       off      off         off       off    
eth-0-13       off      off         off       off    
eth-0-14       off      off         off       off    
eth-0-15       off      off         off       off    
eth-0-16       off      off         off       off    
eth-0-17       off      off         off       off    
eth-0-18       off      off         off       off    
eth-0-19       off      off         off       off    
eth-0-20       off      off         off       off    
eth-0-21       off      off         off       off    
eth-0-22       off      off         off       off    
eth-0-23       off      off         off       off    
eth-0-24       off      off         off       off    

16.5.3 应用场景配置举例

16.6 OVSDB配置

16.6.1 概述

16.6.1.1 功能简介

OVSDBOpen vSwitch Database, 开放虚拟交换机数据库)是交换机中保存配置信息的数据库。OVSDB数据库主要由两个部分构成,即OVSDB服务器和OVSDB客户端。控制器作为OVSDB客户端,通过OVSDB管理协议,可以对交换机上的OVSDB数据库进行配置和查询,从而实现对网络中的VTEP设备的管理和部署。

OVSDB

作为VTEP的交换机设备,在使能OVSDB功能后,会创建并维护OVSDB数据库。当控制器和VTEP设备上的OVSDB服务器连接后,会通过OVSDB管理协议,操作OVSDB数据库中的数据。VTEP设备会将OVSDB数据库中的数据转化为VXLAN的相关配置进行下发。

当前支持的表项如下:

表名

描述

信息来源

命令

备注

Global table

顶层配置,包含当前数据库中管理的物理交换机

交换机

 

 

Manager table

控制器和OVSDB服务器之间的连接配置

交换机或控制器

ovsdb controller

 

Physical switch table

实现硬件VTEP的物理交换机信息

交换机

 

 

Physical port table

OVSDB管理的接口信息

交换机

ovsdb port enable

 

Logical switch table

包含逻辑交换机信息,VXLAN配置可以由这些信息转换而来

控制器

 

 

Physical locator table

包含网络中的硬件VTEP信息.

控制器

 

 

Physical locator set table

包含硬件VTEP的集合信息

控制器

 

 

Unicast MACs remote table

包含网络中的单播MAC表项,由控制器下发

控制器

 

 

Multicast MACs remote table

包含网络中的组播和洪泛表项,由控制器下发

控制器

 

仅支持unknown dst

16.6.1.2 原理描述

16.6.2 配置

OVSDB

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性

Switch1 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# ovsdb port enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 9.9.9.1/24
Switch(config-if)# overlay uplink enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface loopback0
Switch(config-if)# ip address 1.1.1.1/32
Switch(config-if)# exit

Switch2 的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# ovsdb port enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 9.9.9.2/24
Switch(config-if)# overlay uplink enable
Switch(config-if)# no shutdown
Switch(config-if)# exit

Switch(config)# interface loopback0
Switch(config-if)# ip address 2.2.2.2/32
Switch(config-if)# exit

 步骤3 配置静态路由

switch1配置:

Switch(config)# ip route 2.2.2.0/24 9.9.9.2

switch2配置:

Switch(config)# ip route 1.1.1.0/24 9.9.9.1

 步骤4 配置overlay

switch1配置:

Switch(config)# overlay
Switch(config-overlay)# source 1.1.1.1
Switch(config-overlay)# exit

switch2配置:

Switch(config)# overlay
Switch(config-overlay)# source 2.2.2.2
Switch(config-overlay)# exit

 步骤5 全局使能ovsdb

Switch(config)# ovsdb enable

 步骤6 退出配置模式

Switch(config)# end

 步骤7 检查配置

Switch1 显示结果:

Switch#  show running
overlay
source 1.1.1.1
!

interface eth-0-1
ovsdb port enable

interface eth-0-9
no switchport
overlay uplink enable
ip address 9.9.9.1/24

interface loopback0
ip address 1.1.1.1/32
!
ovsdb enable

Switch# show ovsdb physical-switch
Physical Switch Name  : switch
Management IP address :
Tunnel IP address     : 1.1.1.1

16.6.3 应用场景配置举例

16.7 EFD配置

16.7.1 概述

16.7.1.1 功能简介

EFD是一个用来检测大象流的机制。

在网络中,大象流通常是指一个总字节数非常大的连续TCP流。与之相对的流叫老鼠流。

根据学术机构对数据中心实际业务的研究发现,在数据中心中80%以上的带宽是被大象流占掉的, 这些流占用的带宽和传输缓存较大, 但是对时延不敏感,这对时延敏感的流量造成较大的冲击。

EFD功能识别出大象流,并对之施加一些转发策略(比如适当降低大象流的转发优先级,让老鼠流优先转发),可以很好的提高数据中心网络的传输效率。EFD机制也可以用作检查网络中的一些异常流量(比如带宽较大的流), 检测到了以后可以将这类流量的特征字段封装在协议报文中, 送到指定服务器进行进一步的分析。

16.7.1.2 原理描述

以下是EFD的术语和概念的简要描述:

EFDElephant Flow Detect, 大象流检查

16.7.2 配置

EFD

在下面的配置举例中, 首先配置用于识别流量的报文特征字段, 然后配置流量的阈值,根据流量特征识当指定特征的流量大于配置的流量阈值时,流的特征字段封装到自定义的UDP报文中发送给指定的服务器。

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 设置EFD参数

设置IPDA为报文的特征字段, 相同IPDA的流认为是相同的流。

Switch(config)# hash-value global
Switch(config-hash-value-global)# efd select ipda

配置EFD识别流的速率阈值,这里配置为1000Mbps,标识速率超过1000Mbps的流会被识别为Elephant Flow。默认为50Mbps

Switch(config)# efd detect speed 1000

使能EFD通知机制, 并配置通知报文的目的IP地址10.0.0.2和目的UDP端口。

Switch(config)# efd notify enable 10.0.0.2 20007

 步骤3 进入接口配置模式,配置接口属性

Switch(config)# interface eth-0-1/1
Switch(config-if)# efd enable
Switch(config-if)# exit

Switch(config)# int eth-0-1/2
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.0.0.1/24
Switch(config-if)# exit

 步骤4 配置静态ARP (可选)

 Switch(config)# arp 10.0.0.2 0.1.2

 步骤5 退出配置模式

Switch(config)# end

 步骤6 检查配置

Switch# show efd configuration
Elephant flow detection configuration information:
--------------------------------------------------
Detect rate            : 1000 Mbps
Detect granularity     : 16B
Detect time interval   : 1000 ms
EFD aging time         : 120 ms ~ 150 ms
EFD detect packet type : All IP packets
EFD IPG                : disable
EFD redirect interface : N/A
EFD flow hash fields   : destination-ip
EFD enabled interface :
------------------------- -------------------------
eth-0-1/1                

在当eth-0-1/1口上收到有流的超过1G后, 可以通过下面的命令看到这条流已经被学为EFD:

Switch# show efd flow information decap
EFD flow issued at:07:29:40 UTC Mon Aug 01 2016
From:eth-0-1, FlowId: 1701
--------------------------------------------------------
MACDA:0000.00aa.bbbb, MACSA:0000.00bb.bbbb
IPv4 Packet, IP Protocol is TCP(6)
IPDA:22.22.22.101, IPSA: 11.11.11.11
L4SourcePort:43690, L4DestinationPort:43741
--------------------------------------------------------
00 00 00 aa bb bb 00 00 00 bb bb bb 08 00 45 00
00 32 00 00 40 00 c8 06 70 35 0b 0b 0b 0b 16 16
16 65 aa aa aa dd aa aa aa dd aa aa aa dd aa aa
aa dd aa aa aa dd aa aa aa dd aa aa aa dd aa aa

Server 10.0.0.2显示报文:

12:41:28.286993 92:fd:58:d7:8f:00 > 00:00:00:01:00:02, ethertype IPv4 (0x0800), length 60: IP (tos 0x0, ttl  64, id 0, offset 0, flags [DF], proto 17, length: 44) 10.0.0.1.49071 > 10.0.0.2.20007: [udp sum ok] UDP, length 16
        0x0000:  0000 0001 0002 92fd 58d7 8f00 0800 4500  ........X.....E.
        0x0010:  002c 0000 4000 4011 26bf 0a00 0001 0a00  .,..@.@.&.......
        0x0020:  0002 bfaf 4e27 0018 b05b 0000 0101 0000  ....N'...[......
        0x0030:  0008 0001 0004 1616 1665 0000            .........e..

EFD报文头部说明。上面红色部分为EFD报文信息部分,具体为解析如下:

  1. 0000: 预留字段, 暂时没具体含义。该字段属于EFD报头字段之一。
  2. 01: EFD报文版本号, 目前都是0x01。 该字段属于EFD报头字段之一。
  3. 01: EFD流操作码, 0x01标识这是一条新识别出来的Elephant Flow; 0x02标识被老化的流, 也就是之前被识别为elephant flow, 现在流量降低后变成了mice flow或者流已经停掉了; 该字段属于EFD报头字段之一。
  4. 0000 0008 , EFD报文数据部分长度, 这里表示后续数据总共长度为8字节。该字段属于EFD报头字段之一。
  5. 0001EFD数据类型字段, 0x0001表示该数据字段为IPDA, 目前版本尚未定义其它类型, 后续版本可以定义IPSA, IPDA+IPSA等其它字段;
  6. 0004, EFD数据字段的长度, 0x0004表示数据部分有4字节
  7. 1616 1665, 数据内容, 表示IPDA22.22.22.101

16.7.3 应用场景配置举例

17   MPLS配置指导  

17.1 配置 LDP

17.1.1 概述

17.1.1.1 功能简介

本章节介绍如何配置LDP

LDP的功能是为两个支持标签交换的路由器分发标签,目前软件系统支持的特性如下:

支持下游主动分发方式和自由保留模式。

支持配置标签控制方式。

支持lsr-id和传输地址的配置。

支持Target LDP

支持分发标签过滤。

支持PHP模式和非PHP模式。

本篇手册将描述最基本的LDP配置,如果想更加深入的了解技术细节,建议阅读RFC3031RFC3036

17.1.1.2 原理描述

17.1.2 配置

17.1.2.1 配置LDP

LSP map

下面的例子描述了如何使用LDPlsr-alsr-c之间建立起一条LSP

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性

Lsr-a的接口配置,接口需要使能ldp并且开启标签交换功能:

Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.17.1/24
Switch(config-if)# enable-ldp
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface loopback0
Switch(config-if)# ip address 1.1.1.1/32
Switch(config-if)# exit

Lsr-b的接口配置,接口需要使能ldp并且开启标签交换功能:

Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.17.2/24
Switch(config-if)# enable-ldp
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.9.1/24
Switch(config-if)# enable-ldp
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface loopback0
Switch(config-if)# ip address 2.2.2.2/32
Switch(config-if)# exit

Lsr-c的接口配置,接口需要使能ldp并且开启标签交换功能:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.9.2/24
Switch(config-if)# enable-ldp
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface loopback0
Switch(config-if)# ip address 3.3.3.3/32
Switch(config-if)# exit

 步骤3 使能ldp路由

Lsr-a的配置:

Switch(config)# router ldp
Switch(config-router)# router-id 1.1.1.1
Switch(config-router)# exit

Lsr-b的配置:

Switch(config)# router ldp
Switch(config-router)# router-id 2.2.2.2
Switch(config-router)# exit

Lsr-c的配置:

Switch(config)# router ldp
Switch(config-router)# router-id 3.3.3.3
Switch(config-router)# exit

 步骤4 使能rip路由

Switch(config)# router rip
Switch(config-router)# network 0.0.0.0/0
Switch(config-router)# exit

 步骤5 退出配置模式

Switch(config)# end

 步骤6 命令验证

查看lsr-aldp session建立的状态:

Switch# show ldp session
Peer IP Address    IF Name    My Role   State         KeepAlive
2.2.2.2            eth-0-17   Passive   OPERATIONAL   30

查看lsr-bldp session建立的状态:

Switch# show ldp session
Peer IP Address    IF Name    My Role   State         KeepAlive
3.3.3.3            eth-0-9    Active    OPERATIONAL   30
1.1.1.1            eth-0-17   Active    OPERATIONAL   30

查看lsr-cldp session建立的状态:

Switch# show ldp session
Peer IP Address    IF Name    My Role   State         KeepAlive
2.2.2.2            eth-0-9    Passive   OPERATIONAL   30

17.2 配置 MPLS

17.2.1 概述

17.2.1.1 功能简介

MPLS即多协议标签交换,能够适用于任何网络层,但在这篇文档里,我们只关注MPLSIP网络中的应用。

在通常的IP网络中,报文头部中包含了很多信息来决定如何选择下一跳,如何选择分为如下两个步骤:首先将条目分成不同的转发等价类,接着将指定的转发等价类映射到某条下一跳上。该过程是不可逆的,对于选定了下一跳的报文,我们不关心他为何被映射到这条转发等价类中。在某个特定的节点,所有同一转发等价类的报文都将通过同一条路径进行转发(如果存在ECMP的情况,他们会从该组路径中选择一条进行转发)。根据最长匹配的原则,路由器可能会将两个不同的报文映射到同一条转发等价类中。在一个报文遍历整个网络时,每一跳都会重新解析报文,并将报文映射到一个指定的转发等价类中。

MPLS网络中,只需要进行一次报文到转发等价类的映射,因为当报文进入网络后,对于指定的FEC会映射到一个标签上,报文会携带该标签转发到下一跳,在接下来的转发过程中,就不需要重新解析报文头部来报文映射到转发等价类中,只需使用标签作为索引进行查找转发,使用新的标签替换旧的标签,将报文继续进行转发。

在下面的例子中可以发现,一旦报文指定了转发等价类,接下来的转发都是依靠标签的了。

17.2.1.2 原理描述

17.2.2 配置

17.2.2.1 配置MPLS LSP

MPLS LSP 模型

下面的例子描述了如何配置MPLS LSP

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性

PE1的接口配置,接口需要开启标签交换功能:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.9.1/24
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.10.10.1/24
Switch(config-if)# label-switching
Switch(config-if)# exit   

P的接口配置,接口需要开启标签交换功能:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.9.2/24
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.17.2/24
Switch(config-if)# label-switching
Switch(config-if)# exit

PE2的接口配置,接口需要开启标签交换功能:

Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.17.3/24
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# ip address 20.20.20.1/24
Switch(config-if)# label-switching
Switch(config-if)# exit

 步骤3 配置静态ftn/ilm

PE1的静态ftn:

Switch(config)# mpls ftn-entry 172.22.4.1/24 100 11.11.9.2

P的静态ilm:

Switch(config)# mpls ilm-entry swap 100 11.11.17.3 200

PE2的静态ilm:

Switch(config)# mpls ilm-entry php 200 20.20.20.2

 步骤4 命令验证

显示PE1上的ftn表项:

PE1# show mpls ftn-database
Codes: > - selected FTN, p - stale FTN, B - BGP FTN, K - CLI FTN,
       L - LDP FTN, R - RSVP-TE FTN, S - SNMP FTN, I - IGP-Shortcut,
       U - unknown FTN

Code    FEC                 Out-Label    Nexthop          Out-Intf   
K>      172.22.4.0/24       100          11.11.9.2        eth-0-9

显示P上的ilm表项:

P# show mpls ilm-database
Codes: > - selected ILM, p - stale ILM, B - BGP ILM, K - CLI ILM,
       L - LDP ILM, R - RSVP-TE ILM, S - SNMP ILM, I - IGP-Shortcut,
       U - unknown ILM

Code     FEC                I/O Label            Nexthop         Out-Intf 
K>       0.0.0.0/0          100/200              11.11.17.3      eth-0-17

显示PE2上的ilm表项:

PE2# show mpls ilm-database
Codes: > - selected ILM, p - stale ILM, B - BGP ILM, K - CLI ILM,
       L - LDP ILM, R - RSVP-TE ILM, S - SNMP ILM, I - IGP-Shortcut,
       U - unknown ILM

Code     FEC                I/O Label            Nexthop         Out-Intf 
K>       0.0.0.0/0          200/3                20.20.20.2      eth-0-1

17.2.3 应用场景配置举例

17.3 配置 VPLS

17.3.1 概述

17.3.1.1 功能简介

本章节描述了如何配置VPLS。虚拟专用局域网(VPLS),其核心思想是利用信令协议在VPLS实例中的PE(运营商边缘路由器)节点之间建立及维护PW(伪线),将二层协议帧封装后在PW上传输、交换,使广域范围内多个局域网在数据链路层面被整合为一张网络,向用户提供虚拟的以太网服务。

17.3.1.2 原理描述

17.3.2 配置

VPLS 模型

17.3.2.1 使用LDP配置VPLS

下面的例子描述了如何使用LDP配置VPLS

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性

PE1的接口配置,eth-0-9需要使能ldp并且开启标签交换功能:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.9.1/24
Switch(config-if)# enable-ldp
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface loopback 0
Switch(config-if)# ip address 11.11.1.1/32
Switch(config-if)# exit

PE2的接口配置,eth-0-13需要使能ldp并且开启标签交换功能:

Switch(config)# interface eth-0-13
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.13.4/24
Switch(config-if)# enable-ldp
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface loopback 0
Switch(config-if)# ip address 11.11.4.4/32
Switch(config-if)# exit

PE3的接口配置,eth-0-17需要使能ldp并且开启标签交换功能:

Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.17.3/24
Switch(config-if)# enable-ldp
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface loopback 0
Switch(config-if)# ip address 11.11.3.3/32
Switch(config-if)# exit

P的接口配置,接口需要使能ldp并且开启标签交换功能:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.9.2/24
Switch(config-if)# enable-ldp
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface eth-0-13
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.13.2/24
Switch(config-if)# enable-ldp
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.17.2/24
Switch(config-if)# enable-ldp
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface loopback 0
Switch(config-if)# ip address 11.11.2.2/32
Switch(config-if)# exit

 步骤3 使能ldp路由

PE1LDP配置:

Switch(config)# router ldp
Switch(config-router)# router-id 11.11.1.1 
Switch(config-router)# targeted-peer 11.11.3.3
Switch(config-router)# targeted-peer 11.11.4.4
Switch(config-router)# transport-address 11.11.1.1
Switch(config-router)# exit

PE2LDP配置:

Switch(config)# router ldp
Switch(config-router)# router-id 11.11.4.4
Switch(config-router)# transport-address 11.11.4.4
Switch(config-router)# targeted-peer 11.11.1.1
Switch(config-router)# targeted-peer 11.11.3.3
Switch(config-router)# exit

PE3LDP配置:

Switch(config)# router ldp
Switch(config-router)# router-id 11.11.3.3
Switch(config-router)# transport-address 11.11.3.3
Switch(config-router)# targeted-peer 11.11.1.1
Switch(config-router)# targeted-peer 11.11.4.4
Switch(config-router)# exit

PLDP配置:

Switch(config)# router ldp
Switch(config-router)# router-id 11.11.2.2
Switch(config-router)# exit

 步骤4 使能rip路由

Switch(config)# router rip
Switch(config-router)# network 11.11.1.1/16
Switch(config-router)# exit

 步骤5 配置mpls vpls 实例

PE1, PE2, PE3均配置PW侧为raw模式,并指定vpls peer

PE1VPLS实例配置:

Switch(config)# mpls vpls v1 100
Switch(config-vpls)# vpls-peer 11.11.3.3 raw
Switch(config-vpls)# vpls-peer 11.11.4.4 raw
Switch(config-vpls)# exit

PE2VPLS实例配置:

Switch(config)# mpls vpls v4 100
Switch(config-vpls)# vpls-peer 11.11.1.1 raw
Switch(config-vpls)# vpls-peer 11.11.3.3 raw
Switch(config-vpls)# exit

PE3VPLS实例配置:

Switch(config)# mpls vpls v3 100
Switch(config-vpls)# vpls-peer 11.11.1.1 raw
Switch(config-vpls)# vpls-peer 11.11.4.4 raw
Switch(config-vpls)# exit

 步骤6 在端口上绑定mpls vpls 实例

PE1, PE2, PE3AC侧均配置为VLAN接入。

PE1的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# switchport mode trunk
Switch(config-if)# mpls-vpls v1 vlan 2
Switch(config-if)# exit

PE2的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# switchport mode trunk
Switch(config-if)# mpls-vpls v4 vlan 2
Switch(config-if)# exit

PE3的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# switchport mode trunk
Switch(config-if)# mpls-vpls v3 vlan 2
Switch(config-if)# exit

 步骤7 退出配置模式

Switch(config)# end

 步骤8 命令验证

使用show ldp sessionshow mpls vpls mesh命令来查看VPLS的完整信息。show ldp session可以得到当前LDP session运行的状态,show mpls vpls mesh可以看到vpls peer的状态以及vpls所使用的内层labelpw的模式。

PE1显示结果:

PE1# show ldp session
Peer IP Address    IF Name    My Role   State         KeepAlive
11.11.3.3          eth-0-9    Passive   OPERATIONAL   30
11.11.4.4          eth-0-9    Passive   OPERATIONAL   30
11.11.2.2          eth-0-9    Passive   OPERATIONAL   30
PE1# show mpls vpls mesh
VPLS-ID    Peer Addr/name     In-Label   Out-Intf   Out-Label  Type       St
100        11.11.3.3/-        32768      eth-0-9    32768      RAW        Up
100        11.11.4.4/-        32773      eth-0-9    32768      RAW        Up

PE2显示结果:

PE2# show ldp session
Peer IP Address    IF Name    My Role   State         KeepAlive
11.11.1.1          eth-0-13   Active    OPERATIONAL   30
11.11.3.3          eth-0-13   Active    OPERATIONAL   30
11.11.2.2          eth-0-13   Passive   OPERATIONAL   30
PE2# show mpls vpls mesh
VPLS-ID    Peer Addr/name     In-Label   Out-Intf   Out-Label  Type       St
100        11.11.1.1/-        32768      eth-0-13   32773      RAW        Up
100        11.11.3.3/-        32769      eth-0-13   32770      RAW        Up

PE3显示结果:

PE3# show ldp session
Peer IP Address    IF Name    My Role   State         KeepAlive
11.11.1.1          eth-0-17   Active    OPERATIONAL   30
11.11.4.4          eth-0-17   Passive   OPERATIONAL   30
11.11.2.2          eth-0-17   Passive   OPERATIONAL   30
PE3# show mpls vpls mesh
VPLS-ID    Peer Addr/name     In-Label   Out-Intf   Out-Label  Type       St
100        11.11.1.1/-        32768      eth-0-17   32768      RAW        Up
100        11.11.4.4/-        32770      eth-0-17   32769      RAW        Up

P显示结果:

P# show ldp session
Peer IP Address    IF Name    My Role   State         KeepAlive
11.11.1.1          eth-0-9    Active    OPERATIONAL   30
11.11.3.3          eth-0-17   Active    OPERATIONAL   30
11.11.4.4          eth-0-13   Active    OPERATIONAL   30

17.3.2.2 配置静态VPLS

下面的例子描述了如何配置静态VPLS

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性

PE1的接口配置,eth-0-9需要开启标签交换功能:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.9.1/24
Switch(config-if)# label-switching
Switch(config-if)# exit

PE2的接口配置,eth-0-13需要开启标签交换功能:

Switch(config)# interface eth-0-13
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.13.1/24
Switch(config-if)# label-switching
Switch(config-if)# exit

PE3的接口配置,eth-0-17需要开启标签交换功能:

Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.17.1/24
Switch(config-if)# label-switching
Switch(config-if)# exit

P的接口配置,eth-0-9, eth-0-13eth-0-17均需要开启标签交换功能:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.9.2/24
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.17.2/24
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface eth-0-13
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.13.2/24
Switch(config-if)# label-switching
Switch(config-if)# exit

 步骤3 配置ftn条目

PE1的接口配置:

Switch(config)# mpls ftn-entry 11.11.17.1/24 97 11.11.9.2
Switch(config)# mpls ftn-entry 11.11.13.1/24 93 11.11.9.2

PE2的接口配置:

Switch(config)# mpls ftn-entry  11.11.9.1/32 44 11.11.13.2

PE3的接口配置:

Switch(config)#mpls ftn-entry 11.11.9.1/32 33 11.11.17.2

 步骤4 配置mpls vpls 实例

PE1, PE2, PE3均配置PW侧为raw模式,并指定vpls peer

PE1VPLS实例配置:

Switch(config)# mpls vpls vpls1 1
Switch(config-vpls)# vpls-peer 11.11.17.1 raw manual
Switch(config-vpls)# vpls-peer 11.11.13.1 raw manual

PE2VPLS实例配置:

Switch(config)# mpls vpls vpls1 1
Switch(config-vpls)# vpls-peer 11.11.9.1 raw manual

PE3VPLS实例配置:

Switch(config)# mpls vpls vpls1 1
Switch(config-vpls)# vpls-peer 11.11.9.1 raw manual

 步骤5 在端口上绑定mpls vpls 实例

PE1, PE2, PE3AC侧均配置为VLAN接入。

PE1的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# switchport mode trunk
Switch(config-if)# mpls-vpls vpls1 vlan 100
Switch(config-if)# exit

PE2的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# switchport mode trunk
Switch(config-if)# mpls-vpls vpls1 vlan 100
Switch(config-if)# exit

PE3的接口配置:

Switch(config)#interface eth-0-1
Switch(config-if)# switchport mode trunk
Switch(config-if)# mpls-vpls vpls1 vlan 100
Switch(config-if)# exit

 步骤6 配置 VPLS FIB

PE1VPLS FIB:

Switch(config)# vpls-fib-add vpls1 peer 11.11.17.1 103 31
Switch(config)# vpls-fib-add vpls1 peer 11.11.13.1 102 201

PE2VPLS FIB:

Switch(config)# vpls-fib-add vpls1 peer 11.11.9.1 201 102

PE3VPLS FIB:

Switch(config)# vpls-fib-add vpls1 peer 11.11.9.1 31 103

 步骤7 配置静态ilm

P的静态ilm:

Switch(config)# mpls ilm-entry php 97 11.11.17.1
Switch(config)# mpls ilm-entry php 93 11.11.13.1
Switch(config)# mpls ilm-entry php 33 11.11.9.1
Switch(config)# mpls ilm-entry php 44 11.11.9.1

 步骤8 退出配置模式

Switch(config)# end

 步骤9 命令验证

使用show mpls vpls mesh可以看到vpls peer的状态以及vpls所使用的内层labelpw的模式。

PE1显示结果:

PE1# show mpls vpls mesh
VPLS-ID    Peer Addr/name         In-Label   Out-Intf   Out-Label  Type     St
1          11.11.13.1/-           102        eth-0-9    201        RAW      Up
1          11.11.17.1/-           103        eth-0-9    31         RAW      Up   

PE2显示结果:

PE2# show mpls vpls mesh
VPLS-ID    Peer Addr/name         In-Label   Out-Intf   Out-Label  Type     St
1          11.11.9.1/-            201        eth-0-13   102        RAW      Up    

PE3显示结果:

PE3# show mpls vpls mesh
VPLS-ID    Peer Addr/name         In-Label   Out-Intf   Out-Label  Type     St
1          11.11.9.1/-            31         eth-0-17   103        RAW      Up

P显示结果:

P# show mpls ilm-database
Codes: > - selected ILM, p - stale ILM, B - BGP ILM, K - CLI ILM,
       L - LDP ILM, R - RSVP-TE ILM, S - SNMP ILM, I - IGP-Shortcut,
       U - unknown ILM
Code     FEC                I/O Label            Nexthop         Out-Intf 
K>       0.0.0.0/0          33/3                 11.11.9.1       eth-0-9  
K>       0.0.0.0/0          44/3                 11.11.9.1       eth-0-9  
K>       0.0.0.0/0          93/3                 11.11.13.1      eth-0-13 
K>       0.0.0.0/0          97/3                 11.11.17.1      eth-0-17

17.3.2.3 使用VPLS透传二层协议报文

通过网络服务提供商连接的处于不同地域的用户,本地和远端之间需要运行STP等二层协议,就需要网络服务提供商能够透传STP等二层协议。 如下例子展示了如何使用VPLS来透传二层报文,以下配置基于VPLS模型拓扑图。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局使能L2 protocol

Switch(config)# l2protocol enable

 步骤3 进入接口配置模式,配置接口属性

PE1的接口配置,eth-0-9需要使能ldp并且开启标签交换功能:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.9.1/24
Switch(config-if)# enable-ldp
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface loopback 0
Switch(config-if)# ip address 11.11.1.1/32
Switch(config-if)# exit

PE2的接口配置,eth-0-13需要使能ldp并且开启标签交换功能:

Switch(config)# interface eth-0-13
Switch(config-if)# no switchport
Switch(config-if)# ip add 11.11.13.4/24
Switch(config-if)# enable-ldp
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface loopback 0
Switch(config-if)# ip address 11.11.4.4/32
Switch(config-if)# exit

PE3的接口配置,eth-0-17需要使能ldp并且开启标签交换功能:

Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.17.3/24
Switch(config-if)# enable-ldp
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface loopback 0
Switch(config-if)# ip address 11.11.3.3/32
Switch(config-if)# exit

P的接口配置,接口需要使能ldp并且开启标签交换功能:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.9.2/24
Switch(config-if)# enable-ldp
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface eth-0-13
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.13.2/24
Switch(config-if)# enable-ldp
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.17.2/24
Switch(config-if)# enable-ldp
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface loopback 0
Switch(config-if)# ip address 11.11.2.2/32
Switch(config-if)# exit

 步骤4 使能ldp路由

PE1LDP配置:

Switch(config)# router ldp
Switch(config-router)# router-id 11.11.1.1
Switch(config-router)# targeted-peer 11.11.3.3
Switch(config-router)# targeted-peer 11.11.4.4
Switch(config-router)# transport-address 11.11.1.1
Switch(config-router)# exit

PE2LDP配置:

Switch(config)# router ldp
Switch(config-router)# router-id 11.11.4.4
Switch(config-router)# transport-address 11.11.4.4
Switch(config-router)# targeted-peer 11.11.1.1
Switch(config-router)# targeted-peer 11.11.3.3
Switch(config-router)# exit

PE3LDP配置:

Switch(config)# router ldp
Switch(config-router)# router-id 11.11.3.3
Switch(config-router)# transport-address 11.11.3.3
Switch(config-router)# targeted-peer 11.11.1.1
Switch(config-router)# targeted-peer 11.11.4.4
Switch(config-router)# exit

PLDP配置:

Switch(config)# router ldp
Switch(config-router)# router-id 11.11.2.2
Switch(config-router)# exit

 步骤5 使能rip路由

PE1PE2PE3RIP配置:

Switch(config)# router rip
Switch(config-router)# network 11.11.1.1/16
Switch(config-router)# exit

 步骤6 配置mpls vpls 实例

PE1, PE2, PE3均配置PW侧为raw模式,并指定vpls peer

PE1VPLS实例配置:

Switch(config)# mpls vpls v1 100
Switch(config-vpls)# vpls-peer 11.11.3.3 raw
Switch(config-vpls)# vpls-peer 11.11.4.4 raw
Switch(config-vpls)# exit

PE2VPLS实例配置:

Switch(config)# mpls vpls v4 100
Switch(config-vpls)# vpls-peer 11.11.1.1 raw
Switch(config-vpls)# vpls-peer 11.11.3.3 raw
Switch(config-vpls)# exit

PE3VPLS实例配置:

Switch(config)# mpls vpls v3 100
Switch(config-vpls)# vpls-peer 11.11.1.1 raw
Switch(config-vpls)# vpls-peer 11.11.4.4 raw
Switch(config-vpls)# exit

 步骤7 在端口上绑定mpls vpls 实例

PE1, PE2, PE3AC侧均配置为ethernet接入。

PE1的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# mpls-vpls v1 ethernet
Switch(config-if)# l2protocol stp tunnel
Switch(config-if)# exit

PE2的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# mpls-vpls v4 ethernet
Switch(config-if)# l2protocol stp tunnel
Switch(config-if)# exit

PE3的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# mpls-vpls v3 ethernet
Switch(config-if)# l2protocol stp tunnel
Switch(config-if)# exit

 步骤8 退出配置模式

Switch(config)# end

17.3.2.4 配置VPLS静态MAC地址

在一个VSI内,如果PE节点收到了一个未知目的MAC的报文,则PE将会flood该报文。用户可以配置静态MAC表项来将带有指定目的MAC的报文发往指定的目的端口,指定PW或者丢弃。 以下举例了如何配置静态MAC,配置拓扑配置基于VPLS模型拓扑。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性

PE1的接口配置,eth-0-9需要使能ldp并且开启标签交换功能:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.9.1/24
Switch(config-if)# enable-ldp
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface loopback 0
Switch(config-if)# ip address 11.11.1.1/32
Switch(config-if)# exit

PE2的接口配置,eth-0-13需要使能ldp并且开启标签交换功能:

Switch(config)# interface eth-0-13
Switch(config-if)# no switchport
Switch(config-if)# ip add 11.11.13.4/24
Switch(config-if)# enable-ldp
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface loopback 0
Switch(config-if)# ip address 11.11.4.4/32
Switch(config-if)# exit

PE3的接口配置,eth-0-17需要使能ldp并且开启标签交换功能:

Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.17.3/24
Switch(config-if)# enable-ldp
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface loopback 0
Switch(config-if)# ip address 11.11.3.3/32
Switch(config-if)# exit

P的接口配置,接口需要使能ldp并且开启标签交换功能:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.9.2/24
Switch(config-if)# enable-ldp
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface eth-0-13
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.13.2/24
Switch(config-if)# enable-ldp
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# ip address 11.11.17.2/24
Switch(config-if)# enable-ldp
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface loopback 0
Switch(config-if)# ip address 11.11.2.2/32
Switch(config-if)# exit

 步骤3 使能ldp路由

PE1LDP配置:

Switch(config)# router ldp
Switch(config-router)# router-id 11.11.1.1
Switch(config-router)# targeted-peer 11.11.3.3
Switch(config-router)# targeted-peer 11.11.4.4
Switch(config-router)# transport-address 11.11.1.1
Switch(config-router)# exit

PE2LDP配置:

Switch(config)# router ldp
Switch(config-router)# router-id 11.11.4.4
Switch(config-router)# transport-address 11.11.4.4
Switch(config-router)# targeted-peer 11.11.1.1
Switch(config-router)# targeted-peer 11.11.3.3
Switch(config-router)# exit

PE3LDP配置:

Switch(config)# router ldp
Switch(config-router)# router-id 11.11.3.3
Switch(config-router)# transport-address 11.11.3.3
Switch(config-router)# targeted-peer 11.11.1.1
Switch(config-router)# targeted-peer 11.11.4.4
Switch(config-router)# exit

PLDP配置:

Switch(config)# router ldp
Switch(config-router)# router-id 11.11.2.2
Switch(config-router)# exit

 步骤4 使能rip路由

Switch(config)# router rip
Switch(config-router)# network 11.11.1.1/16
Switch(config-router)# exit

 步骤5 配置mpls vpls 实例

PE1, PE2, PE3均配置PW侧为raw模式,并指定vpls peer

PE1VPLS实例配置:

Switch(config)# mpls vpls v1 100
Switch(config-vpls)# vpls-peer 11.11.3.3 raw
Switch(config-vpls)# vpls-peer 11.11.4.4 raw
Switch(config-vpls)# mac-address-table 0000.0000.0001 forward eth-0-1
Switch(config-vpls)# mac-address-table 0000.0000.0003 forward peer 11.11.3.3
Switch(config-vpls)# mac-address-table 0000.0000.0004 forward peer 11.11.4.4
Switch(config-vpls)# exit

PE2VPLS实例配置:

Switch(config)# mpls vpls v4 100
Switch(config-vpls)# vpls-peer 11.11.1.1 raw
Switch(config-vpls)# vpls-peer 11.11.3.3 raw
Switch(config-vpls)# mac-address-table 0000.0000.0004 forward eth-0-1
Switch(config-vpls)# mac-address-table 0000.0000.0001 forward peer 11.11.1.1
Switch(config-vpls)# mac-address-table 0000.0000.0003 forward peer 11.11.3.3
Switch(config-vpls)# exit

PE3VPLS实例配置:

Switch(config)# mpls vpls v3 100
Switch(config-vpls)# vpls-peer 11.11.1.1 raw
Switch(config-vpls)# vpls-peer 11.11.4.4 raw
Switch(config-vpls)# mac-address-table 0000.0000.0003 forward eth-0-1
Switch(config-vpls)# mac-address-table 0000.0000.0001 forward peer 11.11.1.1
Switch(config-vpls)# mac-address-table 0000.0000.0004 forward peer 11.11.4.4
Switch(config-vpls)# exit

 步骤6 在端口上绑定mpls vpls 实例

PE1, PE2, PE3AC侧均配置为ethernet接入。

PE1的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# mpls-vpls v1 ethernet
Switch(config-if)# exit

PE2的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# mpls-vpls v4 ethernet
Switch(config-if)# exit

PE3的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# mpls-vpls v3 ethernet
Switch(config-if)# exit

 步骤7 退出配置模式

Switch(config)# end

 步骤8 命令验证

使用命令show mac address-table vpls来显示VPLS静态MAC的相关信息。

PE1显示结果:

PE1# show mac address-table vpls
vpls         peer              mac              static
v1           eth-0-1           0000.0000.0001 1
v1           11.11.3.3         0000.0000.0003 1
v1           11.11.4.4         0000.0000.0004 1

PE2显示结果:

PE2# show mac address-table vpls
vpls         peer              mac              static
v1           eth-0-1           0000.0000.0004 1
v1           11.11.1.1         0000.0000.0001 1
v1           11.11.3.3         0000.0000.0003 1

PE3显示结果:

PE3# show mac address-table vpls
vpls         peer              mac              static
v1           eth-0-1           0000.0000.0003 1
v1           11.11.1.1         0000.0000.0001 1
v1           11.11.4.4         0000.0000.0004 1

17.3.3 应用场景配置举例

17.4 配置 VPWS

17.4.1 概述

17.4.1.1 功能简介

VPWS是一种通过MPLS封装的点对点的服务模型,二层报文将通过LSP在两个PE之间透传。

17.4.1.2 原理描述

17.4.2 配置

配置VPWS拓扑

17.4.2.1 使用LDP配置VPWS

本章VPWS基于LDP,标准为IETF[L2TRANS]

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性

PE1的接口配置:

Switch(config)# interface eth-0-2
Switch(config-if)# mpls-l2-circuit t1 ethernet
Switch(config-if)# exit
Switch(config)# interface loopback 0
Switch(config-if)# ip address 192.168.10.10/32
Switch(config-if)# exit
Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 8.8.8.1/24
Switch(config-if)# enable-ldp
Switch(config-if)# label-switching
Switch(config-if)# exit

PE2的接口配置:

Switch(config)# interface eth-0-2
Switch(config-if)# mpls-l2-circuit t1 ethernet
Switch(config-if)# exit
Switch(config)# interface loopback 0
Switch(config-if)# ip address 192.168.11.10/32
Switch(config-if)# exit
Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 8.8.8.2/24
Switch(config-if)# enable-ldp
Switch(config-if)# label-switching
Switch(config-if)# exit

 步骤3 使能ldp路由

PE1LDP配置:

Switch(config)# router ldp
Switch(config-router)# router-id 192.168.10.10
Switch(config-router)# targeted-peer 192.168.11.10
Switch(config-router)# exit

PE2LDP配置:

PE2(config)# router ldp
PE2(config-router)# router-id 192.168.11.10
PE2(config-router)# targeted-peer 192.168.10.10
PE2(config-router)# exit

 步骤4 配置VPWS VC ID

PE1VC ID配置:

PE1(config)# mpls l2-circuit t1 200 192.168.11.10 raw

PE2VC ID配置:

PE2(config)# mpls l2-circuit t1 200 192.168.10.10 raw

 步骤4 使能rip路由

Switch(config)# router rip
Switch(config-router)# network 0.0.0.0/0
Switch(config-router)# exit

 步骤5 退出配置模式

Switch(config)# end

 步骤6 命令验证

使用show mpls l2-circuitshow mpls vc-table来显示VPWS的相关信息。

PE1显示结果: ?

PE1# show mpls l2-circuit
VC-Name              VC-ID      Interface    AC-type  VLAN   PW-mode   Manual
t1                   200        eth-0-2      Ethernet N/A    Raw       No  
PE1# show mpls vc-table
VC-ID       PW Intf   AC Intf   L/R Label       EndPoint        Status   Manual
200         eth-0-9   eth-0-2   32768/32768     192.168.11.10   Active   No 

PE2显示结果:

PE2# show mpls l2-circuit
VC-Name              VC-ID      Interface    AC-type  VLAN   PW-mode   Manual
t1                   200        eth-0-2      Ethernet N/A    Raw       No  
PE2# show mpls vc-table
VC-ID       PW Intf   AC Intf   L/R Label       EndPoint        Status   Manual
200         eth-0-9   eth-0-2   32768/32768     192.168.10.10   Active   No   

17.4.2.2 配置静态VPWS

下面的例子描述了如何配置静态VPWS

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性

PE1的接口配置:

Switch(config)# interface eth-0-2
Switch(config-if)# mpls-l2-circuit t2 ethernet
Switch(config-if)# exit
Switch(config)# interface loopback 0
Switch(config-if)# ip address 192.168.10.10/32
Switch(config-if)# exit
Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 8.8.8.1/24
Switch(config-if)# label-switching
Switch(config-if)# exit

PE2的接口配置:

Switch(config)# interface eth-0-2
Switch(config-if)# mpls-l2-circuit t2 ethernet
Switch(config-if)# exit
Switch(config)# interface loopback 0
Switch(config-if)# ip address 192.168.11.10/32
Switch(config-if)# exit
Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 8.8.8.2/24
Switch(config-if)# label-switching
Switch(config-if)# exit

 步骤3 配置ftn条目

PE1FTN条目:

Switch(config)# mpls ftn-entry 192.168.11.1/24 111 8.8.8.2

PE2FTN条目: ?
? Switch(config)# mpls ftn-entry 192.168.10.1/24 222 8.8.8.1

 步骤4 配置静态ilm

PE1的静态ilm:

Switch(config)# mpls ilm-entry pop 212

PE2的静态ilm:

PE2(config)# mpls ilm-entry pop 111

 步骤5 配置VPWS VC ID

PE1VC ID配置:

Switch(config)# mpls l2-circuit t2 201 192.168.11.10 raw manual
Switch(config)# mpls l2-circuit-fib-entry t2 44 33

PE2VC ID配置:

Switch(config)# mpls l2-circuit t2 201 192.168.10.10 raw manual
Switch(config)# mpls l2-circuit-fib-entry t2 33 44

 步骤6 退出配置模式

Switch(config)# end

 步骤7 命令验证

使用show mpls l2-circuitshow mpls vc-table来显示VPWS的相关信息。

PE1显示结果:

PE1# show mpls l2-circuit
VC-Name        VC-ID      Interface    AC-type        VLAN   PW-mode   Manual
t2             201        eth-0-2      Ethernet       N/A    Raw       Yes  
PE1# show mpls vc-table
VC-ID       PW Intf   AC Intf   L/R Label       EndPoint        Status   Manual
201         eth-0-9   eth-0-2   44/33           192.168.11.10   Active   Yes  

PE2显示结果:

PE2# show mpls l2-circuit
VC-Name        VC-ID      Interface    AC-type        VLAN   PW-mode   Manual
t2             201        eth-0-2      Ethernet       N/A    Raw       Yes  
PE2# show mpls vc-table
VC-ID       PW Intf   AC Intf   L/R Label       EndPoint        Status   Manual
201         eth-0-9   eth-0-2   33/44           192.168.10.10   Active   Yes  

17.4.2.3 配置VPWS透传二层协议报文

下面的例子描述了如何配置VPWS透传二层协议报文。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 全局使能L2 protocol

Switch(config)# l2protocol enable

 步骤3 进入接口配置模式,配置接口属性

PE1的接口配置:

Switch(config)# interface eth-0-2
Switch(config-if)# mpls-l2-circuit t1 ethernet
Switch(config-if)# l2protocol stp tunnel
Switch(config-if)# exit
Switch(config)# interface loopback 0
Switch(config-if)# ip address 192.168.10.10/32
Switch(config-if)# exit
Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 8.8.8.1/24
Switch(config-if)# enable-ldp
Switch(config-if)# label-switching
Switch(config-if)# exit

PE2的接口配置:

Switch#configure terminal
Switch(config)# l2protocol enable
Switch(config)# interface eth-0-2
Switch(config-if)# mpls-l2-circuit t1 ethernet
Switch(config-if)# l2protocol stp tunnel
Switch(config-if)# exit
Switch(config)# interface loopback 0
Switch(config-if)# ip address 192.168.11.10/32
Switch(config-if)# exit
Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 8.8.8.2/24
Switch(config-if)# enable-ldp
Switch(config-if)# label-switching
Switch(config-if)# exit

 步骤4 使能ldp路由

PE1LDP配置:

Switch(config)# router ldp
Switch(config-router)# router-id 192.168.10.10
Switch(config-router)# targeted-peer 192.168.11.10
Switch(config-router)# exit

PE2LDP配置:

Switch(config)# router ldp
Switch(config-router)# router-id 192.168.11.10
Switch(config-router)# targeted-peer 192.168.10.10
Switch(config-router)# exit

 步骤4 配置VPWS VC ID

PE1VC ID配置:

switch(config)# mpls l2-circuit t1 200 192.168.11.10 raw

PE2VC ID配置:

switch(config)# mpls l2-circuit t1 200 192.168.10.10 raw

 步骤5 使能rip路由

switch(config)# router rip
switch(config-router)# network 0.0.0.0/0
switch(config-router)# exit

 步骤6 退出配置模式

Switch(config)# end

17.4.3 应用场景配置举例

17.5 配置 MPLS QoS

17.5.1 概述

17.5.1.1 功能简介

MPLS QoS是部署QoSQuality of Service)业务的重要组成部分,在实际的MPLS组网方案中往往通过差分服务(DiffServ)模型来实施QoS。它可以为每个通过MPLS网络的业务提供指定的服务,并提供差异化的服务类型来满足各种需求。

MPLS使用标签转发替代了传统的路由转发,功能强大、灵活,可以满足各种新应用对网络的要求,而且MPLS支持多种网络协议(如IPv4IPv6等)。目前MPLS被广泛地应用于大规模网络的组建,而在MPLS网络中,无法通过IP QoS来实现服务质量(QoS),所以在MPLS网络中实现服务质量也就应运而生,即MPLS QoS

与传统IP QoS根据IP报文的优先级来区分业务的服务等级类似,MPLS QoS根据报文的EXP来区分不同的数据流,实现差分服务,保证语音、视频数据流的低延时、低丢包率,保证网络的高利用率。

17.5.1.2 原理描述

17.5.2 MPLS隧道模式

MPLS隧道模式包含三种模式:UniformPipeShort Pipe

Uniform模式:报文在IP网和MPLS网中的优先级标识是统一定义的,即两种网络对报文的优先级标识都是全局有效的。在Ingress上,报文被加上标签,DSCP映射到EXP。如果报文在MPLS网络中改变了EXP字段的值,会影响报文离开MPLS网络后采用的PHB(Per-Hop Behavior)。即在出节点会将EXP映射到DSCP

Uniform模式

Pipe模式:在Ingress上报文压入MPLS标签的EXP值可以由用户指定。如果报文在MPLS网络中改变了EXP字段的值,只在MPLS网络中有效。在Egress上,报文会根据EXP字段的值选择PHB。当报文离开MPLS网络后,报文之前携带的DSCP继续有效。

Pipe模式

Short pipe模式:在Ingress上报文压入MPLS标签的EXP值可以由用户指定。如果报文在MPLS网络中改变了EXP字段的值,只在MPLS网络中有效。在Egress上,报文会根据DSCP选择PHB。当报文离开MPLS网络后,报文之前携带的DSCP继续有效。

Short pipe模式

17.5.3 配置

MPLS QoS LSP 模型

17.5.3.1 配置MPLS QoS Uniform

下面的例子描述了如何配置MPLS QoS Uniform模式。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置全局MPLS隧道模式

Switch(config)# mpls lsp-model uniform

 步骤3 进入接口配置模式,配置接口属性

PE1的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.0.9.1/24
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# qos domain type dscp 1
Switch(config-if)# trust dscp
Switch(config-if)# replace dscp
Switch(config-if)# ip address 1.1.1.1/24
Switch(config-if)# label-switching
Switch(config-if)# exit   

P的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.0.9.2/24
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.0.17.2/24
Switch(config-if)# label-switching
Switch(config-if)# exit

PE2的接口配置:

Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.0.17.1/24
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# qos domain type dscp 1
Switch(config-if)# trust dscp
Switch(config-if)# replace dscp
Switch(config-if)# ip address 2.2.2.2/24
Switch(config-if)# label-switching
Switch(config-if)# exit

 步骤4 配置静态arp

PE1的接口配置:

Switch(config)# arp 1.1.1.2 0001.0001.0002

PE2的接口配置:

Switch(config)# arp 2.2.2.1 0002.0002.0001

 步骤5 配置静态ftn/ilm

PE1的静态ftn:

Switch(config)# mpls ftn-entry 2.2.2.0/24 102 10.0.9.2
Switch(config)# mpls ilm-entry pop 201

P的静态ilm:

Switch(config)# mpls ilm-entry swap 102 10.0.17.1 203
Switch(config)# mpls ilm-entry swap 302 10.0.9.1 201

PE2的静态ilm:

Switch(config)# mpls ftn-entry 1.1.1.0/24 302 10.0.17.2
Switch(config)# mpls ilm-entry pop 203

 步骤6 命令验证

PE1 显示结果:

PE1# show mpls ftn-database
Codes: > - selected FTN, p - stale FTN, B - BGP FTN, K - CLI FTN,
   L - LDP FTN, R - RSVP-TE FTN, S - SNMP FTN, I - IGP-Shortcut,
   * -bypass FTN, U - unknown FTN

Code    FEC                 Out-Label    Nexthop          Out-Intf   
K>      2.2.2.0/24          102          10.0.9.2         eth-0-9    

PE1# show mpls ilm-database
Codes: > - selected ILM, * - LSP ILM, p - stale ILM, B - BGP ILM, K - CLI ILM,
   L - LDP ILM, R - RSVP-TE ILM, S - SNMP ILM, I - IGP-Shortcut
   U - unknown ILM

Code     FEC                I/O Label            Nexthop         Out-Intf 
K>       0.0.0.0/0          201/-                0.0.0.0         N/A      

P显示结果:

P# show mpls ilm-database
Codes: > - selected ILM, * - LSP ILM, p - stale ILM, B - BGP ILM, K - CLI ILM,
   L - LDP ILM, R - RSVP-TE ILM, S - SNMP ILM, I - IGP-Shortcut
   U - unknown ILM

Code     FEC                I/O Label            Nexthop         Out-Intf 
K>       0.0.0.0/0          102/203              10.0.17.1       eth-0-17 
K>       0.0.0.0/0          302/201              10.0.9.1        eth-0-9  

PE2 显示结果:

PE2# show mpls ftn-database
Codes: > - selected FTN, p - stale FTN, B - BGP FTN, K - CLI FTN,
   L - LDP FTN, R - RSVP-TE FTN, S - SNMP FTN, I - IGP-Shortcut,
   * -bypass FTN, U - unknown FTN

Code    FEC                 Out-Label    Nexthop          Out-Intf   
K>      1.1.1.0/24          302          10.0.17.2        eth-0-17    

PE2# show mpls ilm-database
Codes: > - selected ILM, * - LSP ILM, p - stale ILM, B - BGP ILM, K - CLI ILM,
   L - LDP ILM, R - RSVP-TE ILM, S - SNMP ILM, I - IGP-Shortcut
   U - unknown ILM

Code     FEC                I/O Label            Nexthop         Out-Intf 
K>       0.0.0.0/0          203/-                0.0.0.0         N/A      

17.5.3.2 配置MPLS QoS Pipe

下面的例子描述了如何配置MPLS QoS Pipe模式。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置全局MPLS隧道模式

PE1的接口配置:

Switch(config)# mpls lsp-model pipe exp 7

P的接口配置:

Switch(config)# mpls lsp-model pipe

PE2的接口配置:

Switch(config)# mpls lsp-model pipe exp 7

 步骤3 进入接口配置模式,配置接口属性

PE1的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.0.9.1/24
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# qos domain type dscp 1
Switch(config-if)# trust dscp
Switch(config-if)# ip address 1.1.1.1/24
Switch(config-if)# label-switching
Switch(config-if)# exit   

P的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.0.9.2/24
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.0.17.2/24
Switch(config-if)# label-switching
Switch(config-if)# exit

PE2的接口配置:

Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.0.17.1/24
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# qos domain type dscp 1
Switch(config-if)# trust dscp
Switch(config-if)# ip address 2.2.2.2/24
Switch(config-if)# label-switching
Switch(config-if)# exit

 步骤4 配置静态arp

PE1的接口配置:

Switch(config)# arp 1.1.1.2 0001.0001.0002

PE2的接口配置:

Switch(config)# arp 2.2.2.1 0002.0002.0001

 步骤5 配置静态ftn/ilm

PE1的静态ftn:

Switch(config)# mpls ftn-entry 2.2.2.0/24 102 10.0.9.2
Switch(config)# mpls ilm-entry pop 201

P的静态ilm:

Switch(config)# mpls ilm-entry swap 102 10.0.17.1 203
Switch(config)# mpls ilm-entry swap 302 10.0.9.1 201

PE2的静态ilm:

Switch(config)# mpls ftn-entry 1.1.1.0/24 302 10.0.17.2
Switch(config)# mpls ilm-entry pop 203

 步骤6 命令验证

PE1 显示结果:

PE1# show mpls ftn-database
Codes: > - selected FTN, p - stale FTN, B - BGP FTN, K - CLI FTN,
   L - LDP FTN, R - RSVP-TE FTN, S - SNMP FTN, I - IGP-Shortcut,
   * -bypass FTN, U - unknown FTN

Code    FEC                 Out-Label    Nexthop          Out-Intf   
K>      2.2.2.0/24          102          10.0.9.2         eth-0-9    

PE1# show mpls ilm-database
Codes: > - selected ILM, * - LSP ILM, p - stale ILM, B - BGP ILM, K - CLI ILM,
   L - LDP ILM, R - RSVP-TE ILM, S - SNMP ILM, I - IGP-Shortcut
   U - unknown ILM

Code     FEC                I/O Label            Nexthop         Out-Intf 
K>       0.0.0.0/0          201/-                0.0.0.0         N/A      

P显示结果:

P# show mpls ilm-database
Codes: > - selected ILM, * - LSP ILM, p - stale ILM, B - BGP ILM, K - CLI ILM,
   L - LDP ILM, R - RSVP-TE ILM, S - SNMP ILM, I - IGP-Shortcut
   U - unknown ILM

Code     FEC                I/O Label            Nexthop         Out-Intf 
K>       0.0.0.0/0          102/203              10.0.17.1       eth-0-17 
K>       0.0.0.0/0          302/201              10.0.9.1        eth-0-9  

PE2 显示结果:

PE2# show mpls ftn-database
Codes: > - selected FTN, p - stale FTN, B - BGP FTN, K - CLI FTN,
   L - LDP FTN, R - RSVP-TE FTN, S - SNMP FTN, I - IGP-Shortcut,
   * -bypass FTN, U - unknown FTN

Code    FEC                 Out-Label    Nexthop          Out-Intf   
K>      1.1.1.0/24          302          10.0.17.2        eth-0-17    

PE2# show mpls ilm-database
Codes: > - selected ILM, * - LSP ILM, p - stale ILM, B - BGP ILM, K - CLI ILM,
   L - LDP ILM, R - RSVP-TE ILM, S - SNMP ILM, I - IGP-Shortcut
   U - unknown ILM

Code     FEC                I/O Label            Nexthop         Out-Intf 
K>       0.0.0.0/0          203/-                0.0.0.0         N/A      

17.5.3.3 配置MPLS QoS Short Pipe

下面的例子描述了如何配置MPLS QoS Short Pipe模式。

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 配置全局MPLS隧道模式

PE1的接口配置:

Switch(config)# mpls lsp-model short-pipe exp 7

P的接口配置:

Switch(config)# mpls lsp-model short-pipe

PE2的接口配置:

Switch(config)# mpls lsp-model short-pipe exp 7

 步骤3 进入接口配置模式,配置接口属性

PE1的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.0.9.1/24
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# qos domain type dscp 1
Switch(config-if)# trust dscp
Switch(config-if)# ip address 1.1.1.1/24
Switch(config-if)# label-switching
Switch(config-if)# exit   

P的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.0.9.2/24
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.0.17.2/24
Switch(config-if)# label-switching
Switch(config-if)# exit

PE2的接口配置:

Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# ip address 10.0.17.1/24
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# qos domain type dscp 1
Switch(config-if)# trust dscp
Switch(config-if)# ip address 2.2.2.2/24
Switch(config-if)# label-switching
Switch(config-if)# exit

 步骤4 配置静态arp

PE1的接口配置:

Switch(config)# arp 1.1.1.2 0001.0001.0002

PE2的接口配置:

Switch(config)# arp 2.2.2.1 0002.0002.0001

 步骤5 配置静态ftn/ilm

PE1的静态ftn:

Switch(config)# mpls ftn-entry 2.2.2.0/24 102 10.0.9.2
Switch(config)# mpls ilm-entry pop 201

P的静态ilm:

Switch(config)# mpls ilm-entry swap 102 10.0.17.1 203
Switch(config)# mpls ilm-entry swap 302 10.0.9.1 201

PE2的静态ilm:

Switch(config)# mpls ftn-entry 1.1.1.0/24 302 10.0.17.2
Switch(config)# mpls ilm-entry pop 203

 步骤6 命令验证

PE1 显示结果:

PE1# show mpls ftn-database
Codes: > - selected FTN, p - stale FTN, B - BGP FTN, K - CLI FTN,
   L - LDP FTN, R - RSVP-TE FTN, S - SNMP FTN, I - IGP-Shortcut,
   * -bypass FTN, U - unknown FTN

Code    FEC                 Out-Label    Nexthop          Out-Intf   
K>      2.2.2.0/24          102          10.0.9.2         eth-0-9    

PE1# show mpls ilm-database
Codes: > - selected ILM, * - LSP ILM, p - stale ILM, B - BGP ILM, K - CLI ILM,
   L - LDP ILM, R - RSVP-TE ILM, S - SNMP ILM, I - IGP-Shortcut
   U - unknown ILM

Code     FEC                I/O Label            Nexthop         Out-Intf 
K>       0.0.0.0/0          201/-                0.0.0.0         N/A      

P显示结果:

P# show mpls ilm-database
Codes: > - selected ILM, * - LSP ILM, p - stale ILM, B - BGP ILM, K - CLI ILM,
   L - LDP ILM, R - RSVP-TE ILM, S - SNMP ILM, I - IGP-Shortcut
   U - unknown ILM

Code     FEC                I/O Label            Nexthop         Out-Intf 
K>       0.0.0.0/0          102/203              10.0.17.1       eth-0-17 
K>       0.0.0.0/0          302/201              10.0.9.1        eth-0-9  

PE2 显示结果:

PE2# show mpls ftn-database
Codes: > - selected FTN, p - stale FTN, B - BGP FTN, K - CLI FTN,
   L - LDP FTN, R - RSVP-TE FTN, S - SNMP FTN, I - IGP-Shortcut,
   * -bypass FTN, U - unknown FTN

Code    FEC                 Out-Label    Nexthop          Out-Intf   
K>      1.1.1.0/24          302          10.0.17.2        eth-0-17    

PE2# show mpls ilm-database
Codes: > - selected ILM, * - LSP ILM, p - stale ILM, B - BGP ILM, K - CLI ILM,
   L - LDP ILM, R - RSVP-TE ILM, S - SNMP ILM, I - IGP-Shortcut
   U - unknown ILM

Code     FEC                I/O Label            Nexthop         Out-Intf 
K>       0.0.0.0/0          203/-                0.0.0.0         N/A      

17.5.4 应用场景配置举例

17.6 配置 L3VPN

17.6.1 概述

17.6.1.1 功能简介

本章节描述了如何配置L3VPN。其核心思想是通过Route Targetexportimport属性控制路由在VRF间的收发,通过RD去区分来自不同VPN的路由,通过内层label去映射出不同的vrf来指导数据的三层转发。

17.6.1.2 原理描述

17.6.2 配置

L3VPN 模型

17.6.2.1 配置L3VPN

下面的例子描述了如何使用配置L3VPN.

以下配置如未说明在哪个Switch配置,则表示所有Switch配置相同:

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 vrf配置

PE1vrf配置:

Switch(config)# ip vrf vpn1
Switch(config-vrf)# rd 1:1
Switch(config-vrf)# route-target both 1:1
Switch(config-vrf)# exit

PE2vrf配置:

Switch(config)# ip vrf vpn1
Switch(config-vrf)# rd 1:1
Switch(config-vrf)# route-target both 1:1
Switch(config-vrf)# exit

 步骤3 进入接口配置模式,配置接口属性

CE1的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 2.2.2.1/24
Switch(config-if)# exit
Switch(config)# interface loopback 0
Switch(config-if)# ip address 4.4.4.4/32
Switch(config-if)# exit

PE1的接口配置,eth-0-9需要使能ldp并且加入vrf

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip vrf forwarding vpn1
Switch(config-if)# ip address 2.2.2.2/24
Switch(config-if)# exit
Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# label-switching
Switch(config-if)# ip address 1.1.1.1/24
Switch(config-if)# enable-ldp
Switch(config-if)# exit
Switch(config)# interface loopback 0
Switch(config-if)# ip address 5.5.5.5/32
Switch(config-if)# exit

PE2的接口配置,eth-0-9需要使能ldp并且加入vrf

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip vrf forwarding vpn1
Switch(config-if)# ip address 3.3.3.3/24
Switch(config-if)# exit
Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# label-switching
Switch(config-if)# ip address 1.1.1.2/24
Switch(config-if)# enable-ldp
Switch(config-if)# exit
Switch(config)# interface loopback 0
Switch(config-if)# ip address 6.6.6.6/32
Switch(config-if)# exit

CE2的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# ip address 3.3.3.4/24
Switch(config-if)# exit
Switch(config)# interface loopback0
Switch(config-if)# ip address 7.7.7.7/32
Switch(config-if)# exit

 步骤4 使能ldp路由

PE1LDP配置:

Switch(config)# router ldp
Switch(config-router)# router-id 5.5.5.5
Switch(config-router)# exit

PE2LDP配置:

Switch(config)# router ldp
Switch(config-router)# router-id 6.6.6.6
Switch(config-router)# exit

 步骤5 使能rip路由

CE1RIP配置:

Switch(config)# router rip
Switch(config-router)# network 2.2.2.2/24
Switch(config-router)# redistribute connected
Switch(config-router)# exit

PE1RIP配置:

Switch(config)# router rip
Switch(config-router)# address-family ipv4 vrf vpn1
Switch(config-router-af)# network 2.2.2.0/24
Switch(config-router-af)# redistribute bgp
Switch(config-router-af)# exit-address-family
Switch(config-router)# exit

PE2RIP配置:

Switch(config)# router rip
Switch(config-router)# address-family ipv4 vrf vpn1
Switch(config-router-af)# network 3.3.3.3/24
Switch(config-router-af)# redistribute bgp
Switch(config-router-af)# exit-address-family
Switch(config-router)# exit

CE2RIP配置:

Switch(config)# router rip
Switch(config-router)# network 3.3.3.0/24
Switch(config-router)# redistribute connected
Switch(config-router)# exit

 步骤6 使能ospf路由f

PE1OSPF配置:

Switch(config)#router ospf
Switch(config-router)# redistribute connected
Switch(config-router)# network 1.1.1.0/24 area 0
Switch(config-router)# exit

PE2OSPF配置:

Switch(config)# router ospf
Switch(config-router)# redistribute connected
Switch(config-router)# network 1.1.1.0/24 area 0
Switch(config-router)# exit

 步骤7 使能bgp路由

PE1BGP配置:

Switch(config)# router bgp 1
Switch(config-router)# neighbor 6.6.6.6 remote-as 1
Switch(config-router)# neighbor 6.6.6.6 update-source loopback0
Switch(config-router)# address-family ipv4
Switch(config-router-af)# no synchronization
Switch(config-router-af)# neighbor 6.6.6.6 activate
Switch(config-router-af)# exit-address-family
Switch(config-router)# address-family vpnv4 unicast
Switch(config-router-af)# no synchronization
Switch(config-router-af)# neighbor 6.6.6.6 activate
Switch(config-router-af)# neighbor 6.6.6.6 send-community both
Switch(config-router-af)# exit-address-family
Switch(config-router)# address-family ipv4 vrf vpn1
Switch(config-router-af)# redistribute connected
Switch(config-router-af)# redistribute rip
Switch(config-router-af)# no synchronization
Switch(config-router-af)# exit-address-family
Switch(config-router)# exit

PE2BGP配置:

Switch(config)# router bgp 1
Switch(config-router)# neighbor 5.5.5.5 remote-as 1
Switch(config-router)# neighbor 5.5.5.5 update-source loopback0
Switch(config-router)# address-family ipv4
Switch(config-router-af)# no synchronization
Switch(config-router-af)# neighbor 5.5.5.5 activate
Switch(config-router-af)# exit-address-family
Switch(config-router)# address-family vpnv4 unicast
Switch(config-router-af)# no synchronization
Switch(config-router-af)# neighbor 5.5.5.5 activate
Switch(config-router-af)# neighbor 5.5.5.5 send-community both
Switch(config-router-af)# exit-address-family
Switch(config-router)# address-family ipv4 vrf vpn1
Switch(config-router-af)# redistribute connected
Switch(config-router-af)# redistribute rip
Switch(config-router-af)# no synchronization
Switch(config-router-af)# exit-address-family
Switch(config-router)# exit

 步骤8 命令验证

通过在CE1show ip routeping CE2 loopback地址来验证L3VPN的可达性。

PE1显示结果:

PE1# show ip route
s: K - kernel, C - connected, S - static, R - RIP, B - BGP
   O - OSPF, IA - OSPF inter area
   N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
   E1 - OSPF external type 1, E2 - OSPF external type 2
   i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
   Dc - DHCP Client
   [*] - [AD/Metric]
   * - candidate default
C        2.2.2.0/24 is directly connected, eth-0-9
C        2.2.2.1/32 is in local loopback, eth-0-9
R        3.3.3.0/24 [120/2] via 2.2.2.2, eth-0-9, 00:00:04
C        4.4.4.4/32 is directly connected, loopback0
R        7.7.7.7/32 [120/2] via 2.2.2.2, eth-0-9, 00:00:02

PE1# ping 7.7.7.7
PING 7.7.7.7 (7.7.7.7) 56(84) bytes of data.
64 bytes from 7.7.7.7: icmp_seq=0 ttl=62 time=1828 ms
64 bytes from 7.7.7.7: icmp_seq=1 ttl=62 time=1801 ms
64 bytes from 7.7.7.7: icmp_seq=2 ttl=62 time=1775 ms
64 bytes from 7.7.7.7: icmp_seq=3 ttl=62 time=1775 ms
64 bytes from 7.7.7.7: icmp_seq=4 ttl=62 time=1705 ms

--- 7.7.7.7 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4018ms
rtt min/avg/max/mdev = 1705.600/1777.267/1828.148/40.840 ms, pipe 3

17.6.3 应用场景配置举例

17.7 配置 MPLS SR

17.7.1 概述

17.7.1.1 功能简介

SRSegment Routing,分段路由)采用源路径选择机制,预先在源节点封装好路径所要经过节点分配的SIDSegment Identifier,段标识),当报文经过SR 节点时,该节点根据报文的SID 对报文进行转发。除源节点外,其它节点无需维护路径状态。MPLS SRSegment Routing with MPLSMPLS 段路由)是指在MPLS 网络中使用SR、将标签作为SID 对报文进行转发。

17.7.1.2 原理描述

要想通过 SR LSP 转发报文,需要完成以下工作:

  1. 进行标签分配,为报文转发路径中的每个节点和链路规划标签信息,可以使用静态配置Segment或者动态分配SID两种方式。
  2. 建立标签转发表项,运行MPLS SR 的设备组成的分段路由域内的设备根据分配的标签信息形成本地的标签转发表项。
  3. 建立SR LSPSR LSP 可以手工配置,也可以通过控制器动态创建。
  4. SR隧道和SR LSP 关联,以便SR隧道采用SR LSP 进行报文转发。

完成上述步骤后,当源节点接收到用户网络的报文后,会为报文封装所经过路径上的标签信息,并通过SR LSP 将报文转发给尾节点;尾节点从SR LSP 接收到报文后,会剥离报文中的标签,根据原始报文的目的地址查找路由表进行报文转发。

17.7.2 配置

17.7.2.1 配置静态MPLS SR

MPLS SR拓扑

下面的例子描述了如何配置静态MPLS SR

 步骤1 进入配置模式

Switch# configure terminal

 步骤2 进入接口配置模式,配置接口属性

Switch1上的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 1.1.1.1/24
Switch(config-if)# exit
Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 12.1.1.1/24
Switch(config-if)# label-switching
Switch(config-if)# exit

Switch2上的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 12.1.1.2/24
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 23.1.1.2/24
Switch(config-if)# label-switching
Switch(config-if)# exit

Switch3上的接口配置:

Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 23.1.1.3/24
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 34.1.1.3/24
Switch(config-if)# label-switching
Switch(config-if)# exit
Switch(config)# interface loopback0
Switch(config-if)# ip address 5.5.5.5/32
Switch(config-if)# exit

 步骤3 配置静态路由

Switch2上静态路由的配置:

Switch(config)# ip route 5.5.5.5/32 23.1.1.3

Switch3上静态路由和静态arp的配置:

Switch(config)# arp 34.1.1.4 0000.0000.000a
Switch(config)# ip route 10.10.10.10/32 34.1.1.4

 步骤4 静态配置Segment

Switch1adj segment的配置:

Switch(config)# static-sr-mpls adjacency adj1 in-label 20 nexthop 12.1.1.2

Switch2prefix segment的配置:

Switch(config)# static-sr-mpls prefix prefix1 destination 5.5.5.5/32 in-label 30 nexthop 23.1.1.3 out-label 30

Switch3prefix segment的配置:

Switch(config)# static-sr-mpls prefix prefix1 destination 5.5.5.5/32 in-label 30

 步骤5 配置SR LSP

Switch1sr lsp的配置:

Switch(config)# static-sr-mpls lsp lsp1 out-label 20 30

 步骤6 配置SR隧道,绑定SR LSP,再将路由引入该TUNNEL

Switch1sr tunnel的配置:

Switch(config)# static-sr-mpls tunnel tun1 non-aps
Switch(config-sr-tunnel)# primary lsp1
Switch(config-sr-tunnel)# map-route 10.10.10.10/32
Switch(config-sr-tunnel)# exit

 步骤7 命令验证

显示Switch1上的adj segment表项:

Switch# show mpls sr-adj
sr-adj               id    inlabel   nexthop         lsp_list
adj1                 0     20        12.1.1.2        lsp1      

显示Switch2上的prefix segment表项:

Switch# show mpls sr-prefix
sr-prefix            id    inlabel   outlabel  nexthop         lsp_list
prefix1              0     30        30        23.1.1.3       

显示Switch3上的prefix segment表项:

Switch# show mpls sr-prefix
sr-prefix            id    inlabel   outlabel  nexthop         lsp_list
prefix1              0     30        1048576   0.0.0.0        

显示Switch1上的sr lsp表项:

Switch# show mpls sr-lsp
sr-lsp     id    tunid instl nexthop         tunnel    adj       prefix    outlabel
lsp1       2     2     1     12.1.1.2        tun1      adj1      -         20 30

显示Switch1上的sr tunnel表项:

Switch# show mpls sr-tunnel
sr-tunnel            id    type   wlsp      plsp      slsp      map-route
tun1                 3     non    lsp1      -         -         10.10.10.10/32

显示Switch1上的map-route表项:

Switch# show mpls sr-mapped-routes
Mapped-route        SR Tunnel name
10.10.10.10/32      tun1

Switch1eth-0-1口发送目的ip地址是10.10.10.10的报文:

Switch1eth-0-1口抓收到的报文:

07:45:48.915852 00:00:00:00:00:02 (oui Ethernet) > 22:92:11:2e:47:00 (oui Unknown), ethertype IPv4 (0x0800), length 64: (tos 0x0, ttl 10, id 0, offset 0, flags [none], proto UDP (17), length 50)
    1.1.1.3.43690 > 10.10.10.10.43741: [bad udp cksum 0xaadd -> 0x9331!] UDP, length 43682
        0x0000:  2292 112e 4700 0000 0000 0002 0800 4500
        0x0010:  0032 0000 0000 0a11 9aa4 0101 0103 0a0a
        0x0020:  0a0a aaaa aadd aaaa aadd aaaa aadd aaaa
        0x0030:  aadd aaaa aadd aaaa aadd aaaa aadd aaaa

Switch1eth-0-9口抓发出的报文:

07:49:41.883130 22:92:11:2e:47:00 (oui Unknown) > 2c:ad:5e:70:52:00 (oui Unknown), ethertype MPLS unicast (0x8847), length 68: MPLS (label 30, exp 0, [S], ttl 8)
    (tos 0x0, ttl 9, id 0, offset 0, flags [none], proto UDP (17), length 50)
    1.1.1.3.43690 > 10.10.10.10.43741: [bad udp cksum 0xaadd -> 0x9331!] UDP, length 43682
        0x0000:  2cad 5e70 5200 2292 112e 4700 8847 0001
        0x0010:  e108 4500 0032 0000 0000 0911 9ba4 0101
        0x0020:  0103 0a0a 0a0a aaaa aadd aaaa aadd aaaa
        0x0030:  aadd aaaa aadd aaaa aadd aaaa aadd aaaa
        0x0040:  aadd aaaa

Switch2eth-0-17口抓发出的报文:

07:51:36.664252 2c:ad:5e:70:52:00 (oui Unknown) > 4e:1d:de:29:f9:00 (oui Unknown), ethertype MPLS unicast (0x8847), length 68: MPLS (label 30, exp 0, [S], ttl 7)
     (tos 0x0, ttl 9, id 0, offset 0, flags [none], proto UDP (17), length 50)
  1.1.1.3.43690 > 10.10.10.10.43741: [bad udp cksum 0xaadd -> 0x9331!] UDP, length 43682
    0x0000:  4e1d de29 f900 2cad 5e70 5200 8847 0001
    0x0010:  e107 4500 0032 0000 0000 0911 9ba4 0101
    0x0020:  0103 0a0a 0a0a aaaa aadd aaaa aadd aaaa
    0x0030:  aadd aaaa aadd aaaa aadd aaaa aadd aaaa
    0x0040:  aadd aaaa

Switch3eth-0-9口抓发出的报文:

07:55:33.886746 4e:1d:de:29:f9:00 (oui Unknown) > 00:00:00:00:00:0a (oui Ethernet), ethertype IPv4 (0x0800), length 64: (tos 0x0, ttl 6, id 0, offset 0, flags [none], proto UDP (17), length 50)
    1.1.1.3.43690 > 10.10.10.10.43741: [bad udp cksum 0xaadd -> 0x9331!] UDP, length 43682
        0x0000:  0000 0000 000a 4e1d de29 f900 0800 4500
        0x0010:  0032 0000 0000 0611 9ea4 0101 0103 0a0a
        0x0020:  0a0a aaaa aadd aaaa aadd aaaa aadd aaaa
        0x0030:  aadd aaaa aadd aaaa aadd aaaa aadd aaaa

17.7.2.2 配置动态ISIS SR

 MPLS SR拓扑 

 下面的例子描述了如何配置动态ISIS SR 

  步骤1 进入配置模式 

 Switch# configure terminal 

  步骤2 进入接口配置模式,配置接口属性,并且在各接口上使能isis 

Switch1上的接口配置:

Switch(config)# interface eth-0-1
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 10.1.1.1/24
Switch(config-if)# exit
Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 12.1.1.1/24
Switch(config-if)# label-switching
Switch(config-if)# ip router isis
Switch(config-if)# exit
Switch(config)# interface loopback0
Switch(config-if)# ip address 1.1.1.1/32
Switch(config-if)# ip router isis
Switch(config-if)# exit

Switch2上的接口配置:

Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 12.1.1.2/24
Switch(config-if)# label-switching
Switch(config-if)# ip router isis
Switch(config-if)# exit
Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 23.1.1.2/24
Switch(config-if)# label-switching
Switch(config-if)# ip router isis
Switch(config-if)# exit
Switch(config)# interface loopback0
Switch(config-if)# ip address 2.2.2.2/32
Switch(config-if)# ip router isis
Switch(config-if)# exit

Switch3上的接口配置:

Switch(config)# interface eth-0-17
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 23.1.1.3/24
Switch(config-if)# label-switching
Switch(config-if)# ip router isis
Switch(config-if)# exit
Switch(config)# interface eth-0-9
Switch(config-if)# no switchport
Switch(config-if)# no shutdown
Switch(config-if)# ip address 34.1.1.3/24
Switch(config-if)# label-switching
Switch(config-if)# ip router isis
Switch(config-if)# exit
Switch(config)# interface loopback0
Switch(config-if)# ip address 3.3.3.3/32
Switch(config-if)# ip router isis
Switch(config-if)# exit

Switch(config)# arp 34.1.1.4 0000.0000.000a
Switch(config)# ip route 5.5.5.5/32 34.1.1.4

  步骤3 使能isis路由协议并使能SR 

 Switch1上的配置: 

Switch(config)# router isis
Switch(config)# metric-style wide
Switch(config)# segment-routing mpls
Switch(config)# segment-routing global-block 16000 16999
Switch(config)# net 49.0000.0000.0001.00
Switch(config)# exit

 Switch2上的配置: 

Switch(config)# router isis
Switch(config)# metric-style wide
Switch(config)# segment-routing mpls
Switch(config)# segment-routing global-block 17000 17999
Switch(config)# net 49.0000.0000.0002.00
Switch(config)# exit

 Switch3上的配置: 

Switch(config)# router isis
Switch(config)# metric-style wide
Switch(config)# segment-routing mpls
Switch(config)# segment-routing global-block 18000 18999
Switch(config)# net 49.0000.0000.0003.00
Switch(config)# exit

  步骤4 配置各设备的前缀SID 

 Switch1上的配置: 

Switch(config)# interface loopback0
Switch(config-if)# isis prefix-sid index 10
Switch(config-if)# exit

 Switch2上的配置: 

Switch(config)# interface loopback0
Switch(config-if)# isis prefix-sid index 20
Switch(config-if)# exit

 Switch3上的配置: 

Switch(config)# interface loopback0
Switch(config-if)# isis prefix-sid index 30
Switch(config-if)# exit

  步骤5 配置SR LSP 

 Switch1sr lsp的配置: 

Switch(config)# static-sr-mpls lsp lsp1 out-label 16030

  步骤6 配置SR隧道,绑定SR LSP,再将路由引入该TUNNEL 

 Switch1sr tunnel的配置: 

Switch(config)# static-sr-mpls tunnel tun1 non-aps
Switch(config-sr-tunnel)# primary lsp1
Switch(config-sr-tunnel)# map-route 5.5.5.5/32
Switch(config-sr-tunnel)# exit

 步骤7 命令验证

 显示Switch1上的isis路由表项: 

Switch# show ip isis route

Codes: C - connected, E - external, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, D - discard, e - external metric

Area (null):
     Destination         Metric      Next-Hop            Interface      Tag        Sid   Nflag Eflag Chg
C    1.1.1.1/32          10          --                  loopback0      0          10    Y     N     N    
L1   2.2.2.2/32          20          12.1.1.2            eth-0-9        0          20    Y     N     N    
L1   3.3.3.3/32          30          12.1.1.2            eth-0-9        0          30    Y     N     N    
C    12.1.1.0/24         10          --                  eth-0-9        0          --    --    --    --
L1   23.1.1.0/24         20          12.1.1.2            eth-0-9        0          --    --    --    --

 显示Switch1上的prefix segment表项: 

Switch# show mpls sr-prefix
sr-prefix            destination     inlabel   outlabel  nexthop         lsp_list
-                    2.2.2.2/32      16020     17020     12.1.1.2        -
-                    3.3.3.3/32      16030     17030     12.1.1.2        lsp1

 显示Switch1上的mpls ilm转发表项: 

Switch# show mpls ilm-database
Codes: > - selected ILM, * - LSP ILM, p - stale ILM, B - BGP ILM, K - CLI ILM,
       L - LDP ILM, R - RSVP-TE ILM, S - SNMP ILM, G - IGP-Shortcut, I - ISIS SR
       U - unknown ILM

Code     FEC                I/O Label            Nexthop         Out-Intf 
I>       0.0.0.0/0          16010/-              0.0.0.0         N/A      
I>       0.0.0.0/0          16020/17020          12.1.1.2        eth-0-9  
I>       0.0.0.0/0          16030/17030          12.1.1.2        eth-0-9  

 显示Switch2上的isis路由表项: 

Switch# show ip isis route

Codes: C - connected, E - external, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, D - discard, e - external metric

Area (null):
     Destination         Metric      Next-Hop            Interface      Tag        Sid   Nflag Eflag Chg
L1   1.1.1.1/32          20          12.1.1.1            eth-0-9        0          10    Y     N     N    
C    2.2.2.2/32          10          --                  loopback0      0          20    Y     N     N    
L1   3.3.3.3/32          20          23.1.1.3            eth-0-17       0          30    Y     N     N    
C    12.1.1.0/24         10          --                  eth-0-9        0          --    --    --    --
C    23.1.1.0/24         10          --                  eth-0-17       0          --    --    --    --

 显示Switch2上的prefix segment表项: 

Switch# show mpls sr-prefix
sr-prefix            destination     inlabel   outlabel  nexthop         lsp_list
-                    1.1.1.1/32      17010     16010     12.1.1.1        -
-                    3.3.3.3/32      17030     18030     23.1.1.3        -

 显示Switch2上的mpls ilm转发表项: 

Switch# show mpls ilm-database
Codes: > - selected ILM, * - LSP ILM, p - stale ILM, B - BGP ILM, K - CLI ILM,
       L - LDP ILM, R - RSVP-TE ILM, S - SNMP ILM, G - IGP-Shortcut, I - ISIS SR
       U - unknown ILM

Code     FEC                I/O Label            Nexthop         Out-Intf 
I>       0.0.0.0/0          17010/16010          12.1.1.1        eth-0-9  
I>       0.0.0.0/0          17020/-              0.0.0.0         N/A      
I>       0.0.0.0/0          17030/18030          23.1.1.3        eth-0-17 

 显示Switch3上的isis路由表项: 

Switch# show ip isis route

Codes: C - connected, E - external, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, D - discard, e - external metric

Area (null):
     Destination         Metric      Next-Hop            Interface      Tag        Sid   Nflag Eflag Chg
L1   1.1.1.1/32          30          23.1.1.2            eth-0-17       0          10    Y     N     N    
L1   2.2.2.2/32          20          23.1.1.2            eth-0-17       0          20    Y     N     N    
C    3.3.3.3/32          10          --                  loopback0      0          30    Y     N     Y    
L1   12.1.1.0/24         20          23.1.1.2            eth-0-17       0          --    --    --    --
C    23.1.1.0/24         10          --                  eth-0-17       0          --    --    --    --

 显示Switch3上的prefix segment表项: 

Switch# show mpls sr-prefix
sr-prefix            destination     inlabel   outlabel  nexthop         lsp_list
-                    1.1.1.1/32      18010     17010     23.1.1.2        -
-                    2.2.2.2/32      18020     17020     23.1.1.2        -

 显示Switch3上的mpls ilm转发表项: 

Switch# show mpls ilm-database
Codes: > - selected ILM, * - LSP ILM, p - stale ILM, B - BGP ILM, K - CLI ILM,
       L - LDP ILM, R - RSVP-TE ILM, S - SNMP ILM, G - IGP-Shortcut, I - ISIS SR
       U - unknown ILM

Code     FEC                I/O Label            Nexthop         Out-Intf 
I>       0.0.0.0/0          18010/17010          23.1.1.2        eth-0-17 
I>       0.0.0.0/0          18020/17020          23.1.1.2        eth-0-17 
I>       0.0.0.0/0          18030/-              0.0.0.0         N/A      

 显示Switch1上的sr lsp表项: 

Switch# show mpls sr-lsp
b - segment bind, i - install
sr-lsp               id    tunid b i nexthop         tunnel     adj        prefix     isis-prefix     outlabel
lsp1                 1     1     1 1 12.1.1.2        tun1       -          -          3.3.3.3/32      16030

 显示Switch1上的sr tunnel表项: 

Switch# show mpls sr-tunnel
wlsp - working lsp, plsp - protection lsp, slsp - select lsp
sr-tunnel            id    type   wlsp      plsp      slsp      map-route
tun1                 2     non    lsp1      -         -         5.5.5.5/32

 显示Switch1上的map-route表项: 

Switch# show mpls sr-mapped-routes
Mapped-route        is_install  SR-Tunnel-name
5.5.5.5/32          yes         tun1

Switch1eth-0-1口发送目的ip地址是5.5.5.5的报文:

 Switch1eth-0-1口抓收到的报文: 

07:09:42.985391 00:00:00:00:00:02 (oui Ethernet) > 22:92:11:2e:47:00 (oui Unknown), ethertype IPv4 (0x0800), length 64: (tos 0x0, ttl 10, id 0, offset 0, flags [none], proto UDP (17), length 50)
    1.1.1.3.43690 > 5.5.5.5.43741: [bad udp cksum 0xaadd -> 0x9d3b!] UDP, length 43682
        0x0000:  2292 112e 4700 0000 0000 0002 0800 4500
        0x0010:  0032 0000 0000 0a11 a4ae 0101 0103 0505
        0x0020:  0505 aaaa aadd aaaa aadd aaaa aadd aaaa
        0x0030:  aadd aaaa aadd aaaa aadd aaaa aadd aaaa

 Switch1eth-0-9口抓发出的报文: 

07:10:39.037569 22:92:11:2e:47:00 (oui Unknown) > 2c:ad:5e:70:52:00 (oui Unknown), ethertype MPLS unicast (0x8847), length 68: MPLS (label 17030, exp 0, [S], ttl 9)
        (tos 0x0, ttl 9, id 0, offset 0, flags [none], proto UDP (17), length 50)
    1.1.1.3.43690 > 5.5.5.5.43741: [bad udp cksum 0xaadd -> 0x9d3b!] UDP, length 43682
        0x0000:  2cad 5e70 5200 2292 112e 4700 8847 0428
        0x0010:  6109 4500 0032 0000 0000 0911 a5ae 0101
        0x0020:  0103 0505 0505 aaaa aadd aaaa aadd aaaa
        0x0030:  aadd aaaa aadd aaaa aadd aaaa aadd aaaa
        0x0040:  aadd aaaa

 Switch2eth-0-17口抓发出的报文: 

07:11:31.922016 2c:ad:5e:70:52:00 (oui Unknown) > 4e:1d:de:29:f9:00 (oui Unknown), ethertype MPLS unicast (0x8847), length 68: MPLS (label 18030, exp 0, [S], ttl 8)
        (tos 0x0, ttl 9, id 0, offset 0, flags [none], proto UDP (17), length 50)
    1.1.1.3.43690 > 5.5.5.5.43741: [bad udp cksum 0xaadd -> 0x9d3b!] UDP, length 43682
        0x0000:  4e1d de29 f900 2cad 5e70 5200 8847 0466
        0x0010:  e108 4500 0032 0000 0000 0911 a5ae 0101
        0x0020:  0103 0505 0505 aaaa aadd aaaa aadd aaaa
        0x0030:  aadd aaaa aadd aaaa aadd aaaa aadd aaaa
        0x0040:  aadd aaaa

 Switch3eth-0-9口抓发出的报文: 

07:23:09.891084 4e:1d:de:29:f9:00 (oui Unknown) > 00:00:00:00:00:0a (oui Ethernet), ethertype IPv4 (0x0800), length 64: (tos 0x0, ttl 7, id 0, offset 0, flags [none], proto UDP (17), length 50)
    1.1.1.3.43690 > 5.5.5.5.43741: [bad udp cksum 0xaadd -> 0x9d3b!] UDP, length 43682
        0x0000:  0000 0000 000a 4e1d de29 f900 0800 4500
        0x0010:  0032 0000 0000 0711 a7ae 0101 0103 0505
        0x0020:  0505 aaaa aadd aaaa aadd aaaa aadd aaaa
        0x0030:  aadd aaaa aadd aaaa aadd aaaa aadd aaaa