[ http://jira.jboss.com/jira/browse/JGRP-20?page=history ]

Bela Ban updated JGRP-20:
-------------------------

    Summary: Address translation in transport (NAT support)  (was: Address 
translation in transport)

> Address translation in transport (NAT support)
> ----------------------------------------------
>
>          Key: JGRP-20
>          URL: http://jira.jboss.com/jira/browse/JGRP-20
>      Project: JGroups
>         Type: Feature Request
>     Versions: 2.2.8
>     Reporter: Bela Ban
>     Assignee: Bela Ban
>      Fix For: 2.2.9

>
> Original Estimate: 1 week
>         Remaining: 1 week
>
> On multi-homed systems, the identity of a member is bound to a NIC (either 
> chosen by the OS, or by the
> user through bind_addr): Address. When a message is sent, the msg contains 
> this address as the sender's
> address. Responses go to the same address.
> However, if that NIC breaks, and the sender's OS chooses a different NIC for 
> the datagram packets, the
> receiver will still send the response back to the old address (the identity 
> of the sender cannot
> change).
> If we set the sender's address in any Message on *reception* of the message, 
> we would be able to send
> the response back to a valid NIC in the above case. However, this means the 
> *identity* of the sender
> changes, which JGroups cannot handle.
> SOLUTION I: we could introduce a logical address, which contains the physical 
> address of the NIC
> through which it was sent. Problem: a lot of code would have to change.
> SOLUTION II: we maintain, in each transport, a table of sender's address as 
> defined in the Message, and
> physical address of the {Datagram,Multicast}Packet received. Whenever we send 
> a unicast message, we get
> the destination address from this table through a lookup in which 
> dest_msg.dest_addr is the key.
> We need to reap the table every now and then to purge old addresses, we could 
> use view changes to do
> so.
> Example for SOLUTION II:
> - Member P: address=1.2.3.4:5555
> - P's box has 2 NICs: 1.2.3.4 and 5.6.7.8
> - Receiver R receives a message from P: P.src_addr=1.2.3.4:5555, datagram's 
> address is 1234:5555
> - R doesn't add an entry to the translation table, because the addresses are 
> the same
> - R sends a response: it looks up 1.2.3.4:5555 (dst) in the translation table
> - There is no entry, therefore R sends the response to 1.2.3.4:5555
> - P's NIC 1.2.3.4 is unplugged
> - P sends a message through NIC 5.6.7.8
> - R receives a message M.src_addr=1.2.3.4:5555, datagram's address is 
> 5.6.7.8:5555
> - R adds an entry to its translation table: 1.2.3.4:5555 --> 5.6.7.8:5555
> - R sends a response to 1.2.3.4:5555, since there is an entry for 
> 1.2.3.4:5555, it uses 5.6.7.8:5555 
>   as the destination address of the datagram packet
> SOLUTION II allows us to reuse the existing code, but provides for changing 
> underlying IP addresses.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.jboss.com/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira



-------------------------------------------------------
This SF.net email is sponsored by Demarc:
A global provider of Threat Management Solutions.
Download our HomeAdmin security software for free today!
http://www.demarc.com/info/Sentarus/hamr30
_______________________________________________
JBoss-Development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to