双归同一运营商的 BGP 部署

一、拓朴如下:

要求:

        1、AS100 只接收 AS200 和 300 的路由,不接收其它 AS 的明细路由;
        2、对于 AS100 的业务流量出方向,所有到 AS200 和 300 的流量,优先选择 Line-1,而到 AS400 的流量,优先走 Line-2;
        3、对于 AS100 的业务流量入方向,遵循最优原则,来自 AS200 和 300 的流量,优先选择 Line-1,而来自 AS400 的流量,优先走 Line-2;
        4、不允许使用客户的 AS 做为穿越AS(即:如果R3和R4之间连线断开,不允许 ISP 流量穿越 AS100)

二、部署步骤:

        1、配置IP
        2、给 AS100、AS200 分别配置 IGP,这里我们用 ospf
        3、配置 BGP,宣告接口和 Loopback 地址
        4、对于要求1(只接收 AS200、300的路由),用正则匹配 as-path 开头 200 和结尾 300 的路由,在引入时,应用到入方向路由策略:

[R1]
ip as-path-filter 3 permit ^200$
ip as-path-filter 3 permit _300$
#
route-policy OUTBOUND permit node 10 if-match as-path-filter 3 
route-policy OUTBOUND permit node 20 
#
bgp 100peer 13.1.1.3 route-policy OUTBOUND import
#[R2]
ip as-path-filter 4 permit _400$
#
route-policy OUTBOUND permit node 10 if-match as-path-filter 4
route-policy OUTBOUND permit node 20 
#
bgp 100peer 24.1.1.4 route-policy OUTBOUND import
#

        5、对于要求2(流量出方向),对引入的路由,用正则匹配到 AS200、300 ,并赋予不同的 Local-preference,越大越优,应用到路由策略入方向,满足出方向选路。这里我们只需要在上面的路由策略 node 10 下面加上  apply local-preference 200,就可满足流量出方向选路

        6、对于要求3(流量入方向),用 ACL 2001 和 2002,分别匹配 R1 和 R2 的路由,赋予不同的 med 值,值越小越优,应用到路由的出方向,给对端指示进入进入本 AS100 的选路:

[R1]
acl number 2001rule 5 permit source 100.1.1.0 0.0.2.0 
acl number 2002  rule 5 permit source 202.2.0.0 0.0.6.0 
#
route-policy INBOUND permit node 10 if-match acl 2001 apply cost 50 
#
route-policy INBOUND permit node 20 if-match acl 2002 apply cost 100 
#
bgp 100peer 13.1.1.3 route-policy INBOUND export
#[R2]
acl number 2001rule 5 permit source 100.1.1.0 0.0.2.0 
acl number 2002  rule 5 permit source 202.2.0.0 0.0.6.0 
#
route-policy INBOUND permit node 10 if-match acl 2001 apply cost 100 
#
route-policy INBOUND permit node 20 if-match acl 2002 apply cost 50 
#
bgp 100peer 24.1.1.4 route-policy INBOUND export
#

        7、对于要求4(不允许穿越客户 AS),用正则匹配开头和结尾的 as-path 为空的路由,并应用到对 ISP 的路由出方向过滤(因并不向外发布本地 AS 号的路由,也就避免了 ISP 外的 AS 穿越)

[R1]
ip as-path-filter 1 permit ^$
#
bgp 100peer 13.1.1.3 as-path-filter 1 export 
#[R2]
ip as-path-filter 1 permit ^$
#
bgp 100peer 24.1.1.4 as-path-filter 1 export 
#
三、测试:

        测试1:分别查看 R1 和 R3,R2 和 R4 的路由表,可以看到出方向应用了 LocalPrf 值大的路径,入方向应用了 med 值小的路径:

        测试2:在 R5 或者 R6 上新增一个 AS500 区域,看能否获取到 AS100 的路由,在 AS100 的路由器上查看能否获取到 AS500 的路由

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/458861.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构——顺序表详解

