Forum Discussion
TCP Traffic Path Diagram
Hi all,
It's bugged me ever since I looked at the ADF exam blueprint that there still wasn't a definitive document or diagram available that described or showed the TCP Traffic Path and Order of Operations of a packet passing through an F5. I'm aware of the BigIP Path Graph v1.7 from Red Education but that's five years old and hasn't been subject to any review. To that end I've recently started my own as you can see below.
Comments and more importantly corrections or queries are encouraged. Note as it stands I've not added many iRule events as I'd like to get the flow and order sorted first. I'm pretty sure what I've done is mostly correct but I'd love some review before I continue and finish off the server side operations. Many thanks in advance. You may need to right-click, open image/in new tab to see it full size.
New version - December 2015:
- What_Lies_Bene1Cirrostratus@Aurel, you should be able to see the new version (the second diagram). Note this diagram relates to a standard VS (mainly). The flow/logical steps would be slightly different for a forwarding VS As @Andrew has already noted, if there's no connection table entry and Loose Initiation isn't enabled on a FastL4/Performance, the packet gets dropped. If you're talking about a Forwarding(IP) VS then I'd imagine there is no connection table lookup. I'll double-check and confirm.
- jsprattlerNimbostratus
Awesome, thank you for putting in the time on this!
Excellent Diagram!! Just an extra kicker here, Jason Rahm(F5 solution architect) has a video on their Whiteboard Wednesday show. Heres the link. He covers this in "Life of a Packet" https://www.youtube.com/watch?v=bYfcNIndSPQ
- What_Lies_Bene1CirrostratusThanks, I'll check it out. Cheers
- tatmotivCirrostratus
Wow great. Two remarks though:
-
Actually, I think in order to be 100% precise at the point where the matching VS is selected, you ought to move the "source permitted" question into the blue box that depicts the selection of the VS, right?
-
Receiving non-SYN packets for a connection which is not included in the connection table does not necessarily lead to the packet being dropped. There might be a fastL4 or TCP profile with loose initiation in place. But I also understand that reflecting all such possibilities in one diagram might be impossible...
-
- KarimCirrostratus
Hello Steven
First of all many thanks for this diagram which helps me a lot.
I just want to unsure that I got it right, in the new version diagram :
After the CLIENT_ACCEPTED Irule event and if there's no virtual server matching, we should also have the "Most specific match enabled on ingress" vertical box between the SNAT box and the NAT box, right?
I mean if we only have two object configured on the bigip :
One SNAT that listents for traffics comming from 10.0.0.0/8
One NAT that listents for traffics comming from 10.0.0.1/32
if the client 10.0.0.1 comes, then the NAT will precede the SNAT, right ?
Regards,
Karim
- Luis_Araujo_560Nimbostratus
ItĀ“s greate! Well done.
- slesh_219299Cirrus
Hi all Diagram is great , but can someone tell me when traffic is going to vip 443 with SSL offload and irule ... 1 it will hit vip than 2 cert will go first or irule ?
you mean if it will hit the irule before or after the SSL offloading? it doesn't work like that, there will be EVENTs within the irule hit before the SSL offloading, i.e. TCP events and ones after, like HTTP events.
- slesh_219299Cirrus
yes i mean that . i wanted to know for example like traffic will come to vip it will process all things and what is first what is second will it go for cert first and irule later or ...
like i said: it doesn't work like that, there will be iRule EVENTs within the iRule hit before the SSL offloading, i.e. TCP events and ones after, like HTTP events.
the image at the start of this question does exaxtly details which iRule EVENTs happen when.
- Darrell_Paul_22Nimbostratus
Has anyone seen this Diagram for 13 code yet?
do you have a reason to assume it isn't valid for version 13.x? in principle not much changes, if you have some specific point please mention it.
- Darrell_Paul_22Nimbostratus
Engineers looking at our issue have been leaning towards new security features in the 13 code that may be triggered along the path across the path. e.g. you have the ddos notes along this flow. I 'assume' there are newer things in the flow that the F5 Engineers were referring to.
- KarimCirrostratus
Hello,
I just wanted to say that the FLOW_INIT is triggered after packet filter. It was well represented in version 0.1 however in version 0.5 the "Packet filter on VLAN" was moved down below "AFM/TMM Processing begins" .
Could you please explain why you made such a modification ?
are you really sure Karim? logically i would say that FLOW_INIT doesnt trigger if a packet filter already has blocked the connection to start with.
this is where What Lies Beneath determined the situation i believe: https://devcentral.f5.com/questions/the-flow_init-event-and-event-order
if i test this and block traffic with a packet filter i don't get a FLOW_INIT event, if i remove the packet filter i get it, tells me the diagram is ok.
- KarimCirrostratus
boneyard, We are saying the same thing: If the packet filter blocks the packet we'll not get the flow init event.
However, the diagram v0.5, the flow_init box is represented before the packet filter box. Which seems to say that whether we're blocked or not by packet filter we always get the flow init event (which I think is incorrect)
You can see that in v0.1 of the diagram, the flow_init box was set after the packet filter box, which make more sens for me.
Thanks,
ah now i see it, i didn't notice the two pictures. well we touched the question a few times, perhaps Steven will pop up and explain :)
Hello,
I just wanted to say that the FLOW_INIT is triggered after packet filter. It was well represented in version 0.1 however in version 0.5 the "Packet filter on VLAN" was moved down below "AFM/TMM Processing begins" .
Could you please explain why you made such a modification ?
are you really sure Karim? logically i would say that FLOW_INIT doesnt trigger if a packet filter already has blocked the connection to start with.
this is where What Lies Beneath determined the situation i believe: https://devcentral.f5.com/questions/the-flow_init-event-and-event-order
if i test this and block traffic with a packet filter i don't get a FLOW_INIT event, if i remove the packet filter i get it, tells me the diagram is ok.
boneyard, We are saying the same thing: If the packet filter blocks the packet we'll not get the flow init event.
However, the diagram v0.5, the flow_init box is represented before the packet filter box. Which seems to say that whether we're blocked or not by packet filter we always get the flow init event (which I think is incorrect)
You can see that in v0.1 of the diagram, the flow_init box was set after the packet filter box, which make more sens for me.
Thanks,
ah now i see it, i didn't notice the two pictures. well we touched the question a few times, perhaps Steven will pop up and explain :)
Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com