Я пытаюсь отправить запрос ARP от коммутатора OpenFlow SDN, чтобы найти MAC-адрес предварительно определенного хоста (известен IP-адрес хоста: 10.0.0.8/24)
Я пытаюсь использовать фиктивный IP-адрес и MAC-адрес для контроллера.
- фиктивный IP для контроллера: 10.1.2.3
- Фиктивный MAC-адрес для контроллера: 00: 12: 34: 56: 78: 90
Пожалуйста, найдите прикрепленное изображение моей топологии
Я пытаюсь создать запрос 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)
Но я не вижу ответа ARP от host-10.0.0.8.
tcpdump от хоста прилагается к этому
Пожалуйста, дайте мне знать, если я делаю что-то не так в отношении вышеуказанного кода. Заранее большое спасибо.