guagga入门-我们的虚拟化方案

原创 2017年01月03日 18:05:02
guagga的虚拟化最早的版本是建立在6win的在github上的开源项目。所以在虚拟化版本中我们实际上是使用的6wind的github版本,后来发现在最新的官方版本中,将6wind已经合入到主线版本中了,所以后来我们的虚拟户又是基于官方的最新版本1.1.0
新的虚拟化主要思路:
1。通过添加enable vrf xxx来进入不同vsys的配置视图,在自己的视图下只配置和显示自己的资源;
2。与server虚拟化的思路一致,使用全局变量来标识当前系统处理那个vsys。
3。在关键点切换vsys,因为zebra ospf的进程是单线程的。所以在每次关键事件发生的时候切换全局变量即可;
虚拟化关键点:
1。thread_call 、thread_get
之前说过一个thread其实是对应一个fd的事件,这个fd属于那个vsys其实是固定的不会发生变化,在加入事件的时候,就把这个vsys信息放在thread的结构体中,在调用thread_call执行具体的函数的时候,恢复这个全局的vsys信息;
2。命令行的虚拟化
一个命令行对应的是一个终端vty结构体,这个vty同一时间只会属于一个vsys,而这个vsys信息是在enable的时候手动传入的。我们常用的命令都是在执行enable vrf xxx命令之后;所以vsys信息保存到vty结构体中,在执行其他命令行回调之前恢复vsys信息;
3。zclient虚拟化
ospfd与zebra进行交互的时候,例如zebra通知ospfd添加了接口,这个时候ospfd需要知道这个接口是属于那个vsys的,所以在zclient对应的回调的时候,也需要根据zebra传来的消息来实现vsys的切换;
对于rip ospfd这类的程序,可能自己有一些虚拟化的工作在切换时进行处理,所以需要添加上面三个事件对应的回调函数

这三个函数就是关键的回调函数,每个client程序自己去实现;
虚拟化相关的主要内容定义在vrf.c中;
兼容层:
虚拟化之前的程序,修改完成动态路由的配置xml文件后,通过脚本转换成zebra的conf配置文件。然后重启zebra;
新的虚拟化方案:不能重启zebra程序;解决方案:
配置放在zebra中,通过命令行执行show rip xml来把配置文件从conf转换到xml文件输出。
web配置不再修改xml文件,而是直接转换成cli命令来执行;
总结:
1。添加了上面三个事件的回调,以及这三个事件发生时vsys需要切换;
2。对于数据结构进行了虚拟化,使用数组方式,根据全局变量取自己信息;
3。一些数据组织的方式采用的是链表。例如ospf rip这类型的程序;
4。每个vsys一个配置文件。
5。web配置时不写xml,转换成cli命令配置ospfd程序;
6。修改ospf支持show ospf xml形式,web获取配置也调用命令,显示兼容之前的操作。

版权声明:本文为博主原创文章,未经博主允许不得转载。

guagga入门-我们对guagga的修改

在虚拟化修改之前我们队guagga的修改很少主要包含两个部分: 1.管理接口的过滤; 2.server的对接 管理接口的过滤: 主要是为了让zebra等程序不需要再管理口上面运行动态路由的...
  • bestboyxie
  • bestboyxie
  • 2017年01月03日 18:06
  • 283

guagga入门-ripd的简单配置

在进过前面的内容以后,应该可以正常启动一个ripd的进程了,就可以开始ripd的学习工作了。一般学习ripd这种动态路由,一个主机是不够的,所以需要至少两台主机;建议使用VMware启动两台linux...
  • bestboyxie
  • bestboyxie
  • 2017年01月03日 18:09
  • 311

guagga入门-lib库介绍

无论是zebra也好还是动态路由的进程也好其都是一个单线程的程序;都能完成以下几个事情 1。一个tcp服务器 2。一个cli命令处理程序; 3。能够监听socket事件(读/写/关闭...
  • bestboyxie
  • bestboyxie
  • 2017年01月03日 18:06
  • 216

运维基础——Zabbix入门及安装

zabbix是一个基于web界面的、提供分布式系统监视及网络监视功能的企业级开源解决方案zabbix 由2部分组成: - zabbix server - zabbix agentzabbix ...
  • xundh
  • xundh
  • 2017年04月15日 15:34
  • 839

Hadoop教程(一):简介、大数据解决方案、介绍快速入门

Hadoop是一个开源框架,它允许在整个集群使用简单编程模型计算机的分布式环境存储并处理大数据。它的目的是从单一的服务器到上千台机器的扩展,每一个台机都可以提供本地计算和存储。 “90%的世界数据在过...
  • GarfieldEr007
  • GarfieldEr007
  • 2015年12月11日 12:51
  • 2582

IPC网络高清摄像机基础知识0(TI 海思 安霸方案分析“来自2014年”)

需求说明:了解IPC(IP Camera)网络摄像头行业 来自:http://bbs.cps.com.cn/cps-588268-1-1.html 安防芯片市场上TI、海思、安霸三足鼎立 ...
  • Times_poem
  • Times_poem
  • 2016年06月02日 14:08
  • 769

Resharper使用入门

1:安装后,Resharper会用他自己的英文智能提示,替换掉 vs2010的智能提示,所以我们要换回到vs2010的智能提示 2:快捷键。是使用vs2010的快捷键还是使用 Resharper...
  • liangZG_2011
  • liangZG_2011
  • 2013年12月19日 17:09
  • 1870

ESB简介及选型(转)

什么是ESB 企业服务总线(Enterprise Service Bus,ESB)的概念是从面向服务体系架构(Service Oriented Architecture, SOA)发展而来的。SOA...
  • tantexian
  • tantexian
  • 2015年08月31日 16:31
  • 1257

新一代BOSS系统解决方案

新一代移动BOSS系统解决方案     本文在对现有移动BOSS系统建设现状进行客观分析的基础上,提出了新一代...
  • zhaoyong421127
  • zhaoyong421127
  • 2014年06月22日 14:42
  • 2450

Android混合开发的入门和方案

其实之前一直都很抵制hybrid开发,因为作为一个Android开发程序员,总是觉得原生的更好(其实是不想丢饭碗),但是一个闲着没事干,就写了一个demo搭了个webview,然后把html文件放到a...
  • qq_32521313
  • qq_32521313
  • 2017年03月01日 13:48
  • 105
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:guagga入门-我们的虚拟化方案
举报原因:
原因补充:

(最多只允许输入30个字)