目录 前言 一.线性表 1.概念 二.顺序表 1.概念 2.分类 2.1静态顺序表 2.2动态顺序表 前言 数据结构是计算机存储、组织数据的方式. 一.线性表 1.概念 线性表(linear list)是n个具有相同特性的数据元素的有限序列.线性表是一种在实际中广泛使用的…

【Linux系统化学习】文件描述符fd

目录 基础IO预备知识 C语言文件接口 "w"的方式打开,fputs写入 以"a"的方式打开,fputs写入 使用位图传参 系统调用操作文件 open的使用 第一种形式 第二种形式 write() 文件描述符 文件描述符和进程的关系 默认的三个IO流…

NModbus的NuGet包使用样例

首先仿真软件ModbusSlave简单配置3条数据: 连接配置: VS中安装NuGet包:NModbus4 简单获取湿度 SerialPort serialPort new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);serialPort.Open();Modbus.Device.ModbusSer…

mysql项目实战,常用sql语句的实战笔记

1.使用sql语句对数据库进行创建 //创建实验用的数据库 CREATE DATABASE jsschool;//使用当前数据库 USE jsschool;//创建学生表 CREATE TABLE student (sno VARCHAR(20) PRIMARY KEY COMMENT 学生编号,sname VARCHAR(20) NOT NULL COMMENT 学生姓名,ssex VARCHAR(10) NOT NULL…

WebSocket相关问题

1.WebSocket是什么?和HTTP的区别? WebSocket是一种基于TCP连接的全双工通信协议,客户端和服务器仅需要一次握手,两者之间就可以创建持久性的连接,并且支持双向数据的传输。WebSocket和HTTP都是基于TCP的应用层协议&am…

解决: 0x803f7001 在运行Microsoft Windows 非核心版本的计算机上,运行“ slui.exe 0x2a 0x803f7001 “以显示错误文本,激活win10步骤流程。

一. 解决 0x803F7001在运行Microsoft Windows非核心版本的计算机错误 首先,按下winR打开"运行",输入 regedit 后回车,打开注册表。   然后再注册表下输入地址HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProt…

YOLO部署实战(2):使用OpenCV优化视频转图片流程并设置帧数

在计算机视觉和图像处理领域,OpenCV是一个强大的开源库,它为处理图像和视频提供了丰富的工具和功能。本文将介绍如何使用OpenCV将视频文件转换为一系列图片,并演示如何通过设置转换的帧数来优化这一过程。 1 Win10配置OpenCV 在Windows操作…

开源项目的三年,我的项目经历了哪些变化?

0.前言 自己一个项目写了三年,到底写了什么东西了,这个项目经历了哪些变化呢?其中的心路历程如何? 兄弟们,要是感觉我的项目有价值,去b站给俺点点关注呐。我更新的更快。点击下面的了解就可以跳转去b站。…

水面漂浮物监测识别摄像机

水面漂浮物监测识别摄像机是一种用于监测水域表面上漂浮物的设备,可以帮助环保部门或海洋研究机构快速发现和识别水中的浮游物,有助于保护水质和生态环境。这种摄像机通常具有以下功能和特点: 高分辨率摄像头:配备高清晰度摄像头&…

ongoDB从入门到实战之.NET Core使用MongoDB开发ToDoList系统(2)-Swagger框架集成

Swagger是什么? Swagger是一个规范且完整API文档管理框架,可以用于生成、描述和调用可视化的RESTful风格的 Web 服务。Swagger 的目标是对 REST API 定义一个标准且和语言无关的接口,可以让人和计算机拥有无须访问源码、文档或网络流量监测就…

算法练习-删除二叉搜索树中的节点(思路+流程图+代码)

难度参考 难度:中等 分类:二叉树 难度与分类由我所参与的培训课程提供,但需要注意的是,难度与分类仅供参考。且所在课程未提供测试平台,故实现代码主要为自行测试的那种,以下内容均为个人笔记,旨…

第三百一十三回

文章目录 1. 概念介绍2. 实现方法2.1 obscureText属性2.2 decoration属性 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何实现倒计时功能"相关的内容,本章回中将介绍如何实现密码输入框.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍…