第七课 k8s网络基础学习-路由协议

第七课 k8s网络基础学习-路由协议

tags:

  • k8s网络
  • eNSP
  • wireshark
  • OSPF
  • BGP
  • 静态路由

第一节 路由协议基础

1.1 网络交换

  1. PC1、PC2连接在同一台二层交换机上。
  2. 初始情况下,交换机的MAC地址表是空的。
    在这里插入图片描述
  3. PC1发送数据帧给PC2(假设PC1已经知道了PC2的MAC地址)。
  4. 交换机在GE0/0/1口接收帧后,在MAC地址表中查询该帧的目的MAC地址。
  5. PC1已经知道目的IP和MAC要把TCP/IP数据包发出去,但是MAC地址表中没有任何表项匹配该目的MAC地址,于是交换机将这个数据帧进行泛洪(将数据帧的拷贝从所有接口发送出去,除了接收该帧的接口)。广播是在PC1对TCP/IP协议的数据包封装时候没有目的PC2的MAC地址, 数据包在发出时会发一个arp的请求,这个arp的请求就是一个arp广播。
  6. 区别:泛洪是交换机的动作,广播是PC1发起的ARP的请求。
  7. 同时,交换机学习该帧的源MAC地址并创建MAC地址表项,将该MAC地址与接收该帧GE0/0/1接口进行关联。
    请添加图片描述

1.2 网络路由

  1. 在因特网中,网络连接设备用来控制网络流量和保证网络数据传输质量。常见的网络连接设备有集线器(Hub) .网桥(Bridge)、交换机(Switch)和路由器(Router)。这些设备的基本原理类似,下面就以路由器为例来介绍一下设备的基本原理。无线路由器其实一个带路由功能的交换机。
  2. 路由器是一种典型的网络连接设备,用来进行路由选择和报文转发。路由器根据收到报文的目的地址选择一条合适的路径(包含一个或多个路由器的网络),然后将报文传送到下一个路由器,路径终端的路由器负责将报文送交目的主机。
  3. 路由就是报文从源端到目的端的路径。当报文从路由器到目的网段有多条路由可达时,路由器可以根据路由表中最佳路由进行转发。最佳路由的选取与发现此路由的路由协议的优先级、路由的度量有关。当多条路由的协议优先级与路由度量都相同时,可以实现负载分担,缓解网络压力;当多条路由的协议优先级与路由度量不同时,可以构成路由备份,提高网络的可靠性。
  4. 路由是数据通信网络中最基本的要素。路由信息就是指导报文发送的路径信息,路由的过程就是报文转发的过程。根据路由目的地的不同,路由可划分为:
    • 网段路由:目的地为网段,IPv4地址子网掩码长度小于32位或IPv6地址前缀长度小于128位。
    • 主机路由:目的地为主机,IPv4地址子网掩码长度为32位或IPv6地址前缀长度为128位。
  5. 根据目的地与该路由器是否直接相连,路由又可划分为:
    • 直连路由:目的地所在网络与路由器直接相连。
    • 间接路由:目的地所在网络与路由器非直接相连。
  6. 根据目的地址类型的不同,路由还可以分为:
    • 单播路由:表示将报文转发的目的地址是一个单播地址。
    • 组播路由:表示将报文转发的目的地址是一个组播地址。
  7. 路由器的主要功能就是连接不同网段间的网络。路由器会有个优先级的去转发的。
    请添加图片描述

1.3 路由协议优先级

  1. 对于相同的目的地,不同的路由协议(包括静态路由)可能会发现不同的路由,但这些路由并不都是最优的。事实上,在某一时刻,到某一目的地的当前路由仅能由唯一的路由协议来决定。为了判断最优路由,各路由协议(包括静态路由)都被赋予了一个优先级,当存在多个路由信息源时,具有较高优先级(取值较小)的路由协议发现的路由将成为最优路由,并将最优路由放入本地路由表中。
    请添加图片描述
  2. 其中,0表示直接连接的路由,255表示任何来自不可信源端的路由;数值越小表明优先级越高。所以直连路由的优先级是最高的,而且直连路由的优先级不可配置。
  3. 除直连路由(DIRECT)外,各种路由协议的优先级都可由用户手工进行配置。另外,每条静态路由的优先级都可以不相同。
  4. 有些路由协议需要看下路由器是否支持的,不是默认都支持的。

第二节 静态路由

