MFen: r36946 -> r38600
Language improvements. [1] Merging work done by: delphij, loader Submitted by: fuzhli (https://www.freebsdchina.org/forum/viewtopic.php?t=54463) [1] Obtained from: The FreeBSD Simplified Chinese Project
This commit is contained in:
parent
b74de22c77
commit
65e4349dad
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=39524
1 changed files with 418 additions and 90 deletions
|
@ -2,7 +2,7 @@
|
|||
The FreeBSD Documentation Project
|
||||
The FreeBSD Chinese Documentation Project
|
||||
|
||||
Original revision: 1.436
|
||||
Original revision: r38600
|
||||
$FreeBSD$
|
||||
-->
|
||||
|
||||
|
@ -33,6 +33,10 @@
|
|||
<para>如何为无盘机上配置网络启动。</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>如何配置从网络 PXE 启动一个 NFS 根文件系统。</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>如何配置网络地址转换 (NAT)。</para>
|
||||
</listitem>
|
||||
|
@ -325,7 +329,7 @@ host2.example.com link#1 UC 0 0
|
|||
的局域网里的,用于您那边的连接,对于 ISP
|
||||
的局域网里的其它机子,其路由会自动产生。
|
||||
因此,您就已经知道了如何到达机子 <hostid>T1-GW</hostid>,
|
||||
那么也就没必要中那一步了——发送通信给 ISP 服务器。</para>
|
||||
那么也就没必要中间那一步了——发送通信给 ISP 服务器。</para>
|
||||
|
||||
<para>通常使用地址 <hostid
|
||||
role="ipaddr">X.X.X.1</hostid> 做为一个局域网的网关。
|
||||
|
@ -507,8 +511,8 @@ Internet:
|
|||
Destination Gateway Flags Refs Use Netif Expire
|
||||
default 10.0.0.1 UGS 0 49378 xl0
|
||||
127.0.0.1 127.0.0.1 UH 0 6 lo0
|
||||
10.0.0/24 link#1 UC 0 0 xl0
|
||||
192.168.1/24 link#2 UC 0 0 xl1</screen>
|
||||
10.0.0.0/24 link#1 UC 0 0 xl0
|
||||
192.168.1.0/24 link#2 UC 0 0 xl1</screen>
|
||||
|
||||
<para>使用当前的路由表,<hostid>RouterA</hostid>
|
||||
是不能到达我们的内网——Internal Net 2 的。它没有到 <hostid
|
||||
|
@ -903,55 +907,54 @@ freebsdap 00:11:95:c3:0d:ac 1 54M -83:96 100 EPS WPA</screen>
|
|||
而 <literal>CAPS</literal> 字段则给出了网络类型及其提供的功能,
|
||||
其中包括:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><literal>E</literal></term>
|
||||
<table frame="none" pgwide="0">
|
||||
<title>通讯站功能代码</title>
|
||||
|
||||
<listitem>
|
||||
<para>Extended Service Set (ESS)。 表示通讯站是
|
||||
infrastructure 网络 (相对于 IBSS/ad-hoc 网络) 的成员。</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<tgroup cols="2">
|
||||
<thead>
|
||||
<row>
|
||||
<entry>功能代码</entry>
|
||||
<entry>含义</entry>
|
||||
</row>
|
||||
</thead>
|
||||
|
||||
<varlistentry>
|
||||
<term><literal>I</literal></term>
|
||||
|
||||
<listitem>
|
||||
<para>IBSS/ad-hoc 网络。 表示通讯站是 ad-hoc
|
||||
网络 (相对于 ESS 网络) 的成员。</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><literal>E</literal></entry>
|
||||
<entry>Extended Service Set (ESS)。 表示通讯站是
|
||||
infrastructure 网络 (相对于 IBSS/ad-hoc 网络) 的成员。</entry>
|
||||
</row>
|
||||
|
||||
<varlistentry>
|
||||
<term><literal>P</literal></term>
|
||||
<row>
|
||||
<entry><literal>I</literal></entry>
|
||||
<entry>IBSS/ad-hoc 网络。 表示通讯站是 ad-hoc
|
||||
网络 (相对于 ESS 网络) 的成员。</entry>
|
||||
</row>
|
||||
|
||||
<listitem>
|
||||
<para>私密。 在 BSS 中交换的全部数据帧均需保证数据保密性。
|
||||
<row>
|
||||
<entry><literal>P</literal></entry>
|
||||
<entry>私密。 在 BSS 中交换的全部数据帧均需保证数据保密性。
|
||||
这表示 BSS 需要通讯站使用加密算法,
|
||||
例如 WEP、 TKIP 或 AES-CCMP 来加密/解密与其他通讯站交换的数据帧。</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
例如 WEP、 TKIP 或 AES-CCMP 来加密/解密与其他通讯站交换的数据帧。</entry>
|
||||
</row>
|
||||
|
||||
<varlistentry>
|
||||
<term><literal>S</literal></term>
|
||||
|
||||
<listitem>
|
||||
<para>短前导码 (Short Preamble)。 表示网络采用的是短前导码
|
||||
<row>
|
||||
<entry><literal>S</literal></entry>
|
||||
<entry>短前导码 (Short Preamble)。 表示网络采用的是短前导码
|
||||
(由 802.11b High
|
||||
Rate/DSSS PHY 定义, 短前导码采用 56-位 同步字段,
|
||||
而不是在长前导码模式中所采用的 128-位 字段)。</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
而不是在长前导码模式中所采用的 128-位 字段)。</entry>
|
||||
</row>
|
||||
|
||||
<varlistentry>
|
||||
<term><literal>s</literal></term>
|
||||
|
||||
<listitem>
|
||||
<para>短碰撞槽时间 (Short slot time)。 表示由于不存在旧式 (802.11b)
|
||||
通讯站, 802.11g 网络正使用短碰撞槽时间。</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<row>
|
||||
<entry><literal>s</literal></entry>
|
||||
<entry>短碰撞槽时间 (Short slot time)。 表示由于不存在旧式 (802.11b)
|
||||
通讯站, 802.11g 网络正使用短碰撞槽时间。</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<para>要显示目前已知的网络, 可以使用下面的命令:</para>
|
||||
|
||||
|
@ -1067,7 +1070,7 @@ ifconfig_wlan0="authmode shared wepmode on weptxkey <replaceable>1</replaceable>
|
|||
<para>在您选定了无线访问点, 并配置了验证参数之后,
|
||||
还必须获得 IP 地址才能真正开始通讯。 多数时候,
|
||||
您会通过 DHCP 来获得无线 IP 地址。 要达到这个目的,
|
||||
只需简单地编辑 <filename>/etc/rc.conf</filename> 并在配置中加入
|
||||
需要编辑 <filename>/etc/rc.conf</filename> 并在配置中加入
|
||||
<literal>DHCP</literal>:</para>
|
||||
|
||||
<programlisting>wlans_ath0="wlan0"
|
||||
|
@ -1123,7 +1126,7 @@ ifconfig_wlan0="inet <replaceable>192.168.1.100</replaceable> netmask <replaceab
|
|||
以及一些其它的安全弱点。 WPA 采用了 802.1X 认证协议,
|
||||
并采用从多种与 WEP 不同的加密算法中选择一种来保证数据保密性。
|
||||
WPA 支持的唯一一种加密算法是 TKIP (临时密钥完整性协议),
|
||||
这是一种对 WEP 所采用的基本 RC4 加密算法的扩展,
|
||||
TKIP 是一种对 WEP 所采用的基本 RC4 加密算法的扩展,
|
||||
除此之外还提供了对检测到的入侵的响应机制。 TKIP
|
||||
被设计用来与旧式硬件一同工作, 只需要进行部分软件修改;
|
||||
它提供了一种改善安全性的折衷方案,
|
||||
|
@ -1177,7 +1180,7 @@ ifconfig_wlan0="inet <replaceable>192.168.1.100</replaceable> netmask <replaceab
|
|||
<programlisting>wlans_ath0="wlan0"
|
||||
ifconfig_wlan0="WPA DHCP"</programlisting>
|
||||
|
||||
<para>下面, 启用无线网络接口:</para>
|
||||
<para>下面启用无线网络接口:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput><filename>/etc/rc.d/netif</filename> start</userinput>
|
||||
Starting wpa_supplicant.
|
||||
|
@ -1229,15 +1232,16 @@ wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
|
|||
wme burst roaming MANUAL</screen>
|
||||
|
||||
<note>
|
||||
<para>如果 <filename>/etc/rc.conf</filename> 的配置中,
|
||||
使用了 <literal>ifconfig_wlan0="DHCP"</literal>,
|
||||
就不需要手工运行
|
||||
<command>dhclient</command> 命令了, 因为
|
||||
<command>dhclient</command> 将在
|
||||
<command>wpa_supplicant</command> 探测到密钥之后执行。</para>
|
||||
<para>如果在 <filename>/etc/rc.conf</filename> 中把
|
||||
<literal>ifconfig_wlan0</literal>
|
||||
设置成了 <literal>DHCP</literal>
|
||||
(像 <literal>ifconfig_wlan0="DHCP"</literal> 这样),
|
||||
那么在 <command>wpa_supplicant</command>
|
||||
连上了无线接入点 (AP) 之后,则会自动运行
|
||||
<command>dhclient</command>。</para>
|
||||
</note>
|
||||
|
||||
<para>在这个例子中, DHCP 并不可用, 您可以在
|
||||
<para>如果不打算使用 DHCP 或者 DHCP 不可用, 您可以在
|
||||
<command>wpa_supplicant</command> 为通讯站完成了身份认证之后,
|
||||
指定静态 IP 地址:</para>
|
||||
|
||||
|
@ -1264,15 +1268,15 @@ wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
|
|||
<sect5 id="network-wireless-wpa-eap-tls">
|
||||
<title>使用 EAP-TLS 的 WPA</title>
|
||||
|
||||
<para>使用 WPA 的第二种方式是使用 802.1X 后端验证服务器,
|
||||
<para>使用 WPA 的第二种方式是使用 802.1X 后端验证服务器。
|
||||
在这个例子中, WPA 也称作 企业-WPA,
|
||||
以便与安全性较差、 采用事先分发密钥的 个人-WPA 区分开来。
|
||||
在 企业-WPA 中, 验证操作是采用 EAP 完成的
|
||||
(可扩展认证协议)。</para>
|
||||
|
||||
<para>EAP 并未附带加密方法,
|
||||
<para>EAP 并未附带加密方法。
|
||||
因此设计者决定将 EAP 放在加密信道中进行传送。
|
||||
为此设计了许多 EAP 验证方法,
|
||||
目前有许多 EAP 验证方法,
|
||||
最常用的方法是 EAP-TLS、 EAP-TTLS 和
|
||||
EAP-PEAP。</para>
|
||||
|
||||
|
@ -1460,10 +1464,13 @@ wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
|
|||
<sect5 id="network-wireless-wpa-eap-peap">
|
||||
<title>使用 EAP-PEAP 的 WPA</title>
|
||||
|
||||
<para>PEAP (受保护的 EAP) 被设计用以替代 EAP-TTLS。
|
||||
有两种类型的 PEAP 方法, 最常用的是 PEAPv0/EAP-MSCHAPv2。
|
||||
在这篇文档余下的部分中, 术语 PEAP 是指这种 EAP 方法。
|
||||
PEAP 是在 EAP-TLS 之后最为常用的 EAP 标准,
|
||||
<note>
|
||||
<para>PEAPv0/EAP-MSCHAPv2 是最常见的 PEAP 方法。
|
||||
此文档的以下部分将使用 PEAP 指代这些方法。</para>
|
||||
</note>
|
||||
|
||||
<para>PEAP (受保护的 EAP) 被设计用以替代 EAP-TTLS,
|
||||
并且是在 EAP-TLS 之后最为常用的 EAP 标准。
|
||||
换言之, 如果您的网络中有多种不同的操作系统,
|
||||
PEAP 将是仅次于 EAP-TLS 的支持最广的标准。</para>
|
||||
|
||||
|
@ -1575,15 +1582,15 @@ wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
|
|||
密钥来进行数据传输。 这里我们使用第三个密钥。
|
||||
它必须与无线接入点的配置一致。
|
||||
如果你不清楚你的无线接入点,
|
||||
你应该尝试用 <literal>1</literal>
|
||||
尝试用 <literal>1</literal>
|
||||
(就是说第一个密钥)来设置这个变量。</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><literal>wepkey</literal> 表示设置所选的 WEP 密钥。
|
||||
<para><literal>wepkey</literal> 用于选择 WEP 密钥。
|
||||
其格式应为
|
||||
<replaceable>index:key</replaceable>, 如果没有给出 index 值,
|
||||
则默认为 <literal>1</literal>。 因此,
|
||||
<replaceable>index:key</replaceable>,
|
||||
key 默认为 <literal>1</literal>;
|
||||
如果需要设置的密钥不是第一个, 就必需指定 index 了。</para>
|
||||
|
||||
<note>
|
||||
|
@ -1696,7 +1703,7 @@ cryptocaps=1f<WEP,TKIP,AES,AES_CCM,TKIPMIC></screen>
|
|||
|
||||
<para>这段输出显示了网卡所支持的各种功能; 其中的关键字
|
||||
<literal>HOSTAP</literal> 表示这块网卡可以作为无线网络接入点来使用。
|
||||
此外, 这里还会给出所支持的加密算法: WEP、 TKIP、 AES, 等等,
|
||||
此外, 这里还会给出所支持的加密算法: WEP、 TKIP、 AES, 等等。
|
||||
这些信息对于知道在访问接入点上使用何种安全协议非常重要。</para>
|
||||
|
||||
<para>只有创建网络伪设备时能够配置无线设备是否以 hostap 模式运行,
|
||||
|
@ -2988,7 +2995,8 @@ BEGEMOT-BRIDGE-MIB::begemotBridgeDefaultBridgeIf.0 s bridge2</screen>
|
|||
<listitem>
|
||||
<para>只通过主网口收发数据。 如果主网口不可用, 则使用下一个激活的网口。
|
||||
您在这里加入的第一个网口便会被视为主网口; 此后加入的其他网口,
|
||||
则会被视为故障转移的备用网口。</para>
|
||||
则会被视为故障转移的备用网口。 如果发生故障转移之后,
|
||||
原先的网口又恢复了可用状态, 则它仍会作为主网口使用。</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
@ -3062,16 +3070,19 @@ BEGEMOT-BRIDGE-MIB::begemotBridgeDefaultBridgeIf.0 s bridge2</screen>
|
|||
channel-group <replaceable>1</replaceable> mode active
|
||||
channel-protocol lacp</userinput></screen>
|
||||
|
||||
<para>在 &os; 使用
|
||||
<replaceable>fxp0</replaceable> 和
|
||||
<replaceable>fxp1</replaceable> 创建 &man.lagg.4; 接口:</para>
|
||||
<para>使用
|
||||
<replaceable>fxp0</replaceable> 和 <replaceable>fxp1</replaceable>
|
||||
创建 &man.lagg.4; 接口, 启用这个接口并配置 IP 地址
|
||||
<replaceable>10.0.0.3/24</replaceable>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>ifconfig <replaceable>lagg0</replaceable> create </userinput>
|
||||
&prompt.root; <userinput>ifconfig <replaceable>lagg0</replaceable> up laggproto lacp laggport <replaceable>fxp0</replaceable> laggport <replaceable>fxp1</replaceable></userinput></screen>
|
||||
<screen>&prompt.root; <userinput>ifconfig <replaceable>fxp0</replaceable> up</userinput>
|
||||
&prompt.root; <userinput>ifconfig <replaceable>fxp1</replaceable> up</userinput>
|
||||
&prompt.root; <userinput>ifconfig <literal>lagg<replaceable>0</replaceable></literal> create </userinput>
|
||||
&prompt.root; <userinput>ifconfig <literal>lagg<replaceable>0</replaceable></literal> up laggproto lacp laggport <replaceable>fxp0</replaceable> laggport <replaceable>fxp1</replaceable> <replaceable>10.0.0.3/24</replaceable></userinput></screen>
|
||||
|
||||
<para>用下面的命令查看接口状态:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>ifconfig <replaceable>lagg0</replaceable></userinput></screen>
|
||||
<screen>&prompt.root; <userinput>ifconfig <literal>lagg<replaceable>0</replaceable></literal></userinput></screen>
|
||||
|
||||
<para>标记为
|
||||
<emphasis>ACTIVE</emphasis> 的接口是激活据合组的部分,
|
||||
|
@ -3107,26 +3118,39 @@ Fa0/2 SA 32768 0005.5d71.8db8 29s 0x146 0x4 0x3D</screen
|
|||
|
||||
<para>如欲查看进一步的详情, 则需要使用 <userinput>show lacp neighbor
|
||||
detail</userinput> 命令。</para>
|
||||
|
||||
<para>如果希望在系统重启时保持这些设置, 应在
|
||||
<filename>/etc/rc.conf</filename> 中增加如下配置:</para>
|
||||
|
||||
<programlisting>ifconfig_<replaceable>fxp0</replaceable>="up"
|
||||
ifconfig_<replaceable>fxp1</replaceable>="up"
|
||||
cloned_interfaces="<literal>lagg<replaceable>0</replaceable></literal>"
|
||||
ifconfig_<literal>lagg<replaceable>0</replaceable></literal>="laggproto lacp laggport <replaceable>fxp0</replaceable> laggport <replaceable>fxp1</replaceable> <replaceable>10.0.0.3/24</replaceable>"
|
||||
</programlisting>
|
||||
</example>
|
||||
<example id="networking-lagg-failover">
|
||||
<title>故障转移模式</title>
|
||||
|
||||
<para>故障转移模式中, 当首选链路发生问题时,
|
||||
会自动切换到备用端口。 下面的命令会创建
|
||||
<replaceable>lagg0</replaceable> 接口, 并使用
|
||||
<replaceable>fxp0</replaceable> 作为首选接口, 而
|
||||
<replaceable>fxp1</replaceable> 作为备用接口:</para>
|
||||
会自动切换到备用端口。 首先启用成员接口,
|
||||
接着是配置 &man.lagg.4; 接口, 其中, 使用
|
||||
<replaceable>fxp0</replaceable> 作为首选接口,
|
||||
<replaceable>fxp1</replaceable> 作为备用接口,
|
||||
并在整个接口上配置 IP 地址 <replaceable>10.0.0.15/24</replaceable>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>ifconfig <replaceable>lagg0</replaceable> create</userinput>
|
||||
&prompt.root; <userinput>ifconfig <replaceable>lagg0</replaceable> up laggproto failover laggport <replaceable>fxp0</replaceable> laggport <replaceable>fxp1</replaceable></userinput></screen>
|
||||
<screen>&prompt.root; <userinput>ifconfig <replaceable>fxp0</replaceable> up</userinput>
|
||||
&prompt.root; <userinput>ifconfig <replaceable>fxp1</replaceable> up</userinput>
|
||||
&prompt.root; <userinput>ifconfig <literal>lagg<replaceable>0</replaceable></literal> create</userinput>
|
||||
&prompt.root; <userinput>ifconfig <literal>lagg<replaceable>0</replaceable></literal> up laggproto failover laggport <replaceable>fxp0</replaceable> laggport <replaceable>fxp1</replaceable> <replaceable>10.0.0.15/24</replaceable></userinput></screen>
|
||||
|
||||
<para>创建成功之后, 接口状态会是类似下面这样,
|
||||
主要的区别是 <acronym>MAC</acronym> 地址和设备名:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>ifconfig <replaceable>lagg0</replaceable></userinput>
|
||||
<screen>&prompt.root; <userinput>ifconfig <literal>lagg<replaceable>0</replaceable></literal></userinput>
|
||||
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
|
||||
options=8<VLAN_MTU>
|
||||
ether 00:05:5d:71:8d:b8
|
||||
inet 10.0.0.15 netmask 0xffffff00 broadcast 10.0.0.255
|
||||
media: Ethernet autoselect
|
||||
status: active
|
||||
laggproto failover
|
||||
|
@ -3137,6 +3161,15 @@ lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 150
|
|||
<replaceable>fxp0</replaceable> 上进行流量的收发。 如果
|
||||
<replaceable>fxp0</replaceable> 的连接中断, 则 <replaceable>fxp1</replaceable>
|
||||
会自动成为激活连接。 如果主端口的连接恢复, 则它又会成为激活连接。</para>
|
||||
|
||||
<para>如果希望在系统重启时保持这些设置, 应在
|
||||
<filename>/etc/rc.conf</filename> 中增加如下配置:</para>
|
||||
|
||||
<programlisting>ifconfig_<replaceable>fxp0</replaceable>="up"
|
||||
ifconfig_<replaceable>fxp1</replaceable>="up"
|
||||
cloned_interfaces="<literal>lagg<replaceable>0</replaceable></literal>"
|
||||
ifconfig_<literal>lagg<replaceable>0</replaceable></literal>="laggproto failover laggport <replaceable>fxp0</replaceable> laggport <replaceable>fxp1</replaceable> <replaceable>10.0.0.15/24</replaceable>"
|
||||
</programlisting>
|
||||
</example>
|
||||
<example id="networking-lagg-wired-and-wireless">
|
||||
<title>有线网络和无线网络接口间的自动切换</title>
|
||||
|
@ -3181,16 +3214,18 @@ bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
|
|||
|
||||
<screen>&prompt.root; <userinput>ifconfig <replaceable>wlan0</replaceable> create wlandev <replaceable>iwn0</replaceable> ssid <replaceable>my_router</replaceable> up</userinput></screen>
|
||||
|
||||
<para>创建 &man.lagg.4; 接口, 其中 <replaceable>bge0</replaceable>
|
||||
<para>启用 <replaceable>bge0</replaceable> 接口。 创建
|
||||
&man.lagg.4; 接口, 其中 <replaceable>bge0</replaceable>
|
||||
作为主网络接口, 而以 <replaceable>wlan0</replaceable> 作为备选接口:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>ifconfig <replaceable>lagg0</replaceable> create</userinput>
|
||||
&prompt.root; <userinput>ifconfig <replaceable>lagg0</replaceable> up laggproto failover laggport <replaceable>bge0</replaceable> laggport <replaceable>wlan0</replaceable></userinput></screen>
|
||||
<screen>&prompt.root; <userinput>ifconfig <replaceable>bge0</replaceable> up</userinput>
|
||||
&prompt.root; <userinput>ifconfig <literal>lagg<replaceable>0</replaceable></literal> create</userinput>
|
||||
&prompt.root; <userinput>ifconfig <literal>lagg<replaceable>0</replaceable></literal> up laggproto failover laggport <replaceable>bge0</replaceable> laggport <replaceable>wlan0</replaceable></userinput></screen>
|
||||
|
||||
<para>新创建的接口的状态如下, 您系统上的 <acronym>MAC</acronym>
|
||||
地址和设备名等可能会有所不同:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>ifconfig <replaceable>lagg0</replaceable></userinput>
|
||||
<screen>&prompt.root; <userinput>ifconfig <literal>lagg<replaceable>0</replaceable></literal></userinput>
|
||||
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
|
||||
options=8<VLAN_MTU>
|
||||
ether 00:21:70:da:ae:37
|
||||
|
@ -3200,16 +3235,19 @@ lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 150
|
|||
laggport: wlan0 flags=0<>
|
||||
laggport: bge0 flags=5<MASTER,ACTIVE></screen>
|
||||
|
||||
<para>通过设置下列的
|
||||
<filename>/etc/rc.conf</filename> 配置,
|
||||
可以避免每次启动系统时都手工重复上面的设置操作:</para>
|
||||
<para>接着用 DHCP 客户端来获取 IP 地址:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>dhclient <literal>lagg<replaceable>0</replaceable></literal></userinput></screen>
|
||||
|
||||
<para>如果希望在系统重启时保持这些设置, 应在
|
||||
<filename>/etc/rc.conf</filename> 中增加如下配置:</para>
|
||||
|
||||
<programlisting>ifconfig_bge0="up"
|
||||
ifconfig_iwn0="ether 00:21:70:da:ae:37"
|
||||
wlans_iwn0="wlan0"
|
||||
ifconfig_wlan0="WPA"
|
||||
cloned_interfaces="lagg0"
|
||||
ifconfig_lagg0="laggproto failover laggport bge0 laggport wlan0 DHCP"
|
||||
cloned_interfaces="<literal>lagg<replaceable>0</replaceable></literal>"
|
||||
ifconfig_<literal>lagg<replaceable>0</replaceable></literal>="laggproto failover laggport bge0 laggport wlan0 DHCP"
|
||||
</programlisting>
|
||||
</example>
|
||||
</sect2>
|
||||
|
@ -3421,9 +3459,9 @@ ifconfig_lagg0="laggproto failover laggport bge0 laggport wlan0 DHCP"
|
|||
服务器可以回应 BOOTP 和 <acronym>DHCP</acronym>
|
||||
的请求。</para>
|
||||
|
||||
<para><application>ISC DHCP 3.1</application>
|
||||
<para><application>ISC DHCP 4.2</application>
|
||||
并不属于基本系统。首先您需要安装
|
||||
<filename role="package">net/isc-dhcp31-server</filename>
|
||||
<filename role="package">net/isc-dhcp42-server</filename>
|
||||
port 或相应的<quote>包</quote>。</para>
|
||||
|
||||
<para>一旦安装了 <application>ISC DHCP</application>,
|
||||
|
@ -3819,6 +3857,296 @@ cd /usr/src/etc; make distribution</programlisting>
|
|||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="network-pxe-nfs">
|
||||
<sect1info>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Craig</firstname>
|
||||
<surname>Rodrigues</surname>
|
||||
<affiliation>
|
||||
<address>rodrigc@FreeBSD.org</address>
|
||||
</affiliation>
|
||||
<contrib>原作者 </contrib>
|
||||
</author>
|
||||
</authorgroup>
|
||||
</sect1info>
|
||||
<title>从 PXE 启动一个 NFS 根文件系统</title>
|
||||
|
||||
<para>&intel; 预启动执行环境 (<acronym>PXE</acronym>)
|
||||
能让操作系统从网络启动。 通常由近代主板的 <acronym>BIOS</acronym>
|
||||
提供 <acronym>PXE</acronym> 支持,它可以通过在 <acronym>BIOS</acronym>
|
||||
设置里选择从网络启动开启。 一个功能完整的 <acronym>PXE</acronym>
|
||||
配置还需要正确地设置 <acronym>DHCP</acronym> 和 <acronym>TFTP</acronym>
|
||||
服务。</para>
|
||||
|
||||
<para>当计算机启动的时候, 通过 <acronym>DHCP</acronym> 获取关于
|
||||
从 <acronym>TFTP</acronym> 得到引导加载器(boot loader)的信息。
|
||||
在计算机接受此信息以后, 便通过 <acronym>TFTP</acronym>
|
||||
下载并执行引导加载器。 这些记载于
|
||||
<ulink url="http://download.intel.com/design/archives/wfm/downloads/pxespec.pdf">
|
||||
预启动执行环境 (PXE) 规范</ulink> 的 2.2.1 章节中。
|
||||
在 &os; 中, 在 <acronym>PXE</acronym> 过程中获取的引导加载器为
|
||||
<filename>/boot/pxeboot</filename>。 在 <filename>/boot/pxeboot</filename>
|
||||
执行之后, &os; 的内核被加载, 接着是其他的 &os; 相关引导部分依次被执行。
|
||||
更多关于 &os; 启动过程的详细信息请参阅 <xref linkend="boot">。</para>
|
||||
|
||||
<sect2>
|
||||
<title>配置用于 NFS 根文件系统的 <command>chroot</command> 环境</title>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>Choose a directory which will have a &os; installation
|
||||
which will be NFS mountable. For example, a directory such
|
||||
as <filename>/b/tftpboot/FreeBSD/install</filename> can be used.</para>
|
||||
<para>选择一个可被用户 NFS 挂载并安装有 &os; 的目录。
|
||||
比如可以使用像 <filename>/b/tftpboot/FreeBSD/install</filename>
|
||||
这样的一个目录。</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>export NFSROOTDIR=/b/tftpboot/FreeBSD/install</userinput>
|
||||
&prompt.root; <userinput>mkdir -p ${NFSROOTDIR}</userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>使用如下的命令开启 NFS 服务
|
||||
<xref linkend="network-configuring-nfs">.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>将下面这行加入 <filename>/etc/exports</filename>
|
||||
用以通过 NFS 导出此目录:</para>
|
||||
|
||||
<programlisting>/b -ro -alldirs</programlisting>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>重起 NFS 服务:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/nfsd restart</userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>按照 <xref linkend="network-inetd-settings">
|
||||
中标明的步骤启用 &man.inetd.8;。</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>将如下这行加入到
|
||||
<filename>/etc/inetd.conf</filename>:</para>
|
||||
|
||||
<programlisting>tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /b/tftpboot</programlisting>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>重启 inetd:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>/etc/rc.d/inetd restart</userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para><link linkend="makeworld">重新编译 &os; 内核和用户态</link>:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
|
||||
&prompt.root; <userinput>make buildworld</userinput>
|
||||
&prompt.root; <userinput>make buildkernel</userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>把 &os; 安装到 <acronym>NFS</acronym> 挂载目录:</para>
|
||||
|
||||
<screen>
|
||||
&prompt.root; <userinput>make installworld DESTDIR=${NFSROOTDIR}</userinput>
|
||||
&prompt.root; <userinput>make installkernel DESTDIR=${NFSROOTDIR}</userinput>
|
||||
&prompt.root; <userinput>make distribution DESTDIR=${NFSROOTDIR}</userinput>
|
||||
</screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>测试 <acronym>TFTP</acronym> 服务是否能下载将从
|
||||
<acronym>PXE</acronym> 获取的引导加载器:</para>
|
||||
|
||||
<screen>
|
||||
&prompt.root; <userinput>tftp localhost</userinput>
|
||||
tftp> <userinput>get FreeBSD/install/boot/pxeboot</userinput>
|
||||
Received 264951 bytes in 0.1 seconds
|
||||
</screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>编辑 <filename>${NFSROOTDIR}/etc/fstab</filename>
|
||||
并加入以下这行挂载 NFS 根文件系统:</para>
|
||||
|
||||
<programlisting>
|
||||
# Device Mountpoint FSType Options Dump Pass
|
||||
myhost.example.com:/b/tftpboot/FreeBSD/install / nfs ro 0 0
|
||||
</programlisting>
|
||||
|
||||
<para>用你的 <acronym>NFS</acronym> 服务器主机名或者 IP 地址替换
|
||||
<replaceable>myhost.example.com</replaceable>。 在此例中,
|
||||
根文件系统是以“只读”的方式挂载用来防止 <acronym>NFS</acronym>
|
||||
客户端可能意外删除根文件系统上的文件。</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>设置 &man.chroot.8; 环境中的 root 密码。</para>
|
||||
<screen>&prompt.root; <userinput>chroot ${NFSROOTDIR}</userinput>
|
||||
&prompt.root; <userinput>passwd</userinput></screen>
|
||||
<para>此为设置从 <acronym>PXE</acronym>
|
||||
启动的客户机的 root 密码。</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>允许 ssh root 登录从 <acronym>PXE</acronym> 启动的客户机,
|
||||
编辑 <filename>${NFSROOTDIR}/etc/ssh/sshd_config</filename>
|
||||
并开启 <literal>PermitRootLogin</literal> 选项。
|
||||
关于此选项的说明请参阅 &man.sshd.config.5;。</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>对 ${NFSROOTDIR} 的 &man.chroot.8; 环境做些其他的定制。
|
||||
这可以是像使用 &man.pkg.add.1; 安装二进制包,
|
||||
使用 &man.vipw.8; 修改密码, 或者编辑 &man.amd.conf.5;
|
||||
映射自动挂载等。例如:</para>
|
||||
|
||||
<screen>
|
||||
&prompt.root; <userinput>chroot ${NFSROOTDIR}</userinput>
|
||||
&prompt.root; <userinput>pkg_add -r bash</userinput></screen>
|
||||
</step>
|
||||
</procedure>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>配置 <filename>/etc/rc.initdiskless</filename> 中用到的内存文件系统</title>
|
||||
|
||||
<para>如果你从一个 NFS 根卷启动,
|
||||
<filename>/etc/rc</filename>
|
||||
如果检测到是从 NFS 启动便会运行
|
||||
<filename>/etc/rc.initdiskless</filename> 脚本。
|
||||
请阅读此脚本中的注释部分以便了解到底发生了什么。
|
||||
我们需要把 <filename>/etc</filename> 和
|
||||
<filename>/var</filename>
|
||||
做成内存文件系统的原因是这些目录需要能被写入,
|
||||
但 NFS 根文件系统是只读的。</para>
|
||||
<screen>
|
||||
&prompt.root; <userinput>chroot ${NFSROOTDIR}</userinput>
|
||||
&prompt.root; <userinput>mkdir -p conf/base</userinput>
|
||||
&prompt.root; <userinput>tar -c -v -f conf/base/etc.cpio.gz --format cpio --gzip etc</userinput>
|
||||
&prompt.root; <userinput>tar -c -v -f conf/base/var.cpio.gz --format cpio --gzip var</userinput></screen>
|
||||
|
||||
<para>当系统启动的时候, <filename>/etc</filename> 和
|
||||
<filename>/var</filename> 内存文件系统就会被创建并挂载,
|
||||
<filename>cpio.gz</filename> 就会被复制进去。</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>配置 DHCP 服务</title>
|
||||
|
||||
<para>PXE 需要配置一个 <acronym>TFTP</acronym> 服务器和一个
|
||||
<acronym>DHCP</acronym> 服务器。 <acronym>DHCP</acronym>
|
||||
服务并不要求与 <acronym>TFTP</acronym> 服务在同一台机器上,
|
||||
但是必须能够从你的网络访问到它。</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>按照此文档处 <xref linkend="network-dhcp-server">
|
||||
方法安装 <acronym>DHCP</acronym> 服务。
|
||||
确保 <filename>/etc/rc.conf</filename> 和
|
||||
<filename>/usr/local/etc/dhcpd.conf</filename>
|
||||
都配置正确。
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>在 <filename>/usr/local/etc/dhcpd.conf</filename> 中配置
|
||||
<literal>next-server</literal>, <literal>filename</literal>,
|
||||
<literal>option root-path</literal> 选项指向你的
|
||||
<acronym>TFTP</acronym> 服务器的 IP 地址,
|
||||
以及 <acronym>TFTP</acronym> 上 <filename>/boot/pxeboot</filename>
|
||||
文件的路径, 和 <acronym>NFS</acronym> 根文件系统的路径。
|
||||
这里一份 <filename>dhcpd.conf</filename> 实例:</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-server 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>配置 PXE 客户端与调试连接问题</title>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>当客户端启动的时候, 进入 <acronym>BIOS</acronym>
|
||||
配置菜单。 设置 <acronym>BIOS</acronym> 从网络启动。
|
||||
如果之前你所有的配置步骤都正确的话, 那么所有部分应该能
|
||||
"正常工作"。</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>使用 <filename role="package">net/wireshark</filename>
|
||||
port 查看 <acronym>DHCP</acronym> 和 <acronym>TFTP</acronym>
|
||||
的网络流量来调试各种问题。</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>确保 <filename>pxeboot</filename> 能从
|
||||
<acronym>TFTP</acronym> 获取。
|
||||
在你的 <acronym>TFTP</acronym> 服务器上检查
|
||||
<filename>/var/log/xferlog</filename> 日志确保
|
||||
<filename>pxeboot</filename> 被从正确的位置获取。
|
||||
可以这样测试上面例子 <filename>dhcpd.conf</filename>
|
||||
中所设置的:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>tftp 192.168.0.1</userinput>
|
||||
tftp> <userinput>get FreeBSD/install/boot/pxeboot</userinput>
|
||||
Received 264951 bytes in 0.1 seconds</screen>
|
||||
|
||||
<para>请阅读 &man.tftpd.8; 和 &man.tftp.1;。
|
||||
其中的 <literal>BUGS</literal> 列出了
|
||||
<acronym>TFTP</acronym> 的一些限制。</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>确保根文件系统能够从 <acronym>NFS</acronym> 挂载。
|
||||
可以这样测试上面例子 <filename>dhcpd.conf</filename>
|
||||
中所设置的:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mount -t nfs 192.168.0.1:/b/tftpboot/FreeBSD/install /mnt</userinput></screen>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>阅读 <filename>src/sys/boot/i386/libi386/pxe.c</filename>
|
||||
中的代码以了解 <filename>pxeboot</filename> 加载器如何设置诸如
|
||||
<literal>boot.nfsroot.server</literal> 和
|
||||
<literal>boot.nfsroot.path</literal> 之类的变量。
|
||||
这些变量被用在了
|
||||
<filename>src/sys/nfsclient/nfs_diskless.c</filename>
|
||||
的 NFS 无盘根挂载代码中。</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Read &man.pxeboot.8; and &man.loader.8;.</para>
|
||||
</step>
|
||||
</procedure>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="network-isdn">
|
||||
<title>ISDN</title>
|
||||
|
|
Loading…
Reference in a new issue