Forum Discussion
Chad_Fox_103169
Nimbostratus
Feb 03, 2010Routing UDP SIP responses to Via Address
Does anyone have a way to route UDP SIP responses to the address in the first Via of the message?
In general I'm looking for something roughly of the nature:
when SIP_RESPONSE {
node [SIP::via sent_by]
}
But something that actually works.
On 9.4.8 the messages get sent back to a previous client_addr (but not necessarily the right one).
I'm trying to work around it by explicitly telling the LTM where to send the response.
Thanks in advance
Chad
5 Replies
- Colin_Walker_12Historic F5 AccountI don't have a particular rule to help with that, but I'm curious what about the SIP::via command isn't working for you?
Colin - Chad_Fox_103169
Nimbostratus
The [SIP::via sent_by] is pulling the correct ip out of the Via, we can log it to syslog and it is ok.
The node [SIP::via sent_by] just isn't routing the request back to the ip.
If we do a TCP dump on the F5, the response UDP message is not being sent to that ip.
This may be a testing issue.
We are unable to recreate our real issue readily, so to test the iRule we inject a different ip in the Via.
Our syslog shows that we are passing this other IP to the node command, but the packet is still routed to the original client_addr.
Does the F5 disallow changing the ip to one that is not in it's list of "connected" clients?
Thanks - Colin_Walker_12Historic F5 AccountWith the node command you should be able to route traffic to whatever IP you want. I'm a little confused as to why the same command would log the correct IP but then direct traffic to the wrong one. That doesn't make much sense to me. Do you have a copy of the iRule in question I could look at?
Thanks,
Colin - Chad_Fox_103169
Nimbostratus
What I included previously is the entire thing (minus a log statement).
when SIP_RESPONSE {
log local0. "Sending Response to: [SIP::via sent_by]"
node [SIP::via sent_by]
}
We have traffic from IP1 to the F5 VIP (VIP), out to a sip endpoint (SIP).
The traffic arrives at (SIP) with a SNAT IP on the F5.
We modify our sip response to force a VIA of another test box (IP2) to test the routing of the iRule.
The response is sent back to the SNAT IP and our iRule is executed.
We see "Sending Response to: (IP2)", but the tcpdump shows the packet is sent to (IP1).
Thanks - Nat_Thirasuttakorn
Employee
My guess is you are running node command on server-side of the connection.
in that case, node command may not have any effect.
can you do something like this
log local0. "serverside=[serverside]"
if it log serverside=1, you may read more. otherwise, you may ignore the rest of this post.
with default udp profile, BIG-IP treats UDP as a connection oriented which means BIG-IP does not make LB decision for returning traffic (which means node command does not have any effect)
to configure bigip to to perform LB decision for returning traffic. you may need to use immediate timeout in UDP profile
- assign immediate timeout udp profile to VIP (be careful, this may affect all traffic)
- create VIP2 (which is same as SNAT IP) to intercept returning traffic. apply your iRule to VIP2
Thanks
Nat
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
DevCentral Quicklinks
* 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
Discover DevCentral Connects
