在Vultr(CentOS 7)上使用Quagga配置BGP

Vultr的“ 带来IP空间”功能可为您将自己的IP资源分配给Vultr云上的服务器提供前所未有的自由。我们通常建议使用BIRD声明您的IP空间。BIRD有几种可靠的替代方案,以防您无法使用BIRD达成某些目标(尽管这种情况很少见),或者您只是想使用其他软件。

由于管理和技术开销,我们强烈建议不要在同一基础结构和/或网络中使用BIRD和Quagga(或与此有关的任何其他软件)。请记住,以下配置将为您提供SPOF,因为宣布重叠子网的实例不是多余的。但是,您应该注意,Vultr在每个机架中都有多个BGP路由器。

尽管本指南是考虑到CentOS 7编写的,并且仅在此CentOS版本上进行了测试,但它很可能也可以在较旧的版本上使用,例如CentOS 6。但是,自然地,我们强烈不鼓励使用过时的软件,我们强烈建议您更新到更新的,更新的(和受支持的)版本,例如CentOS 7。

从运行Quagga的一个实例(或与此有关的任何BGP路由器)中可以宣布的子网数量或子网大小没有实际限制,尽管在任何网络拓扑中您都应分散一定的风险。这意味着您应该按照以下指南在多台服务器上创建冗余设置,或从不同的服务器宣布不同的子网。

为了遵循本指南,您将需要:

  • 您想要/需要使用的ASN;
  • 您要宣告的IP空间(子网);
  • 在您的Vultr帐户中激活了BGP

BIRD还是Quagga?

对于初学者而言,在BIRD或Quagga之间进行选择可能非常困难。两者都是众所周知的,并已被证明在许多用例中非常稳定和健壮,包括高流量的环境和可靠性在其中起关键作用的基础架构。BIRD和Quagga之间的主要区别在于BIRD的配置与守护程序分开,并且可辨认的更针对于类似代码的结构。

例如,对于BIRD,如果要实现故障转移设置,可以在bird.conf配置文件中使用以下块:

export filter {
    bgp_path.prepend(asnumber);
    accept;
};

如您所见,该配置看起来像是一种代码块,与编程语言一起出现。使用Quagga,您将使用守护程序本身中的程序来追加或更改设置。

最后,它主要取决于个人喜好,您没有应使用的“胜利者”或软件。通常,BIRD易于配置,因为它的配置方法易于学习,并且得到了社区的广泛支持。

此外,通常在运行中的生产环境中支持Quagga,Quagga易于重新配置。使用BIRD,您需要编辑适当的配置文件,并使守护程序重新加载其设置。使用Quagga,您可以进入其外壳,重新配置设置,而无需进行过多的工作或大惊小怪。连续性在这里起着很大的作用,但是实际上,开销是最小的。在大多数基础架构中,您不需要过多地重新配置这些设置,因此最好根据软件的其他方面而不是仅凭此细节进行判断。

与BIRD一样,Quagga在多个发行版之间具有交叉兼容性。从理论上讲,如果您想更改用于路由器的分布,则只需移动配置即可,而无需更改或更改。

在本指南中,我们将描述安装和配置Quagga的过程。如果您也想尝试BIRD,请尝试遵循“ 在Vultr上配置BGP ”指南。

如前所述,还有一些其他好的选择,但是其中大多数都有某些缺陷,使它们无法在生产环境中使用。例如,XORP的BGP实施相对过时,这通常不是建立全新基础架构的良好开端(尽管其BGP实施稳定)。

与许多替代方案相比,BIRD的内存占用量低,并且资源占用不是很高。另一方面,升级或升级到功能更强大的Vultr云实例仅需从Vultr控制面板中单击几下即可。

IPv4和IPv6

Vultr支持宣布IPv4和IPv6 IP空间。Quagga的BGP实施是相对最新的,因此还可以声明IPv6空间。

尽管本指南旨在发布IPv4空间,但是您可以使用Quagga的IPv6实现并使用本文的说明。但是,这没有明确记录,因此,请参考其他来源。

重要的提示

为了能够在没有BGP路由器通过流量的情况下生存下来,宣告IP空间的最佳方法如下:

  • 从专用Quagga实例中宣布您的/ 24(或更大)值;
  • 宣布实例中单个/ 32(或更大)的流量应路由给自己

这样,您将有一个实例设置来宣布您分成单个/ 32或更大的所有IP的重叠子网。使用此设计,您可以快速宣布IP并将流量路由到正确的实例。

自然,您可以随意尝试多种方法来宣布自己喜欢的IP空间。从理论上讲,使用是无限的,并且没有界限。请注意,Vultr的服务器是自我管理的,我们无法为您解决可能出现的任何问题。除此之外,使用Vultr和社区支持的解决方案也无济于事,因此,如果可能出现任何问题,您可以快速查明其根本原因。

步骤1:停用SELinux

