Tải bản đầy đủ (.pdf) (18 trang)

Tài liệu Chapter-17-Configuring the local network pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (322.5 KB, 18 trang )

2Apr il 2003, 17:00:47 The Complete FreeBSD (netsetup.mm), page 297
17
Configuring the local
network
In this chapter:
• Networ k
configuration with
sysinstall
• Manual networ k
configuration
• Automatic
configuration with
DHCP
• Configur ing PC Card
networ king cards
• Setting up wireless
networ king
• Routing
• ISP’sroute setup
• Looking at the
routing tables
• Packetforwarding
• Configuration
summar y
In this chapter:
• Networ k
configuration with
sysinstall
• Manual networ k
configuration
• Automatic


configuration with
DHCP
• Configur ing PC Card
networ king cards
• Setting up wireless
networ king
• Routing
• ISP’sroute setup
• Looking at the
routing tables
• Packetforwarding
• Configuration
summar y
In Chapter 16 we looked at the basic concepts surrounding BSD networking. In this
chapter and the following two, we’ll look at what we need to do to configure a network,
first manually,then automatically.Configuring PPP is still a whole lot more difficult
than configuring an Ethernet, and theyrequire more prerequisites, so we’ll dedicate
Chapter 20, to that issue.
In this chapter,we’ll first look at example.org in the reference network on page 294, since
it’sthe easiest to set up. After that, we’ll look at what additional information is needed to
configure machines on example.net.
Network configuration with sysinstall
To configure a network, you must describe its configuration to the system. The system
initialization routines that we discussed on page 524 include a significant portion that sets
up the network environment. In addition, the system contains a number of standard IP
configuration files that define your system’sviewofthe network. If you didn’tconfigure
the network when you installed your system, you can still do it now. Log in as root and
start sysinstall.Select the Index,then Network Interfaces.You will see the menu
of Figure 17-1, which is the same as in Figure 6-4 on page 97. On a standard 80x25
display it requires scrolling to see the entire menu. The only real network board on this

list is xl0,the Ethernet board. The others are standard hardware that can also be used as
network interfaces.
netsetup.mm,v v4.15 (2003/04/02 06:50:16) 297
Networ k configuration with sysinstall 298
2April 2003, 17:00:47 The Complete FreeBSD (../tools/tmac.Mn), page 298
Figure17-1: Network setup menu
Choose the Ethernet board, xl0 Youget a question about whether you want to use IPv6
configuration. This book we doesn’tdiscuss IPv6, so answer No.Nextyou get a question
about DHCP configuration. We discuss DHCP configuration on page 302. If you already
have a DHCP server set up, you may prefer to answer Yes to this question, which is all
you need to do. If you answer No,the next menu asks us to set the internet parameters.
Figure 17-2 shows the network configuration menu after filling in the values.
Figure17-2: Network configuration menu
netsetup.mm,v v4.15 (2003/04/02 06:50:16)
299 Chapter 17: Configuring the local networ k
2April 2003, 17:00:47 The Complete FreeBSD (../tools/tmac.Mn), page 299
Specify the fully qualified local host name. When you tab to the Domain: field, the
domain is filled in automatically.Wehav e chosen to call this machine presto,and the
domain is example.org.Inother words, the full name of the machine is presto.exam-
ple.org.Its IP address is 223.147.37.2.Inthis configuration, all access to the outside
world goes via gw.example.org,which has the IP address 223.147.37.5.The name
server is located on the same host, presto.example.org.Ifthe name server isn’trunning
when this information is needed, we must specify all addresses in numeric form, as
shown.
What happens if you don’thav e adomain name? If you’re connecting to the global
Internet, you should go out and get one—see page 318. But in the meantime, don’tfake
it. Just leave the fields empty.Ifyou’re not connecting to the Internet, of course, it
doesn’tmakemuch difference what name you choose.
As is usual for a class C network, the net mask is 255.255.255.0.You don’tneed to fill
in this information—if you leave this field without filling it in, sysinstall inserts it for

