LInux Zebra

2023-11-06 04:00
文章标签 linux zebra

本文主要是介绍LInux Zebra,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文章摘自linux公社

https://www.linuxidc.com/Linux/2015-07/120224p1.htm

 

 

写在前面

从22号中午开始琢磨zebra/quagga的用法,一直到晚上11点多都没有什么头绪。各种Google,百度,几近崩溃。由于网上关于zebra/quagga的配置方法都是在真实的若干台电脑上实现的,一直都没有找到完全在虚拟机上进行测试的教程,相当失望。所以,我就决定,如果我要是能够利用多台虚拟机完成实验的内容,我一定要写一个详细的文档放到博客上。 

没有办法,索性自己慢慢摸索吧,但花了一天的时间也没有成功。直到快睡觉的时候才突然想到,会不会跟我在Virtual Box上设置采用NAT方式联网有关系呢?所以后来改成了桥接的方式,经过23号一天的测试,总算有了些许成效。到了24号,已经基本熟悉了路由器搭建的方法。虽然花了很长的时间,也走了N多的弯路,但还是学到了不少东西。前几天一直在看《计算机网络》,可实际是光看书并没有让我理解多少知识点。但是经过学习了Linux的路由器搭建后,本质上也加深了我对《计算机网络》的理解。

一直都在尝试着完善这篇文档,感觉写出一篇不错的文档还要加上排版的话很花费时间。但是,毕竟可以学到很多东西。

好了,说一下下面将要做的几个实验。本来只想做一下和zebra/quagga有关的路由器搭建实验的,但是又想到,既然接触了这个东西,为何不多学一种方法呢?所以,下面的静态路由的路由器搭建就是采用最基本的系统工具或者直接修改配置文件来实现的。而跟zebra/quagga有关的实验则放在动态路由的路由器器搭建的实验中,演示了使用两种路由协议,即RIPv2和OSPF协议,搭建路由器的方法。

Quagga上使用验证加固BGP会话安全  http://www.linuxidc.com/Linux/2015-05/118102.htm

预习知识

在进行路由器的搭建之前,需要了解一些基本的知识。下面将会一一道来。 

1、什么是路由表,路由表产生的类型有哪些?

答:路由表,指的是路由器或者其他互联网网络设备上存储的表,该表中存有到达特定网络终端的路径,在某些情况下,还有一些与这些路径相关的度量。

在Linux系统下的路由表是从有小网络排列到大网络的。我们可以使用route -n 查看主机上的路由表。参见下面的截图:
 
 
路由表的产生类型:
静态路由表:
由系统管理员事先设置好固定的路由表称之为静态(static)路由表,一般是在系统安装时就根据网络的配置情况预先设定的,它不会随未来网络结构的改变而改变。
 
动态路由表:
动态(Dynamic)路由表是路由器根据网络系统的运行情况而自动调整的路由表。路由器根据路由选择协议(Routing Protocol)提供的功能,自动学习和记忆网络运行情况,在需要时自动计算数据传输的最佳路径。
路由器通常依靠所建立及维护的路由表来决定如何转发。 
 
2、什么是路由器? 
答:在局域网中,主机可以通过广播的方式来进行网络数据包的发送,但是在不同的网段类的主机想要互相连接时就必须通过路由器来实现。

路由器(Router)又称网关设备(Gateway)是用于连接多个逻辑上分开的网络,所谓逻辑网络是代表一个单独的网络或者一个子网。当数据从一个子网传输到另一个子网时,可通过路由器的路由功能来完成。因此,路由器具有判断网络地址和选择IP路径的功能,它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网,路由器只接受源站或其他路由器的信息,属网络层的一种互联设备。

在Linux系统中,路由表和转发数据包的功能都是Linux内核所提供。在我们的Ubuntu14.04系统中,默认情况下是没有开启数据包转发功能的。需要开启的方法主要有两种:

第一种方法是:echo 1 > /proc/sys/net/ipv4/ip_forward,但是这样的修改在系统重启后失效了。

第二种方法是:编辑/etc/sysctl.conf文件,找到net.ipv4.ip_forward=1这一行,然后将前面的#号去除即可。这样就可以一劳永逸了。具体的方法参见下面的截图:

 

3、什么是网卡?在Linux系统下,网卡信息如何查看?   

 

答:网卡是工作在链路层的网络组建,是教育网中连接计算机和传输介质的接口,不仅能实现与局域网传输介质之间的物理连接和电信号匹配,还涉及到帧的发送和接收、帧的封装与拆封、介质访问控制、数据的编码与解码以及数据缓存的功能等。