2.1 静态路由的相关介绍

  1. 路由器根据路由转发数据包,路由可通过手动配置和使用动态路由算法计算产生,其中手动配置的路由就是静态路由。静态路由比动态路由使用更少的带宽,并且不占用CPU资源来计算和分析路由更新。但是当网络发生故障或者拓扑发生变化后,静态路由不会自动更新,必须手动重新配置。静态路由有5个主要的参数:目的地址和掩码、出接口和下—跳、优先级。
  2. 目的地址和掩码:
    • IPv4的目的地址为点分十进制格式,掩码可以用点分十进制表示,也可用掩码长度(即掩码中连续‘1的位数)表示。当目的地址和掩码都为零时,表示静态缺省路由。
  3. 出接口和下一跳地址:
    • 在配置静态路由时,根据不同的出接口类型,指定出接口和下一跳地址。
    • 对于点到点类型的接口,只需指定出接口。因为指定发送接口即隐含指定了下一跳地址,这是的认为与该接口相连0的对端接口地址就是路由的下一跳地址。
    • 对于NBMA (Non Broadcast Multiple Access)类型的接口〈(如ATM接口),配置下一跳IP地址。因这类接口支持点到多点网络,除了配置静态路由外,还需在链路层建立IP地址到链路层地址的映射,这种情况下,不需要指定出接口。
    • 对于广播类型的接口(如以太网接口)和VT (Virtual-template)接口,必须指定通过该接口发送时对应的下一跳地址。因为以太网接口是广播类型的接口,而VT接口下可以关联多个虚拟访问接口(Virtual Access Interface) ,这都会导致出现多个下一跳,无法唯─确定下一跳。
  4. 静态路由优先级
    • 对于不同的静态路由,可以为它们配置不同的优先级,优先级数字越小优先级越高。配置到达相同目的地的多条静态路由,如果指定相同优先级,则可实现负载分担;如果指定不同优先级,则可实现路由备份。
      在这里插入图片描述

2.2 静态路由的演示

在这里插入图片描述

  1. 通信是双向的,因此要留意往返流量
  2. 路由的行为是逐跳的;因此需保证沿途的每一台路由器都有路由
  3. eNSP的实验如下。
    在这里插入图片描述
# AR1
sysname AR1
# 查看所有 接口不够 关闭路由器后右键属性 可以插入板卡
dis int brief
# 设置接口interface G0/0/0
interface G0/0/0
ip a 192.168.12.1 24
dis thi # 查看接口

dis ip int b # 查看配置的ip地址

# AR2
sysname AR2
# 设置接口interface G0/0/0
interface G0/0/0
ip a 192.168.12.2 24
dis thi # 查看接口
interface G0/0/1
ip a 192.168.23.1 24
dis thi # 查看接口

dis ip int b # 查看配置的ip地址

# AR3
sysname AR2
# 设置接口interface G0/0/0
interface G0/0/0
ip a 192.168.23.2 24
dis thi # 查看接口

dis ip int b # 查看配置的ip地址

# 到AR1、AR2和AR3上查看路由表
dis ip routing-table
# AR1上添加路由表
ip route-static 192.168.23.0 24 192.168.12.2
dis ip routing-table

# AR2查看路由表 直连路由本来就有
dis ip routing-table

# AR3上添加路由表
ip route-static 192.168.12.0 24 192.168.23.1
dis ip routing-table

2.3 linux下路由表字段

  1. 静态路由linux架构大体可以分为三个部分,从下往上依次为:硬件-→>内核空间->用户空间。
    在这里插入图片描述
  2. Linux系统的route命令用于显示和操作IP路由表(showlmanipulate the lP routing table)。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中,设置路由通常是为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问internet,那么就需要将网关地址设置为该Linux机器的默认路由。需要注意的是,直接在命令行下执行route命令来添加路由,不会永久保存,当网卡重启或者机器重启之后,该路由就失效了;可以在/etcl/rc.local中添加route命令来保证该路由设置永久有效。sysctl -w net.ipv4.ip forward=1
# 查看liunx的路由表
route -n
  1. Metric指的是开销下面说的不太准确。
    在这里插入图片描述

2.4 经典的公司网络图

  1. 最顶层最好可以做个双机。
  2. MSTP多生成树协议主要用来防环,VRRP形成接入层的虚拟网关。
    在这里插入图片描述

第三节 OSBF协议

3.1 OSPFv2介绍

  1. 开放式最短路径优先OSPF(Open Shortest Path First)是IETF组织开发的一个基于链路状态的内部网关协议。目前针对IPv4协议使用的是OSPF Version 2(RFC2328);针对IPv6协议使用OSPF Version 3(RFC2740)。如无特殊说明,本文中所指的OSPF均为OSPF Version 2。
  2. 目的: 在OSPF出现前,网络上广泛使用RIP(Routing Information Protocol)作为内部网关协议 。由于RIP是基于距离矢量算法的路由协议,存在着收敛慢、路由环路、可扩展性差等问题,所以逐渐被OSPF取代。OSPF作为基于链路状态的协议,能够解决RIP所面临的诸多问题。此外,OSPF还有以下优点:
    • OSPF采用组播形式收发报文,这样可以减少对其它不运行OSPF路由器的影响。
    • OSPF支持无类型域间选路(CIDR)。
    • OSPF支持对等价路由进行负载分担。OSPF支持报文加密。
  3. 由于OSPF具有以上优势,使得OSPF作为优秀的内部网关协议被快速接收并广泛使用
  4. OSPF协议具有以下特点:
    • OSPF把自治系统AS (Autonomous System)划分成逻辑意义上的一个或多个区域;
    • OSPF通过LSA (Link State Advertisement)的形式发布路由;
    • OSPF依靠在OSPF区域内各设备间交互OSPF报文来达到路由信息的统一;
    • OSPF报文封装在IP报文内,可以采用单播或组播的形式发送。

3.2 OSPFv2字段和demo配置

在这里插入图片描述

  1. eNSP配置一下OSPF的demo。
    在这里插入图片描述
