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获取配置也调用命令,显示兼容之前的操作。

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

相关文章推荐

Citrix应用虚拟化解决方案

  • 2015年12月07日 17:21
  • 14.6MB
  • 下载

虚拟化识别加密狗解决方案

企业USB加密狗集中管理平台   1 需求概述 企业实施信息化建设的过程中,由于业务定位、功能范围的不同,存在着各类加密锁(U Key)的应用系统。随着系统的逐步增多,由于现在大多应用或者业务都...

Citrix 端到端虚拟化解决方案

  • 2015年09月08日 08:39
  • 14.93MB
  • 下载

虚拟化云实验室解决方案

  • 2015年05月21日 08:35
  • 3.55MB
  • 下载

虚拟化环境下的数据保护方案

本篇文章版权由ECF和HP所有    服务器虚拟化,尤其是VMware形式的服务器虚拟化使IT人员获益良多,这么说一点也不为过。据我们所见,服务器虚拟化能解决服务器扩张、资源消耗、服务器扩张、能源消耗...

公司虚拟化方案

  • 2014年09月30日 13:50
  • 2.12MB
  • 下载

KVM虚拟化开源高可用方案(七)GLUSTERFS搭建及常见故障处理

一、准备 1.1 硬件要求 为了充分保证系统的稳定性和性能,要求所有glusterfs服务器硬件配置尽量一致,尤其是硬盘数量和大小。机器的RAID卡需要带电池,缓存越大,性能越好。一般情况下,建议...

虚拟化平台防病毒技术模板方案

  • 2014年04月02日 20:19
  • 1.22MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:guagga入门-我们的虚拟化方案
举报原因:
原因补充:

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