From owner-freebsd-net Mon Jul 19 12:32:42 1999 Delivered-To: freebsd-net@freebsd.org Received: from ss1000.ms.mff.cuni.cz (ss1000.ms.mff.cuni.cz [195.113.19.221]) by hub.freebsd.org (Postfix) with ESMTP id 264D715247 for ; Mon, 19 Jul 1999 12:32:37 -0700 (PDT) (envelope-from mkop5230@ss1000.ms.mff.cuni.cz) Received: from beta.ms.mff.cuni.cz (mkop5230@beta.ms.mff.cuni.cz [195.113.16.70]) by ss1000.ms.mff.cuni.cz (8.9.3/8.8.8) with ESMTP id VAA14687; Mon, 19 Jul 1999 21:31:50 +0200 Received: from localhost (mkop5230@localhost) by beta.ms.mff.cuni.cz (980427.SGI.8.8.8/8.8.8) with ESMTP id VAA96947; Mon, 19 Jul 1999 21:31:49 +0200 (MDT) Date: Mon, 19 Jul 1999 21:31:49 +0200 From: Milan Kopacka Reply-To: Milan Kopacka To: freebsd-net@freebsd.org Cc: Konference o transparentni proxy Subject: Tcp shadowing for use in HTTP proxy Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org Hi, The goal of alobal project is to design and implement transparent proxy cache for the HTTP protocol, used on TCP/IP networks for transmitting WWW pages. One of alobal's important features is full transparency for communicating partners. Usual transparent cache takes over client's connections and gets the data for them. However, the server sees as his communicating partner the cache machine. To solve this missing transparency, cache should connect to http server using client's IP address. However, such address is in use by original client and we still need to communicate with it. Cache node will need a "shadow" interface, which is used to make such connections. Shadow interface accepts packets destined to specified hosts (and redirected to localhost) and delivers them to localhost. On the other hand, it is not used by routing to deliver packets originating from localhost. Setup and use of shadow interface is automatic - process creating TCP connection calls bind() to assign local IP address to socket. When such IP is not present on interfaces, it is added to the shadow interface list. When connection is terminated, address is removed from list. The list is for efficiency implemented as hash table with usage counts (we need to open multiple connections under one client's identity). Please take look at http://www.ms.mff.cuni.cz/~mkop5230/tcp-shadow/ and tell me what you think about it. There are patches against 3.2-RELEASE. Thanks Milan Kopacka -- ... a koho system nachyta na procesoru, tomu snizi prioritu. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message