Hi,
are you proposing that responses to the client (presumably behind a NAT)
be routed in some way other then the Via header?
Yes, that is one of the proposals and one of the comments that we
had queued waiting a response to my previous email.
Note that in my previous email I did not mention yet the 'Responses'
issue. I just want to be sure what is the authors opinions about
reusing the flow in a UAS ---> UAS 'Request' and then develop my
comments. But anyway, I mention below the main idea.
After knowing the authors opinion, and assuming that they agree with
the idea to re-use an outbound flow in the UAC---> UAS case, we were
thinking to propose the following:
1. Always use the flow-token in Requests: i.e. not only use the
flow-token in the UAS--->UAC case , but also, if a UAC supports
outbound, consider to reuse optionally or mandatory (to be discussed)
the flow in the the UAC--->UAS direction. In this case, the UAC must
keep a copy of the flow-token after successful registration (it can be
retrieved from the Path-header in the 200 OK).
2. Always use the flow-token in Responses : i.e. when a Request
crosses a proxy, and it founds the flow-token in the path header,
copy it as a URI into the Via-header. Then, when the Response comes
back to the proxy, use the flow token in the Via-header (if present)
to forward the response to the destination stated in the flow token
(instead to use the Via-header rport and received). (This will require
to store in the flow-token (algorithm 2) the destination IP and port
of the Registrar/UAS instead of the proxy IP and port. The proxy will
know how to forward the Response by checking its origin; if origin IP
and port in transport match origin IP and port in flow-token, then the
proxy knows that the response comes over the flow and the destination
is the destination IP and port in the token).
This behavior could be considered either mandatory or optional in outbound.
Advantages are:
-Security: the proxy could only consider valid flow-tokens before to
forward a Request (except REGISTER), thus, only authenticated and
authorized flows could be allowed to be forwarded.
- Could be used as an alternative to RFC 3581.
- Security (we need to considered if it is really possible): UAC
location could be anonymous: The registrar and other entities will
only know a flow-token (only the Edge proxy knows how to decrypt the
location of UAC).
Note that the presence of NAT is optional. This scheme will work
with or without NAT since the flow-token is composed using the origin
IP and port (and we understand that these are retrieved from the
transport layer).
Regards,
Sergio
Quoting Kevin Johns <[EMAIL PROTECTED]>:
Sergio,
Before I respond, I would like to make sure I understand your question,
are you proposing that responses to the client (presumably behind a NAT)
be routed in some way other then the Via header?
Kevin
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Friday, April 27, 2007 6:36 AM
To: Kevin Johns
Cc: [email protected]; Cullen Jennings; Rohan Mahy
Subject: RE: [Sip] outbound08 - Handling Responses in Edge proxy
/Viavs.Flowtoken
Hi,
Thank you for your answer.
We are composing an email with comments about why this issue (to use
the information in the Via header to handle Responses for Requests
originated by a UAC) may be not a good approach and bring down several
good outbound features.
But before to send our comments, it is important for us to ask the
authors if they are considering to re-use the flow in a
non-outbound-required UAC-->UAS Request case. Details are explained
below.
Keep in mind that in the comments below we focus our thoughts mainly
to connection oriented protocols (TCP).
Let me introduce an example; in the following scenario the UAC
previously established a flow with the EdgeProxy
----flow----
UAC--------------EdgeProxy----UAS
Suppose now that the UAC wants to send a Request to the UAS.
We understand that the purpose of a flow is to reach UAC for a Request
in the 'opposite direction' (i.e. a request from a UAS to UAC). While
now we are sending a Request from UAC to UAS.
The question is:
What are the authors point of view about re-using the flow in a
non-outbound-required UAC-->UAS Request?
In other words, is an outbound UAC expected to reuse the
outbound-flow, or not? ('or not' means : to create another 'traditional'
SIP connection).
The advantages to re-use a flow in UAC-UAS direction can introduce
some additional features that can make of outbound a powerful mechanism
not only to just keep NAT/FW bindings alive to reach a UAC but also to :
a) increase security (proxying requests and responses at the Edge Proxy
could be always done using a flowtoken), b) be an alternative to RFC
3581.
We will add more details about the comments above and the advantages
that outbound can introduce by re-using a flow in any direction to/from
a UAC. But first we need to know what is the authors position about
using a flow in the (non-outbound-requiring) UAC-UAS direction.
Regards
Sergio
Quoting Kevin Johns <[EMAIL PROTECTED]>:
Sergio,
Thank you for clarifying your question.
Let me try and provide some more detail, responses are always sent
from the UAS to a UAC and are always routed based on the via header
never the flow token. The flow token is only used for routing of
initial requests from the edge proxy (UAC) to the client (UAS).
Section 4.3 defines the UAC procedures (it is titled sending requests)
and strongly recommends that the UA include the rport in the via
header.
When the Edge Proxy gets the INVITE, it will populate the rport
parameter in the UAC inserted via head with the source port in the UDP
header of the received packet. It will also insert the receive
parameter into the same via header entry which contains the source IP
address in the IP header of the received packet. The Edge Proxy then
adds its own via header entry and forwards this INVITE along.
When the edge proxy gets back the response, it will look at the top
most Via header which contains the rport and receive parameter. The
Edge Proxy will then forward the response to the UAC using these
parameters which are routable since they represent the WAN interface
of the NAT.
The flow token never comes into play in this case.
This is all defined in RFC 3581 (An Extension to the Session
Initiation Protocol (SIP) for Symmetric Response Routing)
I hope this helps clarify the situation.
Kevin
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Friday, April 20, 2007 8:59 AM
To: Kevin Johns
Cc: [email protected]; Cullen Jennings; Rohan Mahy
Subject: RE: [Sip] outbound08 - Handling Responses in Edge proxy /
Viavs.Flowtoken
Hi,
Thank you for your answer.
Perhaps I should emphasize that I am always talking about Edge Proxy
behavior handling incoming Responses to be forwarded to a UAC over an
existing flow.
It seems that your answer is related to handling Responses in the
UAC, not in the Edge Proxy. Nevertheless I add my comments below:
Outbound expects that rport is used in the via header for routing of
responses (for UDP that is) see the note in section 4.3.
I understand that section 4.3 is for UA behavior.
Responses are
routed as defined in 3261 for TCP.
Yes, but in the case of forwarding Responses to a flow in an Edge
Proxy, I understand that the proxy uses the flowtoken information,
thus discarding any consideration of the Via-header parameters
(different to
3261 approach).
So.. shouldn't outbound-08 draft explain the case of Responses
handled by the Edge Proxy? By common sense I guess that the Response
should use the destination stated in the flowtoken, but, as
outbound-08 did not formally specify this case, why I could not avoid
considering the destination in the Via-header (although it wont work
with NAT)?
Regards,
Sergio
Quoting Kevin Johns <[EMAIL PROTECTED]>:
Sergio,
Outbound expects that rport is used in the via header for routing of
responses (for UDP that is) see the note in section 4.3. Responses
are
routed as defined in 3261 for TCP.
Kevin
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Thursday, April 19, 2007 8:52 AM
To: [email protected]
Cc: Cullen Jennings; Rohan Mahy
Subject: [Sip] outbound08 - Handling Responses in Edge proxy / Via
vs.Flowtoken
Hi,
I have a question related to handling Responses that are going to
be
sent over a flow in an Edge proxy.
In "5.3. Forwarding Requests (outbound08)" I read that a Request
is
forwarded to a flow using the information retrieved from the flow
token (and that it is found in the Route-header).
Now I am considering how is the case for Responses.
Should we consider the same behavior? i.e. forward a Response over
a
flow using the flowtoken found in the Path-header?
In 'non-outbound SIP', as far as I understand, Route Header forces
the routing in Requests, and Via-header forces routing in Responses.
So... should we avoid any consideration to the information stored
in
the topmost Via-header when proxying a Response? (And instead use the
information in the flowtoken ?)
I think that the answers is yes, since the Via could contain a
private address in the case of a NAT in the middle. Then, shouldn't
be
mentioned the response case in the draft?
Regards,
Sergio
_______________________________________________
Sip mailing list https://www1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol Use
[EMAIL PROTECTED] for questions on current sip Use
[EMAIL PROTECTED] for new developments on the application of sip
_______________________________________________
Sip mailing list https://www1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use [EMAIL PROTECTED] for questions on current sip
Use [EMAIL PROTECTED] for new developments on the application of sip