1.广域网技术:

1.概念:

  • 二层封装技术
  • 网络速率:(带宽 / 8)* 85%
  • 全双工:收发同时
  • 半双工:单向收发,终端在单个时间,只能在收发间仅处于一种状态

2.网络类型:

  • 概念:因为物理层在网络成长过程中,不定的变化,升级,故对应的数据链路层技术也不断在进行升级和变化;基于不同数据链路的特征将其分为了不同的网络类型
  • 分类:
    • 点到点网络(P2P):在一个物理网络中,有且仅有两个节点;不需要通过地址进行区分,物理和逻辑珊珊均不接受第三节点
    • 多点接入型网络(MA):多路访问,在一个网段中,节点的数量不限制
      • BMA:广播型多路访问,在一个MA网络中,同时存在广播机制
      • NBMA:非广播型多路访问,在一个MA网络中,不存在广播机制

2.点到点网络类型:

1.HDLC高级链路控制协议:

  • 属于点到点网络类型,没有二层单播地址

  • 分类:

    • 标准HDLC:ISO组织在SDLC的基础上改进所颁布的符合工业标准的HDLC

    • 非标准的HDLC:各大厂商在标准额HDLC额基础上改进而来。

  • 物理网线为串线链路,思科默认使用的是HDLC,华为默认使用PPP

  • 修改接口协议为HDLC

    1
    2
    # 先进入此接口
    link-protocol hdlc
  • 查看接口二层特征:

    1
    display interface s4/0/0
  • HDLC在数据链路层,实际没有过多的动作,主要工作为控制物理层

2.PPP点到点协议:

  • 属于点到点网络协议华为设备默认串口封装技术,HDLC的升级版

  • PPP协议包含多个附属协议,也可以理解为成员协议

    image-20221112200101994

    image-20221112200114670

    • F – flag — 类似于以太网中的前导符 — 01111110
    • A – Address — 11111111
    • C – Control — 00000011
  • 优点:

    1. 兼容性强

    2. 可移植性强

    3. 可以进行认证和授权

  • 工作过程:PPP协议和TCP协议类似,在正式传输数据之前,也需要建立PPP会话

    1. 链路建立阶段:LCP建立,链路控制协议,就是通过LCP协议链路相关参数,之后根据协商好的参数建立链路

      MRU:PPP帧中数据部分所允许携带的最大长度(字节),默认值1500;因为第二阶段认证阶段是可选项,所以是否需要认证以及认证方式,需要在LCP建立阶段完成协商

      image-20221112200358926

    2. 认证阶段:可选项,PPP在认证时需要调用AAA来认证(单向认证和双向认证)

      • PAP (密码认证协议):

        image-20221112202212295
        • 被认证方将用户名和密码信息以明文的形式发送给认证方
        • 对方回复ACK则代表认证成功,回复NAK则代表不成功
      • CHAP(挑战握手协议):通过比对摘要值的方式进行认证

        image-20221112203110588
        • 摘要值:HASH算法(散列函数)可以将任意长度的输入转换成固定长度的输出

          • 相同输入,相同输出
          • 不可逆性
          • 雪崩效应
        • MD5是HASH算法的一种 — 可以将任意长度的输入,转换成128位的输出。

    3. 网络层协议协商阶段:NCP协商

      • 网络控制协议,一堆协议的集合,具体使用哪一个取决于网络层选择的协议类型,如果网络层
      • 协商的内容:1.IP地址,2.IP报文的压缩格式
      image-20221112203715087
  • PPP会话是一次性会话

  • PAP认证(明文):

    • 主认证(服务端)配置:

      1
      2
      3
      aaa     # 进入aaa模式
      local-user [用户名] privilege level [权限值] password cipher [密码]
      local-user [用户名] service-type ppp
      1
      ppp authentication-mode pap     # 在对应接口中,开启PAP认证
    • 被认证(客户端)配置:

      1
      ppp pap local-user [用户名] password cipher [密码]   # 先进入对应的接口
  • CHAP认证(密文):

    • 通过比对摘要值的方式进行认证

    • 主认证(服务端)配置:

      1
      2
      3
      aaa     # 进入aaa模式
      local-user [用户名] privilege level [权限值] password cipher [密码]
      local-user [用户名] service-type ppp # 该账号只用于什么登录
      1
      ppp authentication-mode chap     # 在对应接口中
    • 被认证(客户端)配置:

      1
      2
      3
      # 先进入接口
      ppp chap password cipher [密码]
      ppp chap user [用户名]
  • IPCP配置:

    • 认证方:

      1
      remote address 1.1.1.1     # 先进入接口,前提是本接口已经配置IP地址
    • 被认证方:

      1
      ip address ppp-negotiate   # 先进入接口

3.GRE通用路由封装:

  • 属于点到点网络类型,虚拟技术,不关注物理层

  • 一种简单的VPN(虚拟专用网络)

  • VPN技术的核心技术是隧道技术,隧道技术的核心技术是封装技术

  • 隧道技术:在隧道的两端通过封装以及解封装技术,在公网上建立一条数据通道,使用这条通道来进行数据传输

  • 配置:(两端都要配置)

    1
    2
    3
    4
    5
    int Tunnel0/0/0   # 创建进入隧道接口
    ip add 10.1.1.1 24 # 配置隧道接口IP地址
    tunnel-protocol gre # 定义封装标准
    source 12.1.1.1 # 新增报头的源IP(真实的物理接口的IP地址)
    destination 23.1.1.2 # 新增报头的目标IP地址(真实的物理接口的IP地址)
    1
    2
    3
    ip route-static [IP地址] [子网掩码/长度] [当前路由器隧道接口号]
    # 例:
    ip route-static 192.168.2.0 24 t0/0/1

3.多点接入型网络类型:

1.以太网:

  • 以太网技术被定为BMA网络类型(MA网络,存在多个节点,故必须拥有二层单播地址)

  • 以太网:共享型,共享物理链路,将不同频段,且相互不干涉波点的电流,集中于一条物理介质进行传输,起到带宽叠加的作用

  • 以太网协议的特点:需要通过MAC地址对设备进行区分和标定(主要因为利用以太网所构建的二层网路可以包含两个或两个以上接口,每个以太网接口都可以通过交互以太网帧的形式来进行二层通信)

  • 物理网线:RJ-45双绞线(传输数字信号),同轴电缆(传输数字信号),RJ-11电话线(模拟信号),光纤(光信号)

    1
    RJ-11电话线和光纤均需要调制解调器(猫)进行信号转换
  • 无线:WIFI,移动通信

  • 以太网的核心技术:频分,一条电缆多个频率(信道)

  • 频分复用:频分就是传输介质上可以同时发送不同频段的电流而互不干扰,实现数据的并行发送。

  • 以太网使用的是mac地址,存在广播,洪泛机制

