通用地址冗余协议---OPENBSD CARP
2009-05-13 01:37:47来源:未知 阅读 ()
又发个为完成的.关于OPENBSD的CARP(通用地址冗余协议)
CARP协议详解 --CARP协议原理及结构
/*作者:xie_minix*/
CARP ---通用地址冗余协议
源代码:(OpenBSD系统) src/sys/netinet/ip_carp.h, Revision 1.8
在核心配置文件/sys/arch/i386/conf/GENERIC中.定义为:
pseudo-device carp [count]
其中count 为支持虚拟设备carp的数量
描述:
carp接口为一虚拟设备.(注:虚拟设备即在机器中不真实存在).此种设备一般是使用通用
接口的克隆技术来生成.比如在carp程序中的挂接设备函数(一般设备的挂接都是使用"设备名
+attach")carpattch只是简单调用通用接口文件(if.c)中的通用设备克隆挂接函数
if_clone_attach(源代码:753行).实际上是在所有的使用克隆产生的设备列表中插入该carp
设备到表头(全局变量if_cloners是所有克隆设备的链表头.源代码:if.c第135行).
CARP协议是在IP之上的一种协议.请注意carp和CARP的不同.即carp表示的是一种虚拟设备
.此设备提供对CARP协议的支持.关于CARP协议将在以下介绍.先来看看carp的作用.carp接口允
许本地网络的(注意是同一网段,不能跨越路由器)多个机器来共享一个(一组)IP地址.实际上的
结果就是当一台该IP地址的主机在出现意外事故的情况下不能工作.其它的机器能够立刻自动
的接替其工作.这一点对于防火墙系统来说提供冗余功能是非常不错的.目前的具有冗余功能的
防火墙系统也只有OpenBSD系统.当然我在从事ARP研究时曾经提出过类似问题,即如何在核心内
实现IP冒充技术.但只能是单向实现欺骗.对carp进行一些设置后它还能提供负载均衡功能.关于
这些文章详见Ryan McBride的文章.
使用方法:
要使用carp设备必须首先在编译内核时加入对carp的支持.
在/sys/arch/i386/conf/GENERIC (或你自己定义的核心配置文件)中加入:
pseudo-device carp 16 (注意:在Man手册中有参数,即在carp后可以接参数,但在最新的GENERIC中没有说明接参数)
编译核心后使用ifconfig carp0 create 来建立carp第0号设备.
使用:ifconfig carp0 vhid 1 pass mekmitasdigoat 192.168.1.10 255.255.255.0来设置本机的第一个carp设备.
意思是carp第0号设备(即第一个)的主机号为1,pass后接的是要用SHA1加密的通讯字符(当然可以自己随便取,不过只
是前20个字符有用,下面我会有说明).IP地址是设置的carp设备的IP地址.
说明:
实际上任何的ifconfig都将调用欲设置的设备的源代码部分的ioctl函数(即该设备名+"_ioctl",在此例中是carp_ioctl).
我们的参数1,mekmitasdigoat等都将放到一个叫carpreq结构中.在源代码的1594行有申明:struct carpreq carpr;
通过copyin(ifr->ifr_data, &carpr, sizeof carpr) (源代码1687行) 从用户区把参拷贝到核心区的carpreq结构的实例
carpr中.然后设置该设备的硬件地址.我们看看源代码的1718行:
sc->sc_vhid = carpr.carpr_vhid;
sc->sc_ac.ac_enaddr[0] = 0;
sc->sc_ac.ac_enaddr[1] = 0;
sc->sc_ac.ac_enaddr[2] = 0x5e;
sc->sc_ac.ac_enaddr[3] = 0;
sc->sc_ac.ac_enaddr[4] = 1;
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 提示:bad kernel: arp : 内网IP地址 is on em0 but got rep 2009-05-13
- freebsd和linux下添加IP地址和静态路由 2009-05-13
- OpenBSD环境下安装Zend Optimizer的通用万能方法![原创] 2009-05-13
- fb 相当快的ports源地址 2009-05-13
- PF防火墙详解 2009-05-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash