Ceph入门到精通-如何编译安装Quagga?

这篇具有很好参考价值的文章主要介绍了Ceph入门到精通-如何编译安装Quagga?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Ceph入门到精通-如何编译安装Quagga?,Ceph入门到精通,ceph

Quagga

1. 理论部分

1.1 软件简介

Quagga中文翻译斑驴,是一种先进的路由软件包,提供一套基于TCP/IP的路由协议。

1.2 斑驴的应用场景

– 使得操作系统变成专业的路由
– 使得操作系统具有与传统路由通过路由协议直接对接

1.3 斑驴支持的路由协议

– BGP
– OSPF
– RIP
– IS-IS
– MPLS
– LDP
– BFD
– PIM-SSM

1.4 斑驴与传统路由的区别

– 传统路由以提供所有路由协议的过程程序的方式运行
– 斑驴由多个守护进程共同构建路由表的方式运行

1.5 斑驴的架构

+----+  +----+  +-----+  +-----+
|bgpd|  |ripd|  |ospfd|  |zebra|
+----+  +----+  +-----+  +-----+
                            |
+---------------------------|--+
|                           v  |
|  UNIX Kernel  routing table  |
|                              |
+------------------------------+

    Quagga System Architecture

如上图所示:
– ripd,负责处理RIP协议
– ospfd,负责处理ospf v2协议
– bgpd,负责处理BGP v4协议
– zebra,作为内核路由表管理器
其他守护进程:
– ripngd
– ospf6d

1.6 斑驴支持的系统平台

– GNU/Linux
– FreeBSD
– NetBSD
– OpenBSD
另外,以下平台将来也可能支持
– Solaris
– Mac OSX

1.7 斑驴对C库的依赖

– GNU’s CCC
– LLVM’s clang
– Intel’s ICC
注:以上C库经过充分的测试

2 最佳实践

2.1 环境信息

2.1.1 系统信息

IP Address = 10.168.0.60
OS = RHEL 8.0 x86_64

2.1.2 编译环境配置

yum -y install gcc gcc-c++ make expat-devel

2.1.3 下载安装包

cd ~
wget https://gogs.quagga.net/attachments/a6f5eb64-639a-49cf-964e-7aa196b9ac50 -O quagga-1.2.4.tar.gz

注:如果你需要下载其他版本,或以上链接无效,请参阅如下链接,
Releases · Quagga/quagga · GitHub

2.1.4 解压安装包

tar -xf quagga-1.2.4.tar.gz

2.2 编译安装

2.2.1 预编译软件包

cd ~/quagga-1.2.4/
./configure --bindir=/usr/bin \
            --sbindir=/usr/sbin \
            --libexecdir=/usr/libexec \
            --sysconfdir=/etc/quagga \
            --localstatedir=/var/run/quagga \
            --libdir=/usr/lib64  \
            --includedir=/usr/include \
            --datarootdir=/usr/share \
            --infodir=/usr/share/info \
            --localedir=/usr/share/locale \
            --mandir=/usr/share/man \
            --docdir=/usr/share/doc/quagga \
            --enable-user=quagga \
            --enable-group=quagga \
            --enable-vty-group=quaggavt

参数“localstatedir”是必须设置为“/var/run/quagga”,否则配置ospf时会出现以下错误提示,

OSPF not enabled on this interface

如果看到如下错误提示,

configure: error: vtysh needs libreadline but was not found and usable on your system.

你可能需要安装如下依赖包,

yum install -y readline-devel

如果看到如下错误提示,

configure: error: Package requirements (libcares) were not met:

Package 'libcares', required by 'virtual:world', not found

你可能需要安装如下依赖包,

yum install -y c-ares-devel

2.2.2 编译并安装软件包

make
make install

2.3 配置Quagga主服务zebra

2.3.1 创建运行用户

groupadd -g 85 quaggavt
groupadd -g 92 quagga
useradd -u 92 -g 92 -d /var/run/quagga/ -s /sbin/nologin quagga
usermod -G quaggavt quagga

2.3.2 部署配置文件

