Quagga是一个开源路由软件套件。在这个教程中,我将会重点讲讲如何把一个Linux系统变成一个BGP路由器,还是使用Quagga,演示如何建立BGP与其它BGP路由器对等。

在我们进入细节之前,一些BGP的背景知识还是必要的。边界网关协议(即BGP)是互联网的域间路由协议的实际标准。在BGP术语中,全球互联网 是由成千上万相关联的自治系统(AS)组成,其中每一个AS代表每一个特定运营商提供的一个网络管理域(据说,美国前总统乔治.布什都有自己的 AS 编号)。

为了使其网络在全球范围内路由可达,每一个AS需要知道如何在英特网中到达其它的AS。这时候就需要BGP出来扮演这个角色了。BGP是一个AS 去与相邻的AS交换路由信息的语言。这些路由信息通常被称为BGP线路或者BGP前缀。包括AS号(ASN;全球唯一号码)以及相关的IP地址块。一旦所 有的BGP线路被当地的BGP路由表学习和记录,每一个AS将会知道如何到达互联网的任何公网IP。

在不同域(AS)之间路由的能力是BGP被称为外部网关协议(EGP)或者域间协议的主要原因。就如一些路由协议,例如OSPF、IS-IS、RIP和EIGRP都是内部网关协议(IGPs)或者域内路由协议,用于处理一个域内的路由.

测试方案

在这个教程中,让我们来使用以下拓扑。

我们假设运营商A想要建立一个BGP来与运营商B对等交换路由。它们的AS号和IP地址空间的细节如下所示:

运营商 A:ASN (100), IP地址空间 (100.100.0.0/22), 分配给BGP路由器eth1网卡的IP地址(100.100.1.1)

运营商 B:ASN (200), IP地址空间 (200.200.0.0/22), 分配给BGP路由器eth1网卡的IP地址(200.200.1.1)

路由器A和路由器B使用100.100.0.0/30子网来连接到对方。从理论上来说,任何子网从运营商那里都是可达的、可互连的。在真实场景中,建议使用掩码为30位的公网IP地址空间来实现运营商A和运营商B之间的连通。

在 CentOS中安装Quagga

如果Quagga还没安装好,我们可以使用yum来安装Quagga。

# yum install quagga

如果你正在使用的是CentOS7系统,你需要应用一下策略来设置SELinux。否则,SElinux将会阻止Zebra守护进程写入它的配置目录。如果你正在使用的是CentOS6,你可以跳过这一步。

# setsebool -P zebra_write_config 1

Quagga软件套件包含几个守护进程,这些进程可以协同工作。关于BGP路由,我们将把重点放在建立以下2个守护进程。

Zebra:一个核心守护进程用于内核接口和静态路由.

BGPd:一个BGP守护进程.

配置日志记录

在Quagga被安装后,下一步就是配置Zebra来管理BGP路由器的网络接口。我们通过创建一个Zebra配置文件和启用日志记录来开始第一步。

# cp /usr/share/doc/quagga-XXXXX/zebra.conf.sample /etc/quagga/zebra.conf

在CentOS6系统中:

# service zebra start
# chkconfig zebra on

在CentOS7系统中:

# systemctl start zebra
# systemctl enable zebra

Quagga提供了一个叫做vtysh特有的命令行工具,你可以输入与路由器厂商(例如Cisco和Juniper)兼容和支持的命令。我们将使用vtysh shell来配置BGP路由在教程的其余部分。

启动vtysh shell 命令,输入:

# vtysh

提示将被改成该主机名,这表明你是在vtysh shell中。

Router-A#

现在我们将使用以下命令来为Zebra配置日志文件:

Router-A# configure terminal
Router-A(config)# log file /var/log/quagga/quagga.log
Router-A(config)# exit

永久保存Zebra配置:

Router-A# write

在路由器B操作同样的步骤。

配置对等的IP地址

下一步,我们将在可用的接口上配置对等的IP地址。

Router-A# show interface #显示接口信息
Interface eth0 is up, line protocol detection is disabled
. . . . .
Interface eth1 is up, line protocol detection is disabled
. . . . .

配置eth0接口的参数:

site-A-RTR# configure terminal
site-A-RTR(config)# interface eth0
site-A-RTR(config-if)# ip address 100.100.0.1/30
site-A-RTR(config-if)# description "to Router-B"
site-A-RTR(config-if)# no shutdown
site-A-RTR(config-if)# exit

继续配置eth1接口的参数:

site-A-RTR(config)# interface eth1
site-A-RTR(config-if)# ip address 100.100.1.1/24
site-A-RTR(config-if)# description "test ip from provider A network"
site-A-RTR(config-if)# no shutdown
site-A-RTR(config-if)# exit

现在确认配置:

Router-A# show interface
Interface eth0 is up, line protocol detection is disabledDescription: "to Router-B"inet 100.100.0.1/30 broadcast 100.100.0.3
Interface eth1 is up, line protocol detection is disabledDescription: "test ip from provider A network"inet 100.100.1.1/24 broadcast 100.100.1.255
Router-A# show interface description #显示接口描述
Interface       Status  Protocol  Description
eth0            up      unknown   "to Router-B"
eth1            up      unknown   "test ip from provider A network"

如果一切看起来正常,别忘记保存配置。

Router-A# write

同样地,在路由器B重复一次配置。

