From owner-freebsd-questions Tue Dec 11 13: 4:40 2001 Delivered-To: freebsd-questions@freebsd.org Received: from mailgw2a.lmco.com (mailgw2a.lmco.com [192.91.147.7]) by hub.freebsd.org (Postfix) with ESMTP id A840337B419 for ; Tue, 11 Dec 2001 13:04:32 -0800 (PST) Received: from emss01g01.ems.lmco.com ([129.197.181.54]) by mailgw2a.lmco.com (8.8.8/8.8.8) with ESMTP id QAA18237 for ; Tue, 11 Dec 2001 16:04:31 -0500 (EST) Received: from CONVERSION-DAEMON by lmco.com (PMDF V5.2-33 #38886) id <0GO700B016FUN8@lmco.com> for freebsd-questions@freebsd.org; Tue, 11 Dec 2001 13:02:18 -0800 (PST) Received: from cui1.lmms.lmco.com ([129.197.1.64]) by lmco.com (PMDF V5.2-33 #38886) with ESMTP id <0GO7008QV6FPRF@lmco.com> for freebsd-questions@freebsd.org; Tue, 11 Dec 2001 13:02:13 -0800 (PST) Received: from lmco.com (CONNECTICUT1.lmms.lmco.com [129.197.23.84]) by cui1.lmms.lmco.com (8.11.0/8.9.2) with ESMTP id fBBL2D606947 for ; Tue, 11 Dec 2001 13:02:13 -0800 (PST) Date: Tue, 11 Dec 2001 13:02:24 -0800 From: rick norman Subject: Re: IP aliases & routes To: freebsd-questions@freebsd.org Message-id: <3C167460.7D2177B7@lmco.com> MIME-version: 1.0 X-Mailer: Mozilla 4.77 [en] (WinNT; U) Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7BIT X-Accept-Language: en References: <200112111946.fBBJkvIH021762@bigtex.jrv.org> Sender: owner-freebsd-questions@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Okay, now I see more clearly your problem. Unfortunately, I don't know any way to have alternate defaults. Default means, use this when nothing else works. I would think that you could use ipfw and write a rule that forwards to a given gateway based on the src subnet. Rick "James R. Van Artsdalen" wrote: > > Date: Tue, 11 Dec 2001 11:01:00 -0800 > > From: rick norman > > Why is there a requirement that there is but one default? > The only important thing is that there is no ambiguity over which > default to use. > > In my case there are two subnets on one interface, for example > 10.1.1/24 and 10.1.2/24. My server has addresses 10.1.1.2 and > 10.1.2.2: that's one address on each subnet. > > Each subnet has a gateway to the Internet: 10.1.1.1 and 10.1.2.1. > > What I want to say is that when my server uses 10.1.1.2 as its address > then 10.1.1.1 is the default route, but if my server uses 10.1.2.2 as > its address then 10.1.2.1 is the default route. > > It might be tempting to say "just pick one default!" but this doesn't > work: if I pick 10.1.1.1 as the default, then my server cannot reach > any Internet address with no known route using the 10.1.2.2 address, > since packets sent from 10.1.2.2 cannot be seen by 10.1.1.1 (they're > on different subnets). It makes a second gateway useless since > there's no way to send a packet to it. > > BSD applications are permitted to decide which source address a packet > uses by calling bind(2). The routing code cannot assume that a single > default route covers all cases since the packet to be routed might not > be sourced on the same subnet as that default gateway. The routing > code should instead allow one default gateway on each attached subnet > and should check the packet against each default to ensure that the > packet is sourced on the same subnet as that default gateway. > > > A default route is just that, a default, there can't be two. There can > > be different gateways for different subnets though. Your description > > sounds like a single subnet with two ip addrs on it. 10.1.1/24 is the > > subnet and .2 and .3 are the addrs. Why not use 10.1.1/24 and 10.1.2/24 > > ? > > > > Rick > > > > freebsd-questions@jrv.org wrote: > > > > > I have a FreeBSD server on an Ethernet with two gateways to the > > > outside world. I would like to use gateway A for upstream HTTP > > > traffic from squid and gateway B for everything else. In other words, > > > > > the default route should point to B, except for the squid's upstream > > > socket, which should use A. > > > > > > What I did was create a new private subnet (10.1.1/24) that both the > > > server and gateway A can access via an IP alias. Squid is told to use > > > > > 10.1.1.3 as its upstream address. Other applications use the normal > > > IP address. The idea is that one subnet uses gateway A as the default > > > > > gateway and the other subnet uses gateway B and that choosing the > > > address of outbound socket via bind(2) chooses how that application > > > reaches the Internet. > > > > > > The question is how to tell the FreeBSD (4.4-stable) server that > > > gateway A can be used as a default route for 10.1.1/24. There is > > > already a default route for the normal IP address and I can't seem to > > > get the route command to let me create a default route for the alias > > > to use: > > > > > > $ route add default 10.1.1.2 > > > route: writing to routing socket: File exists > > > add net default: gateway 10.1.1.2: File exists. > > > > > > How do I add this second default route? There is no conflict between > > > the two defaults: every possible local IP address belongs to only of > > > the two subnets (and can match only one default). > > > > > > To Unsubscribe: send mail to majordomo@FreeBSD.org > > > with "unsubscribe freebsd-questions" in the body of the message > > > > > > > > To Unsubscribe: send mail to majordomo@FreeBSD.org > > with "unsubscribe freebsd-questions" in the body of the message > > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message