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的ffmpeg python的关键帧抽取

《基于Linux的ffmpegpython的关键帧抽取》本文主要介绍了基于Linux的ffmpegpython的关键帧抽取,实现以按帧或时间间隔抽取关键帧,文中通过示例代码介绍的非常详细,对大家的学... 目录1.FFmpeg的环境配置1) 创建一个虚拟环境envjavascript2) ffmpeg-py

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

Linux链表操作方式

《Linux链表操作方式》:本文主要介绍Linux链表操作方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、链表基础概念与内核链表优势二、内核链表结构与宏解析三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势六、典型应用场景七、调试技巧与

详解Linux中常见环境变量的特点与设置

《详解Linux中常见环境变量的特点与设置》环境变量是操作系统和用户设置的一些动态键值对,为运行的程序提供配置信息,理解环境变量对于系统管理、软件开发都很重要,下面小编就为大家详细介绍一下吧... 目录前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

Linux实现线程同步的多种方式汇总

《Linux实现线程同步的多种方式汇总》本文详细介绍了Linux下线程同步的多种方法,包括互斥锁、自旋锁、信号量以及它们的使用示例,通过这些同步机制,可以解决线程安全问题,防止资源竞争导致的错误,示例... 目录什么是线程同步?一、互斥锁(单人洗手间规则)适用场景:特点:二、条件变量(咖啡厅取餐系统)工作流

Linux中修改Apache HTTP Server(httpd)默认端口的完整指南

《Linux中修改ApacheHTTPServer(httpd)默认端口的完整指南》ApacheHTTPServer(简称httpd)是Linux系统中最常用的Web服务器之一,本文将详细介绍如何... 目录一、修改 httpd 默认端口的步骤1. 查找 httpd 配置文件路径2. 编辑配置文件3. 保存

Linux使用scp进行远程目录文件复制的详细步骤和示例

《Linux使用scp进行远程目录文件复制的详细步骤和示例》在Linux系统中,scp(安全复制协议)是一个使用SSH(安全外壳协议)进行文件和目录安全传输的命令,它允许在远程主机之间复制文件和目录,... 目录1. 什么是scp?2. 语法3. 示例示例 1: 复制本地目录到远程主机示例 2: 复制远程主

Linux基础命令@grep、wc、管道符的使用详解

《Linux基础命令@grep、wc、管道符的使用详解》:本文主要介绍Linux基础命令@grep、wc、管道符的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录grep概念语法作用演示一演示二演示三,带选项 -nwc概念语法作用wc,不带选项-c,统计字节数-

Linux CPU飙升排查五步法解读

《LinuxCPU飙升排查五步法解读》:本文主要介绍LinuxCPU飙升排查五步法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录排查思路-五步法1. top命令定位应用进程pid2.php top-Hp[pid]定位应用进程对应的线程tid3. printf"%