2016-03-20 3 views
0

Я пытаюсь построить простую топологию в Mininet с балансировщиком нагрузки. Я использую переключатель вместо Load Balancer. Мне нужно изменить IP-адрес назначения на один из IP-адресов сервера, чтобы выполнить работу балансировки нагрузки.Изменить действие в контроллере OpenFlow

Я не могу изменить входящие, чтобы сделать то же самое. Может кто-нибудь, пожалуйста, помогите мне с тем же? Или есть лучший способ сделать это?

Заранее благодарен!

ответ

0

Вам необходимо написать сообщение Openflow, содержащее совпадение и требуемое действие. Совпадение будет полезно для «обнаружения» тех пакетов, которым необходимо изменить IP-адрес назначения. Действие должно быть действием SET_FIELD. Вот простой пример о том, как сделать это с помощью контроллера OpenDaylight (в этом случае изменения назначения MAC-адрес):

public static Action createSetFieldDestinationMacAddress(int order, String macAddress) { 

     Action action; 
     ActionBuilder ab = new ActionBuilder(); 

     MacAddress address = MacAddress.getDefaultInstance(macAddress); 
     EthernetDestination destination = new EthernetDestinationBuilder().setAddress(address).build(); 

     EthernetMatchBuilder builder = new EthernetMatchBuilder(); 
     builder.setEthernetDestination(destination); 

     EthernetMatch ethernetMatch = builder.build(); 
     SetFieldBuilder setFieldBuilder = new SetFieldBuilder(); 
     setFieldBuilder.setEthernetMatch(ethernetMatch); 
     SetField setField = setFieldBuilder.build(); 
     org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action acction = new SetFieldCaseBuilder(). 
       setSetField(setField).build(); 
     ab.setOrder(order).setKey(new ActionKey(order)).setAction(acction); 
     action = ab.build(); 
     return action; 
    } 
+0

Эй! Спасибо за ответ. Я нашел очень полезный рю-стартер-комплект. https://bitbucket.org/sdnhub/ryu-starter-kit/src –

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