# AR1 AR2220
system-view
sysname AR1
interface lo0 # 回环接口
ip a 1.1.1.1 32
dis thi # 看下配置的ip
q # 推出回环口
int g0/0/0 # 配置接口g0/0/0
ip a 10.1.12.1 24
dis thi

# AR2 AR2220
system-view
sysname AR2
interface l0 # 回环接口
ip a 2.2.2.2 32
dis thi # 看下配置的ip
q # 推出回环口
int g0/0/0 # 配置接口g0/0/0
ip a 10.1.12.2 24
dis thi

# 测试 AR2上
ping 10.1.12.1 # 可以ping通
ping 1.1.1.1 # ping不通 因为没有AR1回环口的路由 dis ip routing-table
# 可用通过手动加一条静态路由的方式实现 也可以通过加OSPF的方式实现
# AR2加静态路由 让它可以访问AR1的回环接口
ip route-static 1.1.1.1 32 10.1.12.1
dis ip routing-table
ping 1.1.1.1 # 可以成功
sys
undo ip route-static 1.1.1.1 32 10.1.12.1 # 删除路由 测试OSPF模式

# 测试OSPF模式
# AR1上
sys
ospf router-id 1.1.1.1
area 0 # 有个区域的概念
# 在ospf中掩码是相反的。这里要注意
network 1.1.1.1 0.0.0.0 # 把它的网络宣告出去 在ospf中相反的0.0.0.0代表1.1.1.1是一个主机地址
network 10.1.12.0 0.0.0.255 # 把10.1.12.0网段宣告出去
dis thi # 看一下

# AR2 上
sys
ospf router-id 2.2.2.2
area 0
# 在ospf中掩码是相反的。这里要注意
network 2.2.2.2 0.0.0.0 
network 10.1.12.0 0.0.0.255
dis thi # 看一下

# AR2 上 ping 测试
ping 1.1.1.1 # 发现可以通过

3.3 OSPF邻居状态机

  1. 在OSPF网络中,为了交换路由信息,邻居设备之间首先要建立邻接关系,邻居(Neighbors)关系和邻接(Adjacencies)关系是两个不同的概念。
  2. 邻居关系:OSPF设备启动后,会通过OSPF接口向外发送Hello报文,收到Hello报文的OSPF设备会检查报文中所定义的参数,如果双方一致就会形成邻居关系,两端设备互为邻居。
  3. 邻接关系:形成邻居关系后,如果两端设备成功交换DD报文和LSA,才建立邻接关系。
  4. OSPF共有8种状态机,分别是:Down、Attempt、Init、2-way、Exstart、Exchange、Loading、Full
    • Down:邻居会话的初始阶段,表明没有在邻居失效时间间隔内收到来自邻居路由器的Hello数据包。
    • Attempt:该状态仅发生在NBMA网络中,表明对端在邻居失效时间间隔(dead interval)超时前仍然没有回复Hello报文。此时路由器依然每发送轮询Hello报文的时间间隔(poll interval)向对端发送Hello报文。
    • lnit:收到Hello报文后状态为Init。
    • 2-way:收到的Hello报文中包含有自己的Router ID,则状态为2-way;如果不需要形成邻接关系则邻居状态机就停留在此状态,否则进入Exstart状态。
    • Exstart:开始协商主从关系,并确定DD的序列号,此时状态为Exstart。Exchange:主从关系协商完毕后开始交换DD报文,此时状态为Exchange。Loading: DD报文交换完成即Exchange done,此时状态为Loading。
    • Full: LSR重传列表为空,此时状态为Full。
      在这里插入图片描述
# 继续上面的实验环境
dis ospf peer # 查看ospf邻居状态 直接看字段State是否 是full状态即可
dis ospf peer brief

# 假设我关闭AR2的G0/0/0端口 再去AR1上看邻居状态就没有了
sys
int g0/0/0
shutdown # 关闭当前端口
dis ospf peer brief
undo shutdown # 再次开启端口
dis ospf peer brief
# 查看ospf协议的路由表
dis ospf routing
dis ip routing-table

# dis ip int brief # 查看接口的简要信息
# dis current-configuration # 查看当前所有配置
# 一般情况下 实验环境中 我们不会像上面一样进行配置, 因为手动一条一条配置比较麻烦。下面路由聚合成 所有的路由 宣告出去(生产中我们不建议这么做)。
# 删除ospf的配置 重新配置聚合的ospf 让AR1上路由和AR2上路由相互暴露
# AR1
sys
ospf router-id 1.1.1.1
area 0
undo network 1.1.1.1 0.0.0.0 # 华为是undo 思科是no
undo network 10.1.12.0 0.0.0.255
dis thi
network 0.0.0.0 255.255.255.255 # 宣告所有网络

# AR2
sys
ospf router-id 2.2.2.2
area 0
undo network 2.2.2.2 0.0.0.0 # 华为是undo 思科是no
undo network 10.1.12.0 0.0.0.255
dis thi
network 0.0.0.0 255.255.255.255 # 宣告所有网络