我们强烈建议禁用SELinux,以防止它停止Quagga的运行。我们有禁用SELinux的指南,请遵循它并在禁用SELinux后返回本教程:在CentOS 7上禁用SELinux

步骤2:安装Quagga

我们可以使用yum以下命令安装Quagga :

yum install quagga

如果遇到错误,尤其是在新部署的实例上,请尝试:

yum update

配置systemd以使Zebra(核心守护程序)在启动时自动启动:

systemctl enable zebra

最后,启动Zebra:

systemctl start zebra

我们必须对BGPd重复此过程,如下所示:

systemctl start bgpd
systemctl enable bgpd

斑马和BGPd

Quagga由各种允许进行路由的守护程序组成。当我们将使用BGP时,我们将需要使用Zebra和BGPd守护进程。Zebra和BGPd一起工作。当它们中的任何一个停止运行时,您的路由都将不再发布,从而有效地使您的整个IP空间不可用。

Quagga支持多种路由协议,其中包括OSPF和BGP。其实现的拓扑结构的核心是Zebra。Zebra是核心守护程序,该守护程序层负责UNIX内核与Quagga客户端的通信(TCP)。Zebra在后端提供了Zserv API,该API允许这些路由协议交流路由更新。Zserv API的一种实现是BGP。

Quagga用于BGP的默认版本是BGPv4 +,其中包括对多播和IPv6的地址族支持。

步骤3:配置BGP路由器

为了根据您的喜好配置BGP路由器,我们将使用vtyshShell。首先,复制示例BGP配置文件:

cp /usr/share/doc/quagga-*/bgpd.conf.sample /etc/quagga/bgpd.conf

复制文件后,输入外壳程序:

vtysh

在某些较旧的Quagga版本中,您可能会找到使用AS7675的设置。我们不需要它,因为它只会与我们的设置冲突,因此,如果存在它,我们需要将其删除。通过在Shell中执行以下命令来检查Quagga安装中是否存在此配置:

show running-config

如果返回的字符串包含或包含“ router bgp 7675”,请通过执行以下操作将其删除:

configure terminal
no router bgp 7675
router bgp YOURAS
no auto-summary
no synchronization

现在,您应该输入Vultr为您提供的BGP信息。

neighbor NEIGHBORIP remote-as VULTRAS
neighbor NEIGHBORIP description "Vultr"

您很可能需要密码来建立BGP会话。输入:

neighbor NEIGHBORIP password YOURBGPPASSWORD
exit

最后,如果确定要写入这些更改(仅在进行生产设置时适用),请执行以下命令以使更改生效:

write

通过执行以下命令来确保更改成功:

show ip bgp summary

现在,我们应该已经成功建立了BGP会话。

步骤4:宣布您的IP空间

尽管我们已经建立了BGP会话,但是我们尚未宣布任何路由或IP地址,因此这在实践中不会起作用。幸运的是,设置IP空间来宣布是一个相对容易的过程。

在中vtysh,执行以下命令以实现此目的:

configure terminal
router bgp YOURAS

您现在处于配置中。确保手头有您要宣布的IP空间并输入:

network YOURSUBNET/CIDR

例如,有效输入为:

network 185.92.220.0/23

自然,这将不适用于您的特定设置,因为上述IP空间由Vultr拥有。更换它,一切都应该正常工作。

退出并保存更改:

exit
write

检查您的前缀是否已成功宣布:

show ip bgp neighbors NEIGHBORIP advertised-routes

尝试从子网ping IP地址,并尝试从网络外部执行traceroute。

故障排除

对Quagga进行故障排除在很大程度上不在本文的讨论范围之内,但是,如果遇到困难,您总是可以尝试停止Quagga实例,然后尝试通过BIRD宣布IP空间,以排除许多可能的原因。

如果BGP在Quagga和BIRD上无法正常运行,则可能是防火墙配置不正确。端口179应该是开放的。在CentOS 7上,尝试暂时禁用防火墙:

systemctl stop firewalld

如果使用iptables,请尝试:

service iptables stop

然后尝试再次启动BGP会话。如果它挂在“空闲”,“连接”或“活动”上,则可能是端口仍被阻塞。处于“已建立”状态,表明BGP会话已成功建立,并显示了发布的路由。

Quagga现在已安装到您的服务器上,并且应该可以运行。在宣布自己的IP空间的前几天,您应该监视其功能,以防止整个基础结构无法正常运行。

我们的Quagga教程到此结束,谢谢您的阅读。要了解有关Vultr的“带来IP空间”功能的更多信息,请转到BGP页面



Leave a Comment

如何在CentOS 7上安装Oxwall

如何在CentOS 7上安装Oxwall

Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,

如何在CentOS 7上设置vsFTPd

如何在CentOS 7上设置vsFTPd

FTP是用于通过Internet传输文件的有用协议,本指南将向您展示如何设置vsFTPd(非常安全的文件传输协议守护程序)o