2.多点GRE:

  • 属于NBMA网络

  • 若使用点到点的GRE再多个节点的情况下,组件VPN环境,VPN数量,网段数量,固定IP数量,路由条目数量随着节点的增加成指数的上升

  • MGRE:

    • 所有节点存在同一个MA网段,且为中心到站点结构,该结构中,默认仅中心站点需要固有公有IP地址,分支站点地址可变化;
    • 优点:大大减低了管理难度,资源占有量,成本。
    • MRGE环境为NBMA环境,在NBMA环境中,不支持广播,洪泛机制;若需要进行广播消息转发,可以借鉴伪广播规则,向该网段所有节点进行单播转发,来实现广播效果。
  • NHRP下一跳路径发现协议:

    • 存在服务端和客户端
    • NHS:下一跳解析服务器
    • MAP:记录客户端的公有IP与Tunnel的IP地址对应关系
    • 工作原理:
      1. 先私网中选出一个出口物理IP地址不会发生变化的设备成为NHS,分支都需要知道中心的隧道IP地址和物理接口IP地址
      2. 所有分支需要将自己物理接口和隧道接口的映射关系发送给NHS
      3. 如果分支出接口的IP地址发生变化,则需要将最新的映射关系发送给中心,中心生成MAP
      4. 之后,中心发送消息,只需要依靠记录表搭建隧道;分支和分支之间通信,可以先找中心下载映射表,分支再根据映射关系搭建隧道,进行通信
    • 我们MGRE环境在逻辑拓扑上是一个多点接入的网络,但是,在数据收发时,依然是走的是点到点的隧道,所以,这样的网络中是不支持广播行为,所以,可以将它理解为是一种NBMA的网络。
  • 一个真实接口上只允许建立一个mgre

  • 中心站点(服务端)配置:

    1
    2
    3
    4
    5
    6
    int Tunnel0/0/0   # 创建进入隧道接口
    ip add [隧道接口IP地址] [子网掩码/长度] # 配置隧道接口IP地址
    tunnel-protocol gre p2mp # 定义封装标准,工作模式为点到多点
    source [真实接口IP地址] # 新增报头的源IP(真实的物理接口的IP地址)
    nhrp entry multicast dynamic # 启动nhrp,开启伪广播(应用于只有中心获取到RIP路由的情况)
    nhrp network-id [num] # 定义nhrp域id号,默认100
    1
    display nhrp peer all    # 查看分支站点注册结果
  • 分支站点(客户端)配置:

    1
    2
    3
    4
    5
    6
    int Tunnel0/0/0   # 创建进入隧道接口
    ip add [隧道接口IP地址] [子网掩码/长度] # 配置隧道接口IP地址
    tunnel-protocol gre p2mp # 定义封装标准,工作模式为点到多点
    source [真实物理接口号]/[真实物理接口IP地址] # 新增报头的源IP(真实的物理接口号或真实物理接口IP地址)
    nhrp entry [Tunnel接口IP地址] [物理接口IP地址] register # 配置中心站点的Tunnel地址,物理地址
    nhrp network-id 100 # 加入中心站点所创建的nhrp域
  • 点到点静态路由配置

    1
    2
    3
    ip route-static [IP地址] [子网掩码/长度] [对面隧道接口号]
    # 例:
    ip route-static 192.168.2.0 24 t0/0/0
  • 点到点RIP动态路由配置:(宣告的私网的地址网段和隧道端口网段地址)

    1
    2
    3
    4
    rip      # 启动RIP:(配置模式下,启动时可以定义进程号,默认1,范围1~65535)
    version [num] # 选择版本:(版本1:其他路由获取得到的IP地址是主类,版本2:其他路由获取得到的IP地址是精确的网络地址)
    network [端口网络地址主类] # 宣告,被选中接口可以收发RIP的信息和共享给本地的所有邻居
    # 完成后服务端和客户端之间的192.168网段可以通过Tunnel接口互相访问
    1
    2
    3
    int [隧道接口号]
    undo rip split-horizon # 关闭此接口的水平分割,表示可以从此口进,也可以从此口出
    # 关闭水平分割后客户端可以与客户端通信

3.OSPF:

