On 07/12/2012 09:19 AM, Benny Amorsen wrote:
"Kevin P. Fleming" <[email protected]> writes:

That's quite interesting; can you describe a scenario where this occurs?

Imagine you have a server with two interfaces, eth0 with 192.168.1.1/24
and eth1 with 10.0.2.1/24. Further imagine that you wish to be able to
move phones between the networks without changing the SIP server
address, so you set 192.168.1.1 as the SIP server no matter which
network they happen to be on.

Now the phones which happen to be connected to eth1 will send a request
to 192.168.1.1. If Asterisk is bound to 0.0.0.0, the reply will come
from 10.0.2.1. This could be solved if Asterisk did a connect() to the
socket and use the same socket for answering. That would tell the system
IP stack that this is in fact a connection, and so the system would
ensure that the reply source IP would be correct.

I must be missing something. If a phone sends a UDP packet to 192.168.1.1, how does that get routed to (arrive at) the 10.0.2.1 interface on the Asterisk server? The only way I can imagine that happening is if a router in between the phone and the server has been told that 192.168.1.0/24 is reachable *through* 10.0.2.1, which seems like a bizarre way to construct a network. Getting replies from Asterisk *back* to the phone would also require the IP stack on the Asterisk server to route those replies back over the 10.0.2.0/24 interface instead of the 192.168.1.0/24, which doesn't make any sense either.

We have since Asterisk 1.2 been using a configuration with 6 NIC's bonding to 3 networks, one public internet and 2 private networks. Routing calls between networks and having phones on all 3 networks is no problem.

There is one case though where we do fixup with iptables.
We have 30 virtuel adresses on one of the private networks and when Asterisk sends a packet to a destination then the first address of the NIC is inserted as source by the OS.

example
one NIC has ip's
192.168.0.10,192.168.0.20,192.168.30
Telephone (192.168.0.100) sends a packet to Asterisk 192.168.0.30, Asterisk sends response to 192.168.0.100 but with source address 192.168.0.10 as thats the first ip on that NIC.

In Iptables OUTPUT q we do a set-mark to an index into our source ip's
then in POSTROUTING we insert the source adr using the mark

b.r
Freddi




--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
New to Asterisk? Join us for a live introductory webinar every Thurs:
               http://www.asterisk.org/hello

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to