single ip address on multiple nics

Posted on 2004-11-02
Last Modified: 2013-11-22
i have a case in which I need to have 1 single ip address on multiple nics in a FreeBSD server.
I want this for several purposes

1) Additional bandwidth to the serverusing existing network
2) To Maintain uptime in the network.
I want to have each card connected to a different switch, and then the switches linked to each other

          ***************+   BSD SERVER +****************
          *                            + ++++++++++++                              *
          *                                                                                     *
          *                                                                                     *
+++++++++++                                                                ++++++++++++
+  SWITCH    +---------------------------------------------------+      SWITCH  +
+++++++++++                                                                ++++++++++++

This is basically what I want. The resof of the network are also, connected to these switches.

If possible I would want to be able to get the aggregate of the interfaces to the switch.
Meaning if I have 4 nics in the BSD server, get 400mb/s :>
Like I said, if possible.

Please advise
Question by:Protorian

    Author Comment

    I want that if a switch goes bad, or if an ethernet port on the server goes bad,
    That service continues to be up.

    LVL 5

    Expert Comment

    >> Additional bandwidth to the serverusing existing network

    you can't have two nic's using the same ip address simultaneously.
    The ip protocol stack will refuse to bind the ip to an nic if it is already
    in use on some other nic. However it is possible to have the arrangement
    where if a nic goes bad, you can have the other nic up on the same address.

    hope this helps,


    Author Comment

    to the network, will it seem like the two cards have the same address?
    And will that also aggregate the bandwidth?
    Or is that something different?

    If this is possible would you please give me the config.
    LVL 5

    Accepted Solution

    Consider just using 2 nics on your server for the moment.

    like i said, you can't have two nic's to use the same ip address "simultaneously".
    however, you can have separate ips for your 2 nics, and let the server listen on the
    wild card address(you can accept the packets destined for nic2 even if they
    arrive on nic1,  weak end system model). you will need to keep two entries in
    your dns records for your server. as an example.        IN A     // being the site name
                                    IN A

    Now i dont think connecting the switches as you are
    doing is a very good solution. This is because you will
    need to configure your switches for trunking. Plus in case
    of a failure, the other nic would become the bottleneck. An easier
    strategy is to use 2 more nics.

    nic1 <--> nic3(redundant)
    nic2 <--> nic4(redundant)

    Now you can create a cron job, which periodically pings(say at intervals of 20 seconds)
    both nic1 and nic2. if  nic1 fails, it assigns the ipconfig of nic1 to nic3, and similarily if nic2
    fails, it assigns the ipconfig of nic2 to nic4.  
    This way you can have the required redundancy along with additional bandwidth(not to
    forget, but at a cost of 2 extra network cards).

    hope this helps,
    LVL 5

    Assisted Solution

    You are wrong to say you cannot bind an ip address to two cards. 3com have been producing drivers to do this for years in order to provide higher reliablilty and speed. So the answer is you might be able to dual bind cards depends on the drivers available.
    LVL 4

    Assisted Solution

    check out /usr/ports/net/freevrrpd

    /usr/ports/net/freevrrpd/pkg-descr reads:

    freevrrpd is a VRRP (Virtual Router Redundancy Protocol) implementation
    daemon under FreeBSD.  freevrrpd is part of the High UpTime project.
    This daemon has been rewritten from scratch and is not based on
    existing projects.  In this second public release, you can find:

           * A daemon RFC 2338 Compliant adapted on FreeBSD systems
           * Implementation of Virtual Adresses
           * Support for multiples VRID
           * Master announce state by sending multicast packets via BPF
           * Changing routes and IP in 3 seconds
           * Doing gratuitous ARP requests to clean the cache of all hosts
           * Election between different slave servers
           * Same host can be Slave and Master at the same time
           * Automatic Downgrade to Slave if a Master is up again
           * Anti-Address Conflict system
           * Multi-threaded vrrp daemon
           * Plain text password authentication
           * Using now only one BPF device for all VRID
           * Support netmask for Virtual IP addresses
           * Support for monitored circuit and dependances between VRIDs

    LVL 4

    Expert Comment

    But anyway, all you achieve is high uptime but not double throughput.
    LVL 60

    Expert Comment

    And you cannot have both speed and safety at once....
    LVL 60

    Assisted Solution

    ive just put two network adapters in a bridge on this FreeBSD system i work on, plgged another cable in other NIC, unplugged first and it kinda passed without any headache

    Write Comment

    Please enter a first name

    Please enter a last name

    We will never share this with anyone.

    Featured Post

    6 Surprising Benefits of Threat Intelligence

    All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

    Suggested Solutions

    Using libpcap/Jpcap to capture and send packets on Solaris version (10/11) Library used: 1.      Libpcap ( Version 1.2 2.      Jpcap( Version 0.6 Prerequisite: 1.      GCC …
    Java performance on Solaris - Managing CPUs There are various resource controls in operating system which directly/indirectly influence the performance of application. one of the most important resource controls is "CPU".   In a multithreaded…
    Learn several ways to interact with files and get file information from the bash shell. ls lists the contents of a directory: Using the -a flag displays hidden files: Using the -l flag formats the output in a long list: The file command gives us mor…
    This tutorial goes over how to archive and restore FreeBSD jails that are managed by ezjail.

    933 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    19 Experts available now in Live!

    Get 1:1 Help Now