Date: Tue, 4 Mar 2014 22:40:58 +0000 (UTC) From: Dru Lavigne <dru@FreeBSD.org> To: doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org Subject: svn commit: r44123 - head/en_US.ISO8859-1/books/handbook/advanced-networking Message-ID: <201403042240.s24MewvZ051545@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: dru Date: Tue Mar 4 22:40:57 2014 New Revision: 44123 URL: http://svnweb.freebsd.org/changeset/doc/44123 Log: Start to merge content. Many more commits needed to get this into a logical flow. Sponsored by: iXsystems Modified: head/en_US.ISO8859-1/books/handbook/advanced-networking/chapter.xml Modified: head/en_US.ISO8859-1/books/handbook/advanced-networking/chapter.xml ============================================================================== --- head/en_US.ISO8859-1/books/handbook/advanced-networking/chapter.xml Tue Mar 4 20:54:36 2014 (r44122) +++ head/en_US.ISO8859-1/books/handbook/advanced-networking/chapter.xml Tue Mar 4 22:40:57 2014 (r44123) @@ -3862,24 +3862,34 @@ ifconfig_<literal>lagg0</literal>="laggp is relatively easy to set up because all the necessary elements are readily available:</para> + <itemizedlist> + <listitem> <para>The &intel; Preboot eXecution Environment (<acronym>PXE</acronym>) can be used to load the kernel over the network. It provides a form of smart boot <acronym>ROM</acronym> built into some networking cards or motherboards. See &man.pxeboot.8; for more details.</para> + </listitem> + <listitem> <para>A sample script (<filename>/usr/share/examples/diskless/clone_root</filename>) eases the creation and maintenance of the workstation's root file system on the server. The script will probably require a little customization.</para> + </listitem> + <listitem> <para>Standard system startup files exist in <filename>/etc</filename> to detect and support a diskless system startup.</para> + </listitem> + <listitem> <para>Swapping, if needed, can be done either to an <acronym>NFS</acronym> file or to a local disk.</para> + </listitem> +</itemizedlist> <para>There are many ways to set up diskless workstations. Many elements are involved, and most can be customized to suit local @@ -3893,12 +3903,16 @@ ifconfig_<literal>lagg0</literal>="laggp <para>The diskless workstations use a shared, read-only <filename>/</filename> and <filename>/usr</filename>.</para> + </listitem> + <listitem> <para>The root file system is a copy of a standard &os; root, with some configuration files overridden by ones specific to diskless operation or, possibly, to the workstation they belong to.</para> + </listitem> + <listitem> <para>The parts of the root which have to be writable are overlaid with &man.md.4; file systems. Any changes will be lost when the system reboots.</para> @@ -3914,28 +3928,8 @@ ifconfig_<literal>lagg0</literal>="laggp <sect2> <title>Background Information</title> - <para>Setting up diskless workstations is both relatively - straightforward and prone to errors. These are sometimes - difficult to diagnose for a number of reasons. For - example:</para> - - <itemizedlist> - <listitem> - <para>Compile time options may determine different behaviors - at runtime.</para> - </listitem> - - <listitem> - <para>Error messages are often cryptic or totally - absent.</para> - </listitem> - </itemizedlist> - - <para>In this context, having some knowledge of the background - mechanisms involved is useful to solve the problems that may - arise.</para> - - <para>Several operations need to be performed for a successful + <para>When setting up diskless workstations, several operations + need to be performed for a successful bootstrap:</para> <itemizedlist> @@ -3950,9 +3944,7 @@ ifconfig_<literal>lagg0</literal>="laggp configure a system to use only <acronym>BOOTP</acronym> and &man.bootpd.8; is included in the base &os; system.</para> - </listitem> - <listitem> <para><acronym>DHCP</acronym> has a number of advantages over <acronym>BOOTP</acronym> such as nicer configuration files and support for <acronym>PXE</acronym>. This @@ -3964,16 +3956,13 @@ ifconfig_<literal>lagg0</literal>="laggp </listitem> <listitem> - <para>The machine needs to transfer one or several programs - to local memory. Either <acronym>TFTP</acronym> or - <acronym>NFS</acronym> are used. The choice between - <acronym>TFTP</acronym> and <acronym>NFS</acronym> is a - compile time option in several places. A common source of - error is to specify filenames for the wrong protocol. - <acronym>TFTP</acronym> typically transfers all files from - a single directory on the server and expects filenames - relative to this directory. <acronym>NFS</acronym> needs - absolute file paths.</para> + <para>The machine needs to boot the loader using + <acronym>TFTP</acronym>.</para> + </listitem> + + <listitem> + <para>The root filesystem needs to be loaded using + <acronym>NFS</acronym>.</para> </listitem> <listitem> @@ -3997,15 +3986,21 @@ ifconfig_<literal>lagg0</literal>="laggp <para>Refer to &man.diskless.8; for more information.</para> </sect2> - <sect2> - <title>Configuration Using <application>ISC - DHCP</application></title> + <sect2 xml:id="network-pxe-setting-up-dhcp"> + <title>Configuring the <application>ISC + DHCP</application> Server</title> <indexterm> <primary>DHCP</primary> <secondary>diskless operation</secondary> </indexterm> + <para><acronym>PXE</acronym> requires a <acronym>TFTP</acronym> + and a <acronym>DHCP</acronym> server to be set up. The + <acronym>DHCP</acronym> server does not need to be the same + machine as the <acronym>TFTP</acronym> server, but it needs + to be accessible in the network.</para> + <para>The <application>ISC DHCP</application> server can answer both <acronym>BOOTP</acronym> and <acronym>DHCP</acronym> requests.</para> @@ -4013,56 +4008,62 @@ ifconfig_<literal>lagg0</literal>="laggp <para><application>ISC DHCP</application> is not part of the base system. Install the <package>net/isc-dhcp42-server</package> port or - package.</para> + package, following the instructions documented at <xref + linkend="network-dhcp-server"/>. Make sure that + <filename>/etc/rc.conf</filename> and + <filename>/usr/local/etc/dhcpd.conf</filename> are + correctly configured..</para> <para>Once <application>ISC DHCP</application> is installed, edit its configuration file, - <filename>/usr/local/etc/dhcpd.conf</filename>. Here - follows a commented example for <acronym>PXE</acronym> host - <systemitem>corbieres</systemitem>:</para> - - <programlisting>default-lease-time 600; -max-lease-time 7200; -authoritative; - -option domain-name "example.com"; -option domain-name-servers 192.168.4.1; -option routers 192.168.4.1; - -subnet 192.168.4.0 netmask 255.255.255.0 { - use-host-decl-names on; <co xml:id="co-dhcp-host-name"/> - option subnet-mask 255.255.255.0; - option broadcast-address 192.168.4.255; - - host corbieres { - hardware ethernet 00:02:b3:27:62:df; - fixed-address corbieres.example.com; - next-server 192.168.4.4; <co xml:id="co-dhcp-next-server"/> - filename "pxeboot"; <co xml:id="co-dhcp-filename"/> - option root-path "192.168.4.4:/data/misc/diskless"; <co xml:id="co-dhcp-root-path"/> - } + <filename>/usr/local/etc/dhcpd.conf</filename>. Configure + the <literal>next-server</literal>, + <literal>filename</literal>, and + <literal>option root-path</literal> settings to specify + the <acronym>TFTP</acronym> server <acronym>IP</acronym> + address, the path to <filename>/boot/pxeboot</filename> + in <acronym>TFTP</acronym>, and the path to the + <acronym>NFS</acronym> root file system. Here is a sample + <filename>dhcpd.conf</filename> setup:</para> + + <programlisting>subnet 192.168.0.0 netmask 255.255.255.0 { + range 192.168.0.2 192.168.0.3 ; + option subnet-mask 255.255.255.0 ; + option routers 192.168.0.1 ; + option broadcast-address 192.168.0.255 ; + option domain-name-servers 192.168.35.35, 192.168.35.36 ; + option domain-name "example.com"; + + # IP address of TFTP server + next-server 192.168.0.1 ; + + # path of boot loader obtained + # via tftp + filename "FreeBSD/install/boot/pxeboot" ; + + # pxeboot boot loader will try to NFS mount this directory for root FS + option root-path "192.168.0.1:/b/tftpboot/FreeBSD/install/" ; + }</programlisting> - <calloutlist> - <callout arearefs="co-dhcp-host-name"> + <!-- + This option still needed? + host corbieres { <para>This option tells <application>dhcpd</application> to send the value in the <literal>host</literal> declarations as the hostname for the diskless host. An alternate way would be to add an <literal>option host-name corbieres</literal> inside the <literal>host</literal> declarations.</para> - </callout> + --> - <callout arearefs="co-dhcp-next-server"> <para>The <literal>next-server</literal> directive designates the <acronym>TFTP</acronym> or <acronym>NFS</acronym> server to use for loading &man.loader.8; or the kernel file. The default is to use the same host as the <acronym>DHCP</acronym> server.</para> - </callout> - <callout arearefs="co-dhcp-filename"> <para>The <literal>filename</literal> directive defines the file that <acronym>PXE</acronym> will load for the next execution step. It must be specified according @@ -4078,9 +4079,7 @@ subnet 192.168.4.0 netmask 255.255.255.0 <filename>GENERIC</filename> kernel, it is possible to use <acronym>PXE</acronym> to boot from a remote CD-ROM.</para> - </callout> - <callout arearefs="co-dhcp-root-path"> <para>The <literal>root-path</literal> option defines the path to the root file system, in usual <acronym>NFS</acronym> notation. When using @@ -4089,27 +4088,40 @@ subnet 192.168.4.0 netmask 255.255.255.0 <acronym>BOOTP</acronym> kernel option is not enabled. The <acronym>NFS</acronym> server will then be the same as the <acronym>TFTP</acronym> one.</para> - </callout> - </calloutlist> </sect2> <sect2> - <title>Configuring the <acronym>TFTP</acronym> and - <acronym>NFS</acronym> Servers</title> + <title>Configuring the + <acronym>NFS</acronym> Server</title> - <para>By default, &man.pxeboot.8; loads the kernel via - <acronym>NFS</acronym>. It can be compiled to use - <acronym>TFTP</acronym> instead by specifying the - <literal>LOADER_TFTP_SUPPORT</literal> option in - <filename>/etc/make.conf</filename>. See the comments in - <filename>/usr/share/examples/etc/make.conf</filename> for - instructions.</para> - - <para>There are two other <filename>make.conf</filename> - options which may be useful for setting up a serial console - diskless machine: - <literal>BOOT_PXELDR_PROBE_KEYBOARD</literal>, and - <literal>BOOT_PXELDR_ALWAYS_SERIAL</literal>.</para> + <para>Enable + <acronym>NFS</acronym> and export the appropriate file + system on the <acronym>NFS</acronym> server.</para> + + <para>Add this line to + <filename>/etc/rc.conf</filename>:</para> + + <programlisting>nfs_server_enable="YES"</programlisting> + + <para>Export the file system where the diskless root + directory is located by adding the following to + <filename>/etc/exports</filename>. Adjust the + mount point and replace <replaceable> + corbieres</replaceable> with the names of the diskless + workstations:</para> + + <programlisting><replaceable>/data/misc</replaceable> -alldirs -ro <replaceable>margaux corbieres</replaceable></programlisting> + + <para>Tell &man.mountd.8; to reread its configuration + file. If <acronym>NFS</acronym> is enabled in + <filename>/etc/rc.conf</filename>, it is recommended + to reboot instead.</para> + + <screen>&prompt.root; <userinput>service mountd restart</userinput></screen> + </sect2> + + <sect2> + <title>Configuring the <acronym>TFTP</acronym> Server</title> <para>To use <acronym>PXE</acronym> when the machine starts, select the <literal>Boot from network</literal> option in @@ -4125,9 +4137,7 @@ subnet 192.168.4.0 netmask 255.255.255.0 <secondary>diskless operation</secondary> </indexterm> - <para>If <acronym>PXE</acronym> is configured to use - <acronym>TFTP</acronym>, enable &man.tftpd.8; on the file - server:</para> + <para>To enable &man.tftpd.8;, perform the following steps:</para> <procedure> <step> @@ -4166,40 +4176,7 @@ subnet 192.168.4.0 netmask 255.255.255.0 anywhere on the server. Make sure that the location is set in both <filename>/etc/inetd.conf</filename> and <filename>/usr/local/etc/dhcpd.conf</filename>.</para> - - <para>Enable - <acronym>NFS</acronym> and export the appropriate file - system on the <acronym>NFS</acronym> server.</para> - - <procedure> - <step> - <para>Add this line to - <filename>/etc/rc.conf</filename>:</para> - - <programlisting>nfs_server_enable="YES"</programlisting> - </step> - - <step> - <para>Export the file system where the diskless root - directory is located by adding the following to - <filename>/etc/exports</filename>. Adjust the - mount point and replace <replaceable> - corbieres</replaceable> with the names of the diskless - workstations:</para> - - <programlisting><replaceable>/data/misc</replaceable> -alldirs -ro <replaceable>margaux corbieres</replaceable></programlisting> - </step> - - <step> - <para>Tell &man.mountd.8; to reread its configuration - file. If <acronym>NFS</acronym> is enabled in - <filename>/etc/rc.conf</filename>, it is recommended - to reboot instead.</para> - - <screen>&prompt.root; <userinput>service mountd restart</userinput></screen> - </step> - </procedure> - </sect2> + </sect2> <sect2> <title>Preparing the Root File System</title> @@ -4520,59 +4497,6 @@ myhost.example.com:/b/tftpboot/FreeBSD/i them.</para> </sect2> - <sect2 xml:id="network-pxe-setting-up-dhcp"> - <title>Setting up the <acronym>DHCP</acronym> Server</title> - - <para><acronym>PXE</acronym> requires a <acronym>TFTP</acronym> - and a <acronym>DHCP</acronym> server to be set up. The - <acronym>DHCP</acronym> server does not need to be the same - machine as the <acronym>TFTP</acronym> server, but it needs - to be accessible in the network.</para> - - <procedure> - <step> - <para>Install the <acronym>DHCP</acronym> server by - following the instructions documented at <xref - linkend="network-dhcp-server"/>. Make sure that - <filename>/etc/rc.conf</filename> and - <filename>/usr/local/etc/dhcpd.conf</filename> are - correctly configured.</para> - </step> - - <step> - <para>In <filename>/usr/local/etc/dhcpd.conf</filename>, - configure the <literal>next-server</literal>, - <literal>filename</literal>, and - <literal>option root-path</literal> settings to specify - the <acronym>TFTP</acronym> server <acronym>IP</acronym> - address, the path to <filename>/boot/pxeboot</filename> - in <acronym>TFTP</acronym>, and the path to the - <acronym>NFS</acronym> root file system. Here is a sample - <filename>dhcpd.conf</filename> setup:</para> - - <programlisting>subnet 192.168.0.0 netmask 255.255.255.0 { - range 192.168.0.2 192.168.0.3 ; - option subnet-mask 255.255.255.0 ; - option routers 192.168.0.1 ; - option broadcast-address 192.168.0.255 ; - option domain-name-servers 192.168.35.35, 192.168.35.36 ; - option domain-name "example.com"; - - # IP address of TFTP server - next-server 192.168.0.1 ; - - # path of boot loader obtained - # via tftp - filename "FreeBSD/install/boot/pxeboot" ; - - # pxeboot boot loader will try to NFS mount this directory for root FS - option root-path "192.168.0.1:/b/tftpboot/FreeBSD/install/" ; - -}</programlisting> - </step> - </procedure> - </sect2> - <sect2> <title>Configuring the <acronym>PXE</acronym> Client and Debugging Connection Problems</title>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201403042240.s24MewvZ051545>