Adrian,
The protocol that defines most Squid operations on Web objects
is HTTP (see RFC 2616). HTTP is connection oriented (like TCP), not
message oriented (like UDP). There are no unique request IDs that can
be shared with other caches/servers. An HTTP transaction is identified
by connection:sequential_id "pair" (sort of).
Thus, in general, you cannot send a request using one
connection and receive a response on another connection. In theory,
you can fake source addresses of the connection from B to C so that C
thinks it is getting a request from A. DSR origin server load
balancers work that way, but you do not want to do that in your
environment.
Alex.
On Sun, 20 May 2001, Adrian de los Santos wrote:
> Hi squid gurus.. first of all sorry for my bad english
>
> Im trying to do something that i call "asycronous proxy" i mean send the
> request over 1 interfase and recive the answer (the page) over another
> interfase..
>
> i will try to explain it with the following drawing..
>
> Assume machine A has 2 ethernet interfaces.. the first interfase has
> a Internet valid IP address (such as 200.39.164.129) but on the other
> side it has a internal LAN ip address (192.168.1.241).. squid its
> running on this machine and when a user request a page (and if the
> page its not on the cache) it forwards the request to a parent squid
> on the same LAN (machine B)..
>
> Machine B has 2 interfaces also, interface 1 has a internal LAN address
> 192.168.1.1 and on the other side it has a valid IP address on the
> Internet (148.235.170.1).. this machine will act as a packet modifier
> for machine A. I mean when it recives a packet coming from machine A
> (192.168.1.241) and the http request its not on his cache it will go
> for the page on the Internet, changing the source address of the
> request to 200.39.164.129 (instead of 148.235.170.1) and sends the
> http request to the machine on the Internet (Machine C)
>
> The Machine C its any web server on the NET, when it gets the request
> it will reply to the valid ip address of machine A (200.39.164.129).
>
> 200.39.164.129
> +---+
> | A |<------------------+
> +---+ |
> | 192.168.1.241 |
> | |
> | |
> | |
> v 192.168.1.1 |
> +---+ |
> | B | |
> +---+ |
> | 148.235.170.1 |
> | |
> v |
> +--------------------------+
> |The Internet |
> +--------------------------+
> | |
> v |
> +-----+ |
> | C |-----------------+
> +-----+
> Internet site (151.1.10.15)
>
>
> My questions are:
>
> - I suppose that squid maintains a on memory table for requests, clients,
> and request ID (or something similar, correct me if i am wrong please) such
> as:
>
> Request | client | request id
>
> www.yahoo.com 192.168.1.10 AABBCCD1134
>
> So i suppose that the request ID travels to the requested site
> (www.yahoo.com) and this request id travels back to the squid server so
> it can be able to return the requested page to the client (192.168.1.10)
>
> And thinking logically when a parent its configured it forwards the
> request to the parent and expects the answer from the parent.. so for
> the thing that i wish to make it needs to expect the answer from the
> original internet site.
>
> How can i do this ?
>
> What part of the code i must check ?
>
> Thanks a lot for your time reading this..
>
>
>
Received on Mon May 21 2001 - 12:02:01 MDT
This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 17:00:13 MST