# 可以看到同样也学习到了
dis ospf routing
dis ip routing-table
# AR1上在创建一个回环口
int l1
ip a 3.3.3.3 32
# AR2 查看 它马上又学习到3.3.3.3的ospf协议的路由 这样不用每次加路由不用手动加一个路由了(生产环境不要这样做)
dis ip routing-table
  1. OSPF Router-lD用于在OSPF domain中唯一地表示一台OSPF路由器,从OSPF网络设计的角度,我们要求全OSPF域内,禁止出现两台路由器拥有相同的Router-ID
  2. OSPF -Router-ID的设定可以通过手工配置的方式,或者通过协议自动选取的方式。当然,在实际网络部署中,强烈建议手工配置OSPF的Router-ID,因为这关系到协议的稳定
  3. Router-ID如果变化的话要重启OSPF的进程,尽量不要改它,而且一般用本地回环口去配置我们的Router-ID。
    在这里插入图片描述

3.4 OSPF的DR和BDR

请添加图片描述

  1. 在广播多路访问网络(Multi Access)中,所有的路由器的接口都是相同网段,这些接口两两建立OSPF邻居关系,这就意味着,网络中共有: n(n-1)/2。维护如此多的邻居关系不仅额外消耗资源,更增加了网络中LSA的泛洪数量。

  2. 为减小多路访问网络中的OSPF 流量,OSPF 会在每一个MA网络(多路访问网络)选举一个指定路由器(DR)和一个备用指定路由器(BDR)

  3. DR选举规则:最高OSPF接口优先级拥有者被选作DR,如果优先级相等(默认为1),具有最高的OSPFRouter-lD的路由器被选举成DR,并且DR具有非抢占性

  4. 指定路由器(DR):DR负责使用该变化信息更新其它所有OSPF 路由器(DR Rother)。

  5. 备用指定路由器(BDR):BDR会监控DR的状态,并在当前DR发生故障时接替其角色。

  6. 注意OSPF为“接口敏感型协议”,DR及BDR的身份状态是基于OSPF接口的。

  7. MA网络中,所有的DRother路由器均只与DR和BDR建立邻接关系,DRother间不建立全毗邻邻接关系。

  8. 如此一来,该多路访问网络中设备需要维护的OSPF邻居关系大幅减小:M=(n-2)×2+1,LSA的泛洪问题也可以得到一定的缓解。
    在这里插入图片描述

  9. eNSP实验如上图所示。

# 路由器AR201 R1是DR相当于班长 R2是BDR备份班长 R3 R4 R5。通过交换机S5700连接到一起
# 通过R1学习到路由。如果R1挂掉, 通过R2去学习路由。如果R1恢复,R1暂时作为副班长
# 分别配置R1 R2 R3 R4 R5
# DR和BDR的选举就是根据Router ID的值选举的。值越大就是DR所以这里设置为200和20
# AR1 配置 
sys
sysname AR1
interface E0/0/0
# 这些路由器默认是 交换的接口 需要先关闭
undo portswitch # 先关闭交换 让它变成三层的
ip a 1.1.1.4 24
q # 退出接口
int l 0 # 配置回环口
ip a 100.100.100.100 32
ospf router-id 100.100.100.100
area 0
network 0.0.0.0 255.255.255.255

# AR2 配置 
sys
sysname AR2
interface E0/0/0
# 这些路由器默认是 交换的接口 需要先关闭
undo portswitch # 先关闭交换 让它变成三层的
ip a 1.1.1.6 24
q # 退出接口
int l 0 # 配置回环口
ip a 20.20.20.20 32
ospf router-id 20.20.20.20
area 0
network 0.0.0.0 255.255.255.255

# AR3 配置 
sys
sysname AR2
interface E0/0/0
# 这些路由器默认是 交换的接口 需要先关闭
undo portswitch # 先关闭交换 让它变成三层的
ip a 1.1.1.5 24
q # 退出接口
int l 0 # 配置回环口
ip a 5.5.5.5 32
ospf router-id 5.5.5.5
area 0
network 0.0.0.0 255.255.255.255

# AR4 配置 
sys
sysname AR4
interface E0/0/0
# 这些路由器默认是 交换的接口 需要先关闭
undo portswitch # 先关闭交换 让它变成三层的
ip a 1.1.1.8 24
q # 退出接口
int l 0 # 配置回环口
ip a 8.8.8.8 32
ospf router-id 8.8.8.8 
area 0
network 0.0.0.0 255.255.255.255

# AR5 配置 
sys
sysname AR5
interface E0/0/0
# 这些路由器默认是 交换的接口 需要先关闭
undo portswitch # 先关闭交换 让它变成三层的
ip a 1.1.1.7 24
q # 退出接口
int l 0 # 配置回环口
ip a 7.7.7.7 32
ospf router-id 7.7.7.7
area 0
network 0.0.0.0 255.255.255.255

# AR1和AR2上查看 发现和其他四个都建立了联系full
dis ospf peer brief
# 在AR3、AR4和AR5上查看 只跟AR1和AR2建立了FULL状态,只和班长建立了FULL状态 其他都是2-way状态
dis ospf peer brief

3.4 OSPF的多区域配置

在这里插入图片描述

  1. Area0为骨干区域,负责在非骨干区域之间中转由区域边界路由器归纳的链路状态通告信息。为了防止出现环路,OSPF要求所有的非骨干区域之间不能直接进行LSA的交互,而必须通过Area0骨干区域进行中转,因此所有的非骨干区域必须都与Area0直接相连
  2. 多区域配置如下。
    在这里插入图片描述
