[pox-dev] Install dropping rule

Murphy McCauley murphy.mccauley at gmail.com
Wed Dec 4 16:17:31 PST 2013


On Dec 4, 2013, at 12:25 AM, Silvia Fichera <fichera.sil at gmail.com> wrote:

> Thank you for your answer.
> You're right, it seems it doesn't match.
> 
> I've done the capture with wireshark yesterday morning and compare the packet, and it should work, but it doesn't...maybe I'm loosing some details.
> I'm attaching the capture.
> 
> The threshold by now is 10.
> 
> The first syn I receive in the packet n°62, from 10.2.3.88 to 10.0.0.2, I answer via packet_out with the syn ack (n°63). 
> 
> When I receive the 11th syn I install the rule (n°106).
> 
> When the source ip is changed (now it is 10.2.3.8), I receive the syn as a packet in (n°128) and it installs again the rule (n° 130).
> But if the packet matches the rule it shouldn't happen, right?!

Right.  However, #130 is more than 10 seconds after #106, but the flow corresponding to #106 had a ten second idle timeout.  Could it just be that the flow has timed out?  You might want to try:

* Use a long (or no) timeout
* Check the flow table on the switch (either by sending a flow stats request or just running ovs-dpctl/dpctl to check that your flows are getting installed)

-- Murphy

> 2013/12/3 Murphy McCauley <murphy.mccauley at gmail.com>
> To make sure I understand you correctly, the problem you're seeing is that you're installing an entry which you think should also match spoofed connections, but doesn't seem to be.  Is that right?
> 
> The first thing I'd do is look at the OpenFlow traffic between controller and switch in fine detail, probably using Wireshark.  Specifically, I would look at three packets:
> 1) The packet-in which causes the controller to install the drop rule
> 2) The flow-mod where the controller installs the drop rule
> 3) The packet-in for a spoofed IP connection attempt which you expect to have hit the drop rule
> 
> I'd begin by checking #3 against #2... doing the matching "by hand", does it match, or not?  If not, why not?  I'd sanity check by checking #1 against #2.  Does *that* match?  If not, there's something wrong with the generation of the table entry.  If it does, I'd check #3 against #1 to see if there's something different (besides the spoofed IP).
> 
> -- Murphy
> 
> On Dec 3, 2013, at 2:28 AM, Silvia Fichera <fichera.sil at gmail.com> wrote:
> 
> > Hi all,
> > I'm trying to implement a syn flood protection, so, if the controller receives a syn without ack consider the source a suspect source and I add its mac address, dst mac addr and dst TCP port in a grey list. After receiving a certain numer of syn packet (a threshold) without ack response I wanna drop the incoming syn traffic from the "attacker" identifing it by its mac address.
> >
> > I've installed the dropping rule leaving the actions list empty in this way:
> >
> > actions=[]
> >               match=of.ofp_match.from_packet(packet,inport)
> >               match.dl_src=SRCmac
> >               match.tp_src=None
> >               match.nw_src=None
> >               #match.tp_dst=None
> >               msg=of.ofp_flow_mod(command=of.OFPFC_ADD,
> >                                 idle_timeout=FLOW_IDLE_TIMEOUT,
> >                                 hard_timeout=of.OFP_FLOW_PERMANENT,
> >                                 buffer_id=event.ofp.buffer_id,
> >                                 actions=actions,match=match)
> >               event.connection.send(msg.pack())
> >               print("Dropping Rule installed")
> >
> > but if the attacker performs ip spoofing and send a syn packet with the new IP my controller install again the rule, also if the srcIP is wildcarded.
> >
> > There are any wrong matching?
> >
> > P.S.:
> > When the controller receives syn packet, if numer of syn <threshold, it pretends to be the destination host and sent the syn ack packet.
> > If it receives the ack sends a reset, add the src ip in a whitelist and install the forwarding rule.
> >
> > Thanks for your help.
> >
> > --
> > Silvia Fichera
> 
> 
> 
> 
> -- 
> Silvia Fichera
> <Capture>




More information about the pox-dev mailing list