01 2017 档案

摘要: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 丹西 阅读(1532) 评论(0) 推荐(0)
摘要:quagga支持BGP-4,BGP-4+协议,支持多协议(mpls,isis,ospf等等)以及单播,组播路由的导入和分发。 具体的协议,这里就不附录了,网络上有很多资料,或者RFC。 协议源码的学习基于前几章的quagga源码分析,所以刚接触的朋友最好浏览一下quagga的通用框架以及通用路由处理 阅读全文
posted @ 2017-01-23 14:57 丹西 阅读(3478) 评论(0) 推荐(0)
摘要:由于公司制度,工作环境是不能直接上网的,所以在工作时间从没有体验过devstack或者其他联网方式安装openstack。 因自己购置了一台不错的主机,因而决定尝试安装一番,经过一段为期不短的内心极度崩溃与愈合,终于看到了如下的打印: 喔喔,这是成功了吗,可以登录了。 好了,还是言归正传: 工作环境 阅读全文
posted @ 2017-01-21 17:26 丹西 阅读(4931) 评论(0) 推荐(0)
摘要:过去一年以来,一批来自欧美的、不墨守陈规的系统管理员和开发人员一直在谈论一个新概念:DevOps。DevOps 就是开发(Development) 和运维(Operations)这两个领域的合并。(如果没错的话,DevOps还包括产品管理、QA、*winces* 甚至销售等领域) 脱节(The Br 阅读全文
posted @ 2017-01-15 14:03 丹西 阅读(1064) 评论(0) 推荐(0)
摘要:Perf 是用来进行软件性能分析的工具。 通过它,应用程序可以利用 PMU,tracepoint 和内核中的特殊计数器来进行性能统计。它不但可以分析指定应用程序的性能问题 (per thread),也可以用来分析内核的性能问题,当然也可以同时分析应用代码和内核,从而全面理解应用程序中的性能瓶颈。 最 阅读全文
posted @ 2017-01-14 18:00 丹西 阅读(5690) 评论(0) 推荐(0)
摘要:对于各个协议生成的路由信息的处理属于quagga中非常重要的一个功能,如何在内核进行路由增加,更新,删除是一个复杂的过程。 quagga在thread任务调度中加入了一种工作队列,work_queue,与内核的工作队列类似,是一种相对而言,低优先级的任务,这里的任务看成类似的系统进程。 1、队列初始 阅读全文
posted @ 2017-01-14 17:37 丹西 阅读(4233) 评论(0) 推荐(0)
摘要:zebra,中文翻译是斑马,于是我打开了宋冬野的《斑马,斑马》作为BGM来完成这个篇章,嘿嘿,小资一把! zebra姑且戏称它是quagga项目的大内总管。 因为它负责管理其他所有协议进程的路由信息的更新与交互,并负责与内核交换信息,如下的架构: 好了,简介完了,开始看代码吧: 1、zebra作为其 阅读全文
posted @ 2017-01-11 21:42 丹西 阅读(9674) 评论(0) 推荐(0)
摘要:今天网管的同事突然飞给我一个消息,说自己的虚拟机卡死了,说执行了下ls,就卡住了。 这里需要默哀三分钟。 然后我问他虚拟机的内存多大,答曰:1G,然后愤慨的说这么多内存都不够哇。于是我先建议他加内存启动虚拟机,然后上去帮他看看问题在哪? 喔,2G的内存只剩510M了。 然后就top看了一下,发现他在 阅读全文
posted @ 2017-01-11 17:01 丹西 阅读(1919) 评论(0) 推荐(0)
摘要:Linux操作系统中当CPU处于内核状态时,可以分为有用户上下文的状态和执行硬件、软件中断两种。其中当处于有用户上下文时,由于内核态和用户态的内 存映射机制不同,不可直接将本地变量传给用户态的内存区;处于硬件、软件中断时,无法直接向用户内存区传递数据,代码执行不可中断。针对传统的进程间通信 机制,他 阅读全文
posted @ 2017-01-10 11:31 丹西 阅读(2387) 评论(0) 推荐(0)