1.HICA-OSPF:

  • OSPF:开放式最短路径优先协议,无类别(带掩码)链路状态igp协议,周期更新(30min)+触发更新

  • 跨四层封装(传输层),基于IP封装,协议号89

  • 版本:v1(实验室阶段夭折),v2(IPv4),v3(IPv6)

  • 链路状态协议的更新量随着网络范围的扩展指数性的上升,因此OSFP协议为了在中大型网络中工作,需要结构化的部署区域之内传递拓扑,区域传递路由

  • 为什么需要结构化部署:

    1
    因为OSPF是无类别链路状态IGP协议,而链路状态最大的特点就是共享拓扑,而共享拓扑;而共享拓扑的话就会产生大量的更新这样不利于网络的流通,因此需要合理的流畅,因此需要合理的IP规划,进行结构化部署。区域之内是LSA的拓扑数据交换:区域之内传递拓扑,区域传递路由
  • 区域划分的目的或链路状态协议的距离矢量特征:区域之内传递拓扑,区域传递路由

  • 更新方式:组播更新(224.0.0.5(all),224.0.0.6(DR/BDR))

  • 算法:SPF(最短路径优先算法)

  • OSPF所有报文头部:

    字段名 说明
    版本(8bit) OSPF协议的版本,v1:1,v2:2,v3:3
    类型(8bit) OSPF数据包的类型,Hello:1,DBD:2,LSR:3,LSU:4,LSACK:5
    报文长度(bit) OSPF中整个报文的长度
    路由器ID(32bit) 携带的发出数据包设备的RID
    区域ID(32bit) 发出数据包的接口所在区域的ID
    效验和(16bit) 确保数据的完整性
    验证类型(16bit) 做数据认证,分为三种 NULL(不认证):0,simple明文认证:1,MD5:2
    认证数据(32bit) 做数据认证
    image-20221115210846933
  • OSPF的五种数据包:

    1. Hello:1.邻居的发现,关系的建立;2.周期(以太网10s)的保活;3.携带rid(IP地址格式),4.DR / BDR 选举

      字段名 说明
      网络掩码 邻居双方这个参数必须相同才能正常建立邻居关系(但是,这个参数在点到点网络中是不生效的)
      hello间隔 hello time,dead time 如果不相同,则邻居关系无法建立可选项
      可选项 每一个标记位都代表设备遵循OSPF的某一种特性,其中包含特殊区域的标记位。这个标记位不同,则邻居关系无法正常建立
      路由器优先级 路由器接口参选的优先级
      指定路由器,备份指定路由器 在没选出来之前,使用0.0.0.0进行填充,选出来之后,将对应接口的IP地址进行携带

      影响邻居关系建立的参数:1.Router-id、Area-id,2.hello时间,3.dead time,4.特殊区域标记位,5.认证

      image-20221116083903629
    2. Dbd:数据库描述报文(本地数据库目录(发送链路状态中自身知道的)),LSDB:链路状态数据库,存储LSA信息的数据库

      • 使用未携带数据的DBD包进行主从关系选举

      • 使用携带数据的DBD包共享数据库摘要信息

      字段名 说明
      最大传输单元(MTU) 发送接口所支持的MTU值,华为设备默认不检测MTU值
      I init,该位置为1,是一个进行主从选举的数据包
      M more,该位置为1,则代表这个DBD包后面还有其他的DBD包需要发送
      MS master,该位置为1,则代表发送这个数据包的设备为主
      DD 序列号 在DBD报文中,会逐次加1,用于确保DBD报文传输的有序性和可靠性(隐形确认)
      1
      ospf mtu-enable   # 在接口中配置, 如果两边均开启MTU的检测,并且两边MTU值设定不同,则OSPF的邻居关系将卡在EXSTRAT状态
      image-20221116093446084
    3. Lsr:链路状态请求报文(请求对方我不知道的)

      字段名 说明
      链路状态类型,链路状态ID,通告路由器 被称为是LSA的“三元组”,因为这三个参数可以标识出一条唯一的LSA信息
      image-20221116103800870
    4. Lsu:链路状态更新报文(返回我不知道的拓扑或者路由)

      image-20221116104215238
    5. Lsack:链路状态确认报文(保证可靠性)

      image-20221116104236711
  • OSPF的7个状态机:(两个路由器的关系)

    1. Down:双方都不认识对方(A与B)

    2. init初始化:,B接收到hello包中(不包含自己的名字),B知道了A,B进入init状态

    3. 2way双向通讯:B接收到hello包中(包含自己的名字),邻居关系建立的标志

      • 匹配条件:DR(一个路由器)/BDR(备份路由器)选举
      • 条件匹配成功进入下一个状态,如果条件匹配失败,则停留在邻居关系,仅使用hello进行周期保活
      image-20221114171642645
    4. Exstart预启动:使用不携带目录信息的DBD包,1.进行主从关系的选举;rid大为主,为主的可以优先获取LSA信息,解决了目录共享时的无序,避免了它们的同时更新;2.主方可以住到隐形确认,可以定义隐形确认中的序列号。

    5. Exchange准交换:使用携带目标信息的dbd包(谁的rid大先发送dbd包),共享本地数据库目录

      image-20221114171753235
    6. loading加载:查看完邻接的dbd信息后,对比本地,然后基于本地未知的Lsa进行查询;使用lsr向对端查询,对端使用lsu来传输这些lsa信息,本地收到后需要lsack来进去确认

    7. Full邻接关系建立标志;意味着邻接间,数据库同步(一致);邻接关系的设定是为了和之前邻居关系进行区分,邻居关系只是单纯的使用hello包进行保活,而只有邻接关系,才会发LSA信息

      image-20221114171910510
  • 名词解释:

    • 邻居关系:邻居关系就是只交互过hello报文,并不知道邻居具体的Lsa
    • 邻接关系:就是两个邻居之间完成交互过各种报文,两台路由器拥有各自的明细拓扑信息Lsdb完全同步
    • Lsdb:链路状态数据库,所有lsa的集合
    • Lsa【货物】:链路状态通告,具体的一条一条拓扑或路由信息,基于LSU包进行共享(LSU运输)
  • 结构突变:

    • 新增网段:触发更新– LSU和LSack 直接告知
    • 断开网段:触发更新– LSU和LSack 直接告知
    • 无法沟通:dead time为hello包的4倍;在4次周期内未收到对端的hello包,将断开与其邻居关系,删除通过该邻居计算所得路由
  • OSPF的工作过程:

    1. 启动配置完成后,OSPF向本地所有运行协议的接口以组播224.0.0.5的形式发送hello包,(包含本地的RID以及自己已知的邻居的RID);之后,将收集到的邻居关系记录在一张表 — 邻居表
    2. 之后需要关注条件,若不能建立为邻接,将保持为邻居关系,仅hello包周期保活
    3. 若条件匹配可以建立邻接关系,先使用未携带数据库目录信息的DBD包来进行主从关系的选举,之后由主引导先后顺序使用携带目录信息的DBD包共享数据库目录
    4. 之后本地基于其他设备的目录,判断由本地未知的LSA信息,再使用LSR/LSU/LSACK来通过邻接获取具体的LSA信息,完成本地的数据库表(LSDB链路状态数据库)
    5. 本地数据库完整后,本地将基于数据库中的内容启动SPF算法,将数据库整理为有向图–>最短路径树—->将本地到达所有未知网段的最短路径加载于本地的路由表
    6. 路由表建立完成,收敛结束,之后每10S使用hello包周期保活;每30min邻接间进行一次数据库目录核对
  • 区域划分规则:

    1. 星型结构:编号0骨干区域(中心),大于0为非骨干区域(分支),非骨干区域必须直连骨干区域

    2. 必须存在ABR:区域边界路由器,骨干区域0与非骨干区域相连>0的设备;区域之间可以存在多个ABR设备;一个ABR也可以连接多个区域

  • 区域ID:用来区分和标识OSPF的不同区域,32位二进制构成;也可以使用点分十进制表示,还可以直接使用十进制表示;其中,骨干区域的ID、必须设置为0。

  • RID(路由器id):

    • 格式IPv4地址,可以区分和标定不同的路由器

    • 32位二进制构成,全网唯一,格式统一(采用点分十进制的方式表示)

    • RID的获取方式:

      1. 手工配置:

      2. 自动生成:1.优先选择环回接口中IP地址最大的作为RID,2.如果没有环回,则选择物理接口中IP地址最大的作为RID

  • 基础配置:

    1. 启动时定义进程号(配置模式,默认进程1)

      1
      ospf [num] router-id [路由器id]
    2. 宣告接口地址(激活(可以收发OSPF的信息),被选中接口的拓扑信息可以共享给邻接,区域划分):

      1
      2
      area 0   # 先定义区域
      network [接口IP地址] [反子网掩码]
    3. 查询ospf:

      1
      2
      3
      display ospf peer   # 查看邻居关系表
      display ospf peer brief # 查看邻居简表
      display ospf routing # 查看路由器宣告的路由和学到路由
      1
      display ospf lsdb    # 查看LSDB
      1
      display ip routing-table protocol ospf   # 查看ospf路由
      1
      bandwidth-reference 1000    # 若修改带宽,全网需要一致(单位MB/s),先进入ospf
  • OSPF的开销值:

    • OSPF cost=参考带宽 / 接口带宽,—– 华为体系下,默认参考带宽为100M

    • 注意:开销值如果算出来是个小数,如果是大于1的小数,则直接取整数部分;如果是小于1的小数,直接取1。

    • OSPF优先cost值之和最小,为最佳路径;

    • 若两条链路cost值之和相同,等开销负载均衡;若接口带宽大于参考带宽,cost为1,将可能导致选路不佳,建议修改默认的参考带宽

  • 扩展配置:

    1. DR(一个路由器)/BDR(备份路由器)选举(有DR才有拓扑交换和lsa信息,才有路由):

      • 在MA网络中,若所有的设备均为邻接关系,将出现大量的重复更新;所以,需要进行DR/BDR的选举

      • 邻居成为邻接关系的条件,与网络类型有关

      • 网络类型:

        • 点到点:在一个网段内只能存在两个节点(串线链路)
        • MA-多路访问:在一个网段内的节点数量不限制;不是当下连接了几个节点;而是该网络类型允许最终连接多个节点(以太网)
      • 点到点网络邻居关系必成为邻接关系;

      • 在MA网络中,将进行DR/BDR选举;在一个网段中仅DR(大哥)/BDR(二哥)与DRother其他路由器(小弟)为邻接关系,非DR/BDR之间(小弟与小弟之间)为邻居关系

        • 选举规则:

          1. 先比较一个网段所有参选接口的优先级,默认优先级为1,取值范围0-255,越大越优;0标识不参选
          2. 若优先级相同,比较参选设备的RID,数值大优
        • 干涉选举:

          1
          ospf dr-priority 1   # 先进入这个参选接口

          注:由于一个网段DR/BDR选举需要消耗40S(选举时间 == 死亡时间),故为保障网络的稳定性,选举是非抢占的;一旦一个网段选举完成后,再修改优先级除非设备重启,否则无法干涉到结果;若需要干涉选举时,可以重启所有设备的OSPF

          1
          reset opsf process   # 重启ospf进程

          最终的方法时修改非DR/BDR设备的优先级为0,代表不参选;不用重启进程

          1
          ospf dr-priority 0   # 先进入这个参选接口
    2. 区域汇总:OSPF协议不支持接口汇总,只能在将A区域拓扑计算所得路由共享给B区域时进行汇总

      1
      2
      3
      4
      ospf [num]
      area [num] # 进入区域的边界路由器配置
      abr-summary [汇总后的IP地址] [子网掩码]
      display ip routing-table protocol ospf # 在另一个区域的路由器查看是否汇总
    3. 被动接口:仅接收不发送路由协议信息,用于连接用户终端的接口,不得用于建立邻接关系

      1
      silent-interface g0/0/0
    4. 认证:在直连邻居或者邻接的接口上配置,保障更新的安全

      1
      ospf authentication-mode [加密算法] [编号] cipher [具体密码]    # 模式,编号,密码要求邻居间一致
    5. 加快收敛:

      1
      ospf timer hello [num]   # 先进入接口
      • 邻居间计时器 10s hello time,40s dead time
      • ospf要求直连邻居间hello time和dead time必须完全一致,否则无法建立邻居关系
      • 修改本地的hello time,本地的dead time自动4倍关系匹配
    6. 缺省路由:边界路由器上配置后,将自动向内网下方一条缺省路由,之后内网设备将自动生成缺省路由边界

      1
      2
      ospf [num]
      default-route-advertise always

