想玩 BGP 路由器么?用 CentOS 做一个
| 2015-01-07 15:45:00 评论: 14
在之前的教程中,我对如何简单地使用Quagga把CentOS系统变成一个不折不扣地OSPF路由器做了一些介绍。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 #显示接口信息
- 微博评论 2015-01-09 22:33
- 自己跟自己玩bgp邻居关系都起不了,还要起虚拟机,玩个奶子。。。
- sunriders 2015-01-08 09:43
- 超级酷的文章@!~很是喜欢
- 微博评论 2015-01-08 01:33
- 哇…
- 微博评论 2015-01-07 23:03
- @我的印象笔记 //@CTO不加V_Leopku:@我的印象笔记 //@ruochen_SH:@kykij
- 微博评论 2015-01-07 20:33
- @我的印象笔记 //@ruochen_SH:@kykij
- 微博评论 2015-01-07 20:03
- 大学那会要知道用centos搞就爽爆了,现在都木得兴趣了,转给大学学网络的折腾折腾[嘻嘻]
- 微博评论 2015-01-07 20:03
- @kykij
- 微博评论 2015-01-07 20:03
- @热情萧远山
- 微博评论 2015-01-07 19:03
- Repost
- 微博评论 2015-01-07 17:33
- @mywiz
- 微博评论 2015-01-07 16:33
- 马
- 微博评论 2015-01-07 16:03
- Repost
- 微博评论 2015-01-07 16:03
- 要不要和CISCO的配置这么像啊[最右]
- 微博评论 2015-01-07 16:03
- 这年头折腾啥的都有。。。