From owner-freebsd-net@FreeBSD.ORG Thu Dec 13 19:32:28 2007 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 64B8F16A417 for ; Thu, 13 Dec 2007 19:32:28 +0000 (UTC) (envelope-from julian@elischer.org) Received: from outI.internet-mail-service.net (outI.internet-mail-service.net [216.240.47.232]) by mx1.freebsd.org (Postfix) with ESMTP id 35B2513C467 for ; Thu, 13 Dec 2007 19:32:28 +0000 (UTC) (envelope-from julian@elischer.org) Received: from mx0.idiom.com (HELO idiom.com) (216.240.32.160) by out.internet-mail-service.net (qpsmtpd/0.40) with ESMTP; Thu, 13 Dec 2007 11:32:27 -0800 Received: from julian-mac.elischer.org (localhost [127.0.0.1]) by idiom.com (Postfix) with ESMTP id CC134126CA2; Thu, 13 Dec 2007 11:32:26 -0800 (PST) Message-ID: <476188CC.8010103@elischer.org> Date: Thu, 13 Dec 2007 11:32:28 -0800 From: Julian Elischer User-Agent: Thunderbird 2.0.0.9 (Macintosh/20071031) MIME-Version: 1.0 To: "Li, Qing" References: <476061FD.8050500@elischer.org> <305C539CA2F86249BF51CDCE8996AFF409091A7F@bcs-mail2.internal.cacheflow.com> In-Reply-To: <305C539CA2F86249BF51CDCE8996AFF409091A7F@bcs-mail2.internal.cacheflow.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: FreeBSD Net Subject: Re: bikeshed for all! X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Dec 2007 19:32:28 -0000 Li, Qing wrote: > > >> -----Original Message----- >> From: owner-freebsd-net@freebsd.org >> [mailto:owner-freebsd-net@freebsd.org] On Behalf Of Julian Elischer >> Sent: Wednesday, December 12, 2007 2:35 PM >> To: FreeBSD Net >> Subject: bikeshed for all! >> >> So, I'm playing with some multiple routing table support.. >> the first version is a minimal impact version with very >> limited functionality. >> It's done that way so I can put it in RELENG_6/7 without >> breaking ABIs (I hope). >> Later there will be a more flexible version for-current. >> >> Here's the question.. >> >> I need a word to use to describe the network view one is >> currently on.. >> e.g. if you are usinghe second routing table, you could say >> I've set xxx to 1 (0 based).. >> >> >> current;y in my code I'm using 'universe' but I don't like that.. >> >> one could think of it as a routing plane.. >> each routing plane has he same interfaces on it but they are >> logically treated differently becasue each plane has a >> different routing table. >> > > > Are you saying an interface can belong to multiple routing > domains ? So how is that going to work with overlapping > prefixes, which routing domain does the interface feed > the packets to ? Routing domain/instance is orthogonal to interfaces... if you want to isolate interfaces to 'virtual hosts' you want vimage which I also plan on seeing in the system. :-) There is no reason why you couldn't have several virtual hosts, each with different interface sets and each running several routing instances. with this you could implement several routers, each with several VRFs, but all in the same box. One selects a vrf/instance for incoming packets via ipfw or pf. One selects a vrf/instance for locally generated packets via the vrf the socket is attached to. (ipfw/pf can probably over-ride that but I haven't done it yet so I don't know) the socket gets its vrf/instance from the opening process, or a sock-opt. > > >> so here's an example of it in use now... >> the names should change... >> >> setuniverse 1 netstat -rn >> [shows table 1] >> setuniverse 2 route add 10.0.0.0/24 192.168.2.1 >> setuinverse 1 route add 10.0.0.0/24 192.168.3.1 >> setuniverse 2 route -n get 10.0.0.3 >> [shows 192.168.2.1] >> setuniverse 1 route -n get 10.0.0.3 >> [shows 192.168.3.1] >> setuniverse 2 start_apache >> [appache starts, always using 192.168.2.1 to reach the 10.0.0 net. >> >> >> also the syscall is setuniverse() >> >> so, you see I really need a better name.... >> setrtab? >> >> rtab? rtbl? >> >> and the command should be called "????" >> >> >> _______________________________________________ >> freebsd-net@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/freebsd-net >> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" >>