2.HICP-OSPF:

  • OSPF的接口网络类型指:OSPF接口,在不同网络类型下,不同的工作方式

  • OSPF的接口网络类型:

    网络类型 OSPF接口的网络类型(工作方式)
    虚拟接口(环回) 默认p2p,只是华为定义为P2P类型,实际没有数据收发,环回接口的开销值定义为0,环回接口默认学习32位的主机路由
    P2P(HDLC,PPP,GRE,MGRE) 默认P2P,只能建立一个邻居关系,不选DR / BDR;hello10S,dead time 40S
    BMA(以太网) 默认Broadcast,可以建立多个邻居关系,需要进行DR和BDR选举,hello10S,dead time 40S
    没有真实网络环境对应 默认P2MP(人工建立的),可以建立多个邻居关系,不需要进行DR和BDR选举,hello 30S,dead time 120S,可以学习邻居接口的主机路由(真实接口);针对的是NBMA网络。
    NBMA(帧中继) NBMA ,可以建立多个邻居关系,需要进行DR和BDR选举,hello 30S,dead time 120S,只能手工建立邻居关系
    Virtual,只有在
  • 在OSPF中,如果双方的接口工作类型不一致,能否建立邻居关系取决于

    • Router-id
    • Area-id
    • hello时间
    • dead时间
    • 特殊区域标记位
    • 认证类型
  • 查询接口的网络类型:

    1
    display ospf interface [接口号]
  • 修改接口网络工作类型(中心站点和全连网状拓扑都需修改)

    1
    ospf network-type  broadcast  # 先进入接口
  • 注意:

    • 华为体系下,隧道接口的传输速率被定义为64K(COST=100M / 64K = 1562),实际无数据收发,其目的是为了让接口的开销值变得非常大,能不走就不走。
    • 走隧道接口实际还是需要从物理接口发出,但是会额外增加复杂的封装过程,造成资源浪费
  • 拓扑结构:

    • 中心到站点(轴辐状,星型结构):DR必须定在中心站点,没有BDR(修改分支站点优先级为0)

      1
      ospf dr-priority 0   # 先进入这个参选接口
    • 部分网状结构,基于实际环境关注是否固定DR

    • 全连网状结构:一种全连的MGRE环境(MESH),所有节点既是中心,也是分支;所有站点都将开启伪广播,这样将所有节点接口的网络类型改为 Broadcast 之后,所有节点在进行DR和BDR选举,将共同进行,则不会出现DR和BDR认知不统一的情况

      1
      2
      # 分支站点之间互相注册
      nhrp entry [Tunnel接口IP地址] [物理接口IP地址] register # 配置其他分支站点的Tunnel地址,物理地址
      1
      2
      # 分支站点都开启
      nhrp entry multicast dynamic
  • 在NBMA环境下,双方都指定单播邻居来建立邻居关系

    1
    peer [对方接口IP地址]     # 先进入OSPF
  • OPSF的第八个状态机:

    • Attempt(尝试 ,过渡状态):出现在NBMA网络中,在 DOWN和INIT状态 之间,等待对端指定自己成为单播邻居,一旦指定后,将立即进入下一个状态
  • 不规则区域:

    • 远离骨干的非骨干区域
    • 不直连骨干的区域
    image-20221117170404300
  • 不规则区域的解决方法:

    1. Tunnel:合法ABR和非法ABR间S建立Tunnel隧道,然后将Tunnel宣告在OSPF

      • R2和R4直接需要建立邻居关系,所以,需要发送周期性的数据进行维护,造成中间通过链路的负担加重

      • 可能造成重复更新

      • 选路不佳(在OSPF中,路由器优先选择拓扑信息计算的路由)

    2. OSPF虚链路:非法ABR获取合法ABR的授权后,具有区域间路由共享的功能;合法ABR与非法ABR

      • 虚链路永远属于区域0

      • 优点:没有新生链路,不存在选路问题

      • 缺点:

        • 虚拟路只能穿越一个区域
        • R2和R4直接需要建立邻居关系,所以,需要发送周期性的数据进行维护,造成中间通过链路的负担加重
      • 非法ABR获取合法ABR的授权:双方路由器都需要配置

        1
        2
        # 在配置完成后,非法ABR将成为合法
        vink-peer [对方路由器ID] # 先进入合法ABR和非法ABR的区域
      • 查看虚链路的详情

        1
        display ospf vlink
    3. 多进程双向重发布:

      • 因为不同的路由协议之间,堆路由的理解及运行逻辑都不相同,所以,不同的路由协议之间是存在信息隔离的

      • 重发布:将不同方式(直连、静态、缺省、其他协议)的路由重发布进入RIP 、OSPF

      • 重发布的定义:将本路由器上通过A协议学习并加表的路由以及通告到A协议接口对应的路由引入到B协议(除ODR ISIS)

      • 注意:

        1. 华为中不能将缺省路由重发布进入RIP协议(思科是可以的)

        2. 不能将缺省路由重发布进入OSPF协议(思科华为一致)

      • ASBR设备(自治系统边界路由器):能产生5类和7类LSA的路由器,处于OSPF区域和非OSPF区域之间的路由非OSPF协议的路由引入到OSPF的网络转中时

      • 导入其他进程的路由信息(先将不规则区域写入另一个进程并导入)

        1
        import-route [其他协议名称] [其他进程号]   # 先进入协议进程
      • 导入的路由信息标记(代表域外的路由信息):O_ASE

        • 路由信息的可控性较低,信任程度较低
        • 优先级默认设置为150
      • 重发布的分类:

        • 重发布点:单点 双点 多点
        • 重发布向:单向 双向 多向(协议1给协议2,协议2给协议3即为多向)
      • 在进行多点 多向重发布时,会出现严重的网络问题:

        1. 次优路径(原因是不同的路由协议AD值不同,以及计算metric值的方式不同)做双点双向重发布必定有次有路径
        2. 路由环路(原因:路由回馈)路由回馈是原本RIP的路由重发布到了OSPF,但由于OSPF比RIP的优先级高,另一个边界路由器又重发布到了RIP中
      • 解决思路:

        1. 路由环路 :解决路由回馈(保证所有进行重发布的路由器上路由是正确的)
        2. 次优路经:根据不同的路由协议选路规则进行次优路径的调整(策略列表)