# 选择AR2240
# AR1 上配置
sys
sysname AR1
int G0/0/0
ip a 10.1.45.4 24
dis thi
int L0
ip a 4.4.4.4 32
dis thi
q
ospf router-id 4.4.4.4
area 0
network 0.0.0.0 255.255.255.255
dis this

# AR2 上配置
sys
sysname AR2
int G0/0/0
ip a 10.1.45.5 24
int G0/0/1
ip a 10.1.56.5 24
dis thi
int L0
ip a 5.5.5.5 32
dis thi
ospf router-id 5.5.5.5
area 0
network 10.1.45.0 0.0.0.255 # 这里需要精确宣告
network 5.5.5.5 0.0.0.0
q
area 1
network 10.1.56.0 0.0.0.255 
dis this

# AR3 上配置
sys
sysname AR3
int G0/0/0
ip a 10.1.56.6 24
dis thi
int L0
ip a 6.6.6.6 32
dis thi
q
ospf router-id 6.6.6.6
area 1
network 0.0.0.0 255.255.255.255
dis this

# AR1中ping
ping 6.6.6.6
dis ospf peer brief

第四节 BGP协议

4.1 BGP协议介绍

  1. 边界网关协议BGP(Border Gateway Protocol)是一种实现自治系统AS(Autonomous System)之间的路由可达,并选择最佳路由的距离矢量路由协议。早期发布的三个版本分别是BGP-1、BGP-2和BGP-3,1994年开始使用BGP-4,2006年之后单播IPv4网络使用的版本是BGP-4,其他网络(如IPv6等)使用的版本是MP-BGP。
  2. MP-BGP是对BGP-4进行了扩展,来达到在不同网络中应用的目的,BGP-4原有的消息机制和路由机制并没有改变。MP-BGP在IPv6单播网络上的应用称为BGP4+,在IPv4组播网络上的应用称为MBGP (Multicast BGP)。
  3. BGP目的:为方便管理规模不断扩大的网络,网络被分成了不同的自治系统。1982年,外部网关协议EGP(Exterior GatewayProtocol)被用于实现在AS之间动态交换路由信息。但是EGP设计得比较简单,只发布网络可达的路由信息,而不对路由信息进行优选,同时也没有考虑环路避免等问题,很快就无法满足网络管理的要求。
  4. BGP是为取代最初的EGP而设计的另一种外部网关协议。不同于最初的EGP,BGP能够进行路由优选、避免路由环路、更高效率的传递路由和维护大量的路由信息
  5. 虽然BGP用在AS之间传递路由信息,但并非所有AS之间传递路由信息都要运行BGP。如数据中心上行到Internet的出口上,为了避免Internet海量路由对数据中心内部网络影响,设备采用静态路由代替BGP与外部网络通信。
  6. BGP从多方面保证了网络的安全性、灵活性、稳定性、可靠性和高效性:
    • BGP采用认证和GTSM的方式,保证了网络的安全性。
    • BGP提供了丰富的路由策略,能够灵活的进行路由选路,并且能指导邻居按策略发布路由。
    • BGP提供了路由聚合和路由衰减功能用于防止路由振荡,有效提高了网络的稳定性。
    • BGP使用TCP作为其传输层协议(端口号为179),并支持BGP与BFD联动、BGP Tracking和BGP GR和NSR,提高了网络的可靠性。
    • 在邻居数目多、路由量大且大多邻居有相同出口策略场景下,BGP用按组打包技术极大提高了BGP打包发包性能。
      在这里插入图片描述
  7. BGP使用TCP为传输层协议,TCP端口号179。路由器之间的BGP会话基于TCP连接而建立。
  8. 运行BGP的路由器被称为BGP发言者(BGP Speaker),或BGP路由器。
  9. 两个建立BGP会话的路由器互为对等体(Peer)。BGP对等体之间交换BGP路由表。
  10. BGP路由器只发送增量的BGP路由更新,或进行触发更新(不会周期性更新)。
  11. BGP具有丰富的路径属性和强大的路由策略工具。
  12. BGP能够承载大批量的路由前缀,用于大规模的网络中
    在这里插入图片描述
  13. BGP通常被称为路径矢量路由协议(Path-Vector Routing Protocol) 。
  14. 每条BGP路由都携带着多种路径属性(Path attribute),在各种路径属性中,AS_Path属性是非常关键的一个。AS_Path属性记录了BGP路由传递过程中所经过的AS号,实际上它是一个AS号的列表。
  15. BGP路由器不接受AS_Path中包含其自身AS号的路由更新。AS_Path属性值的长短(AS号的个数)会作为一个比较的依据,影响BGP路由选择的决策。
    在这里插入图片描述

4.2 IBGP和EBGP介绍实验

