在HP UX下,ARP编程的问题

xtjqu 2010-06-27 11:58:19
大概可以用ARP来实现吧,如果有别的方法也请不吝赐教,CLUSTER没装。
两台HPUX服务器实现同一个应用,通过应用程序实现主备切换。两台服务器各有自己的IP(如1.1.1.A和1.1.1.B),哪个是主机就去访问对应的IP。
对于用户来说,这种方式很不方便,所以我想虚拟一个共用的IP(1.1.1.C),哪个服务器是主机,就通过ARP向外发布这个IP。这样,用户只要访问这个地址就可以了。
在WINDOWS里可以用WINCAP来实现,在HP UX(UNIX)系统里,不知道有没有相应的方法?怎么用?
...全文
113 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
xtjqu 2010-06-28
  • 打赏
  • 举报
回复
找到一段LINUX里的代码,自己去试了
ARP攻击?也可以用在正路上是不是?
http://www.unixresources.net/linux/clf/program/archive/00/00/37/72/377277.html
拷过来提交不了,大侠们帮我看一看在HPUX下怎么改
xtjqu 2010-06-28
  • 打赏
  • 举报
回复
唉,看完荷兰和斯洛伐克之后,如果还没有新的回复,就结了吧
xtjqu 2010-06-28
  • 打赏
  • 举报
回复
谢谢PLAYMUD大侠,这个可以有用 :)
设定了子端口地址后,只要用 ifconfig lan0:1 up 和 ifconfig lan0:1 down 切换就行了
ARP方面,谢谢WENXY1大侠的提醒,不过SOCK_PACKET这个参数在HPUX里变成了SOCK_SEQPACKET了,不知道是不是一样用
不知哪位大侠用过HPUX里的SOCK_SEQPACKET,请赐教
playmud 2010-06-28
  • 打赏
  • 举报
回复
ifconfig eth0:1 xxxx
playmud 2010-06-28
  • 打赏
  • 举报
回复
1,root的身份,发送arp数据好像也需要root权限吧?
2,arp欺骗好像也有一个时间有效性的问题,交换机刷新机制,ip冲突的问题应该不难,只需要主备之间有个协商过程就行了,主备之间谁先发现问题谁去主动协商。
3,可以的,ifconfig命令
上面这些工作通过shell就完成了
xtjqu 2010-06-28
  • 打赏
  • 举报
回复
PLAYMUD大侠的意思是临时去加IP?好主意,不过可能会一些麻烦
1.ROOT的身份
2.由主转备过程里会有IP的冲突,因为我是监视,不可能实时的去改
3..。。。好像UNIX的网卡不能加多个同网段地址吧,至少在SAM界面里只能看到一个
xtjqu 2010-06-28
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wenxy1 的回复:]
Linux上可以用 packet socket实现ARP发送和接收,不知Unix支持 packet socket么? 楼主goolge下吧。
[/Quote]
谢谢,正在GOOGLING
不知道有没有哪位大侠用过,给个packet socket的函数让我在服务器上MAN一下
playmud 2010-06-28
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wenxy1 的回复:]
我的想法是在每个服务器上都做一个监视进程,如果这台服务器上有应用是主的话,就发ARP包去虚拟这个应用的IP,对于备状态的应用不做这个
只是ARP欺骗一下交换机,不做转发[/Quote]
如果只是这样的话根本不用去发送arp欺骗交换机啊,只要把ip设置成想要的ip就可以了。
一个网卡是可以设置多个ip的,一个ip段做服务器间的通讯,一个ip段做对外连接。
xtjqu 2010-06-28
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 playmud 的回复:]
你在服务器上做一个监视进程,装个防火墙,让所有用户连接这台服务器,你根据应用主备状态,决定把数据包转向应用主机(通过添加删除防火墙的规则)。
是这样吗?
[/Quote]
我的想法是在每个服务器上都做一个监视进程,如果这台服务器上有应用是主的话,就发ARP包去虚拟这个应用的IP,对于备状态的应用不做这个
只是ARP欺骗一下交换机,不做转发
Wenxy1 2010-06-28
  • 打赏
  • 举报
回复
Linux上可以用 packet socket实现ARP发送和接收,不知Unix支持 packet socket么? 楼主goolge下吧。
playmud 2010-06-28
  • 打赏
  • 举报
回复
你在服务器上做一个监视进程,装个防火墙,让所有用户连接这台服务器,你根据应用主备状态,决定把数据包转向应用主机(通过添加删除防火墙的规则)。
是这样吗?
xtjqu 2010-06-28
  • 打赏
  • 举报
回复
PLAYMUD大侠:
谢谢关注。
实际情况是这样的,应用程序是厂家的,我是用户(改不了人家的程序),使用环境是局域网(无DNS)
在服务器上,可以有办法得到应用的主备状态,但是对于用户(WEB类型和WEBSERVICE类型的)则得不到,必须挨个IP去访问一下才行
所以我想在服务器上做一个监视进程,虚拟几个IP,对应每个应用的主机

网络假设不会出问题,操作系统则不然,可以死一台服务器的。
playmud 2010-06-28
  • 打赏
  • 举报
回复
哦,只是应用程序的主备,让我想想。
你的应用是假设操作系统和网络不会出问题对吧?如果这样的话你在(主)机上装个IPF防火墙,根据应用情况,决定是否把数据包转发到(备)机上,这样外面始终访问的是(主)机.
你看这样行吗?
playmud 2010-06-28
  • 打赏
  • 举报
回复
一块网卡???
如果网络断了,谁启动呢?哪个是主,哪个是备?
xtjqu 2010-06-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 playmud 的回复:]
我记得hpunx上有个主备软件叫mc吧,通过配置可以实现。
应用,数据,ip都能切换。
[/Quote]
谢谢提醒,可是MC好像是CLUSTER的工具吧,没装 :(
xtjqu 2010-06-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 playmud 的回复:]
为什么不在主备切换的时候把,ip也切换过来?
[/Quote]
谢谢了,主意不错,不过有两个原因不能这样做
1.软总线上每个服务器只启用了一块网卡,同时做心跳和数据交换,IP换不得
2.应用级主备切换,可能A机是1号应用的主机,B机是2号应用的主机,整机换IP不可行
playmud 2010-06-28
  • 打赏
  • 举报
回复
我记得hpunx上有个主备软件叫mc吧,通过配置可以实现。
应用,数据,ip都能切换。
playmud 2010-06-28
  • 打赏
  • 举报
回复
为什么不在主备切换的时候把,ip也切换过来?
xtjqu 2010-06-28
  • 打赏
  • 举报
回复
唉,头文件等等全部搞定,就是给我PERROR : Protocol not supported
ETH_P_IP // ETH_P_ALL // ETH_P_PARP 这几个常量应该对应什么?
HPUX里没有定义,0x0800 和 0x0003 都用过了,结果还是一样
playmud 2010-06-28
  • 打赏
  • 举报
回复
头文件不同,socket函数hp-ux也有raw和packet吧,系统5或bsd标准。

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