3.LSA头部内容:

  • LSA链路状态通告:是OSPF在不同网络环境下用于携带和传递不同的信息

  • LSDB: 链路状态据库

  • 查看LSDB

    1
    2
    display ospf lsdb  
    display ospf lsdb [LSA类型] [LinkState ID] # 精准查看
  • LSA头部内容:

    链路状态类型,链路状态ID,通告路由器 被称为是LSA的三元组,因为这三个参数可以标识出一条唯一的LSA信息

    字段名 说明
    Type LSA的类型, 在 OSPFV2 当中,需要具体掌握6中LSA
    LinkState ID 链路状态标识符,是一个LSA的名称,这个参数在不同的LSA类型中将携带不同的信息
    AdvRouter 通告路由器,发出的LSA的路由器RID
    LS AGE LSA的老化时间1800s=周期更新时间30min,当一条LSA被始发路由器产生时置为0,之后该LSA在网络种传播,老化时间也会持续累加;当一条LSA的老化时间到达3600s时(最大老化时间)则将会从LSDB数据库中删除
    LEN 长度 ,表示LSA的内容所占的字节数
    Options 标记位,Virtual:代表该路由器是V-LINK(虚链路)的一个端点;ASBR:代表该路由器为ASBR设备;ABR:代表该路由为ABR设备;E:代表特殊区域
    SEQ 序列号,本质是由32位二进制构成,一台路由器每发送同一条LSA时都会携带一个序列号,且逐次加1
    CHKsum 效验盒,也会参与新旧关系的比较,如果两条相同的LSA其序列号也相同,则将比较效验和,效验和大的判定为新
    • 序列号空间:(SEQ序列号内容)

      • 直线型空间:从最小值到最大值逐次加1

        • 优点:新旧关系容易区分,数字大绝对比数字小的新
        • 缺点:一旦序列号空间用尽,新旧关系不好区分
      • 循环型空间:从最小值到最大值在继续循环

        • 优点:序列号可以一致使用
        • 缺点:当两个序列号差值较大时,新旧关系不好区分
      • 棒棒糖型空间:

        • OSPF采用的就是这种序列号空间
        • 为了避免循环型空间的缺点OSPF要求不能进入循环部分(还是直线),所以,取值为 0X80000001 - 0X7FFFFFFX
        • 当序列号达到最大值时,始发设备会将该LSA的老化时间设置为最大老化时间,之后发出,其他收到该LSA的设备因为其序列号值最大,将刷新本地LSDB数据库,之后,又因为该LSA老化时间为最大老化时间,将把该LSA信息删除。同时,始发设备会再发送一条相同的LSA,其序列号为0X80000001,之后,其他设备将该LSA信息收集入库,起到刷新序列号空间的效果

4.LSA的6种分类:

分类 LinkState ID 通告路由器 传播范围 携带信息
1 Router 通告者的RID 本区域内运行通告者的RID 单区域 通告者路由器接口直连的拓扑信息
2 Network DR的IP地址 MA网络中DR所在的路由器的RID 单区域 单个网络网段的拓扑补充信息
3 Sum-Net(summary) 目标路由网洛 ABR边界路由器RID,在通过下一个ABR时,将修改为新的ABR ABR相邻的单区域 域间路由信息
4 Sum-Asbr(asbr) ASBR的RID ASBR所在区域的ABR设备,在通过下一个ABR设备时,将修改为新的ABR 除了ASBR所在区域的单区域 ASBR的位置
5 External(ase) 目标路由网洛 ASBR-RID 整个OSPF区域 域外路由信息(不规则区域路由)
7 NSSA 目标路由网洛 ASBR-RID,离开NSSA区域后将被转换成5类LSA 单个NSSA区域 域外路由信息
  1. Router类型:

  • 每一条LINK都是在描述路由器接口的连接情况一个接口可以使用多个LINK来进行描述

  • 区域内的启动OSPF的路由器只发一条Router类型的LSA

  • 字段和对应的属性值:

    Link Type Link ID Date metric
    Point-to-Point 邻居的Router ID 该网络上本地接口的IP地址 开销值
    TransNet(DR与本设备) DR的接口IP地址 该网段上本地接口的IP地址 开销值
    StubNet(网络末端) 该Stub网段的IP网络地址 该Stub网段的网络掩码 开销值
    Virtual 虚连接邻居的Router ID 去往该虚连接邻居的本地接口的IP地址 开销值
image-20221117191641331
  • 报文格式:

    字段名 说明
    V 置1,代表该路由器是V-LINK的一个端点
    E 置1,代表该路由器为ASBR设备
    B 置1,代表该路由为ABR设备
    image-20221118194444658
  1. Network类型:

  • 在MA网络环境下,仅依靠1类LSA无法获取完整的拓扑信息,所以,我们引入了2类LSA,对拓扑信息进行补充说明
  • 二类LSA所补充的都是一些公共信息,所以一个MA网络中只需要一台设备发送就可以了(DR发出)。
  • 补充内容:MA网段的子网掩码,MA网段中所连接的设备RID
image-20221117191507891
  • 注意:

    1. 1类和2类LSA传递的是拓扑信息,而其余的LSA传递的是路由信息
    2. 传递路由信息的LSA需要经过1类和2类LSA的验算才能使用。 例:需要通过1类和2类LSA找到通告者的位置
  1. Sum-Net类型:(域内路由信息,不规则区域路由)

  • 传递的是路由信息,由ABR设备通告,使用目标网络号作为LS ID
  • 携带内容:
    • 目标网段的子网掩码
    • 开销值是通告者到达目标网段的开销值
