1、前言

     云计算在中国发展越来越快,企业逐步开始将业务迁移到公有云中,方便运维,节省成本。公有云最复杂的地方是网络,客户对网络的需求千奇百怪,造成网络环境极其复杂,稍有不慎,就会出现网络连通性问题。因此大部分云计算厂商机房网络类型的运营商接入均为 BGP 多线路,保证线路质量。公有云中网络安全也是非常重要,例如DDos攻击,域名未备案封堵系统。我在工作中接触到了BGP高仿和域名未备案封堵系统,今天总结一下自己对BGP网络的理解,涉及的内容有什么是BGP,BGP用来解决什么问题,云计算厂商中BGP机房有啥优势,BGP高防如何做到引流和回注,域名未备案系统是怎么实现的。

2、BGP网络介绍

  目前中国境内主要分为网通、电信、移动、联通、教育网、科技网、卫通等网络,由于这些公司独立运作,造成国内长久以来整个互联网处于无法快速互联互通的局面,如何将各个AS自制系统连通起来,就需要搭建BGP网络。

在介绍BGP协议之前,先介绍几个概念:

  (1) AS(Autonomous system):自治系统,指在一个(有时是多个)组织管辖下的所有IP网络和路由器的全体,它们对互联网执行共同的路由策略。也就是说,对于互联网来说,一个AS是一个独立的整体网络。而BGP实现的网络自治也是指各个AS自治。每个AS有自己唯一的编号。

  (2)IGP(Interior Gateway Protocol):内部网关协议,在一个AS内部所使用的一种路由协议。一个AS内部也可以有多个路由器管理多个网络。各个路由器之间需要路由信息以知道子网络的可达信息。IGP就是用来管理这些路由。代表的实现有RIP和OSPF。

(3)EGP(Exterior Gateway Protocol):外部网关协议,在多个AS之间使用的一种路由协议,现在已经淘汰,被BGP取而代之。

BGP(Border Gateway Protocol)主要用于互联网AS(自治系统)之间的互联,BGP的最主要功能在于控制路由的传播和选择最佳路径。全国各大网络运营商多数都是通过BGP协议与自身的AS号来实现多线互联的。使用BGP协议互联后,网络运营商的所有骨干路由设备将会判断到IDC机房IP段的最佳路由,以保证不同网络运营商用户的高速访问。

  动态BGP多线网络,路由表项是通过相互连接的路由器之间交换彼此路由信息,然后按照一定的算法优化出来的,而这些路由信息是在一定时间间隙里不断更新,以适应不断变化的网络,以随时获得最优的寻路效果。为了实现IP分组的高效寻路,IETF制定了多种寻路协议。也就是说,当静态BGP中的网络结构发生变化,运营商是无法在第一时间自动调整网络设置以保障用户的体验度。而动态BGP可根据设定的寻路协议第一时间自动优化网络结构,以保持客户使用的网络持续稳定、高效。所以,动态BGP网络被称为真正意义上的BGP。

知乎上有一个非常=通俗易懂的例子讲解为什么需要BGP网络,https://zhuanlan.zhihu.com/p/25433049

3、BGP流量引流和回注

  云计算厂商需要保证客户网络的正常,通常会为单个公网IP提供数G的防护能力,当超过默认的阈值,公网IP备迁移到黑洞中,进行封堵。这样导致用户的服务不可访问了,客户为了正常访问服务,就需要接入BGP高防,防护能力高达数百G,来保护服务正常。高防的费用是非常高的,通常云厂商自己搭建高防系统,通过BGP协议将流量引流到高防清洗系统,将异常流量清洗掉,将正常流量回注给客户。参考华为的DDos防护系统:http://forum.huawei.com/enterprise/thread-388785-1-1.html

4、搭建BGP引流和回注

  使用Linux下开源的Quagga开源搭建基于BGP协议的路由器,Quagga守护进程负责BGP的服务叫bgpd。关于如何使用Quagga搭建一个BGP路由器,可以参考:

https://linux.cn/article-4609-1.html

路由器A和路由器B使用100.100.0.0/30子网来连接到对方。

  技术实现目前可以使用Intel开源的DPDK网络开发包快速开发,使用KNI新建一个虚拟网卡,配置好与上层交互机建立BGP,然后通过虚拟网络将流量引入,分析流量过后,使用回注口将报文使用二层MAC送回到交换机。关于DPDK的介绍可以参考:https://www.jianshu.com/p/0ff8cb4deaef