那么,我们在Linux系统如何查看网卡信息呢?很简单使用ifconfig命令即可。eth表示的是以太网卡,参见下面的截图。可以看到,我的电脑上一块以太网卡eth0,可以看到它的硬件地址、ip地址等各种信息。

 

4、什么是IP地址,网段,网关,子网掩码?在Linux系统下,我们应该如何查看和修改这些参数呢?   

 

答:

IP地址:IP地址(英语:Internet Protocol Address)是一种在Internet上的给主机编址的方式,也称为网际协议地址。常见的IP地址,分为IPv4与IPv6两大类。IP地址编址方案将IP地址空间划分为A、B、C、D、E五类,其中A、B、C是基本类,D、E类作为多播和保留使用。

网段:网段一般指一个计算机网络中使用同一物理层设备(传输介质,中继器,集线器等)直接通讯的那一部分。即IP地址范围从一个到另外一个,如,192.168.1.1到192.168.1.254。网关:网关(Gateway)又称网间连接器、协议转换器。默认网关在网络层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构也和路由器类似,不同的是互连层。网关既可以用于广域网互连,也可以用于局域网互连。当今很多局域网采用都是路由来接入网络的,因此通常指的网关就是路由器的IP。

子网掩码:子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。

在Linux下面,我们可以通过ifconfig命令来查看网卡的IP地址,子网掩码等信息。参见问题3的截图。可以通过route -n命令或者netstat -r命令等来查看网关信息,参加问题1的截图。

通常有两种方法来修改诸如IP地址,子网掩码之类的信息。一种方式是通过命令行的方式,即使用命令ifconfig, ip route add等命令(详细使用这些命令的方法可以通过man或者help命令来查看)来进行修改,但是通过命令行的方式来修改并不是一劳永逸的,它们会在系统重启后恢复原来的状态。所以,另外一种方法便是直接修改配置文件的方法了。关于配置文件,Ubuntu主要是通过修改/etc/network/interfaces文件来实现。后面的实验会给出修改的方法。

5、什么是RIP协议?RIPV1和RIPV2协议之间有什么关系?

 

答:在后面的动态路由搭建的实验中,将会使用到这种古老但又简单的路由协议。所以,我们应当提前了解下这个协议的基本知识。
 
RIP协议是一种内部网关协议(IGP),是一种动态路由选择协议,用于自治系统(AS)内的路由信息的传递。RIP协议基于距离矢量算法(DistanceVectorAlgorithms),使用“跳数”(即metric)来衡量到达目标地址的路由距离。这种协议的路由器只关心自己周围的世界,只与自己相邻的路由器交换信息,范围限制在15跳(15度)之内。超过15跳后自然就无法到达了。
 
RIP协议在当前有两个版本,分别是RIPV1协议以及后来更新的RIPV2协议。
 
RIP-1是有类别路由协议(Classful Routing Protocol),它只支持以广播方式发布协议报文。这个协议报文无法携带掩码信息,它只能识别A、B、C类这样的自然网段的路由,因此RIP-1不支持非连续子网(Discontiguous Subnet)。
 
RIP-2是一种无类别路由协议(Classless Routing Protocol)。相对与它的前身,拥有更多的优势,比如支持路由标记,在路由策略中可根据路由标记对路由进行灵活的控制等特点。
 
由于zebra本身是支持RIP协议的两个版本的,所以可以很轻松地搭建出一个路由器。后面的实验中将使用RIPV2这个协议。Quagga貌似默认就是使用RIPV2协议,而zebra应当需要指定一���。
 
6、什么是OSPF协议?有什么优点?

答:简要地来说,OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故运作于自治系统内部。著名的迪克斯加算法被用来计算最短路径树。与RIP相比,OSPF是链路状态协议,而RIP是距离矢量协议。

它有很多优点,比如:
 
1、OSPF是真正的LOOP- FREE(无路由自环)路由协议。源自其算法本身的优点。(链路状态及最短路径树算法)
2、OSPF收敛速度快:能够在最短的时间内将路由变化传递到整个自治系统。
3、提出区域(area)划分的概念,将自治系统划分为不同区域后,通过区域之间的对路由信息的摘要,大大减少了需传递的路由信息数量。也使得路由信息不会随网络规模的扩大而急剧膨胀。
4、将协议自身的开销控制到最小。
5、通过严格划分路由的级别(共分四极),提供更可信的路由选择。
6、良好的安全性,ospf支持基于接口的明文及md5 验证。
7、OSPF适应各种规模的网络,最多可达数千台。
 