image-20221117191534811
  1. Sum-Asbr类型(ASBR的位置):

image-20221118111422188

  1. External类型(域外路由信息):

  • Metric字段的值因为不同路由协议对开销值的评判标准不同,所以在进行重发布时,无法直接使用其原先的开销值

  • 我们在重发布后将舍弃原先的开销值,而重新赋予其一个规定的初始值seed metric(种子度量值,默认为1)

  • 方法2:修改某协议进程的种子度量值:

    1
    deafult cost [num]    # 先进入协议进程
  • 方法1:在重发布过程中修改种子度量值: (方法二优先与方法一生效)

    1
    import-route [其他协议名称] [进程号] cost [开销值]   # 先进入协议进程
  • 查看

    1
    display [协议名] [协议号] database
  • 参数E type:标志位,标志着开销值的类型

    字段取值 说明
    1 所有OSPF网络内设备到达域外目标网段的开销值都 == 种子度量值加沿途累加开销值
    2 5类LSA默认的开销值,所有OSPF网络内设备到达域外目标网段的开销值都 == 种子度量值
  • 修改默认某协议进程的默认种子度量值

    1
    default type [num]      # 先进入协议进程
  • 方法2:在重发布过程中修改开销值类型:(E type)

    1
    import-route [其他协议名称] [进程号] type [类型号]   # 先进入协议进程
  • 参数Forwarding Address: 转发地址

    • 主要是为了应对选路不佳的情况
    • 不存在选路不佳的情况:则将使用0.0.0.0进行填充,无实质性作用
    • 存在选路不佳的情况,则将会把最佳选路填写在本字段,之后设备到达目标网段会查找到达FA地址的路径,而不会按照算法再去找通告路由器
  • 参数Tag:路由标记

    • 主要是给路由信息打标记,方便后面流量的抓取,默认取值为1

    • 配置:

      1
      import-route [其他协议名称] [进程号] tag [num]   # 先进入协议进程

image-20221118104406226

  1. NSSA类型(域外路由信息):

  • 参数Forwarding Address: 转发地址

    • 默认使用ASBR设备环回接口的IP地址作为转发地址
    • 不存在环回接口,则将使用ASBR的物理接口的IP地址作为转发地址
    • 收到这条LSA的设备,访问目标网段将直接将数据包发送到转发地址上
  • 参数options:

    options字段取值 说明
    E 置1:代表支持5类LSA;置0:代表特殊区域
    N 置0:不在NSSA区域中;置1:在NSSA区域中
    P 置1:代表该LSA支持7转5
  • 7类LSA生成的路由信息其标记为O_NSSA,优先级也是150。

5.OSPF的优化:

  • 主要指减少OSPF中的LSA更新量

  • 汇总:为了减少骨干区域的更新量

    • OSPF协议不支持接口汇总,只能在将A区域拓扑计算所得路由共享给B区域时进行汇总

    • 域内汇总:区域之间在传递三类LSA时进行汇总,减少3类LSA的更新量

      • 配置:(在ABR设备上)

        1
        abr-summary [汇总后的IP地址] [子网掩码]   # 先进入汇总前的区域
      • 注意:域间路由汇总只能是一台ABR设备将自己通过1类和2类LSA学习到的路由信息汇总成一条3类LSA发送

    • 域外汇总(汇总不规则区域路由):主要针对5类 / 7类LSA进行汇总

      • 配置:

        1
        asbr-summary [汇总后的IP地址] [子网掩码]   # 先进入在ASRB上的ospf进程,传递汇总路由的进程
      • 域外汇总网段的度量值:

        External分类中E type字段取值 说明
        1 将选择所有明细路由中开销值最大的作为汇总网段的度量值(metric)
        2 将选择所有明细路由中开销值最大+1 作为汇总网段的度量值(metric)
  • 做特殊区域:为了减少非骨干区域的LSA更新量

    • 第一大类的特殊区域(末梢区域 stub):

      • 特点:

        1. 不能是骨干区域(0区域)
        2. 不能存在虚链路
        3. 不能存在ASBR设备(自治系统边界路由器)
      • 如果将一个区域配置成为末梢区域,则这个区域将拒绝学习4类和5类LSA(拒绝学习域外信息)

      • 为了保证可以正常访问到域外的网段,末梢区域会自动生成一条指向骨干的3类缺省(通过3类LSA生成的缺省路由)。

        1
        stub    # 先进入本区域,区域内所有设备都必须配置;约等于缺省路由
      • 普通的末梢区域改变成 完全末梢区域(Totally stub) :在拒绝4类和5类LSA的基础上,进一步拒绝3类LSA但是保留3类缺省

        1
        stub no-summary      # 先进入本区域,只需要在ABR设备上配置即可;约等于缺省路由
    • 第二大类特殊区域(非完全末梢区域 NSSA):

      • 特点:

        1. 不能是骨干区域(0区域)
        2. 不能存在虚链路
        3. 必须存在ASBR设备(自治系统边界路由器)
      • 如果将一个区域配置成为NSSA,则这个区域将拒绝学习4类和5类LSA(拒绝学习域外信息)

      • 7类LSA(NSSA):为了实现导入域外路由信息,NSSA区域又拒绝学习其他方向的4类和5类LSA的效果

      • 为了保证可以正常访问到域外的网段,所以,NSSA区域会自动生成一条指向骨干的七类缺省(通过7类LSA生成的缺省,指向其他方向的域外路由)

        1
        nssa    # 先进入本区域,区域内所有设备都必须配置;约等于缺省路由
      • 普通非完全末梢区域改变成 完全的非完全末梢区域 (Totally NSSA) :在拒绝4类和5类LSA的基础上,进一步拒绝三类LSA。并自动生成一条指向骨干区域的3类缺省

        1
        nssa no-summary    # 先进入本区域,仅需在ABR设备上配置即可;约等于缺省路由
  • OSPF的附录E:OSPF针对3类或5类/7类在某些特定情况下的解决方案

    • 图示:

      image-20221118202148049

    • 图中20.1.0.0/16网段和20.1.0.1/24网段在通过R3传递三类LSA(Sum-Net)时,他们的链路状态类型,链路状态ID,通告路由器完全相同

    • 因为链路状态类型,链路状态ID,通告路由器 被称为是LSA的三元组,因为这三个参数可以标识出一条唯一的LSA信息

    • 所以,为了避免三元组完全相同,导致无法区分两条不同的LSA,则附录E要求,掩码长度较长网段的LSA信息将使用目标网段的直接广播地址作为LS ID;例:20.1.0.255/24。

