DIRECT vs PARENT

From: Stavros Patiniotis <stavros@dont-contact.us>
Date: Mon, 18 Aug 1997 00:07:56 +0930 (CST)

Hello,
        I have had squid installed for some time now, and was looking to
better configure it for "policy based routing". My setup is as follows:

PEERING INTERNATIONAL
EXCHANGE
   | |
   | |(Proxy Cache)
   | 10Mbps 512K |
   |---------------+-----------------|
                       |
                   |
                  ME

Now the Peering Excahnge (PE) is a very low cost link, while the
International (I) link is very expensive :(

Now the problem comes into play as we *have to* set the "I" link's proxy
server as a PARENT, if we don't, we pay 6c /Mb more for data. Also most
data is delivered via the "I" link, rather than the PE. I have noticed
the directives of Minimum_hop and Local_domain. A squid "cloud" is setup
by each of the participants in the PE, ie we all have each other set as
siblings (another question for later...).

The problem is that any web sites located within the PE maybe (I say
maybe as it doesn't seem to be always using the PARENT) fetched
by the Parent, and we want to go DIRECT. The Local_domain directive does
exactly what we need it to, ie go direct
instead of via the parent, however this is very unscalble! The minimum
hop directive also sounds good, as most webpages via the PE are within 5
or so hops, where as the "I" data is about 8 hops away.

I started to check some of the logs that were being created when I was
accessing pages. I noticed that most, if not all pages fetched directly
from the PE came back as DIRECT, even though the PINGER support has not
been compiled in. I also tried another local ISP (not on the PE, but on
the same router as me connected to the "I" provider) and their pages came
DIRECT also! The only reason that I could deduce is that squid must
automatically ping (EVEN *without* pinger support compiled in) the site
to determine the RTT, and if it is less than the RTT of the parent, then
go DIRECT. Just to confirm that the minimum_hop function was not active,
I set it to 20 and kill -1 pid, and got the same results.

QUESTIONS:
Why is squid going direct on some pages when it has a parent set (the
parent is alive)?

Does a function such as minimum_hop work efficiently, or does it really
slow squid down, remember these squids are getting 250,000 hits per day
plus udp+tcp traffic from (currently) 4 other ISP's? Doing a traceroute
to *each* site is very time consuming, and no doubt CPU intensive, how
does this work?

In future when this PE becomes national and international, the
minimum_hop function will not work as the hops will have increased. Is
their any intent to integrate squid with a routing protocol- such as BGP,
ie do next hop lookups for each host (like the DNS lookups). ie have a
directive such as: (For a dual homed provider)

(NAME) (ASN) (METHOD)
Fetch_Method ASXXXX DIRECT
Fetch_Method ASYYYY PARENT
As you get more internet gateways, add more Fetch_Method Directives...

Where in the above (right at the top) diagram, ASXXXX would be the ASN
for the PE, and ASYYYY would be the ASN for the "I" link.

Your comments would be appreciated...

Regards,

Stavros Patiniotis
------------------------------------------------------------------------------
-System Administrator / Network Manager Escape.Net -
- 465b South Rd -
-email: stavros@esc.net.au Keswick SA 5035 -
-URL: http://www.esc.net.au Ph 82932526 Fax 82932949-
------------------------------------------------------------------------------
Received on Sun Aug 17 1997 - 08:04:15 MDT

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:36:46 MST