在这里插入图片描述

  1. IBGP (internal BGP):位于相同自治系统的BGP路由器之间的BGP邻接关系。
    • 两台路由器之间要建立IBGP对等体关系,必须满足两个条件:
    • 两个路由器所属AS需相同(也良即AS号相同)。
    • 在配置BGP时,Peer命令所指定的对等体IP地址要求路由可达,并且TCP连接能够正确建立
  2. EBGP(External BGP)∶位于不同自治系统的BGP路由器之间的BGP邻接关系。
    • 两台路由器之间要建立EBGP对等体关系,必须满足两个条件:
    • 两个路由器所属AS不同(也即AS号不同)。:.
    • 在配置BGP时,Peer命令所指定的对等体IP地址要求路由可达,并且TCP连接能够正确建立.
  3. R1和R3之间也是IBGP的连接,但是他们内部却有IGP即OSPF的路由协议只是形成路由器之间的接口路由。形成路由可达的条件,R3和R4是直连的所以不用OSPF, 为什么不把BGP的路由也通过OSPF获取呢?因为OSPF的路由容量是有限的,如果这样做会把路由器搞宕机的。
  4. IBGP的nNSP演示。
    • R1、R2及R3属于AS123,R4属于AS 400;
    • AS123内的R1、R2及R3运行OSPF,通告各自直连接口(包括三台设备的LoopbackO接口),注意OSPF域的工作范围;所有设备的LoopbackO接口地址为x.x.x.x/32,其中x为设备编号(如R1的接口地址为1.1.1.1/32)。
    • R3与R4之间建立EBGP对等体关系,R2暂时不运行BGP,R1与R3之间建立IBGP对等体关系,所有的BGP对等体关系基于直连接口建立;R4将直连路由4.4.4.4/32通告到BGP,要求R1能学习到BGP路由4.4.4.4/32;
    • 修改BGP配置,使得R1与R3基于Loopback0接口建立IBGP对等体关系
      在这里插入图片描述
# 路由器选择AR2240
# AR1 配置
sys
sysname AR1
INT G0/0/0
ip a 10.1.12.1 24
dis thi
int L 0
ip a 1.1.1.1 32

# AR2 配置
sys
sysname AR2
INT G0/0/0
ip a 10.1.12.2 24
INT G0/0/1
ip a 10.1.23.2 24
dis thi
int L 0
ip a 2.2.2.2 32

# AR3 配置
sys
sysname AR3
INT G0/0/0
ip a 10.1.23.3 24
dis thi
int L 0
ip a 3.3.3.3 32

# 测试直连是否通
ping 10.1.12.2 # AR1
ping 10.1.23.2 # AR3

# 配置OSPF
# AR1 先退出 q
ospf router-id 1.1.1.1 
area 0
network 0.0.0.0 255.255.255.255

# AR2 先退出 q
ospf router-id 2.2.2.2 
area 0
network 0.0.0.0 255.255.255.255

# AR3 先退出 q
ospf router-id 3.3.3.3 
area 0
network 0.0.0.0 255.255.255.255
# 也可以精准宣告 防止一些路由即被ospf学到又被bgp学到
# undo network 0.0.0.0 255.255.255.255
# network 3.3.3.3 0.0.0.0
# network 10.1.23.0 0.0.0.255

# ping测试查看ospf的路由
dis ospf peer brief # AR2上等两边都FULL后
ping 10.1.23.3 # AR1 ping AR3 可以ping通了

# 重点奥:配置BGP 先退出到AR1
# AR1
bgp 123 # 自治域是123 
router-id 1.1.1.1
peer 3.3.3.3 as-number 123 # 对端是as为123的3.3.3.3
peer 3.3.3.3 connect-interface L0 # 通过LO去做连接关系 默认是用出接口G0/0/0

# AR3
bgp 123 # 自治域是123 
router-id 3.3.3.3
peer 1.1.1.1 as-number 123 # 对端是as为123的3.3.3.3
peer 1.1.1.1 connect-interface L0 # 通过LO去做连接关系 默认是用出接口G0/0/0
dis bgp peer # 查看状态 如果是Established 说明已经好了

# 配置BGP的宣告路由,这个要在BGP的进程中配置
# AR3上配置
int L l1
ip a 33.33.33.33 32
q # 退出l1口
bgp 123 # 进入bgp的进程中
network 33.33.33.33 32
dis bgp peer

# AR1上发现
dis bgp routing-table # 学习到了一条新的bgp路由
# 字段解释如下:https://www.cnblogs.com/guxh/p/8467760.html
# Total Number of Routes: 1
#      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn
#  *>   33.33.33.33/32     0.0.0.0         0                     0      i
  1. EBGP配置,上面实验中添加AR4路由器AS400,并进行配置如下。
# AR4
sys
sysname AR4
INT G0/0/0
ip a 10.1.34.4 24
dis thi
int L 0
ip a 4.4.4.4 32
dis thi

# AR3先和AR4配置一下直连
int G0/0/1
ip a 10.1.34.3 24
dis thi
ping 10.1.34.4 # 通的 直连没问题

# AR3 配置EBGP
Q
BGP 123 # 因为它还在123 自治域中
# 这里不能用回环口去建立BGP的连接关系了 因为没有ospf路由所以根本ping不通4.4.4.4
peer 10.1.34.4 as-number 400 # 直接让他用出接口去建立EBGP 这里不用4.4.4.4去建立连接了

# AR4 配置BGP
Q
BGP 400 
router-id 4.4.4.4
network 4.4.4.4 32
peer 10.1.34.3 as-number 123
dis bgp peer # 等idle状态变成Established状态即可
dis bgp routing-table

在这里插入图片描述

4.3 BGP路由反射RR

