Я пытаюсь разрешить H1 пинговать H2, однако когда я запускаю Pingalll, я получаю X на каждом порту. H1 не может выполнить пинг H2. H1 подключается к s1 через порт 1 к порту 1, H2 подключается к s2 через порт 1 к порту 1, s1 подключается к s2 через порт 2 к порту 2. Я не понимаю, почему код не позволяет H2 отвечать на запрос H1
Вот мой icmp-код
Я пытаюсь разрешить H1 пинговать H2, однако когда я запускаю Pingalll, я получаю X на каждом порту. H1 не может выполнить пинг H2. H1 подключается к s1 через порт 1 к порту 1, H2 подключается к s2 через порт 1 к порту 1, s1 подключается к s2 через порт 2 к порту 2. Я не понимаю, почему код не позволяет H2 отвечать на запрос H1 Вот мой icmp-код [code]import eventlet eventlet.monkey_patch()
from ryu.base import app_manager from ryu.controller import ofp_event from ryu.controller.handler import MAIN_DISPATCHER from ryu.controller.handler import set_ev_cls from ryu.ofproto import ofproto_v1_0 from ryu.ofproto import ether from ryu.lib.packet import packet, arp, ethernet
class DataCentre(app_manager.RyuApp): OFP_VERSIONS = [ofproto_v1_0.OFP_VERSION]
def __init__(self, *args, **kwargs): super(DataCentre, self).__init__(*args, **kwargs) self.switch_dps = {} # Dictionary to store switch datapaths
@set_ev_cls(ofp_event.EventOFPStateChange, [MAIN_DISPATCHER]) def switch_join(self, ev): # Save the datapath when a switch joins dp = ev.datapath self.switch_dps[dp.id] = dp self.logger.info(f"Switch {dp.id} joined the topology.")