arp_tbl是一个类型为struct neigh_table的全局变量,它是一个ARP的缓存表,也称为邻居表。协议栈通过ARP协议获取到的网络上邻居主机的IP地址与MAC地址的对应关系都会保存在这个表中,以备下次与邻居通讯时使用,同时,ARP模块自身也会提供一套相应的机制来更新和维护这个邻居表。下面逐个分析arp_tbl中的重要成员数据与函数。
entry_size,key_len,kmem_cachep。
entry_size是一个入口的大小,也就是arp_tbl中一个邻居的大小,邻居用struct neighbour结构体表示,该结构体的最后一个成员是u8 primary_key[0],用于存放IP地址,作为这个邻居的哈希主键。所以entry_size的大小就是sizeof(struct neighbour) + 4,因为是用IP地址作主键,所以key_len就是4。kmem_cachep是一个后备高速缓存,创建一个邻居需要的内存从这个后备高速缓存中去取。
hash_buckets,hash_mask,entries,hash。
hash_buckets是一个哈希数组,里面存放了arp_tbl当前维护的所有的邻居,hash_mask是哈希数组大小的掩码,其初始值为1,所以hash_buckets的初始大小为2(0到hash_mask的空间范围)。entries是整个arp_tbl中邻居的数量,当entries大于hash_mask+1的时候,hash_buckets增长为原来的两部。成员hash是一个哈希函数指针,用于计算哈希值。
phash_buckets,PNEIGH_HASHMASK。
这是用于代理ARP的邻居哈希表,PNEIGH_HASHMASK固定为0xF,所以phash_buckets固定有16项,其它与hash_buckets相同。
阅读全文…
鞋衫各式名品专卖
近来工作中要构建一个能够存储10T级左右别图片文件的图片存储系统,日增长6G左右的图片。面对这个系统,我又碰到了那个老问题,就是文件系统的选型。早在两年前,我就针对linux系统中几种流行的文件系统进行过考察和测试工作。当时的reiserfs 3.x 是让我非常满意的文件系统,reiserfs文件系统没有inode的局限,使用B+tree的索引形势来查找文件,效率是非常德高,特别是在小文件的存储效率上明显超出ext3很多(iozone测试佐证)。格式化效率和支持最大8T的文件系统容量上也都非常的不错,只是mount reiserfs的时候稍微显得有些缓慢。当时的reiserfs 3.x版本是对于linux 图片文件系统非常理想的选择。
阅读全文…
许多Linux爱好者购买新电脑时首先考虑的就是硬件配置是否与Linux系统兼容,实际上更多的人只是购买自己喜欢的外形和配置的电脑硬件,当他们回家安装Linux发行版时却发现很多硬件不能被系统识别和正确支持。情理之中,这些人可能就会到论坛和别人抱怨Linux是一个如何土的系统,“怎么连xx都不支持?”。
阅读全文…
简单生活。简单运动
分类: certmaster, func, Linux, linux shell, Linux tools, 系统管理 标签: certmaster, fun, func, Linux, linux shell, Linux tools, python-ctypes, python-paste, python-simplejson, smolt, 系统管理
故障现象
1、在客户端安装好func及certmaster,配好certmaster参数。
2、service funcd start,端口及进程都起来了。
3、在certmaster server 运行certmaster-ca –list死活看不到客户端的主机名。
阅读全文…
分类: certmaster, func, linux shell, Linux tools, 系统管理 标签: certmaster, fun, func, Linux, linux shell, Linux tools, python-ctypes, python-paste, python-simplejson, smolt, 系统管理
* BridgeModule — Allows for simple network bridge management
————————————————————-
功能:操作网桥
方法:
list() Returns a dictionary containing the bridges and their connected interfaces.
add_bridge(brname) Creates a new bridge named brname.
add_interface(brname, ifname) Adds interface ifname to bridge brname.
delete_bridge(brname) Deletes bridge brname.
delete_interface(brname, ifname) Removes interface ifname from bridge brname.
add_promisc_bridge(brname, ifname) Creates a new bridge brname, attaches interface ifname to it and sets the MAC address of the connected interface to FE:FF:FF:FF:FF:FF, so traffic can flow freely through the bridge. This is required for use with Xen.
up_bridge(brname) Marks bridge brname and all it’s connected interfaces as up.
down_bridge(brname) Marks bridge brname and all it’s connected interfaces as down
————————————————————-
阅读全文…
分类: certmaster, func, linux shell, Linux tools, 系统管理 标签: certmaster, func, linux shell, Linux tools, python-ctypes, python-paste, python-simplejson, smolt, 系统管理
我们经常需要编写内容重复的脚本,使用大同小异的正则表达式,解析花样百出的各种命令输出。我们为了实现操作审计,建立了命令行监控系统,但实际上只能起到事后追查责任的作用。我们想要监控所有新增系统,但完全依靠人执行的制度流程,难免会出现疏漏。
这些令系统管理员头疼不已的问题,可能已经有了终极解决方案。Red Hat 最近正式发布的 Fedora 统一网络控制器 Func(Fedora Unified Network Controller https://fedorahosted.org/func),就是为了解决这一系列统一管理监控问题,而设计开发的系统管理基础框架。
阅读全文…
分类: certmaster, func, linux shell, Linux tools, 系统管理 标签: certmaster, func, linux shell, Linux tools, python-ctypes, python-paste, python-simplejson, smolt, 系统管理
近期评论