Zebra-VTYSH源码分析和改造(一):Zebra软件架构
2011-11-01 17:09
776 查看
1. Zebra 功能认识
ZEBRA 提供了一个类Cisco命令行的分级多用户命令解析引擎--VTY(Virtual Terminal)。它是类似于Linux Shell的虚拟终端接口,负责对访问的安全验证、数据缓冲、命令解析、模式切换和命令调用。
用户通过VTYSH的每一次接口访问都会发起一个对应的VTY。VTY会根据用户优先级初始化并挂载相应的命令集Command Node。Command Node中以链表的形式包含了该用户可以访问和使用的Command。
用户通过各种接口访问VTY,VTY解析用户的每个命令,并且通过命令集链表找到并执行Command相应函数。这样,通过访问VTY实现基于命令集的管理功能。
2. Zebra 架构
Zebra采用模块化的架构,,整个程序由一系列的守护进程构成,每个路由协议都有自己单独的路由处理进程,同时,它提供一个管理内核路由表的zebra 守护进程。路由处理程序通过zebra 守护程序管理内核路由表。
由图示可知,在Zebra中,总共有五个路由守护进程,和一个管理进程。这些路由进程可以和管理进程分布在不同的机器上,每一个进程可以分别监听从不同的端口来的VTY连接。
3. 编译Zebra为我所用
一般的路由产品都可以拿来Zebra稍加改动就可以使用了。如果你只需要VTY连接功能,通过接口增、改、删命令的话,Zebra是支持模块的删除和屏蔽的。
比如只需要VTY,那么你编译的时候可以在congfigure的时候加上如下参数就可以了。
...
cd ../zebra-vtysh && (test -e config.status ||(touch config.status && ./configure --disable-ipv6 --disable-bgpd --disable-ripngd --disable-ospf6d --disable-bgp-announce --enable-vtysh --disable-ospfd --disable-ripd --disable-zebra
--prefix=/ --with-cflags="-O2 -Wall" --build=i386 --host=mips-linux --target=mips)) &&
...
(其中,config.status是configure的状态记录信息,以备下次使用)
这样,编译完zebra后,就可以运行vtysh了,查看它的各种模式(下篇文章会讲),就可以开始你的快乐之旅了。
参考:http://www.zebra.org
ZEBRA 提供了一个类Cisco命令行的分级多用户命令解析引擎--VTY(Virtual Terminal)。它是类似于Linux Shell的虚拟终端接口,负责对访问的安全验证、数据缓冲、命令解析、模式切换和命令调用。
用户通过VTYSH的每一次接口访问都会发起一个对应的VTY。VTY会根据用户优先级初始化并挂载相应的命令集Command Node。Command Node中以链表的形式包含了该用户可以访问和使用的Command。
用户通过各种接口访问VTY,VTY解析用户的每个命令,并且通过命令集链表找到并执行Command相应函数。这样,通过访问VTY实现基于命令集的管理功能。
2. Zebra 架构
Zebra采用模块化的架构,,整个程序由一系列的守护进程构成,每个路由协议都有自己单独的路由处理进程,同时,它提供一个管理内核路由表的zebra 守护进程。路由处理程序通过zebra 守护程序管理内核路由表。
由图示可知,在Zebra中,总共有五个路由守护进程,和一个管理进程。这些路由进程可以和管理进程分布在不同的机器上,每一个进程可以分别监听从不同的端口来的VTY连接。
3. 编译Zebra为我所用
一般的路由产品都可以拿来Zebra稍加改动就可以使用了。如果你只需要VTY连接功能,通过接口增、改、删命令的话,Zebra是支持模块的删除和屏蔽的。
比如只需要VTY,那么你编译的时候可以在congfigure的时候加上如下参数就可以了。
...
cd ../zebra-vtysh && (test -e config.status ||(touch config.status && ./configure --disable-ipv6 --disable-bgpd --disable-ripngd --disable-ospf6d --disable-bgp-announce --enable-vtysh --disable-ospfd --disable-ripd --disable-zebra
--prefix=/ --with-cflags="-O2 -Wall" --build=i386 --host=mips-linux --target=mips)) &&
...
(其中,config.status是configure的状态记录信息,以备下次使用)
这样,编译完zebra后,就可以运行vtysh了,查看它的各种模式(下篇文章会讲),就可以开始你的快乐之旅了。
参考:http://www.zebra.org
相关文章推荐
- Zebra-VTYSH源码分析和改造
- Zebra-VTYSH源码分析和改造
- Zebra-VTYSH源码分析和改造(二):深入代码
- Zebra-VTYSH源码分析和改造(序)
- Zebra-VTYSH源码分析和改造(三):添加定制命令
- 0day安全-软件漏洞分析技术(第一版)--8_3_vtable 虚表攻击源码改造
- VC++远程控制软件的通信架构与源码分析
- go-home源码分析----一款针对12306的火车票订票软件
- 高并发服务器架构笔记(3)——muduo_base 源码分析
- Study JQuery《源码分析core-整体架构》
- Docker源码分析:Docker架构
- Flume架构与源码分析-核心组件分析-2
- PostgreSQL整体架构和存储源码的大体分析
- Tomcat源码分析(一)------ 架构 .
- 开源项目Lucene的架构详细解析----用软件构架分析的方法
- Clamav杀毒软件源码分析笔记[九]
- Docker源码分析(一):Docker架构
- Android Jelly Beam NFC架构及源码分析之一
- wpa_supplicant软件架构分析
- apache kafka系列之源码分析走读-server端网络架构分析