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

Sarmed Rahman 的头像

·

·

·

9,138 次阅读

在之前的教程中,我们演示了如何使用Quagga建立一个完备的BGP路由器和配置前缀过滤。在本教程中,我们会向你演示如何创建IPv6 BGP对等体并通过BGP通告IPv6前缀。同时我们也将演示如何使用前缀列表和路由映射特性来过滤通告的或者获取到的IPv6前缀。

拓扑

教程中,我们主要参考如下拓扑。

服务供应商A和B希望在他们之间建立一个IPv6的BGP对等体。他们的IPv6地址和AS信息如下所示。

  • 对等体IP块: 2001:DB8:3::/64
  • 供应商A: AS 100, 2001:DB8:1::/48
  • 供应商B: AS 200, 2001:DB8:2::/48

CentOS/RHEL安装Quagga

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

# yum install quagga 

在CentOS/RHEL 7,SELinux策略会默认的阻止对于/usr/sbin/zebra配置目录的写操作,这会对我们将要介绍的安装操作有所影响。因此我们需要像下面这样关闭这个策略。如果你使用的是CentOS/RHEL 6可以跳过这一步。

# setsebool -P zebra_write_config 1 

创建配置文件

在安装过后,我们先创建配置文件zebra/bgpd作为配置流程的开始。

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

然后,允许这些服务开机自启。

在 CentOS/RHEL 6:

# service zebra start; service bgpd start
# chkconfig zebra on; chkconfig bgpd on 

在 CentOS/RHEL 7:

# systemctl start zebra; systemctl start bgpd
# systemctl enable zebra; systmectl enable bgpd 

Quagga内部提供一个叫作vtysh的shell,其界面与那些主流路由厂商Cisco或Juniper十分相似。启动vtysh shell命令行:

# vtysh

提示符将改为:

router-a#

router-b# 

在教程的其余部分,这个提示可以表明你正身处在哪个路由的vtysh shell中。

为Zebra指定日志文件

来为Zebra配置日志文件,这会有助于调试。

首先,进入全局配置模式通过输入:

router-a# configure terminal 

提示符将变更成:

router-a(config)#

指定日志文件的位置。然后退出配置模式:

router-a(config)# log file /var/log/quagga/quagga.log
router-a(config)# exit 

保存配置通过:

router-a# write 

配置接口IP地址

现在,让我们为Quagga的物理接口配置IP地址。

首先,查看一下vtysh中现有的接口。

router-a# show interfaces 
interface eth0
ipv6 address 2001:db8:3::2/64

interface eth1
ipv6 address 2001:db8:2::1/64

由于两台路由的eth0端口同属一个子网,即2001:DB8:3::/64,你应该可以相互ping通。在保证ping通的情况下,我们开始下面的内容。

router-a# ping ipv6 2001:db8:3::2 

via: http://xmodulo.com/ipv6-bgp-peering-filtering-quagga-bgp-router.html

作者:Sarmed Rahman 译者:martin2011qi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注