you. Normally,asinthis case, you wouldn’tneed anyadditional options to ifconfig.
sysinstall savesconfiguration information in /etc/rc.conf.When the system starts, the
startup scripts use this information to configure the network. It also optionally starts the
interface immediately.Inthe next section we’ll look at the commands it uses to perform
this function.
Manual network configuration
Usually FreeBSD configures your network automatically when it boots. To doso, it uses
the configuration files in /etc.Sowhy doitmanually? There are several reasons:
• It makes it easier to create and maintain the configuration files if you knowwhat’s
going on behind the scenes.
• It makes it easier to modify something ‘‘on the fly.’’You don’thav e to reboot just
because you have changed your network configuration.
• With this information, you can edit the configuration files directly rather than use the
menu interface, which savesalot of time.
We spend a lot of time discussing this point on the FreeBSD mailing lists. One thing’sfor sure:
neither method of configuration is perfect. Both menu-based and text-file–based configuration
schemes offer you ample opportunity to shoot yourself in the foot. But at the moment, the
configuration file system is easier to check if you understand what’sgoing on.That’sthe reason
for the rest of this chapter.
In this section, we’ll look at the manual way to do things first, and then we’ll see howto
put it in the configuration files so that it gets done automatically next time. Youcan find
asummary of the configuration files and their contents on page 545.
netsetup.mm,v v4.15 (2003/04/02 06:50:16)
Manual networ k configuration 300
2April 2003, 17:00:47 The Complete FreeBSD (../tools/tmac.Mn), page 300
Describing your network
In Table 16-7 on page 294, we sawthat systems connect to networks via network
interfaces.The kernel detects the interfaces automatically when it starts, but you still
need to tell it what interfaces are connected to which networks, and evenmore
importantly,which address your system has on each network. In addition, if the network

is a broadcast network, such as an Ethernet, you need to specify a range of addresses that
can be reached directly on that network. As we sawonpage 290, we perform this
selection with the network mask.
Ethernet interfaces
Once we have understood these concepts, it’srelatively simple to use the ifconfig
program to set them. Forexample, for the Ethernet interface on system gw,with IP
address 223.147.37.5,weneed to configure interface dc0.The network mask is the
standard value for a class C network, 255.255.255.0.That’sall we need to know:
# ifconfig dc0 inet 223.147.37.5 netmask 255.255.255.0 up
In fact, this is more than you usually need. The inet tells the interface to use Internet
protocol Version 4 (the default), and up tells it to bring it up (which it does anyway). In
addition, this is a class C network address, so the net mask defaults to 255.255.255.0.
As a result, you can abbreviate this to:
# ifconfig dc0 223.147.37.5
Note that this is different from what Linux requires. With Linux you must supply explicit
netmask and broadcast address specifications.
As we sawonpage 290, it has become typical to abbreviate net masks to the character /
followed by the number of 1 bits set in the network mask. ifconfig understands this
usage, so if you wanted to set a non-standard network mask of, say, 255.255.255.240,
which has 28 bits set, you could write:
# ifconfig dc0 223.147.37.5/28
Point-to-point interfaces
With a point-to-point interface, the software currently requires you to specify the IP
address of the other end of the link as well. As we shall see in Chapter 20, there is no
good reason to do this, but ifconfig insists on it. In addition, we need the network mask
for a non-broadcast medium. The value is obvious:
1
you can reach exactly one address at
the other end, so it must be 255.255.255.255.With this information, we could
configure the PPP interface on gw:

1. Well, you’dthink it was obvious. We’ll see on page 345 that some people think it should be something else.
netsetup.mm,v v4.15 (2003/04/02 06:50:16)
301 Chapter 17: Configuring the local networ k
2April 2003, 17:00:47 The Complete FreeBSD (../tools/tmac.Mn), page 301
# ifconfig tun0 139.130.136.133 139.130.136.129 netmask 255.255.255.255
In fact, this is almost nevernecessary; in Chapter 20 we’ll see that the PPP software
usually sets the configuration automatically.
The loopbackinterface
The IP protocols require you to use an address to communicate with every system—even
your own system. Theoretically,you could communicate with your system via the an
Ethernet interface, but this is relatively slow: the data would have togothrough the
network stack. Instead, there is a special interface for communicating with other
processes in the same system, the loopbackinterface.Its name is lo0,and it has the
address 127.0.0.1.It’sstraightforward enough to configure:
# ifconfig lo0 127.0.0.1
In fact, though, you don’tevenneed to do this much work: the system automatically sets
it up at boot time.
Checking the interface configuration
ifconfig doesn’tjust set the configuration: you can also use it to check the configuration.
It’sagood idea to do this after you change something:
$ ifconfig
dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 223.147.37.5 netmask 0xffffff00 broadcast 223.147.37.255
inet6 fe80::280:c6ff:fef9:d3fa%dc0 prefixlen 64 scopeid 0x1
ether 00:80:c6:f9:d3:fa
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet6 ::1 prefixlen 128

inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
inet 127.0.0.1 netmask 0xff000000
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
inet 139.130.136.133 --> 139.130.136.129 netmask 0xffffffff
Other BSD systems require you to write ifconfig -a.tolist the configuration of all interfaces, and
FreeBSD still accepts it. Some other UNIX systems, particularly System V,don’tunderstand even
this flag.
There are a number of things to note here:
• The dc0 interface has both an IPv4 address (inet)and a corresponding IPv6 address
(inet6). It also specifies the Ethernet address (ether 00:80:c6:f9:d3:fa). It is
capable of negotiating 10 Mb/s, 100 Mb/s half duplexand 100 Mb/s full duplex. It’s
connected to a switch, so it’scurrently running 100 Mb/s full duplex.
• The interface lp0 is the the PLIP interface for connections via the parallel port. It is
not configured (in other words, it has not been set up for operation).
netsetup.mm,v v4.15 (2003/04/02 06:50:16)
Manual networ k configuration 302
2April 2003, 17:00:47 The Complete FreeBSD (../tools/tmac.Mn), page 302
• We’v e already seen the loopback interface lo0.
• There is also a tun0 interface for PPP.
The configuration files
The system startup scripts summarize this configuration information in a number of
configuration variables.See Chapter 29 for more details. At the moment, the following
variables are of interest to us:
• hostname is the name of the host. Youshould have set it when you installed the
system (see page 87). Youcan also set it manually with the hostname command:
# hostname -s gw.example.org
• Foreach interface, a variable of the form ifconfig_interface contains the
parameters to be passed to ifconfig to configure that interface.
Previously,FreeBSD also required you to set a variable network_interfaces,alist of
the names of the interfaces to be configured. This variable nowdefaults to the value

auto to specify that all interfaces should be configured. Youonly need to change it if
you specifically want to exclude an interface from configuration.
For gw,weput the following information in /etc/rc.conf :
hostname="gw.example.org"
ifconfig_dc0="inet 223.147.37.5"
We don’tconfigure the tun0 interface here; as we’ll see in Chapter 20, the PPP setup
works differently.
Automatic configuration with DHCP
Maintaining the network configurations for a number of machines can be a pain,
especially if they’re laptops that come and go. There’sanalternative for larger networks:
use DHCP,the Dynamic Host Configuration Protocol.DHCP enables a machine to get
configuration information automatically from the network. The concept is expandable,
buttypically you get an IP address and net mask and the names of the default name
servers and routers. In terms of the configuration we’ve seen so far,this replaces running
the ifconfig and route programs, and also the file /etc/resolv.conf,which describes the
locations of name servers. We’ll look at it on page 366.
There are twoparts to DHCP: the client and the server.
netsetup.mm,v v4.15 (2003/04/02 06:50:16)
303 Chapter 17: Configuring the local networ k
2April 2003, 17:00:47 The Complete FreeBSD (../tools/tmac.Mn), page 303
DHCP client
To get a configuration, you run dhclient.Inprevious releases of FreeBSD, dhclient
printed out information about the addresses it received. In Release 5, it does not print
anything. Simply start it with the name of the interface:
# dhclient dc0
To assign an address automatically at boot time, put the special value DHCP in the
ifconfig_dc0 variable:
ifconfig_dc0=DHCP
DHCP server
DHCP requires a server.The server is not included as part of the base system; instead,

install the net/isc-dhcp3 port:
# cd /usr/ports/net/isc-dhcp3
# make install
To configure dhcpd,edit the configuration file /usr/local/etc/isc-dhcpd.conf.Here’san
example:
ddns-update-style ad-hoc;
#100 Mb/s Ethernet
subnet 223.147.37.0 netmask 255.255.255.0 {
range 223.147.37.90 223.147.37.110;
option domain-name-servers freebie.example.com, presto.example.com;
option domain-name "example.com";
option routers gw.example.com;
option subnet-mask 255.255.255.0;
option broadcast-address 223.147.37.255;
default-lease-time 86400;
max-lease-time 259200;
use-host-decl-names on; use the specified name as host name
host andante {
hardware ethernet 0:50:da:cf:7:35;
}
}
This configuration file tells dhcpd:
• To dynamically allocate IP addresses in the range 223.147.37.90 to
223.147.37.110 (range keyword).
• That the domain name servers are freebie.example.com and andante.example.com.
We’lllook at domain name servers in Chapter 21.
• The net mask and the broadcast address.
The variables default-lease-time and max-lease-time,which are specified in
seconds, determine howlong it will be before a system checks its configuration. The
values here represent one day and three days respectively.

netsetup.mm,v v4.15 (2003/04/02 06:50:16)

×