7、什么是BGP协议?有什么主要特征?

答:BGP协议即边界网关协议,而上面的两种协议——RIP协议和OSPF协议则属于内部网关协议。

边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议。 BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。 BGP 构建在 EGP 的经验之上。 BGP 系统的主要功能是和其他的 BGP 系统交换网络可达信息。网络可达信息包括列出的自治系统(AS)的信息。这些信息有效地构造了 AS 互联的拓朴图并由此清除了路由环路,同时在 AS 级别上可实施策略决策。

BGP路由选择协议执行中使用4种分组:打开分组(open)、更新分组(update)、存活分组(keepalive)、通告分组(notification)。

这篇关于LInux Zebra的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/354351

相关文章

linux打包解压命令方式

《linux打包解压命令方式》文章介绍了Linux系统中常用的打包和解压命令,包括tar和zip,使用tar命令可以创建和解压tar格式的归档文件,使用zip命令可以创建和解压zip格式的压缩文件,每... 目录Lijavascriptnux 打包和解压命令打包命令解压命令总结linux 打包和解压命令打

linux如何复制文件夹并重命名

《linux如何复制文件夹并重命名》在Linux系统中,复制文件夹并重命名可以通过使用“cp”和“mv”命令来实现,使用“cp-r”命令可以递归复制整个文件夹及其子文件夹和文件,而使用“mv”命令可以... 目录linux复制文件夹并重命名我们需要使用“cp”命令来复制文件夹我们还可以结合使用“mv”命令总

Linux使用cut进行文本提取的操作方法

《Linux使用cut进行文本提取的操作方法》Linux中的cut命令是一个命令行实用程序,用于从文件或标准输入中提取文本行的部分,本文给大家介绍了Linux使用cut进行文本提取的操作方法,文中有详... 目录简介基础语法常用选项范围选择示例用法-f:字段选择-d:分隔符-c:字符选择-b:字节选择--c

Linux使用nload监控网络流量的方法

《Linux使用nload监控网络流量的方法》Linux中的nload命令是一个用于实时监控网络流量的工具,它提供了传入和传出流量的可视化表示,帮助用户一目了然地了解网络活动,本文给大家介绍了Linu... 目录简介安装示例用法基础用法指定网络接口限制显示特定流量类型指定刷新率设置流量速率的显示单位监控多个

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

Linux流媒体服务器部署流程

《Linux流媒体服务器部署流程》文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建... 目录流媒体服务器部署部署安装1.更新系统2.安装依赖组件3.解压4.编译安装(添加RTMP和openssl模块

linux下多个硬盘划分到同一挂载点问题

《linux下多个硬盘划分到同一挂载点问题》在Linux系统中,将多个硬盘划分到同一挂载点需要通过逻辑卷管理(LVM)来实现,首先,需要将物理存储设备(如硬盘分区)创建为物理卷,然后,将这些物理卷组成... 目录linux下多个硬盘划分到同一挂载点需要明确的几个概念硬盘插上默认的是非lvm总结Linux下多

linux进程D状态的解决思路分享

《linux进程D状态的解决思路分享》在Linux系统中,进程在内核模式下等待I/O完成时会进入不间断睡眠状态(D状态),这种状态下,进程无法通过普通方式被杀死,本文通过实验模拟了这种状态,并分析了如... 目录1. 问题描述2. 问题分析3. 实验模拟3.1 使用losetup创建一个卷作为pv的磁盘3.

Linux环境变量&&进程地址空间详解

《Linux环境变量&&进程地址空间详解》本文介绍了Linux环境变量、命令行参数、进程地址空间以及Linux内核进程调度队列的相关知识,环境变量是系统运行环境的参数,命令行参数用于传递给程序的参数,... 目录一、初步认识环境变量1.1常见的环境变量1.2环境变量的基本概念二、命令行参数2.1通过命令编程

Linux之进程状态&&进程优先级详解

《Linux之进程状态&&进程优先级详解》文章介绍了操作系统中进程的状态,包括运行状态、阻塞状态和挂起状态,并详细解释了Linux下进程的具体状态及其管理,此外,文章还讨论了进程的优先级、查看和修改进... 目录一、操作系统的进程状态1.1运行状态1.2阻塞状态1.3挂起二、linux下具体的状态三、进程的