使用Nethogs监视网络带宽使用情况

使用Nethogs监视网络带宽使用情况

在本教程中,我们将介绍在CentOS 6x x64上安装和使用nethogs的过程。nethogs是一种网络监视工具,它允许Networ

如何在CentOS 7上安装BoltWire CMS

如何在CentOS 7上安装BoltWire CMS

使用其他系统?简介BoltWire是一个用PHP编写的免费,轻量级的内容管理系统。与大多数其他内容管理人员相比

在CentOS 6上设置SA-MP San Andreas多人服务器

在CentOS 6上设置SA-MP San Andreas多人服务器

欢迎来到另一个Vultr教程。在这里,您将学习如何安装和运行SAMP服务器。本指南是为CentOS 6编写的。先决条件

使用Etckeeper进行/ etc的版本控制

使用Etckeeper进行/ etc的版本控制

简介/ etc /目录在Linux系统运行中起着至关重要的作用。其原因是因为几乎每个系统配置

如何在CentOS 7上安装Microweber

如何在CentOS 7上安装Microweber

使用其他系统?Microweber是一个开放源代码的拖放式CMS和在线商店。Microweber源代码托管在GitHub上。本指南将向您展示

如何在CentOS 7上安装SonarQube

如何在CentOS 7上安装SonarQube

使用其他系统?SonarQube是用于质量系统开发的开源工具。它是用Java编写的,并且支持多个数据库。它提供

如何在CentOS 7上使用Mosh进行远程服务器管理

如何在CentOS 7上使用Mosh进行远程服务器管理

使用其他系统?Mosh是Mobile Shell的缩写,是一种新兴的远程终端应用程序,旨在提供更好的连接和使用

如何在CentOS 7上安装MoinMoin

如何在CentOS 7上安装MoinMoin

MoinMoin是一个使用Python编写的基于文件系统的开源Wiki引擎。如今,MoinMoin已广泛用于开源社区。许多供应商

在CentOS 7上安装H2O Web服务器

在CentOS 7上安装H2O Web服务器

H2O是新一代HTTP服务器,它对所有当前使用的Web服务器都具有出色的,功能齐全的HTTP / 2实现。使用H2O作为您的Web服务器

如何在Debian,CentOS和FreeBSD上使用Sudo

如何在Debian,CentOS和FreeBSD上使用Sudo

在Linux和Unix系统管理员中,使用sudo用户访问服务器并在root级执行命令是一种非常普遍的做法。使用泡沫

如何在Ubuntu 16.10上安装Countly Analytics

如何在Ubuntu 16.10上安装Countly Analytics

使用其他系统?Countly是一个开源Web /移动分析和营销平台。它具有许多用于从Web收集数据的功能

如何在CentOS 7上安装MODX CMS和Nginx

如何在CentOS 7上安装MODX CMS和Nginx

MODX是一个用PHP编写的免费开放源内容管理系统。它使用MySQL或MariaDB来存储其数据库。MODX专为满足以下条件的企业而设计:

如何在CentOS 7 LAMP VPS上安装Lychee 3.1相册

如何在CentOS 7 LAMP VPS上安装Lychee 3.1相册

使用其他系统?Lychee 3.1相册是一种简单,灵活,免费和开源的照片管理工具,可在VPS服务器上运行。安装

如何在CentOS 7上安装ERPNext开源ERP

如何在CentOS 7上安装ERPNext开源ERP

使用其他系统?ERP或企业资源计划是用于管理核心业务流程的企业应用程序套件。ERPNext是免费的

如何在CentOS 7 LAMP VPS上安装Paste 2.1

如何在CentOS 7 LAMP VPS上安装Paste 2.1

使用其他系统?Paste 2.1是一个简单,灵活,免费和开源的pastebin应用程序,用于存储代码,文本等。最初是

如何在CentOS 7上安装Seafile Server

如何在CentOS 7上安装Seafile Server

使用其他系统?Seafile(社区版本)是一个免费和开源的文件同步和共享解决方案,类似于ownCloud。机智

如何在CentOS 7上安装Kolab组件

如何在CentOS 7上安装Kolab组件

使用其他系统?Kolab Groupware是一个免费的基于Web的开源组件软件。它的功能包括电子邮件通信,事件

如何在CentOS 7 LAMP VPS上安装Omeka Classic 2.4 CMS

如何在CentOS 7 LAMP VPS上安装Omeka Classic 2.4 CMS

使用其他系统?Omeka Classic 2.4 CMS是一个免费的开源数字发布平台和用于共享数字内容的内容管理系统(CMS)

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

什麼是日誌文件系統,它是如何工作的?

什麼是日誌文件系統,它是如何工作的?

我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true

技術奇點:人類文明的遙遠未來?

技術奇點:人類文明的遙遠未來?

隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

2021 年人工智能對醫療保健的影響

2021 年人工智能對醫療保健的影響

過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。