在我们继续下一步之前,确认下彼此的IP是可以ping通的。

Router-A# ping 100.100.0.2
PING 100.100.0.2 (100.100.0.2) 56(84) bytes of data.
64 bytes from 100.100.0.2: icmp_seq=1 ttl=64 time=0.616 ms

下一步,我们将继续配置BGP对等和前缀设置。

  • 本文来自:爱好Linux技术网

转载于:https://blog.51cto.com/9819505/1601502

用 CentOS 做一个 BGP 路由器相关推荐

  1. [electron 工具] 使用 electron、vue 和 nodejs 做一个网件路由器 SOAP API 测试工具之一 ( 简介 )...

    (简介直接将主页的介绍复制过来好了) Soap-Sender 主页 1.0.1 更新记录 优化基本设置页面判断 IP 和密码的响应时间 保存基本设置页面的设置 历史记录添加 Response Time ...

  2. linux怎么查看bgp状态,在CentOS中制作BGP路由的教程

    Quagga是一个开源路由软件套件.在这个教程中,我将会重点讲讲如何把一个Linux系统变成一个BGP路由器,还是使用Quagga,演示如何建立BGP与其它BGP路由器对等. 在我们进入细节之前,一些 ...

  3. 如何在 Quagga BGP 路由器中设置 IPv6 的 BGP 对等体和过滤

    在之前的教程中,我们演示了如何使用Quagga建立一个完备的BGP路由器和配置前缀过滤.在本教程中,我们会向你演示如何创建IPv6 BGP对等体并通过BGP通告IPv6前缀.同时我们也将演示如何使用前 ...

  4. BGP路由器协议排错教程:BGP 对等体翻动问题

    完整版下载 2022年最新BGP路由协议排错教程指南-网络安全文档类资源-CSDN下载 BGP 对等体失效问题讨论的是当 BGP 邻居关系总是在 Idle(空闲)状态和 Active(活跃) 状态之间 ...

  5. BGP路由器协议排错教程:BGP 对等体失效的问题

    当一个已经配置好的 BGP 邻居并没有处于已建立状态的话,网络工程师就把这种情况称为 BGP 对等体失效.以下情况都有可能引发对等体失效的问题. ? 由于配置错误导致 BGP 会话停留在建立过程中. ...

  6. BGP路由器协议排错教程:IBGP

    当一个AS内需要使用多种路由策略,或者当一个AS要在多个AS之间提供传输联通性时, 就需要在一个 AS 内使用 BGP.如图 1-3 所示,AS65200 提供了 AS65100 和 AS65300 ...

  7. 第四章 .net core做一个简单的登录

    项目目标部署环境:CentOS 7+ 项目技术点:.netcore2.0 + Autofac +webAPI + NHibernate5.1 + mysql5.6 + nginx 开源地址:https ...

  8. php做一个网页的源代码,用HTML5做一个个人网站此文仅展示个人主页界面。内附源代码下载地址...

    下载说明: 1.再好的作品都不如将来要做的作品.在每一次的设计当中都能有所收获,才是设计师在web开发中最得益的. 2.本站所有作品均是杨青个人设计.如果发现模板有错,请尽情谅解. 3.如果遇到什么问 ...

  9. [置顶] 如何把你的笔记本电脑变成一个Wi-Fi路由器在Windows 7 8?

    翻译自:http://www.hakanakdag.net/windows/how-to-create-wireless-ad-hoc-internet-connection-in-windows-8 ...

最新文章

  1. OneAPM挂牌新三板,续写 ITOM 新篇章
  2. 【数据挖掘】数据挖掘总结 ( K-Means 聚类算法 | 二维数据的 K-Means 聚类 ) ★
  3. 全文检索、数据挖掘、推荐引擎系列5---文章术语向量表示法
  4. 为什么接口中要允许添加默认方法?
  5. vb.net2019-跨平台
  6. IdentityServer Topics(1)- 启动说明
  7. 太吾绘卷存档修改2020_太吾绘卷/神级初始存档
  8. 学报格式和论文格式一样吗_学报投稿格式有哪些
  9. oracle数据库使用hint来让模糊查询走索引
  10. SQL语句的解析过程
  11. 第 2 讲 初识 SLAM
  12. python jinja2_Python jinja2
  13. 牛客SQL3查询薪水详情和部门编号
  14. ubuntu美化--壁纸软件
  15. 2021年11月23日对自己的一次鼓励
  16. js设计模式之代理模式
  17. 美通企业日报 | 特步签约林书豪进军篮球领域;中兴和中国移动直播中国首个5G运动会...
  18. Implement int sqrt(int x).
  19. Centos7 安装DB2
  20. ubuntu20.04安装ros2 foxy

热门文章

  1. vista系统 金山词霸 不取词翻译
  2. 当前流行的J2EE WEB应用架构分析
  3. Spring Cloud中Hystrix仪表盘与Turbine集群监控
  4. 三星15TB固态硬盘开卖 售价高达10000美元
  5. Flask 备注一(单元测试,Debugger, Logger)
  6. IT痴汉的工作现状25-技术之养成
  7. 潜意识微笑,与钱无关——博客获奖有感
  8. [精华][推荐]CAS SSO单点登录服务端客户端学习
  9. Unity 消息发送机制 解析
  10. awk 系列:awk 怎么读取标准输入(STDIN)