在这里插入图片描述

  1. BGP的水平分割如上图。OSPF使得所有的路由端口可达,C从B学到的路由条目不会通告给D和E对等体。

  2. 为了保证中转AS300内所有路由器都能学习到完整的BGP路由信息,我们不得不在该AS内的每一台路由器上运行BGP并且建立全互联的IBGP对等体关系。

  3. 为了防止AS内产生环路,BGP设备不将从IBGP对等体学到的路由通告给其他IBGP对等体,并与所有IBGP对等体建立全连接。
    在这里插入图片描述

  4. 由于IBGP水平分割的存在,为了保证所有的BGP路由器都能学习到完整的BGP路由,就必须在AS内实现IBGP全互联,这就导致AS内部需要维护大量的BGP连接,从而影响网络性能,路由反射器(Route Reflector,RR)可以“放宽”水平分割原则,解决该问题

  5. 为保证IBGP对等体之间的连通性,需要在IBGP对等体之间建立全连接关系。假设在一个AS内部有n台设备,那么建立的IBGP连接数就为n(n-1)/2。当设备数目很多时,设备配置将十分复杂,而且配置后网络资源和CPU资源的消耗都很大。在IBGP对等体间使用路由反射器可以解决以上问题。
    在这里插入图片描述

  6. RR在接收BGP路由时

    • 如果该路由学习自非Client IBGP对等体,则反射给自己所有的Client;(因为水平分割)
    • 如果路由学习自Client,则反射给所有非Client lBGP对等体和除了该Client之外的所有Client(华为设备可通过命令关闭RR在Client之间的路由反射行为);
    • 如果路由学习自EBGP对等体,则发送给所有Client和非Client lBGP对等体
      在这里插入图片描述
  7. eNSP模拟bgp RR
    在这里插入图片描述

# 第一步开始: 配置回环和网络直连
# AR1 配置
sys
sysname AR1
int G0/0/0
ip a 10.1.12.11 24
int G0/0/1
ip a 10.1.13.11 24
dis thi
int L 0
ip a 1.1.1.1 32
dis thi

# AR2 配置
sys
sysname AR2
int G0/0/0
ip a 10.1.12.12 24
int L 0
ip a 2.2.2.2 32
dis thi

# AR3 配置
sys
sysname AR3
int G0/0/0
ip a 10.1.13.13 24
int L 0
ip a 3.3.3.3 32
dis thi

# 第一步结果:看下直连是否是通的 AR1 ping 
ping 10.1.13.13
ping 10.1.12.12

# 第二步开始:配置OSPF
# AR1
q
ospf router-id 1.1.1.1
area 0
network 0.0.0.0 255.255.255.255

# AR2
q
ospf router-id 2.2.2.2
area 0
network 0.0.0.0 255.255.255.255

# AR3
q
ospf router-id 3.3.3.3
area 0
network 0.0.0.0 255.255.255.255

# 第二步结果:AR1上查看ospf连接
dis ospf peer brief

# 第三步开始:配置BGP RR
# AR1
bgp 123 
router-id 1.1.1.1
peer 2.2.2.2 as-number 123
peer 2.2.2.2 connect-interface L0
peer 3.3.3.3 as-number 123
peer 3.3.3.3 connect-interface L0
dis thi
# 配置RR 路由反射器配置
peer 2.2.2.2 reflect-client  # 以AR1为中心指定 2.2.2.2为我的client
peer 3.3.3.3 reflect-client
dis this

# AR2
bgp 123 
router-id 2.2.2.2
peer 1.1.1.1 as-number 123
peer 1.1.1.1 connect-interface L0

# AR3
bgp 123 
router-id 3.3.3.3
peer 1.1.1.1 as-number 123
peer 1.1.1.1 connect-interface L0

# 第三步验证:测试BGP RR
# AR3 上bgp宣告一条路由 由于水平分割的原则如果AR1没有RR 不会把从AR3上学到的路由发给AR2的
int L1
ip a 33.33.33.33 32
Q
bgp 123
router-id 3.3.3.3
network 33.33.33.33 32 # 宣告到AR3的bgp进程中
dis thi
# AR2上看下 学习到33.33.33.33路由 第一图
dis bgp routing-table
# 继续AR1	 取消client关系
bgp 123
undo peer 2.2.2.2 reflect-client # 关闭client 看下能不能学习到
dis thi
# AR2上再次查看 发现依然可以获得 因为从AR3 client学习到的会发给非client 第二图
refresh bgp external import
dis bgp routing-table
# 继续AR1
bgp 123
undo peer 3.3.3.3 reflect-client
q
q
refresh bgp external import
# 再次刷新那么AR2学习到的路由由于水平分割所以学习不到了
dis bgp routing-table # AR2 上学习不到了

4.4 Calico的BGP RR拓扑

在这里插入图片描述

  1. Calico官网说明:https://projectcalico.docs.tigera.io/reference/architecture/design/l3-interconnect-fabric
  2. eNSP实验如下图所示。
    在这里插入图片描述
  3. 把eNSP配置好的路由器清除所有配置
# 重置配置
reset saved-configuration
reboot # 不保存 no y
# 然后路由器停止一下 在启动一下就可以重置
dis current-configuration
  1. 配置一下Calico中的RR的拓扑。第一步:先配置地址 目的直连可通