BGP网络学习总结的更多相关文章

  1. ios网络学习------4 UIWebView的加载本地数据的三种方式

    ios网络学习------4 UIWebView的加载本地数据的三种方式 分类: IOS2014-06-27 12:56 959人阅读 评论(0) 收藏 举报 UIWebView是IOS内置的浏览器, ...

  2. ios网络学习------6 json格式数据的请求处理

    ios网络学习------6 json格式数据的请求处理 分类: IOS2014-06-30 20:33 471人阅读 评论(3) 收藏 举报 #import "MainViewContro ...

  3. 网络学习day01_计算机网络与分层思想

    2018.9.1 网络学习day01_计算机网络与分层思想 网络安全 计算机网络 分层思想    LAN与WAN   LAN(Local Area Network)--局域网   局域网(Local ...

  4. Neutron网络学习

    学习 Neutron 系列文章: 转http://www.cnblogs.com/sammyliu/p/4622563.html (1)Neutron 所实现的网络虚拟化 (2)Neutron Ope ...

  5. BGP协议学习总结

    BGP学习总结 BGP是目前使用的唯一的自治系统间的路由协议,它是一种矢量路由协议,基于TCP的179号端口,它采用单播增量更新的方式更新路由,与其他的路由协议不同的是,BGP只要TCP可达,就可以建 ...

  6. 网络学习day04_VLSM、子网划分

    IP子网划分 首先,在进行子网划分的学习之前,我们先来回顾一下IP地址的相关知识,同时了解一下公有和私有IP地址: 在Internet上有千百万台主机,为了区分这些主机,人们给每台主机都分配了一个专门 ...

  7. 网络学习day02_OSI七层模型及数据的传输过程

    title: 2018.9.2 OSI七层模型及数据的传输过程 tags: 计算机网络, OSI七层模型, 数据传输, 数据解封装 --- OSI七层模型和TCP/IP五层模型 OSI七层模型 我们说 ...

  8. Github 入门(“趣考网络”学习第一步)

    目录 为什么要使用GitHub 下载Github Desktop fork 与 pull request git pull,fetch,merge,push的区别与联系 git clone 与 dow ...

  9. [svc]容器网络学习索引及网络监控

    整理的可能有些误失,抽时间在细细的分类完善下. 发现这篇对于网络从低到高层协议整理的还不错 每层都有一些有意思的话题 一些协议有一些设计上的弱点, 所以产生了种种的网络层安全问题 一般我们学一些 1, ...

随机推荐

  1. Iptables详解七层过滤

    <Iptables详解七层过滤> 一.防火墙简介 防火墙其实就是一个加固主机或网络安全的一个设备或者软件而已,通过防火墙可以隔离风险区域与安全区域的连接,同时不会妨碍风险区域的访问.当然需 ...

  2. [最短路][部分转] P1073 最优贸易

    题目描述 C 国有 n 个大城市和 m 条道路,每条道路连接这 n 个城市中的某两个城市.任意两个 城市之间最多只有一条道路直接相连.这 m 条道路中有一部分为单向通行的道路,一部分 为双向通行的道路 ...

  3. 华南师大 2017 年 ACM 程序设计竞赛新生初赛题解

    题解 被你们虐了千百遍的题目和 OJ 也很累的,也想要休息,所以你们别想了,行行好放过它们,我们来看题解吧... A. 诡异的计数法 Description cgy 太喜欢质数了以至于他计数也需要用质 ...

  4. 部分小程序无法获取UnionId原因

    问题背景 通过观察数据,发现有一部分用户是无法获取到UnionId的 也就是接口返回的参数中不包含UnionId参数 看了微信文档的解释,只要小程序在开放平台绑定,就一定会分配UnionId 网上也有 ...

  5. Android 个推 踩坑小结

    公司一个项目之前在手机上一直可以正常运行,后来在平板上运行了一下,在欢迎页面卡出了,一直没有反应. 于是我就将项目在电脑上用Android Studio往平板上运行了一遍,看了下打印的Log日志,发现 ...

  6. C语言之二维数组棋盘游戏

    #include<iostream> #include<stdio.h> using namespace std; int main() { //-1 没人赢 0:O赢 1:X ...

  7. Service使用详解

    Service是Android系统中的四大组件之一,主要有两个应用场景:后台运行和跨进程访问.Service可以在后台执行长时间运行操作而不提供用户界面,除非系统必须回收内存资源,否则系统不会停止或销 ...

  8. Linux系统安装-MacBook网卡驱动问题解决

    先附上MacBook的linux安装教程 需要注意的是第7步中可能无法识别出OS X的系统,也没关系,只要格式化磁盘的时候注意选择对应磁盘即可,格式化成EXT4分区. 安装好后发现无法连接无线网络,应 ...

  9. win下搭建python3+PyQt5+eric6环境

    一.安装python3 1.下载python3的安装包,默认安装即可,注意勾选 Add Python 3.6 to Path .但是这样默认安装的路径太长,不太方便找到,可选择定制安装,自己定义安装路 ...

  10. ssm开发关于web.xml配置

    <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" ...