Author: adrian.chadd
Date: Wed Jun 17 00:33:03 2009
New Revision: 14100

Modified:
    wiki/LuscaArchitectureNetworkTransparentInterception.wiki

Log:
Edited wiki page through web user interface.

Modified: wiki/LuscaArchitectureNetworkTransparentInterception.wiki
==============================================================================
--- wiki/LuscaArchitectureNetworkTransparentInterception.wiki   (original)
+++ wiki/LuscaArchitectureNetworkTransparentInterception.wiki   Wed Jun 17  
00:33:03 2009
@@ -12,12 +12,42 @@

  = Components =

+There are two main components. The first is intercepting connections from  
clients - ie, spoofing the server-side address. The second is originating  
outbound connections to upstream origin servers and intermedaries but using  
the original IP address of the client.
+
  == Client connection interception ==

+The client-side interception is currently performed in src/client_side.c.  
The clientNatLookup() function is defined based on the compile-time  
interception mode selected. If none are selected, this falls back to imply  
calling getsockname() on the socket to determine the local IP address of  
the socket connection.
+
  == Client-side address spoofing ==

+This was introduced in TPROXY2 and TPROXY4. This API allows a separate,  
non-local IP address to be used when creating an outbound socket address.  
Again, this is compile-time dependent.
+
+The original TPROXY2 support inserted specific code in src/forward.c to  
map a newly-created outbound socket to a different source address (using  
TPROXY2 specific options) before connecting it to a remote host.
+
+The TPROXY4 support removed this special code and instead created a socket  
with a special comm option (COMM_TRANSPARENT) which signaled to the comm  
layer to attempt the "source spoofing" ioctl(), which then allows the  
non-local IP address to be set via a subsequent call to bind().
+
+Further changes to the Lusca codebase are aimed at creating a clear API  
for defining inbound and outbound transparently intercepted connections.
+
+= Network topology implications =
+
+Full transparency requires the proxy server to see both sides of the  
traffic flow. It will then redirect relevant packets making up the  
intercepted client and server connections through the correct sockets.
+
+(TODO: flesh this out some more.)
+
+= Using this in code =
+
+== Accepting transparently intercepted connections from clients ==
+
+== Determining the original destination server IP address ==
+
+== Using a non-local IP address on an outbound connection ==
+
  = Implementation notes =

+== Server-side interception modules ==
+
+== Client-side spoofing modules ==
+
  == Linux TPROXY2 ==

  == Linux TPROXY4 ==
@@ -32,4 +62,6 @@

  == Proxy bypass ==

-== Non-HTTP protocols ==
\ No newline at end of file
+== Non-HTTP protocols ==
+
+== IPv6 support ==
\ No newline at end of file

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"lusca-commit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/lusca-commit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to