在开始对 Linux 进行网络配置之前,我们先要认识与网络配置相关的一些主要配置文件。了解这些配置文件如何控制和影响网络,对你自定义 Fedora 系统的网络非常有帮助。
在开始对 Linux 进行网络配置之前,我们先要认识与网络配置相关的一些主要配置文件。了解这些配置文件如何控制和影响网络,对你自定义 Fedora/Linux 系统的网络非常有帮助。
以下是 Linux 中主要的几个网络配置文件,目前你只需要大致了解一下,在之后的教程中会详细讲解各种网络配置:
/etc/hosts
这个文件用于设置主机名与 IP 映射关系,为那些无法通过其它方式 (如通过 DNS 服务器) 解析的主机名进行解析,它还能够在没有 DNS 的小型网络中充当主机名解析的角色。不论计算机在什么类型的网络上,hosts 文件中都有关于环回链路(127.0.0.1)的主机记录 (localhost.localdomain)。
/etc/resolv.conf
这个文件用于设置 DNS 的 IP 地址和搜索域,除非另行配置,否则网络初始化脚本总是使用这个文档中的配置信息。更多信息请参考 resolv.conf 的 man 文档。
/etc/sysconfig/network
这个文件用于为所有网络接口设置路由和主机信息。有关此文件的更多信息,请参考《/etc/sysconfig/network 配置文件》
/etc/sysconfig/network-script/ifcfg-<interface-name>
每一个网络接口,都有一个与之对应用的配置脚本,这些脚本文件为相应的网络接口设置指定的配置信息。有关这类文件的信息以及如何使用这类文件,请参考《网络接口配置文件》
本文是对以太网接口配置文件中选项的补充,有关 Linux 网络的基本配置,还请参考《Linux 网络接口配置文件》。
本文是对以太网接口配置文件中选项的补充,有关 Linux 网络的基本配置,还请参考《Linux 网络接口配置文件》。
BONIDNG_OPTS=<parameters>
这个参数用于 /etc/sysconfig/network-scripts/ifcfg-bond<N> 配置文件中,用于绑定设备 (Bonding Device) 设置参数。这些参数与 /sys/class/net/<bonding-device>/bonding 中使用的参数是相同的。
这项配置被应用之后,多个绑定设备就能够应用不同的配置。如果你在 ifcfg-<name> 文件中使用了 BONDING_OPTS 选项,则不要再使用 /etc/modprobe.conf 配置文件对绑定设备进行配置。
BOOTPROTO=<protocol>
<protocol> 的值能够是以下几种:
BROADCAST=<address>
<address> 表示广播地址。ifcalc 程序会自动计算这个地址,不推荐手动对它进行配置。
DEVICE=<name>
<name> 表示物理设备的名称 ,对于动态寻址的 PPP 设备则是指它的逻辑名称。
DHCP_HOSTNAME
某些 DHCP 服务器要求客户端设置这个主机名才能获取到 IP 地址,一般无需使用这个选项。
DNS{1,2}=<adderss>
<address> 表示名称服务器的 IP 地址。如果 PEERDNS 选项被设置为 yes,这里设置的 IP 地址将会替代 /etc/resolv.conf 中的设置
ETHTOOL_OPTS=<options>
<options> 的值可以是 ethtool 程序所支持的任意值,例如你希望将网卡强制配置成百兆全双工工作模式,可以进行以下配置:
GATEWAY=<address>
<address> 的值为路由器或其它网关设备的 IP 地址
HWADDR=<MAC-address>
<MAC-address> 的值为以太网设备的 MAC 地址,格式如 AA:BB:CC:DD:EE:FF。当机器上安装有多块网卡时,一定要使用这个选项,以确保接口被分配到正确的设备上 (为每个 NIC 模块配置了启用顺序的情况除外)。注意不要将这个选项与 MACADDR 选项一起使用。
MACADDR=<MAC-address>
<MAC-address> 的值为以太网设备的 MAC 地址,格式如 AA:BB:CC:DD:EE:FF。这个选项用于替换网卡原有的 MAC 地址。注意不要将这个选项与 HWADDR 选项一起使用
IPADDR=<address>
<address> 的值就是分配给网卡的 IP 地址
MASTER=<bond-interface>
<bond-interface> 的值是以太网卡连接到的通道绑定接口的名称,这个指令与 SLAVE 指令配合使用。
SLAVE=<yes|no>
NETMASK=<mask>
<mask> 表示子网掩码
NETWORK=<address>
<address> 表示网络地址,ifcalc 程序会自动计算这个地址,不推荐手动对它进行配置。
ONBOOT=<yes|no>
PEERDNS=<yes|no>
SRCADDR=<address>
<address> 的值为出栈数据包的源 IP 地址
USERCTL=<yes|no>
在上面的配置文件中,X.X.X.X 要替换为支持 IPsec 的目标路由器的公网 IP 地址。除了以上的选项和指令外,IPSec 接口配置文件中还可以使用以下选择和指令
使用 Fedora/Linux 操作系统,能够轻易的实现 IPSec 接口的配置,以下是一个网络间 IPsec 连接的接口配置文件的示例。它的配置文件名中具备唯一的连接标识符 ipsec<N>,文件的绝对路径类似于 /etc/sysconfig/network-scripts/ifcfg-ipsec1
在上面的配置文件中,X.X.X.X 要替换为支持 IPsec 的目标路由器的公网 IP 地址。除了以上的选项和指令外,IPSec 接口配置文件中还可以使用以下选择和指令:
DST=<address>
<address> 表示支持 IPsec 的目标主机或路由器的 IP 地址,分别用于配置主机对主机和网络对网络间的 IPsec。
DSTNET=<network>
<network> 表示 IPsec 目标网络的网络地址,这个配置只用于网络对网络间的 IPsec
SRC=<address>
<address> 表示使用 IPsec 的源主机或源路由器的 IP 地址,这一选项只能用于主机间的 IPsec 的可选配置。
SRCNET=<network>
<network> 表示使用 IPsec 的源网络的网络地址,这一配置只用于网络间的 IPsec
TYPE=<interface-type>
<interface-type> 的值为 IPSEC,它属于 ipsec-tools 软件包中定义的一部分。
racoon IKEv1 密钥管理守护程序为 IPSec 协商并配置一系列参考,它能够使用预定义密钥、RSA 签名或 GSS-API,如果使用 racoon 程序自动管理密钥加密,则要求配置以下附加选项:
IKE_METHOD=<encryption-method>
<encryption-method> 表示加密方式,它的值为 PSK, X509 或者 GSSAPI。如果值为 PSK,还必须设置 IKE_PSK 选项,如果值为 X509,就必须设置 IKE_CERTFILE 选项。
IKE_PSK=<shared-key>
<shared-key> 为使用 IPsec 两端共享的密钥值,这个值应该保密。
IKE_CERTFILE=<cert-file>
<cert-file> 是对本机有效的 X.509 证书文件
IKE_PEER_CERTFILE=<cert-file>
<cert-file> 是对远程计算机有效的 X.509 证书文件
IKE_DNSSEC=<yes|no>
yes - racoon 守护程序通过 DNS 取得远程计算机的 X.509 证书文件。
如果设置了 IKE_PEER_CERTFILE 选项,就不应该再使用这个选项。
Fedora/Linux 操作系统允许管理员通过使用“绑定内核模块”(bonding kernel model),将多个网络接口绑定成一个”通道绑定接口“(channel bonding interface),或称“绑定接口”。
Fedora/Linux 操作系统允许管理员通过使用“绑定内核模块”(bonding kernel model),将多个网络接口绑定成一个”通道绑定接口“(channel bonding interface),或称“绑定接口”。
绑定接口能够让两个或多个网络接口变成一个,从而增加网络带宽,提供网络冗余。
通过在 /etc/sysconfig/network-scripts/ 目录下创建 ifcfg-bond<N> 文档,就能够创建绑定接口。文件名称中的 <N> 为接口的编号,如第一个通道绑定接口的名称一般为 ifcfg-bond0。
ifcfg-bond<N> 文件的内容与以太网接口的配置文件(如 ifcfg-eth0)基本相同,只是 DEVICE 选项的值,应该为 bond<N>。
以下是一个绑定接口的配置文件样本:
通过配置文件创建一个绑定接口,之后还需要在被绑定的网络接口的配置文件中添加从属关系选项(MASTER 和 SLAVE)。 例如,将名为 eth0 和 eth1 的两块以太网上进行了绑定,则它们的配置文件内容类似于:
如果你是拨号上网用户,你也需要一个与拨号接口相关的配置文件。PPP 接口配置文件的名称规范为 ifcfg-ppp<X>,其中 <X> 是指定接口的唯一标识号。
如果你是拨号上网用户,你也需要一个与拨号接口相关的配置文件。PPP 接口配置文件的名称规范为 ifcfg-ppp<X>,其中 <X> 是指定接口的唯一标识号。
当使用 wvdial 命令、网络配置管理工具或者 Kppp 创建拨号帐户时,会自动生成 PPP 接口配置文件。
以下是一个典型的 ifcfg-ppp0 配置文件
以下是拨号接口配置文件中各个选项及指令的用法和说明
DEFROUTE=<yes|no>
DEMAND=<yes|no>
IDLETIMEOUT=<value>
<value> 为空闲超时的值,即在指定的时间内如果没有网络通讯,则自动断开拨号连接
INITSTRING=<string>
这个选项主要与 SLIP 接口配合使用,用于将初始化值 <string> 传送给调制解调器设备。
LINESPEED=<value>
<value> 为设置的波特率值,可用的值一般为 57600, 38400, 19200 和 9600
MODEMPORT=<device>
<device> 的值为为此接口建立拨号连接的串行设备的名称
MTU=<value>
<value> 的值为此接口的最大传输单元 (MTU)。MTU 传输单元是指每一帧数据包能传输的最大字节数,这个值不将头部信息的大小计算在内。在一些拨号连接解决方案中,将 MTU 的值设为 576,用于减少掉包,并稍稍提升网络的呑吐量。
NAME=<name>
<name> 是一个名称值,用于标识此拨号连接。
PAPNAME=<name>
<name> 的值为使用密码认证协议 (PAP) 时分配的用户名,只用于某些需要认证的拨号连接。
PERSIST=<yes|no>
REMIP=<address>
<address> 的值为远程系统的 IP 地址,通常不配置。
WVDIALSECT=<name>
<name> 的值为 /etc/wvdial.conf 配置文件中的某个拨号器配置的名称。这个文件中包含了拨号的电话号码和其它与接口相关的重要信息。
别名(Alias) 文件和 克隆(clone) 文件是 Linux 中用得比较少的两类网络接口配置文件。其中别名文件可以将多个 IP 地址绑定到一个网络接口上,克隆文件则用于为接口定义附加选项。
别名(Alias) 文件和 克隆(clone) 文件是 Linux 中用得比较少的两类网络接口配置文件。其中别名文件可以将多个 IP 地址绑定到一个网络接口上,克隆文件则用于为接口定义附加选项。
别名文件的命名结构为 ifcfg-<if-name>:<alias-value>,如 ifcfg-eth0:0。假设 eth0 接口已经配置成 DHCP 自动获取 IP 地址,你可以在 ifcfg-eth0:0 配置文件中定义 DEVICE=eth0:0,并指定 IP 地址为 10.0.0.2。如此一来 eth0 接口使用 DHCP 分配的动态 IP,同时也能够接收到传给 10.0.0.2 的数据请求。
克隆接口的命名结构为 ifcfg-<if-name>-<clone-name>,克隆文件用于为指定接口添加附加选项。例如,一个使用 DHCP 的网络接口 eth0,看起来像
以上配置没有设置 USERCTL 选项,因此 USERCTL 使用默认值 no,即非 root 用户无法控制接口的启用状态。通过将 ifcfg-eth0 文件复制成 ifcfg-eth0-user,并向克隆文件中添加 USERCTL=yes 指令,普通用户则能够通过 /sbin/if-up eth0-user 命令启用 eth0 接口了。
使用克隆文件时,实际上是整合了接口配置文件 (如 ifcfg-eth0) 和克隆文件 (如 ifcfg-eth0-user) 中的配置。
除了之前讲到的以太网接口、IPSec 接口、通道绑定接口、别名接口、克隆接口及拨号接口的配置文件,Linux 还能够配置以下几种不太常用的网络接口。
ifcfg-lo
本地环回链路接口。环回链路通常用于测试,被不少应用程序所使用。任何发送到环回链路的数据都会马上返回到主机的网络层。
ifcfg-irlan0
红外线接口,它与以太网设备的配置方式差不多,但它通常用于 红外线设备间的点对点连接。
ifcfg-plip0
PLIP (平行链路接口协议) 与以太网设备连接的工作方式大致相同,不同之处在于它采用平行化端口。
ifcfg-tr0
令牌环网络拓扑与以太网络很不相同,以太网的流行使得令牌环网络很少被用到。