From owner-freebsd-questions Mon Jan 13 6:10:47 2003 Delivered-To: freebsd-questions@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A26D937B401 for ; Mon, 13 Jan 2003 06:10:44 -0800 (PST) Received: from anand.org (natgw.msi-cellular.com [217.113.64.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7593E43F18 for ; Mon, 13 Jan 2003 06:10:38 -0800 (PST) (envelope-from arb@anand.org) Received: from arb by mobile.anand.org with local (Exim 4.12) id 18Y5IN-000346-00 for questions@freebsd.org; Mon, 13 Jan 2003 15:10:31 +0100 Date: Mon, 13 Jan 2003 15:10:31 +0100 From: Anand Buddhdev To: questions@freebsd.org Subject: Re: Multiple network cards with IP addresses in the same network Message-ID: <20030113141031.GA11679@anand.org> References: <20030113114954.GQ1330@anand.org> <3E22B6B4.70401@potentialtech.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3E22B6B4.70401@potentialtech.com> User-Agent: Mutt/1.4i 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 On Mon, Jan 13, 2003 at 07:53:08AM -0500, Bill Moran wrote: > >I have a FreeBSD 4.7 system, with 3 ethernet cards. The first two > >are recognised as fxp0 and fxp1 and the second as em0 (intel gigabit > >card). I configured the em0 with address 192.168.0.1/24. I then wanted > >to configure fxp0 with the address 192.168.0.2/24, and also connect it > >to the switch so that I can connect to the server via both addresses. > >However, FreeBSD's ifconfig command fails, and won't let me add the second > >address to the fxp0 interface. I read the manual page about ifconfig, > >and read about aliases, where it said that for aliases, I must use the > >netmask /32. When I do try to add the second address with a netmask of > >/32, it works, but it doesn't make sense to me. How is that interface > >going to to know that it is part of a /24 network if I use a /32 netmask? > > > >Would anyone be kind enough to explain why: > > > >1. For aliases, I need the /32 mask > > I didn't know that you did. I've certainly had aliases that weren't /32 I have been using linux for about 2 years now. Let me explain why I don't understand. I have addresses 192.168.0.1 and 192.168.0.2. I want to run different services on the 2 different IP addresses. In a linux system, I do: ifconfig eth0 192.168.0.1 netmask 255.255.255.0 ifconfig eth0:0 192.168.0.2 netmask 255.255.255.0 So that I have 2 different addresses bound to the same interface. On FreeBSD, if I do: ifconfig fxp0 192.168.0.1 netmask 255.255.255.0 ifconfig fxp0 192.168.0.2 netmask 255.255.255.0 alias That fails. The ifconfig manpage states that a nonconflicting netmaks must be used for the alias, and suggests to use 0xffffffff. I don't understand why, because I don't see why one network interface cannot have more than one address bound to it within the same network. If I use a /32 netmask for the alias address, how will the kernel respond to arp requests for that alias address? > >2. Adding a second IP to a *different* network card in the same server > >does not work if the second IP is within the network of the first one. > > Because it breaks routing and the basic concept of IP addys and netmasks. > If you have two NICs on the same network, how is the kernel supposed to > route packets? I still don't understand. In a linux system I can do: route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.0.254 dev eth0 route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.0.254 dev eth1 This adds 2 default routes in the linux kernel, telling it to route packets to the outside world using either network interface, where eth0 has address 192.168.0.1/24 and eth1 has address 192.168.0.2/24. What's wrong with that? > If you want this setup as a failover solution, there are other ways. > There's a program in the ports (I can't remember the name, you'll have to > do some research) that will monitor an interface, and if it becomes non- > responsive, run a script of your choosing. Thus, you can have it start > up the other network card if the first fails. Ok, I understand that, and it may be a very useful program, *if* you want to bring up the other interface with perhaps the same IP address. All I want to do is to have 2 different IP addresses on each of the different interfaces in the server, where the addresses are in the same network. I can do it in linux. Why can't I do it in FreeBSD? > If failover isn't what you're looking for, then I'd reconsider your > network topology. It doesn't really make sense to have 2 NICs with the > same network number in one machine. Why not? I haven't seen any such warning in my IP networking books or courses. -- Anand Buddhdev http://anand.org To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message