6.HICP-OSPF扩展配置:

  • 缺省路由:

    • 3类缺省:只能通过特殊区域(普通STUB,完全STUB,完全NSSA)的配置完成

    • 5类缺省:通过配置命令生成,将域外的路由信息重发布到OSPF中

      1
      2
      ospf [num]
      default-route-advertise # 将设备上其他途径获取的缺省信息重发布到OSPF网络上,一般在区域的边界路由器上
      1
      2
      ospf [num]                         # 一般在区域的边界路由器上        
      default-route-advertise always # 如果设备本身不存在缺省信息,则可以通过后面增加always参数来强制下发一条缺省
    • 7类缺省:可以通过配置特殊区域(普通的NSSA)自动生成,也可以通过配置手工配置

      1
      nssa deafult-route-advertise    # 先进入本区域,在区域的NSDR路由器上配置,区域中的路由器全生成一条指向NSDR的缺省
  • 手工认证:OSPF邻居间发送数据包中携带口令,两边如果口令相同,则身份合法

    • 接口认证: 模式,编号,密码要求邻居间一致,否则影响邻居的建立

      1
      2
      ospf authentication-mode [加密算法] [编号] [cipher/plain] [具体密码]      # 先进入接口
      # 双端的密钥存储形式可以不同[cipher/plain]
    • 区域认证:本质还是接口认证,在一个区域中配置区域认证,效果等于同时在这个区域中所有激活的接口上配置了接口认证

      1
      authentication-mode [加密算法] [编号] [cipher/plain] [具体密码]    # 先进入本区域,本区域的所有路由器上配置
    • ​ 虚链路认证:虚链路建立过程中的认证

      1
      2
      # 进入合法ABR和非法ABR的区域,再建立虚链路的同时配置
      vlink-peer [对方路由器ID] [加密算法] [编号] [cipher/plain] [具体密码]
  • 加快收敛:减少计时器的时间

    • 查看计时器时间

      1
      display ospf interface [接口号]
    • 修改hello时间:

      1
      2
      3
      4
      ospf timer hello [num]    # 先进入接口
      # 邻居间计时器 10s hello time,40s dead time
      # ospf要求直连邻居间hello time和dead time必须完全一致,否则无法建立邻居关系
      # 修改本地的hello time,本地的dead time自动4倍关系匹配
    • 修改死亡时间:

      1
      2
      3
      4
      ospf timer dead [num]    # 先进入接口
      # 邻居间计时器 10s hello time,40s dead time
      # ospf要求直连邻居间hello time和dead time必须完全一致,否则无法建立邻居关系
      # 修改本地的dead time,本地的hello time不会改变,会改变等待时间(wait time)
    • Waiting time:

      • 等待时间 == 死亡时间,DR/BDR选举时间。
      • 修改死亡时间:该计时器时间会同步修改。
      • 注意,两个计时器分开计时,只是数值长短相同
    • Poll:轮询时间120S,与状态为DOWN的邻居关系发送hello包的间隔时间

    • NBMA环境下单方面指定邻居后,将邻居置为Attempt状态,等待对方指定自己。如果对方一直没有指定(120S,这个时间内会以30S为周期发送hello包)会将邻居的状态改为down状态,之后,将按照poll时间为周期发送hello包。

    • 修改轮询时间:

      1
      ospf timer poll [num]    # 先进入接口,单位分钟second
    • Retransmit:重传时间 5S,发送信息时需要确认;如果重传时间内没有收到确认信息,则将重传

      1
      ospf timer retransmit [num]   # 先进入接口,单位分钟second
    • Transmit Delay:传输延迟1S ,主要是附加在LSA的老化时间上的,为了补偿传输过程中消耗的时间

      1
      ospf trans-delay [num]   # 先进入接口,单位分钟second
    • 沉默接口:将一个接口设置称为沉默接口,他将只接受不发送OSPF的数据包

      1
      silent-interface g0/0/0   # 先进入ospf
    • 路由过滤:主要是针对3类,5类,7类LSA进行过滤

      1
      2
      3
      4
      # 过滤3类LSA,先进入需要过滤网段的区域,不让此网段发网其他区域
      abr-summary [需要过滤掉的IP网段] [子网掩码] not-advertise
      #过滤5类/7类LSA,先进入NSSA区域
      asbr-summary [需要过滤掉的IP网段] [子网掩码] not-advertise
  • 路由控制:

    • 优先级:

      • 修改类型为OSPF路由(通过1类,2类和3类LSA学到的)的默认优先级

        1
        preference [num]    # 先进入OSPF进程
      • 修改类型为O_ASE / O_NSSA的路由(通过5类和7类学到的)的默认优先级

        1
        preference ase [num]   # 先进入OSPF进程
      • 注意:这条命令在修改的只能影响本设备,并且将本设备上所有对应协议类型的路由条目优先级统一修改

    • 开销值COST:参考带宽 / 真实带宽,华为体系下,默认参考带宽为100M

      • 通过修改参考带宽达到修改开销值得目的

        1
        bandwidth-reference [num]    # 全网需要一致(单位MB/s),先进入ospf
      • 通过修改真实带宽达到修改开销值得目的(修改后需要重启接口后生效)

        1
        spend [10/100/1000]   # 修改接口得传输速率,先进入接口
        1
        undo negotiation auto   # 关闭自动协商,先进入接口

        注意:这种方法确实可以起到控制选路的效果,但是,因为只能把接口的传输速率改低,所以,会影响链路的传输效率,不建议使用

      • 直接修改接口的开销值:

        1
        ospf cost [num]    # 先进入接口

        注意:如果一条链路两端接口的开销值大小不一样,则我们将按照路由传递方向的入接口(数据传输的出接口)的开销值来计算

      • 查看接口开销值:

        1
        display ospf interface [接口号]

        注意:

        • 如果一条链路两端接口的开销值大小不一样,则我们将按照路由传递方向的入接口(数据传输的出接口)的开销值来计算
        • 如果想要改变到达某一个末梢网段的开销值,建议直接在这个修改这个末梢网段接口的开销值,而不要修改沿途骨干链路的开销值。因为沿途修改则经过的路由的开销都会影响。
        • 路由层面(控制层面):路由协议传递路由信息产生的流量
        • 数据层面:设备访问目标地址时产生的数据流量

7.OSPF的选路原则:

  • 域内:1类LSA,2类LSA

    • 两条到达相同目标的路由,直接比较开销值,若两边开销值相同,则负载均衡
  • 域间:3类LSA

    • 两条到达相同目标的路由,直接比较开销值,若两边开销值相同,则负载均衡
  • 域外:5类LSA,7类LSA

    • 参数E type:类型1:直接比较总度量值(种子度量+沿途累加开销值),优选总度量小的;如果总度量相同,则负载均衡

    • 参数E type:类型2:先比较种子度量值,优选种子度量值小的;如果种子度量值相同,则比较沿途累加开销值,优先选择沿途累加开销值小的;如果都相同,则负载均衡

    • 类型1永远优于类型2

    • 同时查看所有5类LS

      1
      display ospf lsdb ase
  • 域内和域间:域内路由优于域间路由,即使域内路由开销值巨大

  • 域间和域外:域间路由优于域外路由,即使域间路由开销值巨大

  • 5类和7类LSA:在华为体系中,5类和7类LSA生成的路由信息在优先级比较方面没有区别

