Изменить действие в контроллере OpenFlow

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

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

Заранее спасибо!


person codego123    schedule 20.03.2016    source источник


Ответы (1)


Вам нужно написать сообщение 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;
    }
person Icaro Camelo    schedule 21.03.2016
comment
Привет! Спасибо за ответ. Я также нашел очень полезный рю-стартовый набор. bitbucket.org/sdnhub/ryu-starter-kit/src - person codego123; 24.03.2016