BGP网络笔记

1. 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.png

BGP流量引流和回注

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

bgp回流.png

2.优势分析

BGP机房就是服务器租用商通过技术的手段,实现不同运营商能共同访问一个IP,并且不同运营商之间都能达到最快的接入速度的相关网络技术。
BGP机房在一定程度上解决了各用户南北互通的问题,提高了用户的访问速度,用BGP协议实现的单IP双线路的效果。该方案就是通过BGP协议,直接将其中一条线路的IP映射另外一条线路IP上,当访客浏览你的网站时,会自动根据实际情况选择访问速度最快的线路,这样各个运营商的用户都能达到最佳的访问速度。

租用的服务器只有一个IP,用户的访问路线是由路由器根据访客的实际访问速度选择最优访问路径,来选择访问的。而且不占用任何的服务器资源。服务器的上行和下行都是有路由器来选择最佳的路线,所以这样能够真正的做到各运营商之间都达到最佳的访问速度实现真正的BGP效果。

由于BGP协议本身具有冗余备份、消除环路的特点,所以当你托管或者租用的服务器出现故障时,能实现互相备份。同时自动切换到其它线路去,并且不影响正常访问。

BGP服务器租用还有较好的拓展性和融合性,可以实现和其它运营商互联互通,轻松实现单IP多线路,做到所有互联运营商的用户访问都很快。这是双IP双线服务器租用所不能实现的。

技术实现目前可以使用Intel开源的DPDK网络开发包快速开发,使用KNI新建一个虚拟网卡,配置好与上层交互机建立BGP,然后通过虚拟网络将流量引入,分析流量过后,使用回注口将报文使用二层MAC送回到交换机。

DPDK

Intel® DPDK全称Intel Data Plane Development Kit,是intel提供的数据平面开发工具集,为Intel architecture(IA)处理器架构下用户空间高效的数据包处理提供库函数和驱动的支持,它不同于Linux系统以通用性设计为目的,而是专注于网络应用中数据包的高性能处理。目前已经验证可以运行在大多数Linux操作系统上,包括FreeBSD 9.2、Fedora release18、Ubuntu 12.04 LTS、RedHat Enterprise Linux 6.3和Suse EnterpriseLinux 11 SP2等。DPDK使用了BSDLicense,极大的方便了企业在其基础上来实现自己的协议栈或者应用。
需要强调的是,DPDK应用程序是运行在用户空间上利用自身提供的数据平面库来收发数据包,绕过了Linux内核协议栈对数据包处理过程。Linux内核将DPDK应用程序看作是一个普通的用户态进程,包括它的编译、连接和加载方式和普通程序没有什么两样。

GRE tunnel

gre.png

基本配置说明:

1)R1,R2的环回口分别为:192.168.1.1/24和192.168.2.1/24

2)链路两端的IP使用该路由器的编号,例如R1的s0/0:192.168.12.1

Q1:什么是tunnel?

Q2:如何建立GRE中的tunnel?

Answer1:

tunnel是类似于环回口的虚拟接口,可用于隐藏路径。例如:在R1和R4构建一条GRE通道,那么就会隐藏R2和R3:

(这里的192.168.4.2是tunnel一个端口的IP!)该结果显示了R2和R3被隐藏了,即建立了一条R1和R4直接相连的tunnel

Answer2:

tunnel的配置步骤:

第一步:配置ip地址 ip address 192.168.4.1255.255.255.0 (类似于传统的接口配置)

第二步:指定tunnel的source和destination

tunnelsource s0/0

tunnel destination 192.168.34.4

tunnel mode gre ip(该命令默认开启使用)

第三步:使用tunnel通道(使用静态路由指明使用tunnel通信)

在R1上:ip route 192.168.2.0 255.255.255.0 tunnel0(在R2上对等配置)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容