source: chapter07/network.xml@ b06ca36

10.0 10.0-rc1 10.1 10.1-rc1 11.0 11.0-rc1 11.0-rc2 11.0-rc3 11.1 11.1-rc1 11.2 11.2-rc1 11.3 11.3-rc1 12.0 12.0-rc1 12.1 12.1-rc1 6.3 6.4 6.5 6.6 6.7 6.8 7.0 7.1 7.2 7.3 7.4 7.5 7.5-systemd 7.6 7.6-systemd 7.7 7.7-systemd 7.8 7.8-systemd 7.9 7.9-systemd 8.0 8.1 8.2 8.3 8.4 9.0 9.1 arm bdubbs/gcc13 ml-11.0 multilib renodr/libudev-from-systemd s6-init trunk xry111/arm64 xry111/arm64-12.0 xry111/clfs-ng xry111/lfs-next xry111/loongarch xry111/loongarch-12.0 xry111/loongarch-12.1 xry111/mips64el xry111/pip3 xry111/rust-wip-20221008 xry111/update-glibc
Last change on this file since b06ca36 was b06ca36, checked in by Manuel Canales Esparcia <manuel@…>, 17 years ago

Updated book sources to use DocBook-XML DTD 4.5

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@7970 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

  • Property mode set to 100644
