随笔分类 -  quagga

quagga,开源软件路由器
摘要:路由策略的基础知识 定义 路由策略(Routing Policy)作用于路由,主要实现了路由过滤和路由属性设置等功能,它通过改变路由属性(包括可达性)来改变网络流量所经过的路径。 目的 路由器在发布、接收和引入路由信息时,根据实际组网需要实施一些策略,以便对路由信息进行过滤和改变路由信息的属性,如: 阅读全文
posted @ 2017-02-13 23:46 丹西 阅读(2286) 评论(0) 推荐(0)
摘要:BGP的核心就是交换路由,所以关键的部分还是在路由的更新与撤销上面,这之间包含了繁杂的属性,community等等可以称之为业务逻辑的处理过程,不做详述。 bgp_read函数是路由更新的事件处理函数,在收到BGP_MSG_UPDATE消息的时候开始调用bgp_update_receive函数处理。 阅读全文
posted @ 2017-02-03 21:16 丹西 阅读(4012) 评论(0) 推荐(0)
摘要:bgp使用tcp连接,每个bgp实例自身是peer的一个tcp server端,同时也是peer的tcp client端。 1、在bgp_create之后都建立自己的socket服务端开始监听179端口: bgp_socket里完成server socket的创建与监听。 2、在bgp_start函 阅读全文
posted @ 2017-01-26 11:12 丹西 阅读(2212) 评论(0) 推荐(0)
摘要:创建完bgp peer之后,就要bgp start了,不然费那么大劲创建出来不做事情就销毁了,就很尴尬了。 那么对等体一旦start起来,就会进入各自的状态,在不同的状态下处理各自的事件消息。 下面列举一些状态和事件的集合: 全局变量FSM定义了状态机每个状态下的动作执行之后的下一个状态: 限于篇幅 阅读全文
posted @ 2017-01-25 11:22 丹西 阅读(2555) 评论(0) 推荐(0)
摘要:现有的路由协议都是通过分布式协议逐个配置协商运行的,协议协议,一个就不需要协议咯,至少2个才能够协议着做事情嘛,不过呢,这样就出现网元过多配置困难的问题,对网管软件要求也越来越高, SDN或许可能改变这个局面,但不管软件如何定义,报文还是在一个一个网络节点传输的,所以我们看到quagga这样多的传统 阅读全文
posted @ 2017-01-24 22:40 丹西 阅读(1534) 评论(0) 推荐(0)
摘要:quagga支持BGP-4,BGP-4+协议,支持多协议(mpls,isis,ospf等等)以及单播,组播路由的导入和分发。 具体的协议,这里就不附录了,网络上有很多资料,或者RFC。 协议源码的学习基于前几章的quagga源码分析,所以刚接触的朋友最好浏览一下quagga的通用框架以及通用路由处理 阅读全文
posted @ 2017-01-23 14:57 丹西 阅读(3479) 评论(0) 推荐(0)
摘要:对于各个协议生成的路由信息的处理属于quagga中非常重要的一个功能,如何在内核进行路由增加,更新,删除是一个复杂的过程。 quagga在thread任务调度中加入了一种工作队列,work_queue,与内核的工作队列类似,是一种相对而言,低优先级的任务,这里的任务看成类似的系统进程。 1、队列初始 阅读全文
posted @ 2017-01-14 17:37 丹西 阅读(4234) 评论(0) 推荐(0)
摘要:zebra,中文翻译是斑马,于是我打开了宋冬野的《斑马,斑马》作为BGM来完成这个篇章,嘿嘿,小资一把! zebra姑且戏称它是quagga项目的大内总管。 因为它负责管理其他所有协议进程的路由信息的更新与交互,并负责与内核交换信息,如下的架构: 好了,简介完了,开始看代码吧: 1、zebra作为其 阅读全文
posted @ 2017-01-11 21:42 丹西 阅读(9679) 评论(0) 推荐(0)
摘要:Linux操作系统中当CPU处于内核状态时,可以分为有用户上下文的状态和执行硬件、软件中断两种。其中当处于有用户上下文时,由于内核态和用户态的内 存映射机制不同,不可直接将本地变量传给用户态的内存区;处于硬件、软件中断时,无法直接向用户内存区传递数据,代码执行不可中断。针对传统的进程间通信 机制,他 阅读全文
posted @ 2017-01-10 11:31 丹西 阅读(2387) 评论(0) 推荐(0)
摘要:quagga作为一个路由器软件,自然要提供人机接口。 quagga提供snmp管理接口,而且,自然就会有对应的命令行管理格式,当然一般路由软件不会提供界面形式的,也许有webui,然而quagga并没有。 我们要看的就是这个命令行处理的代码 command。 接触过类似命令行的朋友肯定有一点点好奇吧 阅读全文
posted @ 2016-09-04 22:39 丹西 阅读(3033) 评论(0) 推荐(0)
摘要:quagga是开源路由器软件,提供的用户界面与思科,华为的路由器的人机接口几乎一致,非常有学习价值,尤其是开源的协议代码,简直亮瞎了我的小眼睛。 quagga的介绍,我就不赘述了,有兴趣的可以找度娘或者去官网看看。 一、通用库thread quagga是一个纯C实现的项目。 C语言的项目,就是一个个 阅读全文
posted @ 2016-09-02 22:55 丹西 阅读(3643) 评论(0) 推荐(0)