diff --git a/en_US.ISO8859-1/books/handbook/config/chapter.sgml b/en_US.ISO8859-1/books/handbook/config/chapter.sgml
index 280b60136e..f581f4bd51 100644
--- a/en_US.ISO8859-1/books/handbook/config/chapter.sgml
+++ b/en_US.ISO8859-1/books/handbook/config/chapter.sgml
@@ -415,6 +415,397 @@ exit 0
system boot.
+
+
+
+
+ Marc
+ Fonvieille
+ Contributed by
+
+
+
+
+
+ Setting Up Network Interface Cards
+
+ Nowadays we can not think about a computer without thinking
+ about a network connection. Adding and configuring a network
+ card is a common task for any FreeBSD administrator.
+
+
+ Locating the Correct Driver
+
+ Before you begin, you should know the model of the card
+ you have, the chip it uses, and whether it is a PCI or ISA card.
+ FreeBSD supports a wide variety of both PCI and ISA cards.
+ Check the Hardware Compatibility List for your release to see
+ if your card is supported.
+
+ Once you are sure your card is supported, you need
+ to determine the proper driver for the card. The file
+ /usr/src/sys/i386/conf/LINT will give you
+ the list of network interfaces drivers with some information
+ about the supported chipsets/cards. If you have doubts about
+ which driver is the correct one, read the manual page of the
+ driver. The manual page will give you more information about
+ the supported hardware and even the possible problems that
+ could occur.
+
+ If you own a common card, most of the time you will not
+ have to look very hard for a driver. Drivers for common
+ network cards are present in the GENERIC
+ kernel, so your card should show up during boot, like so:
+
+dc0: <82c169 PNIC 10/100BaseTX> port 0xa000-0xa0ff mem 0xd3800000-0xd38
+000ff irq 15 at device 11.0 on pci0
+dc0: Ethernet address: 00:a0:cc:da:da:da
+miibus0: <MII bus> on dc0
+ukphy0: <Generic IEEE 802.3u media interface> on miibus0
+ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
+dc1: <82c169 PNIC 10/100BaseTX> port 0x9800-0x98ff mem 0xd3000000-0xd30
+000ff irq 11 at device 12.0 on pci0
+dc1: Ethernet address: 00:a0:cc:da:da:db
+miibus1: <MII bus> on dc1
+ukphy1: <Generic IEEE 802.3u media interface> on miibus1
+ukphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
+
+ In this example, we see that two cards using the &man.dc.4;
+ driver are present on the system.
+
+ To use your network card, you will need to load the proper
+ driver. This may be accomplished in one of two ways. The
+ easiest way is to simply load a kernel module for your network
+ card with &man.kldload.8;. A module is not available for all
+ network card drivers (ISA cards and cards using the &man.ed.4;
+ driver, for example). Alternatively, you may statically compile
+ the support for your card into your kernel. Check
+ /usr/src/sys/i386/conf/LINT and the
+ manual page of the driver to know what to add in your kernel
+ configiration file. For more information about recompiling your
+ kernel, please see . If your card
+ was detected at boot by your kernel (GENERIC)
+ you do not have to build a new kernel.
+
+
+
+ Configuring the Network Card
+
+ Once the right driver is loaded for the network card, the
+ card needs to be configured. As with many other things, the
+ network card may have been configured at installation time by
+ sysinstall.
+
+ To display the configuration for the network interfaces on
+ your system, enter the folowing command:
+
+&prompt.user; ifconfig
+dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
+ inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255
+ ether 00:a0:cc:da:da:da
+ media: Ethernet autoselect (100baseTX <full-duplex>)
+ status: active
+dc1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
+ inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255
+ ether 00:a0:cc:da:da:db
+ media: Ethernet 10baseT/UTP
+ status: no carrier
+lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
+lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
+ inet 127.0.0.1 netmask 0xff000000
+tun0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500
+
+
+ Old versions of FreeBSD may require the
+ option following &man.ifconfig.8;, for more details about the
+ correct syntax of &man.ifconfig.8;, please refer to the manual
+ page. Note also that entries concerning IPv6
+ (inet6 etc.) were omitted in this
+ example.
+
+
+ In this example, the following devices were
+ displayed:
+
+
+
+ dc0: The first Ethernet
+ interface
+
+
+
+ dc1: The second Ethernet
+ interface
+
+
+
+ lp0: The parallel port
+ interface
+
+
+
+ lo0: The loopback device
+
+
+
+ tun0: The tunnel device used by
+ ppp
+
+
+
+ FreeBSD uses the driver name followed by the order in
+ which one the card is detected at the kernel boot to name the
+ network card. For example sis2 would
+ be the third network card on the system using the &man.sis.4;
+ driver.
+
+ In this example, the dc0 device is
+ up and running. The key indicators are:
+
+
+
+ UP means that the card is configured
+ and ready.
+
+
+
+ The card has an Internet (inet)
+ address (in this case 192.168.1.3).
+
+
+
+ It has a valid subnet mask (netmask;
+ 0xffffff00 is the same as 255.255.255.0).
+
+
+
+ It has a valid broadcast address (in this case,
+ 192.168.1.255).
+
+
+
+ The MAC address of the card (ether)
+ is 00:a0:cc:da:da:da
+
+
+
+ The physical media selection is on autoselection mode
+ (media: Ethernet autoselect (100baseTX
+ <full-duplex>)). We see that
+ dc1 was configured to run with
+ 10baseT/UTP media. For more
+ information on available media types for a driver, please
+ refer to its manual page.
+
+
+
+ The status of the link (status)
+ is active, i.e. the carrier is detected.
+ For dc1, we see
+ status: no carrier. This is normal when
+ an ethernet cable is not plugged into the card.
+
+
+
+ If the &man.ifconfig.8; output had shown something similar
+ to:
+
+dc0: flags=8843<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
+ ether 00:a0:cc:da:da:da
+
+ it would indicate the card has not been configured.
+
+ To configure your card, you need root
+ privileges. The network card configuration can be done from the
+ command line with &man.ifconfig.8; but you would have to do it
+ after each reboot of the system. The file
+ /etc/rc.conf is where to add the network
+ card's configuration.
+
+ Open /etc/rc.conf in your favorite
+ editor. You need to add a line for each network card present on
+ the system, for example in our case, we added these lines:
+
+ifconfig_dc0="inet 192.168.1.3 netmask 255.255.255.0"
+ifconfig_dc1="inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP"
+
+ You have to replace dc0,
+ dc1, and so on, with
+ the correct device for your cards, and the addresses with the
+ proper ones. You should read the card driver and
+ &man.ifconfig.8; manual pages for more details about the allowed
+ options and also &man.rc.conf.5; manual page for more
+ information on the syntax of
+ /etc/rc.conf.
+
+ If you configured the network during installation, some
+ lines about the network card(s) may be already present. Double
+ check /etc/rc.conf before adding any
+ lines.
+
+ You will also have to edit the file
+ /etc/hosts add the names and the IP
+ adresses of various machines of the LAN, if they are not already
+ there. For more information please refer to &man.hosts.5;
+ and to /usr/share/examples/etc/hosts.
+
+
+
+ Testing and Troubleshooting
+
+ Once you have made the necessary changes in
+ /etc/rc.conf, you should reboot your
+ system. This will allow the change(s) to the interface(s) to
+ be applied, and verify that the system restarts without any
+ configuration errors.
+
+ Once the system has been rebooted, you should test the
+ network interfaces.
+
+
+ Testing the Ethernet Card
+
+ To verify that an Ethernet card is configured correctly,
+ you have to try two things. First, ping the interface itself,
+ and then ping another machine on the LAN.
+
+ First let's test the interface:
+
+&prompt.user; ping -c5 192.168.1.3
+PING 192.168.1.3 (192.168.1.3): 56 data bytes
+64 bytes from 192.168.1.3: icmp_seq=0 ttl=64 time=0.082 ms
+64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.074 ms
+64 bytes from 192.168.1.3: icmp_seq=2 ttl=64 time=0.076 ms
+64 bytes from 192.168.1.3: icmp_seq=3 ttl=64 time=0.108 ms
+64 bytes from 192.168.1.3: icmp_seq=4 ttl=64 time=0.076 ms
+
+--- 192.168.1.3 ping statistics ---
+5 packets transmitted, 5 packets received, 0% packet loss
+round-trip min/avg/max/stddev = 0.074/0.083/0.108/0.013 ms
+
+ Now we have to ping another machine on the LAN:
+
+&prompt.user; ping -c5 192.168.1.2
+PING 192.168.1.2 (192.168.1.2): 56 data bytes
+64 bytes from 192.168.1.2: icmp_seq=0 ttl=64 time=0.726 ms
+64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.766 ms
+64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.700 ms
+64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.747 ms
+64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=0.704 ms
+
+--- 192.168.1.2 ping statistics ---
+5 packets transmitted, 5 packets received, 0% packet loss
+round-trip min/avg/max/stddev = 0.700/0.729/0.766/0.025 ms
+
+ You could also use the machine name instead of
+ 192.168.1.2 if you have set up the
+ /etc/hosts file.
+
+
+
+ Troubleshooting
+
+
+
+
+ Where can I find information about possible trouble
+ I may experience with my network card?
+
+
+
+ The manual page of the driver is the first piece of
+ documentation to read. The mailing lists archives can
+ also be useful.
+
+
+
+
+
+ When I try to ping a machine on my LAN, I get this
+ message: ping: sendto: Permission
+ denied.
+
+
+
+ This means that you do not have permission to
+ send ICMP packets. Check to see if a firewall is
+ running on the machine and if there are any rules
+ blocking ICMP.
+
+
+
+
+
+ I see a lot of watchdog
+ timeout messages in the system logs, and
+ when I try to ping a machine on the LAN, I get this
+ message: ping: sendto: No route to
+ host.
+
+
+
+ The first thing to do is to check your network
+ cable. Many cards require a PCI slot supporting the
+ Bus Mastering. On some old motherboards, only one PCI
+ slot allows it (most of time slot 0). Check the
+ network card and the motherboard documentation to
+ determine if that may be the problem.
+
+
+
+
+
+ I see a lot of device timeout
+ messages in the system logs, and my network card does not
+ work.
+
+
+
+ Having one or two of these messages is sometimes
+ normal with some cards. However, if they persist and the
+ network is not usable, make sure the network cable is
+ plugged in and that there are no IRQ conflicts between
+ the network card and another device (or devices) on the
+ system.
+
+
+
+
+
+ The performance of the card is poor, what can I
+ do?
+
+
+
+ It is difficult to answer to that question. What is
+ your definition of poor performance? Double
+ check everything in your configuration, read the
+ &man.tuning.7; manual page, and try to avoid cheap
+ network cards. Many users have noted that setting the
+ media selection mode to autoselect
+ results in bad performance on some hardware.
+
+
+
+
+
+ Are there any recommended network cards or cards I
+ should stay away from?
+
+
+
+ You should avoid cheap cards for serious usage. Cheap
+ cards often use buggy chipsets, and most of time do not
+ provide very good performance. Many FreeBSD users like
+ cards using the &man.fxp.4; chipset, however, this does
+ not mean that all other chipsets are bad.
+
+
+
+
+
+
+
Virtual Hosts