File size: 8.4 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../general.ent">
5 %general-entities;
6]>
7
8<sect1 id="ch-scripts-network">
9 <?dbhtml filename="network.html"?>
10
11 <title>Configuring the network Script</title>
12
13 <indexterm zone="ch-scripts-network">
14 <primary sortas="d-network">network</primary>
15 <secondary>configuring</secondary></indexterm>
16
17 <para>This section only applies if a network card is to be
18 configured.</para>
19
20 <para>If a network card will not be used, there is likely no need to
21 create any configuration files relating to network cards. If that is
22 the case, remove the <filename class="symlink">network</filename>
23 symlinks from all run-level directories (<filename
24 class="directory">/etc/rc.d/rc*.d</filename>).</para>
25
26 <sect2>
27 <title>Creating stable names for network interfaces</title>
28
29 <para>With Udev and modular network drivers, the network interface numbering
30 is not persistent across reboots by default, because the drivers are loaded
31 in parallel and, thus, in random order. For example, on a computer having
32 two network cards made by Intel and Realtek, the network card manufactured
33 by Intel may become <filename class="devicefile">eth0</filename> and the
34 Realtek card becomes <filename class="devicefile">eth1</filename>. In some
35 cases, after a reboot the cards get renumbered the other way around. To
36 avoid this, Udev comes with a script and some rules to assign stable names
37 to network cards based on their MAC address.</para>
38
39 <para>Pre-generate the rules to ensure the same names get assigned to the
40 same devices at every boot, including the first:</para>
41
42<screen><userinput>/lib/udev/write_net_rules all_interfaces</userinput></screen>
43
44 <para>Now, inspect the <filename>/etc/udev/rules.d/70-persistent-net.rules</filename>
45 file, to find out which name was assigned to which network device:</para>
46
47<screen><userinput>cat /etc/udev/rules.d/70-persistent-net.rules</userinput></screen>
48
49 <para>Each NIC takes up two lines in the file. The first line is a
50 description of the NIC itself, showing its hardware IDs (e.g. its PCI
51 vendor and device IDs, if it's a PCI card), along with its driver in
52 parentheses, if the driver can be found. This line is a comment; neither
53 the hardware ID nor the driver is used to determine which name to give an
54 interface. The second line is the Udev rule that matches this NIC and
55 actually assigns it a name.</para>
56
57 <para>All Udev rules are made up of several keys, separated by commas and
58 optional whitespace. This rule's keys and an explanations of each of them
59 are as follows:</para>
60
61 <itemizedlist>
62 <listitem>
63 <para><literal>SUBSYSTEM=="net"</literal> - This tells Udev to ignore
64 devices that are not network cards.</para>
65 </listitem>
66 <listitem>
67 <para><literal>DRIVERS=="?*"</literal> - This exists so that Udev will
68 ignore VLAN or bridge sub-interfaces (because these sub-interfaces do
69 not have drivers). These sub-interfaces are skipped because the name
70 that would be assigned would collide with their parent devices.</para>
71 </listitem>
72 <listitem>
73 <para><literal>ATTRS{type}=="1"</literal> - Optional. This key will
74 only be added if this NIC is a wireless NIC whose driver creates
75 multiple virtual interfaces; it ensures the rule only matches the
76 primary interface. The secondary interfaces are not matched for the
77 same reason that VLAN and bridge sub-interfaces are not matched: there
78 would be a name collision.</para>
79 </listitem>
80 <listitem>
81 <para><literal>ATTRS{address}</literal> - The value of this key is the
82 NIC's MAC address.</para>
83 </listitem>
84 <listitem>
85 <para><literal>NAME</literal> - The value of this key is the name that
86 Udev will assign to this interface.</para>
87 </listitem>
88 </itemizedlist>
89
90 <para>The value of <literal>NAME</literal> is the important part. Make sure
91 you know which name has been assigned to each of your network cards before
92 proceeding, and be sure to use that <literal>NAME</literal> value when
93 creating your configuration files below.</para>
94
95 </sect2>
96
97 <sect2>
98 <title>Creating Network Interface Configuration Files</title>
99
100 <para>Which interfaces are brought up and down by the network script
101 depends on the files and directories in the <filename
102 class="directory">/etc/sysconfig/network-devices</filename> hierarchy.
103 This directory should contain a sub-directory for each interface to be
104 configured, such as <filename>ifconfig.xyz</filename>, where
105 <quote>xyz</quote> is a network interface name. Inside this directory
106 would be files defining the attributes to this interface, such as its IP
107 address(es), subnet masks, and so forth.</para>
108
109 <para>The following command creates a sample <filename>ipv4</filename>
110 file for the <emphasis>eth0</emphasis> device:</para>
111
112<screen><userinput>cd /etc/sysconfig/network-devices &amp;&amp;
113mkdir -v ifconfig.eth0 &amp;&amp;
114cat &gt; ifconfig.eth0/ipv4 &lt;&lt; "EOF"
115<literal>ONBOOT=yes
116SERVICE=ipv4-static
117IP=192.168.1.1
118GATEWAY=192.168.1.2
119PREFIX=24
120BROADCAST=192.168.1.255</literal>
121EOF</userinput></screen>
122
123 <para>The values of these variables must be changed in every file to match
124 the proper setup. If the <envar>ONBOOT</envar> variable is set to
125 <quote>yes</quote> the network script will bring up the Network Interface
126 Card (NIC) during booting of the system. If set to anything but
127 <quote>yes</quote> the NIC will be ignored by the network script and not
128 be brought up.</para>
129
130 <para>The <envar>SERVICE</envar> variable defines the method used for
131 obtaining the IP address. The LFS-Bootscripts package has a modular IP
132 assignment format, and creating additional files in the <filename
133 class="directory">/etc/sysconfig/network-devices/services</filename>
134 directory allows other IP assignment methods. This is commonly used for
135 Dynamic Host Configuration Protocol (DHCP), which is addressed in the
136 BLFS book.</para>
137
138 <para>The <envar>GATEWAY</envar> variable should contain the default
139 gateway IP address, if one is present. If not, then comment out the
140 variable entirely.</para>
141
142 <para>The <envar>PREFIX</envar> variable needs to contain the number of
143 bits used in the subnet. Each octet in an IP address is 8 bits. If the
144 subnet's netmask is 255.255.255.0, then it is using the first three octets
145 (24 bits) to specify the network number. If the netmask is 255.255.255.240,
146 it would be using the first 28 bits. Prefixes longer than 24 bits are
147 commonly used by DSL and cable-based Internet Service Providers (ISPs).
148 In this example (PREFIX=24), the netmask is 255.255.255.0. Adjust the
149 <envar>PREFIX</envar> variable according to your specific subnet.</para>
150
151 </sect2>
152
153 <sect2 id="resolv.conf">
154 <title>Creating the /etc/resolv.conf File</title>
155
156 <indexterm zone="resolv.conf">
157 <primary sortas="e-/etc/resolv.conf">/etc/resolv.conf</primary>
158 </indexterm>
159
160 <para>If the system is going to be connected to the Internet, it will
161 need some means of Domain Name Service (DNS) name resolution to
162 resolve Internet domain names to IP addresses, and vice versa. This is
163 best achieved by placing the IP address of the DNS server, available
164 from the ISP or network administrator, into
165 <filename>/etc/resolv.conf</filename>. Create the file by running the
166 following:</para>
167
168<screen><userinput>cat &gt; /etc/resolv.conf &lt;&lt; "EOF"
169<literal># Begin /etc/resolv.conf
170
171domain <replaceable>&lt;Your Domain Name&gt;</replaceable>
172nameserver <replaceable>&lt;IP address of your primary nameserver&gt;</replaceable>
173nameserver <replaceable>&lt;IP address of your secondary nameserver&gt;</replaceable>
174
175# End /etc/resolv.conf</literal>
176EOF</userinput></screen>
177
178 <para>Replace <replaceable>&lt;IP address of the nameserver&gt;</replaceable>
179 with the IP address of the DNS most appropriate for the setup. There will
180 often be more than one entry (requirements demand secondary servers for
181 fallback capability). If you only need or want one DNS server, remove the
182 second <emphasis>nameserver</emphasis> line from the file. The IP address
183 may also be a router on the local network.</para>
184
185 </sect2>
186
187</sect1>
Note: See TracBrowser for help on using the repository browser.