cp /etc/quagga/vtysh.conf.sample /etc/quagga/vtysh.conf
cp /etc/quagga/zebra.conf.sample /etc/quagga/zebra.conf
chown quagga:quagga /etc/quagga/
chown quagga:quagga /etc/quagga/*.conf
chown quagga:quaggavt /etc/quagga/vtysh.conf
chmod 640 /etc/quagga/*.conf

2.3.3 测试运行环境

zebra -d -f /etc/quagga/zebra.conf -C

参数简介,
-d 参数声明zebra以damon的模式运行
-f 参数声明zebra配置文件的位置
-C 参数声明zebra以测试模式运行并退出(适合调试)

2.3.4 手动测试运行

zebra -d -f /etc/quagga/zebra.conf -i /run/quagga/zebra.pid

参数简介,
-i 参数声明pid文件的位置
命令执行后,我们建议你使用如下命令确认运行正常,

pgrep -a zebra

如果你看到如下输出,则守护进程正常运行,

47962 zebra -d -f /etc/quagga/zebra.conf -i /run/quagga/zebra.pid

如果你需要手动退出进程,请使用如下命令,

kill 2 `pgrep zebra`

2.3.5 部署服务脚本

cp ~/quagga-1.2.4/redhat/*.service /usr/lib/systemd/system/
cp ~/quagga-1.2.4/redhat/quagga.sysconfig /etc/sysconfig/quagga

如果你需要外部主机可以管理zebra,我建议你修改如下配置

vim /etc/sysconfig/quagga

内容修改如下,

#
# Default: Bind all daemon vtys to the loopback(s) only
#
BABELD_OPTS="-A 127.0.0.1"
BGPD_OPTS="-A 127.0.0.1"
ISISD_OPTS="-A ::1"
OSPF6D_OPTS="-A ::1"
OSPFD_OPTS="-A 127.0.0.1"
RIPD_OPTS="-A 127.0.0.1"
RIPNGD_OPTS="-A ::1"
# ZEBRA_OPTS="-A 127.0.0.1"
ZEBRA_OPTS="-A 0.0.0.0"
PIMD_OPTS="-A 127.0.0.1"

# Watchquagga configuration for LSB initscripts
#
# (Not needed with systemd: the service files are configured to automatically
# restart any daemon on failure. If zebra fails, all running daemons will be
# stopped; zebra will be started again; and then the previously running daemons
# will be started again.)
#
# Uncomment and edit this line to reflect the daemons you are actually using:
#WATCH_DAEMONS="zebra bgpd ospfd ospf6d ripd ripngd"
#
# Timer values can be adjusting by editing this line:
WATCH_OPTS="-Az -b_ -r/sbin/service_%s_restart -s/sbin/service_%s_start -k/sbin/service_%s_stop"

由于官方提供的启动脚本执行会报错,我们建议你使用如下命令修改,

vim /usr/lib/systemd/system/zebra.service

脚本修改如下,

[Unit]
Description=GNU Zebra routing manager
Wants=network.target
Before=network.target
After=network-pre.target
ConditionPathExists=/etc/quagga/zebra.conf
Documentation=man:zebra

[Service]
Type=forking
EnvironmentFile=-/etc/sysconfig/quagga
ExecStartPre=/sbin/ip route flush proto zebra
ExecStartPre=-/usr/bin/mkdir -p /run/quagga
ExecStartPre=-/bin/chown -f quagga:quagga /run/quagga /etc/quagga/zebra.conf
ExecStartPre=-/bin/chown -f quagga:quaggavt /etc/quagga/vtysh.conf
ExecStartPre=-/bin/chmod -f 640 /etc/quagga/zebra.conf  /etc/quagga/vtysh.conf
ExecStart=/usr/sbin/zebra -d $ZEBRA_OPTS -f /etc/quagga/zebra.conf -i /run/quagga/zebra.pid
Restart=on-abort

[Install]
WantedBy=multi-user.target

修改完毕后,你需要重新载入脚本,

systemctl daemon-reload

2.3.6 测试启动脚本

systemctl start zebra.service
systemctl stop zebra.service
systemctl restart zebra.service
systemctl status zebra.service

2.4.7 配置服务自启动

systemctl enable zebra.service

2.4 配置Quagga ospfd服务

2.4.1 部署配置文件

cp /etc/quagga/ospfd.conf.sample /etc/quagga/ospfd.conf
chown quagga:quagga /etc/quagga/
chown quagga:quagga /etc/quagga/*.conf
chown quagga:quaggavt /etc/quagga/vtysh.conf
chmod 640 /etc/quagga/*.conf

2.4.2 测试运行环境

ospfd -d -f /etc/quagga/zebra.conf -C

参数简介,
-d 参数声明zebra以damon的模式运行
-f 参数声明zebra配置文件的位置
-C 参数声明zebra以测试模式运行并退出(适合调试)

2.4.3 手动测试运行

ospfd -d -f /etc/quagga/ospfd.conf -i /run/quagga/ospfd.pid

参数简介,
-i 参数声明pid文件的位置
命令执行后,我们建议你使用如下命令确认运行正常,

pgrep -a ospfd

如果你看到如下输出,则守护进程正常运行,

51600 ospfd -d -f /etc/quagga/ospfd.conf -i /run/quagga/ospfd.pid

如果你需要手动退出进程,请使用如下命令,

kill 2 `pgrep ospfd`

2.4.4 部署服务脚本

vim /etc/sysconfig/quagga

内容修改如下,

#
# Default: Bind all daemon vtys to the loopback(s) only
#
BABELD_OPTS="-A 127.0.0.1"
BGPD_OPTS="-A 127.0.0.1"
ISISD_OPTS="-A ::1"
OSPF6D_OPTS="-A ::1"
# OSPFD_OPTS="-A 127.0.0.1"
OSPFD_OPTS="-A 0.0.0.0"
RIPD_OPTS="-A 127.0.0.1"
RIPNGD_OPTS="-A ::1"
# ZEBRA_OPTS="-A 127.0.0.1"
ZEBRA_OPTS="-A 0.0.0.0"
PIMD_OPTS="-A 127.0.0.1"

# Watchquagga configuration for LSB initscripts
#
# (Not needed with systemd: the service files are configured to automatically
# restart any daemon on failure. If zebra fails, all running daemons will be
# stopped; zebra will be started again; and then the previously running daemons
# will be started again.)
#
# Uncomment and edit this line to reflect the daemons you are actually using:
#WATCH_DAEMONS="zebra bgpd ospfd ospf6d ripd ripngd"
#
# Timer values can be adjusting by editing this line:
WATCH_OPTS="-Az -b_ -r/sbin/service_%s_restart -s/sbin/service_%s_start -k/sbin/service_%s_stop"

由于官方提供的启动脚本执行会报错,我们建议你使用如下命令修改,

vim /usr/lib/systemd/system/ospfd.service

脚本修改如下,

[Unit]
Description=OSPF routing daemon
BindsTo=zebra.service
Wants=network.target
After=zebra.service network-pre.target
Before=network.target
ConditionPathExists=/etc/quagga/ospfd.conf
Documentation=man:ospfd

[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/quagga
ExecStartPre=-/bin/chown -f quagga:quagga /etc/quagga/ospfd.conf
ExecStartPre=-/bin/chmod -f 640 /etc/quagga/ospfd.conf
ExecStart=/usr/sbin/ospfd -d $OSPFD_OPTS -f /etc/quagga/ospfd.conf -i /run/quagga/ospfd.pid
Restart=on-abort

[Install]
WantedBy=multi-user.target

修改完毕后,你需要重新载入脚本,

systemctl daemon-reload

2.4.5 测试启动脚本

systemctl start ospfd.service
systemctl stop ospfd.service
systemctl restart ospfd.service
systemctl status ospfd.service

2.4.6 配置服务自启动

systemctl enable ospfd.service

2.5 配置防火墙

2.5.1 确定路由服务的通讯端口

netstat -anp | egrep "ospfd|zebra"

可见如下输出,

tcp        0      0 0.0.0.0:2601            0.0.0.0:*               LISTEN      2746/zebra
tcp        0      0 0.0.0.0:2604            0.0.0.0:*               LISTEN      2753/ospfd
raw        0      0 0.0.0.0:89              0.0.0.0:*               LISTEN      2753/ospfd
raw6       0      0 :::58                   :::*                    7           2746/zebra

注:ospfd进程的89端口可能要等路由发布才能看到

2.5.2 允许路由的协议或端口通讯

egrep "89|58" /etc/protocols

可见如下信息,

ipv6-icmp       58      IPv6-ICMP               # ICMP for IPv6
ospf    89      OSPFIGP         # Open Shortest Path First IGP

由于89与58端口不是IP协议是一种socket的类型,所以使用允许协议的方式配置,

firewall-cmd --permanent --add-protocol=ospf
firewall-cmd --permanent --add-protocol=ipv6-icmp
firewall-cmd --reload
firewall-cmd --list-all

另外两个管理端口使用如下命令配置,

firewall-cmd --permanent --add-port 2601/tcp
firewall-cmd --permanent --add-port 2604/tcp
firewall-cmd --reload
firewall-cmd --list-all

2.6 配置服务自启动

如果你不熟悉路由的基本配置,请参阅以下链接的2.3章节,
如何实现基于Linux的路由之Quagga? – cmdSchool

参阅文档
===============

Quagga github
—————-
GitHub - Quagga/quagga: Quagga Tracking repository - Master is at http://git.savannah.gnu.org/cgit/quagga.git

Quagga的下载,
Releases · Quagga/quagga · GitHub
https://gogs.quagga.net/Quagga/quagga/releases

rpm包的构建
—————–
https://github.com/Quagga/quagga/blob/master/redhat/README.rpm_build.md

错误“OSPF not enabled on this interface”的解决方法,
———————–
https://lists.quagga.net/pipermail/quagga-users/2006-April/006715.html
https://lists.quagga.net/pipermail/quagga-users/2006-April/006709.html
Mailing List Archive: OSPF not enabled on this interface

 文章来源地址https://www.toymoban.com/news/detail-673663.html

到了这里,关于Ceph入门到精通-如何编译安装Quagga?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ceph入门到精通-Ceph PG状态详细介绍(全)

    本文主要介绍PG的各个状态,以及ceph故障过程中PG状态的转变。 Ceph is still creating the placement group. Ceph 仍在创建PG。 activating The placement group is peered but not yet active. PG已经互联,但是还没有active。 active Ceph will process requests to the placement group. Ceph 可处理到此PG的请求。 clean Ceph re

    2024年02月14日
    浏览(28)
  • Ceph入门到精通-ceph故障处理 - osd down处理

    发现osd掉之后,我们首先要确认是哪个主机的哪块盘,来判断是这个盘坏了还是什么原因 来看一下是哪两块 登录对应机器确认下是哪块盘 2.我们发现盘还在,首先尝试能否重启ceph-osd服务 ,这里已经拉起来了 3.如果重启无望或者盘漂移,重新卸载安装 3.1 看看日志 是不是有

    2024年02月01日
    浏览(27)
  • Ceph入门到精通-podman 入门实战

    目录 podman安装 podman制作本地镜像 podman(docker)命令回顾 podman快速入门 一入编程深似海,从此节操是路人。 最近使用podman,就想着写一篇总结性的笔记,以备后续参考。就如同写代码,不写注释,过了一段时间可能会想这是我写的吗?不会吧,还要理一下逻辑才能读懂,不利

    2023年04月24日
    浏览(32)
  • Ceph入门到精通-sysctl参数优化

    sysctl.conf  是一个文件,通常用于在 Linux 操作系统中配置内核参数。这些参数可以控制网络、文件系统、内存管理等各方面的行为。 99-xx.yml  可能是一个文件名,其中  99-  是一个特定的命名约定。在  sysctl.conf  文件中,通常会有一个特定的顺序来加载配置项。通常,以 

    2024年02月10日
    浏览(27)
  • Ceph入门到精通-创建存储桶通知

    在存储桶级别创建存储桶通知。这些需要 与发送存储桶通知的目标一起发布。桶 通知是 S3 操作。 父主题: 存储桶管理 运行 IBM Storage Ceph 集群,带有 Ceph Object Gateway。 正在运行的 HTTP 服务器、RabbitMQ 服务器或 Kafka 服务器。 根级访问。 用户访问密钥和私有密钥。 终结点参数

    2024年02月15日
    浏览(62)
  • Ceph入门到精通-LVS基础知识

    LB集群:    (Load  Balancing)即负载均衡集群,其目的是为了提高访问的并发量及提升服务器的性能,其    实现方式分为硬件方式和软件方式。   硬件实现方式:         常用的有 F5公司的BIG-IP系列、A10公司的AX系列、Citrix公司的 NetScaler系列等   软件实现方式:   

    2024年02月11日
    浏览(27)
  • Ceph入门到精通-OSD waring 设置建议

    以下检查表明 OSD 节点存在问题。 1 在 /var/lib/ceph/osd 中找到的多个ceph_fsid值。 这可能意味着您正在托管许多集群的 OSD 此节点或某些 OSD 配置错误以加入 您期望的集群。 2 设置可能会导致数据丢失,因为如果 未达到最小值,Ceph 将不会确认对客户端的写入。 osd pool default 

    2024年02月11日
    浏览(38)
  • Ceph入门到精通-更换osd、扩容osd

    1. 1 查看故障盘osd id 1.2 销毁osd 1.3 更换故障硬盘 1.4 查看新硬盘盘符 1.5 擦除新硬盘 1.6 预备替换原osd 1.7 查看osd fsid 1.8 激活osd 3.1 停止所有osd服务 3.2 销毁所有osd 3.3 擦除磁盘数据 3.4 清除crush数据 3.5 删除osd应用 4. 调整PG

    2024年02月19日
    浏览(32)
  • Ceph入门到精通-Nginx超时参数分析设置

    nginx中有些超时设置,本文汇总了nginx中几个超时设置 Nginx 中的超时设置包括: “client_body_timeout”:设置客户端向服务器发送请求体的超时时间,单位为秒。 “client_header_timeout”:设置客户端向服务器发送请求头的超时时间,单位为秒。 “send_timeout”:设置服务器向客户端

    2024年02月07日
    浏览(32)
  • Ceph入门到精通-Nginx 大量请求 延迟优化

    优化nginx以处理大量请求并减少延迟可以通过以下几种方法实现: 调整worker_processes和worker_connections参数:增加worker_processes值可以增加nginx的进程数量,提高并发处理能力。增加worker_connections参数的值可以增加每个worker进程可处理的连接数,从而在请求高峰期更好地分配负载。

    2024年02月10日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包