# 第一步:先配置地址 目的直连可通
# AR1
sys
sysname AR1
interface G0/0/0
ip address 10.1.13.1 24
interface G0/0/1
ip address 10.1.14.1 24
dis thi

# AR2
sys
sysname AR2
interface G0/0/0
ip a 10.1.23.2 24
interface G0/0/1
ip address 10.1.24.2 24
dis thi

# AR3
sys
sysname AR2
interface G0/0/0
ip a 10.1.13.3 24
interface G0/0/1
ip address 10.1.23.3 24
interface G0/0/2
ip address 10.1.35.3 24
interface G4/0/0
ip address 10.1.36.3 24
interface L0
ip address 3.3.3.3 32
dis thi

# AR5
sys
sysname AR5
interface G0/0/0
ip a 10.1.35.5 24
interface L0
ip address 5.5.5.5 32
dis thi
ping 10.1.35.3

# AR6
sys
sysname AR6
interface G0/0/0
ip a 10.1.36.6 24
interface L0
ip address 6.6.6.6 32
dis thi
ping 10.1.36.3


# AR4
sys
sysname AR4
interface G0/0/0
ip a 10.1.14.4 24
interface G0/0/1
ip address 10.1.24.4 24
interface G0/0/2
ip address 10.1.47.4 24
interface G4/0/0
ip address 10.1.48.4 24
interface L0
ip address 4.4.4.4 32
dis thi
ping 10.1.14.1
ping 10.1.24.2

# AR7
sys
sysname AR7
interface G0/0/0
ip a 10.1.47.7 24
interface L0
ip address 7.7.7.7 32
dis thi
ping 10.1.47.4

# AR8
sys
sysname AR8
interface G0/0/0
ip a 10.1.48.8 24
interface L0
ip address 8.8.8.8 32
dis thi
ping 10.1.48.4
  1. 第二步配置ospf和bgp。
# 第二步:配置ospf和bgp
# AR3
q
ospf router-id 3.3.3.3 
area 0
network 0.0.0.0 255.255.255.255
dis thi
dis ospf peer brief
q
BGP 356
router-id 3.3.3.3 
peer 5.5.5.5 as-number 356
peer 5.5.5.5 connect-interface L0
peer 5.5.5.5 reflect-client
peer 6.6.6.6 as-number 356
peer 6.6.6.6 connect-interface L0
peer 6.6.6.6 reflect-client

peer 10.1.13.1 as-number 100 # EIBGP
dis bgp peer

# AR5
q
ospf router-id 5.5.5.5
area 0
network 0.0.0.0 255.255.255.255
dis thi
q
dis ospf peer brief
BGP 356
router-id 5.5.5.5
peer 3.3.3.3 as-number 356
peer 3.3.3.3 connect-interface L0
dis this
dis bgp peer


# AR6
q
ospf router-id 6.6.6.6
area 0
network 0.0.0.0 255.255.255.255
dis thi
q
dis ospf peer brief
BGP 356
router-id 6.6.6.6
peer 3.3.3.3 as-number 356
peer 3.3.3.3 connect-interface L0
dis thi
dis bgp peer

# AR1
q
bgp 100
peer 10.1.13.3 as-number 356 # AR3上的EBGP
dis bgp peer
peer 10.1.14.4 as-number 478 # AR4上的EBGP
dis bgp peer


# AR4
q
ospf router-id 4.4.4.4
area 0
network 0.0.0.0 255.255.255.255
dis thi
dis ospf peer brief
q
BGP 478
router-id 4.4.4.4
peer 7.7.7.7 as-number 478
peer 7.7.7.7 connect-interface L0
peer 7.7.7.7 reflect-client
peer 8.8.8.8 as-number 478
peer 8.8.8.8 connect-interface L0
peer 8.8.8.8 reflect-client

peer 10.1.14.1 as-number 100 # EIBGP
dis bgp peer


# AR7
q
ospf router-id 7.7.7.7
area 0
network 10.1.47.0 0.0.0.255 # 全宣告出去ospf的优先级比bgp高 dis ip routing-table 就可看不到效果
dis thi
q
dis ospf peer brief
BGP 478
router-id 7.7.7.7
peer 4.4.4.4 as-number 478
peer 4.4.4.4 connect-interface L0
dis this
dis bgp peer


# AR8
q
ospf router-id 8.8.8.8
area 0
network 10.1.48.0 0.0.0.255 # 全宣告出去ospf的优先级比bgp高 dis ip routing-table 就可看不到效果了
dis thi
q
dis ospf peer brief
BGP 478
router-id 8.8.8.8
peer 4.4.4.4 as-number 478
peer 4.4.4.4 connect-interface L0
dis this
dis bgp peer
  1. 第三步测试验证AR7上发布一条路由,在AR6上学习到。
# AR7
int l1
ip a 77.77.77.77 32
bgp 478
network 77.77.77.77 255.255.255.255
dis this
dis bgp routing-table

# AR6上
int l1
ip a 66.66.66.66 32
bgp 356
network 66.66.66.66 255.255.255.255
dis this
dis bgp routing-table 
dis ip routing-table 

# AR7上ping 可通
ping -A 77.77.77.77 66.66.66.66
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值