我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Linux系统中如何使用开源软件创建SDN

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Linux系统中如何使用开源软件创建SDN

这篇文章跟大家分析一下“Linux系统中如何使用开源软件创建SDN”。内容详细易懂,对“Linux系统中如何使用开源软件创建SDN”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“Linux系统中如何使用开源软件创建SDN”的知识吧。

网络路由协议分为两大类:内部网关协议和外部网关协议。路由器使用内部网关协议在单个自治系统内共享信息。如果你用的是 Linux,则可以通过开源(GPLv2)路由协议栈 Quagga 使其表现得像一台路由器。

Quagga 是什么?

Quagga 是一个路由软件包,并且是 GNU Zebra 的一个分支。它为类 Unix 平台提供了所有主流路由协议的实现,例如开放最短路径优先(OSPF),路由信息协议(RIP),边界网关协议(BGP)和中间系统到中间系统协议(IS-IS)。

尽管 Quagga 实现了 IPv4 和 IPv6 的路由协议,但它并不是一个完整的路由器。一个真正的路由器不仅实现了所有路由协议,而且还有转发网络流量的能力。 Quagga 仅仅实现了路由协议栈,而转发网络流量的工作由 Linux 内核处理。

架构

Quagga 通过特定协议的守护程序实现不同的路由协议。守护程序名称与路由协议相同,加了字母“d”作为后缀。Zebra 是核心,也是与协议无关的守护进程,它为内核提供了一个抽象层,并通过 TCP 套接字向 Quagga 客户端提供 Zserv API。每个特定协议的守护程序负责运行相关的协议,并基于交换的信息来建立路由表。

Linux系统中如何使用开源软件创建SDN

Quagga architecture

环境

本教程通过 Quagga 实现的 OSPF 协议来配置动态路由。该环境包括两个名为 Alpha 和 Beta 的 CentOS 7.7 主机。两台主机共享访问 192.168.122.0/24 网络。

主机 Alpha:

IP:192.168.122.100/24 网关:192.168.122.1

主机 Beta:

IP:192.168.122.50/24 网关:192.168.122.1

安装软件包

首先,在两台主机上安装 Quagga 软件包。它存在于 CentOS 基础仓库中:

  1. yum install quagga -y

启用 IP 转发

接下来,在两台主机上启用 IP 转发,因为它将由 Linux 内核来执行:

  1. sysctl -w net.ipv4.ip_forward = 1

  2. sysctl -p

配置

现在,进入 /etc/quagga 目录并为你的设置创建配置文件。你需要三个文件:

  • zebra.conf:Quagga 守护程序的配置文件,你可以在其中定义接口及其 IP 地址和 IP 转发

  • ospfd.conf:协议配置文件,你可以在其中定义将通过 OSPF 协议提供的网络

  • daemons:你将在其中指定需要运行的相关的协议守护程序

在主机 Alpha 上,

  1.  [root@alpha]# cat /etc/quagga/zebra.conf

  2. interface eth0

  3.  ip address 192.168.122.100/24

  4.  ipv6 nd suppress-ra

  5. interface eth2

  6.  ip address 10.12.13.1/24

  7.  ipv6 nd suppress-ra

  8. interface lo

  9. ip forwarding

  10. line vty

  11. [root@alpha]# cat /etc/quagga/ospfd.conf

  12. interface eth0

  13. interface eth2

  14. interface lo

  15. router ospf

  16.  network 192.168.122.0/24 area 0.0.0.0

  17.  network 10.12.13.0/24 area 0.0.0.0

  18. line vty

  19. [root@alphaa ~]# cat /etc/quagga/daemons

  20. zebra=yes

  21. ospfd=yes

在主机 Beta 上,

  1. [root@beta quagga]# cat zebra.conf

  2. interface eth0

  3.  ip address 192.168.122.50/24

  4.  ipv6 nd suppress-ra

  5. interface eth2

  6.  ip address 10.10.10.1/24

  7.  ipv6 nd suppress-ra

  8. interface lo

  9. ip forwarding

  10. line vty

  11. [root@beta quagga]# cat ospfd.conf

  12. interface eth0

  13. interface eth2

  14. interface lo

  15. router ospf

  16.  network 192.168.122.0/24 area 0.0.0.0

  17.  network 10.10.10.0/24 area 0.0.0.0

  18. line vty

  19. [root@beta ~]# cat /etc/quagga/daemons

  20. zebra=yes

  21. ospfd=yes

配置防火墙

要使用 OSPF 协议,必须允许它通过防火墙:

  1. firewall-cmd --add-protocol=ospf –permanent

  2. firewall-cmd –reload

现在,启动 zebra 和 ospfd 守护程序。

  1. # systemctl start zebra

  2. # systemctl start ospfd

用下面命令在两个主机上查看路由表:

  1. [root@alpha ~]# ip route show  

  2. default via 192.168.122.1 dev eth0 proto static metric 100

  3. 10.10.0/24 via 192.168.122.50 dev eth0 proto zebra metric 20

  4. 0/24 dev eth2 proto kernel scope link class="lazy" data-src 10.12.13.1

  5. 192.168.122.0/24 dev eth0 proto kernel scope link class="lazy" data-src 192.168.122.100 metric 100