8.OSPF的防环:

  • 域内防环:
    • 星型区域划分本身就是一种防环的手段
    • 区域之间需要遵循区域水平分割机制,即从哪个区域学来路由的就不再发回到那个区域
  • 域间防环:SPF最短路径优先算法,有向图–>最短路径树—->路由

4.路由策略:

  • 通过调整路由中的一些属性调整路由(控制层面)

1.路由抓取工具列表:

  • ACL:访问控制列表, 抓取路由时丌能匹配网络掩码

    1
    2
    3
    4
    5
    acl [id]
    rule [permit/deny] source [IP地址] [通配符]
    例:
    rule deny source 192.168.1.3 0.0.0.0 #拒绝一个IP地址
    rule deny source 192.168.2.0 0.0.0.255 #拒绝一个网段

    通配符:0代表固定,1代表可变

    1
    2
    3
    # 抓去1.1.1.0/24 - 1.1.255.0/24网段中的奇数网段和偶数网段
    奇数网段:rule deny source 1.1.1.0 0.0.254.0
    偶数网段:rule deny source 1.1.0.0 0.0.254.0
  • Prefix-List:前缀列表

    • 特点:

      1. 仅仅抓取路由信息
      2. 能严格匹配网络掩码(以及可以范围性匹配掩码)
      3. 存在序列号,从小到大匹配,一经匹配立即执行
      4. 末尾隐含了拒绝所有
    • 配置:

      1
      2
      3
      ip ip-prefix [列表名] index [序列号] [deny/permit] [IP地址/IP网段] [网络号固定长度]
      [greater-equal] [num] # 大于等于num网络号长度
      [less-equal] [num] # 小于等于num网络号长度
      1
      2
      # 定义前缀列表 cisco ,序列号20 ,过滤 1.1.1.0 前24位固定,网络掩码范围大于等于28 小于等于30
      ip ip-prefix cisco index 20 deny 1.1.1.0 24 greater-equal 28 less-equal 30
      1
      2
      # 匹配 所有的主机路由
      ip ip-prefix c1 permit 0.0.0.0 0 greater-equal 32
    • 查看前缀列表

      1
      display ip ip-prefix [列表名] 

2.实施策略工具列表:

  • Fitter-Policy :过滤策略列表,进行路由信息的过滤

    • 特点:

      1. .自身不具备过滤功能
      2. 可以在同种路由之间使用不同路由协议之间使用(重发布)过程中使用
      3. 同种路由协议之间分为
        • 距离矢量型(可以在出和入两个方向实施)
        • 链路状态型(仅仅在入方向使用,并且不是过滤LSA,只是阻止LSA的加表 )
        • 备注: 华为设备中可以在出方向上针对5类和7类LSA进行过滤
      4. 在不用协议之间使用时,必须为export + A协议(需要被重发布的协议)
    • 距离矢量型:可以在学习路由的Import(入),export(出)

      1
      2
      3
      4
      filter-policy [列表类型] [列表名] [import/export] [接口/协议进程]   # 先进入协议进程
      例:
      # filter-policy ip-prefix c2 import g0/0/1
      # filter-policy ip-prefix c2 rip 100
    • 链路状态型:只能在学习路由的import 方向是实施,仅仅是阻止路由条目加表,不能过滤LSA

      1
      filter-policy [序列号] import 
  • Route-Policy : 策略列表

    • 使用环境:

      • 重发布
      • BGP
      • PBR(QOS,是数据层面的控制 )
    • 特点:

      1. 自身具有过滤功能

      2. 序列号由小及大匹配

      3. 可以过滤路由或者改变路由的属性

      4. 末尾隐含拒绝所有

      5. 每一个条目中包含逻辑语句 if-match(如果匹配) apply(执行以下结果)

        • if-match此一行后的条件为相似匹配

          1
          2
          if-match acl 2000,2001,2002
          apply cost=10000
        • if-match的条件竖的写为绝对匹配,必须满足所有条件

          1
          2
          3
          4
          5
          if-match
          acl 2000
          cost=20
          route-tag 99
          apply cost 20000
        • 没有匹配all 没有apply apply nothing

    • 创建策略列表:

      1
      2
      3
      route-policy [列表名] [deny/premit] node [序列号]   # 序列号只是列表的条数
      if-match [条件] .....
      apply [执行内容]
      1
      2
      3
      4
      # 修改符合前缀列表路由的开销值类型为1
      route-policy os1 permit node 10
      if-match ip-prefix b1
      apply cost-type type-1
      1
      2
      3
      4
      # 修改符合前缀列表路由的开销值为+3
      route-policy os1 permit node 10
      if-match ip-prefix b1
      apply cost + 3
      1
      2
      3
      # 过滤掉符合条件的路由网段
      route-policy os1 deny node 20
      if-match ip-prefix b1
      1
      2
      3
      # 放行符合条件的路由网段
      route-policy os1 permit node 30
      if-match ip-prefix b1
    • 调用策略列表:

      1
      import-route [协议类型] [进程号] route-policy [列表名]    # 先进入协议进程
    • 查看策略列表:

      1
      display route-policy [列表名]

5.策略路由:

  • 通过工具对数据层面的转发方式进行调整(数据层面)

  • PBR(policy based router): 基于策略的路由

  • 本地PBR:针对本设备产生的流量进行策略控制

    • 只能使用acl抓取流量

    • 创建本地PBR:

      1
      2
      3
      4
      # 方式1:
      policy-based-route [列表名] [permit/deny] node [序列号]
      if-match [条件]
      apply ip-address next-hop [下一跳地址] # 强制指定某网段或某些网段的下一跳
      1
      2
      3
      4
      # 方式2:方式2需要开启对端接口的ARP代理
      policy-based-route [列表名] [permit/deny] node [序列号]
      if-match [条件]
      apply output-interface [本地路由出接口号] # 强制指定某网段或某些网段的路由出接口
    • 调用RBR列表

      1
      ip local policy-based-route [列表名]
    • 查看PBR列表

      1
      display policy-based-route
    • 默认在华为设备中,三层接口的代理ARP 功能是关闭的,所以在本地的PBR中,需要开启对端的代理ARP功能,否则会因为学习不到对方的MAC导致数据不同

    • 在对端的路由器开启接口的ARP代理(方式2才开启)

      1
      arp-proxy enable    # 先进入接口
  • 接口PBR:针对非本设备产生的数据进行策略控制,华为中使用MQC 模型来实现接口级别的PBR

    • 只能使用acl抓取流量

    • 使用MQC模型中的classifier

      1
      2
      traffic classifier [列表名]
      if-match [条件]
    • 使用traffic behavior 定义策略(行为)(指定下一跳)

      1
      2
      traffic behavior [列表名]
      redirect ip-nexthop [下一跳地址] # 强制指定某网段或某些网段的下一跳
    • 定义traffic policy ,关联以上两个列表

      1
      2
      traffic policy [列表名]
      classifier [列表名] behavior [列表名]
    • 在流量进入的接口调用

      1
      traffic-policy [列表名] inbound    # 先进入接口