java中的arp_在POX控制器中制作ARP请求

我正在尝试从SDN OpenFlow交换机发送ARP请求以查找预定义主机的MAC地址(主机的IP地址已知:10.0.0.8/24)

我正在尝试为控制器使用虚拟IP和MAC地址 .

控制器的虚拟IP:10.1.2.3

控制器的虚拟MAC地址:00:12:34:56:78:90

我想要做的是,当控制器和交换机之间的连接 Build 时,在控制器中制作ARP请求,并通过交换机泛洪请求 .

# respond to switch connection up event

def _handle_ConnectionUp(self, event):

self.connection = event.connection

print("connecting to %s" %(self.connection))

# code to send ARP requests to servers

r = arp()

r.hwtype = r.HW_TYPE_ETHERNET

r.prototype = r.PROTO_TYPE_IP

r.hwlen = 6

r.protolen = r.protolen

r.opcode = r.REQUEST

r.hwdst = ETHER_BROADCAST

r.protodst = IPAddr("10.0.0.8")

r.hwsrc = EthAddr("00:12:34:56:78:90")

r.protosrc = IPAddr("10.1.2.3")

e = ethernet(type=ethernet.ARP_TYPE, src=EthAddr("00:12:34:56:78:90") , dst=ETHER_BROADCAST)

e.set_payload(r)

msg = of.ofp_packet_out()

msg.data = e.pack()

msg.actions.append(of.ofp_action_output(port = of.OFPP_FLOOD))

event.connection.send(msg)

但我看不到来自host-10.0.0.8的任何ARP回复 .

如果我对上述代码做错了,请告诉我 . 非常感谢你提前 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值