你可以看到 Alpha 上的路由表包含通过 192.168.122.50 到达 10.10.10.0/24 的路由项,它是通过协议 zebra 获取的。同样,在主机 Beta 上,该表包含通过 192.168.122.100 到达网络 10.12.13.0/24 的路由项。

  1. [root@beta ~]# ip route show

  2. default via 192.168.122.1 dev eth0 proto static metric 100

  3. 10.10.0/24 dev eth2 proto kernel scope link class="lazy" data-src 10.10.10.1

  4. 0/24 via 192.168.122.100 dev eth0 proto zebra metric 20

  5. 192.168.122.0/24 dev eth0 proto kernel scope link class="lazy" data-src 192.168.122.50 metric 100

什么是Linux系统

Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统,使用Linux能运行主要的Unix工具软件、应用程序和网络协议。

关于Linux系统中如何使用开源软件创建SDN就分享到这里啦,希望上述内容能够让大家有所提升。如果想要学习更多知识,请大家多多留意小编的更新。谢谢大家关注一下编程网网站!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Linux系统中如何使用开源软件创建SDN

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Linux系统中如何使用开源软件创建SDN

这篇文章跟大家分析一下“Linux系统中如何使用开源软件创建SDN”。内容详细易懂,对“Linux系统中如何使用开源软件创建SDN”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“L
2023-06-28

怎么在Linux上使用开源软件创建SDN

本篇内容介绍了“怎么在Linux上使用开源软件创建SDN”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!使用开源路由协议栈 Quagga,使你
2023-06-16

Linux系统中如何使用dd命令创建文件

小编给大家分享一下Linux系统中如何使用dd命令创建文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!我们都知道可以用mkdir命令创建一个新的目录,但更多时候
2023-06-27

Linux系统中如何手动创建用户

这篇文章给大家分享的是有关Linux系统中如何手动创建用户的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在Linux系统中创建用户方法非常简单,只需要使用useradd命令即可实现,但是大家知道如何手动创建一个新
2023-06-27

如何创建Linux系统中硬链接与软链接

这篇文章主要介绍“如何创建Linux系统中硬链接与软链接”,在日常操作中,相信很多人在如何创建Linux系统中硬链接与软链接问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何创建Linux系统中硬链接与软链接
2023-06-12

Linux系统中如何安装和使用ImageMagick软件

Linux系统中如何安装和使用ImageMagick软件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。ImageMagick是修改和处理图像的一套命令行实用程序。 Imag
2023-06-12

Linux系统如何使用nmcli来创建/添加网桥

小编给大家分享一下Linux系统如何使用nmcli来创建/添加网桥,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!如何使用 nmcli 来创建/添加网桥使用 NetworkManager 在 Linux 上添加网桥接口的步骤
2023-06-28

Linux系统中如何创建Ftp用户以及登录

这篇文章将为大家详细讲解有关Linux系统中如何创建Ftp用户以及登录,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、创建用户 # 以root用户登录后,增加名为 xlftp 的用户,并指定 xlftp
2023-06-28

Linux 中如何使用mkdir命令创建文件夹

这期内容当中小编将会给大家带来有关Linux 中如何使用mkdir命令创建文件夹,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、mkdir命令使用权限所有用户都可以在终端使用 mkdir 命令在拥有权限
2023-06-17

Linux系统下如何使用nmcli创建并添加网桥

这篇“Linux系统下如何使用nmcli创建并添加网桥”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“Linux系统下如何使用nmcli创建并添加网桥”,小编整理了以下知识点,请大家跟着小编的步
2023-06-27

Linux中如何使用htpasswd命令创建密码文件

Linux中如何使用htpasswd命令创建密码文件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。htpasswdhtpasswd指令用来创建和更新用于基本认证的用户认证密码文
2023-06-05

如何在Linux中查看系统资源使用情况

在Linux系统中,可以使用一些命令来查看系统资源的使用情况,例如:使用 top 命令来查看系统的整体资源使用情况,包括 CPU 使用情况、内存使用情况、进程信息等。在终端中输入 top 命令即可查看实时的系统资源情况。使用 free 命令
如何在Linux中查看系统资源使用情况
2024-03-15

Linux系统中怎么使用ln命令创建软链接与硬链接

Linux系统中怎么使用ln命令创建软链接与硬链接,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Linux 系统下每创建一个文件,系统都会为此文件生成一个 index no
2023-06-12

Linux中如何使用tmpfs内存文件系统

小编给大家分享一下Linux中如何使用tmpfs内存文件系统,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!简介tmpfs是一种虚拟内存文件系统,而不是块设备。是基
2023-06-15

Linux系统如何使用fork命令创建子进程执行任务

小编给大家分享一下Linux系统如何使用fork命令创建子进程执行任务,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!fork 系统调用要创建一个进程,最基本的系统调用是 fork: # include pid_t fork
2023-06-28

编程热搜

目录