2016-03-24 2 views
1

Я использую Mininet, контроллер Рю и OpenFlow 1.3, чтобы создать топологию, где хозяин h1 подключен к принимающей h2 с помощью переключателя p0es0 следующим образом:Ping терпит неудачу в Mininet, Рю - OpenFlow 1,3

h1 h1-eth0:p0es0-eth3 
h2 h2-eth0:p0es0-eth4 

в моем приложении Ryu контроллера, у меня есть следующий фрагмент кода, чтобы установить правила на моем p0es0 переключатель, чтобы быть в состоянии достигнуть h1 от h2, и наоборот:

# Install rule to forward packets destined to "10.0.0.2" (h2) via port 3 
    ofproto = sw.ofproto   
    match = sw.ofproto_parser.OFPMatch(eth_type = 0x0800, ipv4_dst="10.0.0.1") 
    action = sw.ofproto_parser.OFPActionOutput(4) 
    inst = [sw.ofproto_parser.OFPInstructionActions(sw.ofproto.OFPIT_APPLY_ACTIONS, [action])] 
    mod = sw.ofproto_parser.OFPFlowMod(datapath=sw, match=match, 
      instructions=inst, cookie=0, command=ofproto.OFPFC_ADD, idle_timeout=0, 
      hard_timeout=0, priority=100, flags=ofproto.OFPFF_SEND_FLOW_REM) 
    sw.send_msg(mod) 


    # Install rule to forward packets destined to "10.0.0.1" (h1) via port 4 
    match = sw.ofproto_parser.OFPMatch(eth_type = 0x0800, ipv4_dst="10.0.0.1") 
    action = sw.ofproto_parser.OFPActionOutput(4) 
    inst = [sw.ofproto_parser.OFPInstructionActions(sw.ofproto.OFPIT_APPLY_ACTIONS, [action])] 
    mod = sw.ofproto_parser.OFPFlowMod(datapath=sw, match=match, 
      instructions=inst, cookie=0, command=ofproto.OFPFC_ADD, idle_timeout=0, 
      hard_timeout=0, priority=100, flags=ofproto.OFPFF_SEND_FLOW_REM) 
    sw.send_msg(mod) 

Моя команда сброса потока подтверждает кор правильная установка правил в коммутаторе, как ожидалось:

*** p0es0 -------------------------------- ---------------------------------

OFPST_FLOW ответ (OF1.3) (xid = 0x2):

печенья = 0x0, длительность = 1103.417s, таблица = 0, n_packets = 0, n_bytes = 0, send_flow_rem приоритет = 100, внутрибрюшинно, nw_dst = 10.0.0.2 действия = выход: 4

печенья = 0x0, duration = 1103.414s, table = 0, n_packets = 0, n_bytes = 0, send_flow_rem priority = 100, ip, nw_dst = 10.0.0.1 actions = outp ет: 3


Однако, когда я пытаюсь пинговать h2 из h1 или наоборот, я получаю Destination хост ошибки. Я попытался использовать tcpdump на p0es0-eth3 - Я вижу только пакеты запроса ARP.

Я что-то упустил?

Спасибо.

ответ

0

Я бежал Минетне без флага arp. Добавление опции arp устранило мою проблему.

т.е. Sudo млн --arp --custom fTreeTopo.py --topo ftreetopo --controller = дистанционное, внутрибрюшинно = 127.0.0.1

Смежные вопросы