Linux 网络接口

在Fedora中,所有的网络通讯都发生在软件接口与物理网络设备之间。与网络接口配置相关的文件,以及控制网络接口状态的脚本文件,全都位于/etc/sysconfig/netwrok-scripts/目录下。

在Linux中,所有的网络通讯都发生在软件接口与物理网络设备之间。与网络接口配置相关的文件,以及控制网络接口状态的脚本文件,全都位于/etc/sysconfig/netwrok-scripts/目录下。虽然在不同的系统之间,这些文件的类型和数量并不一定相同,但大致来讲,都包含以下几类与网络相关的配置文件:

网络接口配置文件

网络接口控制脚本

与网络相关的函数库文件(functionfiles)

各种的网络设备都需要用到这些文件保证设备的正常动作

本章将深入探讨这些文件的用途,以及使用它们的方式。

Linux网络接口

网络接口配置文件

在Linux中,网络接口配置文件用于控制系统中的软件网络接口,并通过接口实现对网络设备的控制。当系统启动时,系统通过这些接口配置文件决定启动哪些接口,以及如此对这些接口进行配置。

在Linux中,网络接口配置文件用于控制系统中的软件网络接口,并通过这些接口实现对网络设备的控制。当系统启动时,系统通过这些接口配置文件决定启动哪些接口,以及如何对这些接口进行配置。接口配置文件的名称通常类似于ifcfg-<name>,其中<name>与配置文件所控制的设备的名称相关。

在所有的网络接口中,我们日常中最常用到的接口类型就是以太网接口。

以太网接口

在所有的网络配置文件中,最常用的就是ifcfg-eth0,因为它是系统中第一块网卡的配置文件。如果系统中有多块网卡,ifcfg-eth后面的数字就会依次递增。正因为每个设备都有对应的一个配置文件,因此管理员也能够单独地控制每一个设备。

以下是一个ifcfg-eth0配置文件的示例,在配置中已经为网卡设置好了IP地址。

DEVICE=eth0

BOOTPROTO=none

ONBOOT=yes

NETWORK=10.0.1.0

NETMASK=255.255.255.0

IPADDR=10.0.1.27

USERCTL=no

在接口配置文件中,选项之间存在着一些关联,如果不像上例中那样使用固定IP,使用DHCP获取IP地址的配置文件又会不一样。以下就是将网卡配置成通过DHCP获取IP地址的配置:

DEVICE=eth0

BOOTPROTO=dhcp

ONBOOT=yes

使用网络管理工具(system-config-network)对网络接口文件进行更改是比较方便的一种方式,但通过学习手动更改配置文件,能够更好的在各种Linux发行版中执行网络配置的工作。

有关网络管理工具的使用方法,可以参考下一章翻译文档-《Fedora/Linux网络配置工具》

下面是以太网接口配置文件中常用的一些选项:

BOOTPROTO=<protocol>

<protocol>的值能够是以下几种:

none-不指定启用协议

bootp-使用BOOTP协议

dhcp-使用DHCP协议

BROADCAST=<address>

<address>表示广播地址。ifcalc程序会自动计算这个地址,不推荐手动对它进行配置。

DEVICE=<name>

<name>表示物理设备的名称,对于动态寻址的PPP设备则是指它的逻辑名称。

DNS{1,2}=<adderss>

<address>表示名称服务器的IP地址。如果PEERDNS选项被设置为yes,这里设置的IP地址将会替代/etc/resolv.conf中的设置

IPADDR=<address>

<address>的值就是分配给网卡的IP地址

NETMASK=<mask>

<mask>表示子网掩码

GATEWAY=<address>

<address>的值为路由器或其它网关设备的IP地址

NETWORK=<address>

<address>表示网络地址,ifcalc程序会自动计算这个地址,不推荐手动对它进行配置。

ONBOOT=<yes|no>

yes-系统启动时激活设备

no-系统启动时不激活设备

PEERDNS=<yes|no>

yes-使用DNS选项的值替代/etc/resolv.conf中的配置。如果使用DHCP,yes则为这个选项的默认

no-不更改/etc/resolv.conf中的配置

USERCTL=<yes|no>

yes-允许非root用户控制这个设备

no-不允许非root用户控制这个设备

以上是有关以太网配置的常用选项,更多配置选项请参考《Linux以太网接口配置》

网络配置文件

在开始对Linux进行网络配置之前,我们先要认识与网络配置相关的一些主要配置文件。了解这些配置文件如何控制和影响网络,对你自定义Fedora系统的网络非常有帮助。

在开始对Linux进行网络配置之前,我们先要认识与网络配置相关的一些主要配置文件。了解这些配置文件如何控制和影响网络,对你自定义Fedora/Linux系统的网络非常有帮助。

以下是Linux中主要的几个网络配置文件,目前你只需要大致了解一下,在之后的教程中会详细讲解各种网络配置:

/etc/hosts

这个文件用于设置主机名与IP映射关系,为那些无法通过其它方式(如通过DNS服务器)解析的主机名进行解析,它还能够在没有DNS的小型网络中充当主机名解析的角色。不论计算机在什么类型的网络上,hosts文件中都有关于环回链路(127.0.0.1)的主机记录(localhost.localdomain)。

更多有关hosts文件的信息,请参考hosts文件的man文档。

/etc/resolv.conf

这个文件用于设置DNS的IP地址和搜索域,除非另行配置,否则网络初始化脚本总是使用这个文档中的配置信息。更多信息请参考resolv.conf的man文档。

/etc/sysconfig/network

这个文件用于为所有网络接口设置路由和主机信息。有关此文件的更多信息,请参考《/etc/sysconfig/network配置文件》

/etc/sysconfig/network-script/ifcfg-<interface-name>

每一个网络接口,都有一个与之对应用的配置脚本,这些脚本文件为相应的网络接口设置指定的配置信息。有关这类文件的信息以及如何使用这类文件,请参考《网络接口配置文件》

/etc/sysconfig/networking/目录中包含着网络管理工具使用的文档,请不要人工更改这些文件。有关网络管理工具的更多信息,可参考《网络配置》

以太网接口配置

本文是对以太网接口配置文件中选项的补充,有关Linux网络的基本配置,还请参考《Linux网络接口配置文件》。

本文是对以太网接口配置文件中选项的补充,有关Linux网络的基本配置,还请参考《Linux网络接口配置文件》。

BONIDNG_OPTS=<parameters>

这个参数用于/etc/sysconfig/network-scripts/ifcfg-bond<N>配置文件中,用于绑定设备(BondingDevice)设置参数。这些参数与/sys/class/net/<bonding-device>/bonding中使用的参数是相同的。

这项配置被应用之后,多个绑定设备就能够应用不同的配置。如果你在ifcfg-<name>文件中使用了BONDING_OPTS选项,则不要再使用/etc/modprobe.conf配置文件对绑定设备进行配置。

BOOTPROTO=<protocol>

<protocol>的值能够是以下几种:

none-不指定启用协议

bootp-使用BOOTP协议

dhcp-使用DHCP协议

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程序所支持的任意值,例如你希望将网卡强制配置成百兆全双工工作模式,可以进行以下配置:

ETHTOOL_OPTS="autonegoffspeed100duplexfull"

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>

yes-表示此设备可以由MASTER指令中配置的通道绑定接口进行控制。

no-表示此设备不能由MASTER指令中配置的通道绑定接口进行控制。

NETMASK=<mask>

<mask>表示子网掩码

NETWORK=<address>

<address>表示网络地址,ifcalc程序会自动计算这个地址,不推荐手动对它进行配置。

ONBOOT=<yes|no>

yes-系统启动时激活设备

no-系统启动时不激活设备

PEERDNS=<yes|no>

yes-使用DNS选项的值替代/etc/resolv.conf中的配置。如果使用DHCP,yes则为这个选项的默认

no-不更改/etc/resolv.conf中的配置

SRCADDR=<address>

<address>的值为出栈数据包的源IP地址

USERCTL=<yes|no>

yes-允许非root用户控制这个设备

no-不允许非root用户控制这个设备

IPSec接口配置

在上面的配置文件中,X.X.X.X要替换为支持IPsec的目标路由器的公网IP地址。除了以上的选项和指令外,IPSec接口配置文件中还可以使用以下选择和指令

使用Fedora/Linux操作系统,能够轻易的实现IPSec接口的配置,以下是一个网络间IPsec连接的接口配置文件的示例。它的配置文件名中具备唯一的连接标识符ipsec<N>,文件的绝对路径类似于/etc/sysconfig/network-scripts/ifcfg-ipsec1

TYPE=IPsec

ONBOOT=yes

IKE_METHOD=PSK

SRCNET=192.168.1.0/24

DSTNET=192.168.2.0/24

DST=X.X.X.X

在上面的配置文件中,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软件包中定义的一部分。

提示:如果IPsec使用人工密钥方式进行加密,可参考/usr/share/doc/initscripts-<version-number>/sysconfig.txt,其中<version-number>为安装在系统中的initscripts软件包的版本号。

racoonIKEv1密钥管理守护程序为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选项,就不应该再使用这个选项。

更多有关IPsec可用的加密算法的信息,可参考setkey的man文档。更多有关racoon程序的信息,可参考racoon和racoon.conf文件的man文档。

通道绑定接口配置

Fedora/Linux操作系统允许管理员通过使用“绑定内核模块”(bondingkernelmodel),将多个网络接口绑定成一个”通道绑定接口“(channelbondinginterface),或称“绑定接口”。

Fedora/Linux操作系统允许管理员通过使用“绑定内核模块”(bondingkernelmodel),将多个网络接口绑定成一个”通道绑定接口“(channelbondinginterface),或称“绑定接口”。

绑定接口能够让两个或多个网络接口变成一个,从而增加网络带宽,提供网络冗余。

通过在/etc/sysconfig/network-scripts/目录下创建ifcfg-bond<N>文档,就能够创建绑定接口。文件名称中的<N>为接口的编号,如第一个通道绑定接口的名称一般为ifcfg-bond0。

ifcfg-bond<N>文件的内容与以太网接口的配置文件(如ifcfg-eth0)基本相同,只是DEVICE选项的值,应该为bond<N>。

有关以太网接口配置文件,可参考《Linux网络接口配置文件》

以下是一个绑定接口的配置文件样本:

DEVICE=bond0

BONDING_OPTS="mode=1miimon=500"

BOOTPROTO=none

ONBOOT=yes

NETWORK=10.0.1.0

NETMASK=255.255.255.0

IPADDR=10.0.1.27

USERCTL=no

通过配置文件创建一个绑定接口,之后还需要在被绑定的网络接口的配置文件中添加从属关系选项(MASTER和SLAVE)。例如,将名为eth0和eth1的两块以太网上进行了绑定,则它们的配置文件内容类似于:

DEVICE=eth<N>

BOOTPROTO=none

ONBOOT=yes

MASTER=bond0

SLAVE=yes

USERCTL=no

绑定接口通过内核模块进行控制,有关bonding模块的更多信息,请参考《ChannelBonding模块》

拨号接口配置

如果你是拨号上网用户,你也需要一个与拨号接口相关的配置文件。PPP接口配置文件的名称规范为ifcfg-ppp<X>,其中<X>是指定接口的唯一标识号。

如果你是拨号上网用户,你也需要一个与拨号接口相关的配置文件。PPP接口配置文件的名称规范为ifcfg-ppp<X>,其中<X>是指定接口的唯一标识号。

当使用wvdial命令、网络配置管理工具或者Kppp创建拨号帐户时,会自动生成PPP接口配置文件。

本文及本章节,都是说明如何对各种网络接口配置文档进行人工创建和编辑。有关网络管理工具的使用教程,可参考下一章翻译文档《网络管理工具》

以下是一个典型的ifcfg-ppp0配置文件

DEVICE=ppp0

NAME=test

WVDIALSECT=test

MODEMPORT=/dev/modem

LINESPEED=115200

PAPNAME=test

USERCTL=true

ONBOOT=no

PERSIST=no

DEFROUTE=yes

PEERDNS=yes

DEMAND=no

IDLETIMEOUT=600

以下是拨号接口配置文件中各个选项及指令的用法和说明

DEFROUTE=<yes|no>

yes-将此接口作为默认路由

no-不将此接口作为默认路由

DEMAND=<yes|no>

yes-启用按需要拨号。即当用户需要网络连接时允许pppd程序自动初始化拨号连接

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>

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-eth0),可参考《Linux网络接口配置文件》

注意:以太网接口(ifcfg-eth0)能够配置成DHCP,但别名接口(ifcfg-eth0:0)不能配置成DHCP。

克隆文件

克隆接口的命名结构为ifcfg-<if-name>-<clone-name>,克隆文件用于为指定接口添加附加选项。例如,一个使用DHCP的网络接口eth0,看起来像

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=dhcp

以上配置没有设置USERCTL选项,因此USERCTL使用默认值no,即非root用户无法控制接口的启用状态。通过将ifcfg-eth0文件复制成ifcfg-eth0-user,并向克隆文件中添加USERCTL=yes指令,普通用户则能够通过/sbin/if-upeth0-user命令启用eth0接口了。

使用克隆文件时,实际上是整合了接口配置文件(如ifcfg-eth0)和克隆文件(如ifcfg-eth0-user)中的配置。

使用网络管理工具是创建别名文件和克隆文件较为简单,有关这个工具的使用信息,请参考下一章翻译文档《网络配置》

其它网络接口配置

除了之前讲到的以太网接口、IPSec接口、通道绑定接口、别名接口、克隆接口及拨号接口的配置文件,Linux还能够配置以下几种不太常用的网络接口。

除了之前讲到的以太网接口、IPSec接口、通道绑定接口、别名接口、克隆接口及拨号接口的配置文件,Linux还能够配置以下几种不太常用的网络接口。

ifcfg-lo

本地环回链路接口。环回链路通常用于测试,被不少应用程序所使用。任何发送到环回链路的数据都会马上返回到主机的网络层。

环回链路接口脚本位于/etc/sysconfig/network-scripts/ifcfg-lo,在任何情况下,都不要手动编辑这个文件,极可能导致系统不正常。

ifcfg-irlan0

红外线接口,它与以太网设备的配置方式差不多,但它通常用于红外线设备间的点对点连接。

ifcfg-plip0

PLIP(平行链路接口协议)与以太网设备连接的工作方式大致相同,不同之处在于它采用平行化端口。

ifcfg-tr0

令牌环网络拓扑与以太网络很不相同,以太网的流行使得令牌环网络很少被用到。

网络接口控制脚本

在Linux中,接口控制脚本用于激活和取消激活系统接口,/sbin/ifdown和/sbin/ifup是两个最主要的接口控制脚本,它们通过调用/etc/sysconfig/network-scripts/目录中的配置文件起作用。

在Linux中,接口控制脚本用于激活和取消激活系统接口,/sbin/ifdown和/sbin/ifup是两个最主要的接口控制脚本,它们通过调用/etc/sysconfig/network-scripts/目录中的配置文件起作用。

ifup和ifdown接口脚本是指向/sbin/目录的链接符号,在使用这两个脚本时,需要指定接口的名称,如

~]#ifupeth0

普通用户也能够使用ifup和ifdown命令,但能够控制指定的接口还与接口的配置有关。

网络接口被启动时需要完成许多网络初始化的工作,其中大部分工作都由/etc/rc.d/init.d/functions和/etc/sysconfig/network-scripts/network-functions这两个文件实现,详情可参考《Linux网络相关函数文件》。

当验证某个接口已经被配置完成,并且用户拥有控制接口的权限之后,相应的脚本则会启用或关闭这个接口。以下是位于/etc/sysconfig/network-scripts/目录中常用的接口控制脚本:

ifup-aliases

当有别名接口配置文件时,为指定接口配置多个IP地。

ifup-ippp和ifdown-ippp

启用和关闭ISDN接口。

ifup-ipsec和ifdown-ipsec

启用和关闭IPsec接。

ifup-ipv6和ipdown-ipv6

启用和关闭IPv6接口。

ifup-plip

启用PLIP接口。

ifup-plusb

为网络连接启用USB接口。

ifup-post和ifdown-post

包含接口被启用或被关闭后要执行的命令

ifup-ppp和ifdown-ppp

启用和关闭PPP接口。

ifup-routes

当接口被启用时,为设备添加静态路由。

ifup-sit和ifdown-sit

包含在IPv4连接中启用和关闭IPv6通道所要被调用的函数。

ifup-sl和ifdown-sl

启用和关闭SLIP接口。

ifup-wireless

启用无线接口。

删除或更改/etc/sysconfig/network-scripts/目录下的任何脚本,都可能导致接口连接出错或失败。因此,所以只在你对这些内容非常熟悉的情况下,才对它们进行更改。

同时操作所有网络脚本的最简单方法,就是使用/sbin/service命令对网络服务(/etc/rc.d/init.d/network)进行操作,如

~]#/sbin/servicenetwork<action>

<action>可以是start,stop或restart(启动、停止或重启)

使用以下命令,则可以查看已配置的设备及当前激活的网络接口的状态

~]#/sbin/servicenetworkstatus

配置静态路由

路由功能可以在路由设备上得以实现,因此在Fedora/Linux服务器或客户端上配置静态路由并不是十分必要。但如果有要求为每个接口配置静态路由,也是能够实现的。

路由功能可以在路由设备上得以实现,因此在Fedora/Linux服务器或客户端上配置静态路由并不是十分必要。但如果有要求为每个接口配置静态路由,也是能够实现的,尤其当机器上的多个接口分别位于不同的网段时,这一功能是相当有用。并且通过route命令能够显示当前的IP路由表。

静态路由配置存储在/etc/sysconfig/network-scripts/route-<interface>文件中,例如,eth0接口的静态路由配置文件的名称为route-eth0

route-<interface>文件的内容有两种格式,一种是IP命令行参数格式,别一种是“网段/子网掩码”格式。

IP命令行参数格式的静态路由配置

这种格式的静态路由配置首先定义接口的默认网关,然后配置文件中的每一行都被单独解析成一条路由条目。以下是一个配置样本

defaultx.x.x.xdev<interface>

x.x.x.x/xviax.x.x.xdev<interface>

在第一行中,x.x.x.x表示默认网关的IP地址,<interface>是连接或通向默认网关的接口名称。后面的条目都是用于定义路由的静态路由条目。

注意:如果网卡被配置成通过DHCP,并可以通过DHCP设置其默认网关,则不需要定义默认网关,即不要定义defaultx.x.x.xdev<interface>条目,否则在启动或激活接口时可能会出现一些错误信息。为多个静态路由同时使用相同的默认网关,也可能导致该问题。

在后面的静态路由条目中,x.x.x.x/x表示路由指向的网段及其子网掩码,x.x.x.x和<interface>分别表示达到目标网段的默认网关,以及连接或通向目标网段的网络接口。

上例中只写了一条路由条目,只要遵循这个格式,可以添加任意多的静态路由条目。

例1:系统中有一个eth0接口,它的默认网关为192.168.0.1,并且可以通过192.168.0.1这个网关连接到10.10.10.0/24和172.16.1.0/24这两个网段,则静态路由配置的内容应该如下:

default192.168.0.1deveth0

10.10.10.0/24via192.168.0.1eth0

172.16.1.0/24via192.168.0.1eth0

实际上,因为到达10.10.10.0/24和172.168.1.0/24的网关,与默认网关是相同的,因此不配置静态路由也能实现通信,这个例子主要用作说明罢了。下面的例2则是个实际的配置情景。

例2:系统中有eth0,eth1和eth2,其中eth0连接到默认网关,eth1和eth2分别通过网关10.10.10.1和172.168.1.1连接到网络10.10.10.0/24和172.168.1.0/24,则静态路由配置的内容应该如下:

default192.168.0.1deveth0

10.10.10.0/24via10.10.10.1eth1

172.16.1.0/24via172.16.1.1eth2

有关网段/子网掩码格式的静态路由配置,请看《Linux配置静态路由(二)》

配置静态路由(二)

使用“网段/子网掩码”格式的静态路由配置文件时,每三条记录为一组静态路由配置,并且需要使用连接的数字对静态路由的顺序进行标识,如:ADDRESS0,ADDRESS1,ADDRESS2...

本文主要做为第二种静态路由配置格式的示例,有关Linux下静态路由的基本知识和第一种静态路由配置格式,请参考《Linux配置静态路由》

网段/子网掩码格式的静态路由配置

ADDRESS0=x.x.x.x

NETMASK0=x.x.x.x

GATEWAY0=x.x.x.x

说明:

ADDRESS0=x.x.x.x-指定静态路由的目标网段

NETMASK0=x.x.x.x-指定静态路由的子网掩码

GATEWAY0=x.x.x.x-指定默认网关的IP地址

例:系统中有一个eth0接口,它的默认网关为192.168.0.1,并且可以通过192.168.0.1这个网关连接到10.10.10.0/24和172.16.1.0/24这两个网段,则静态路由配置的内容应该如下:

ADDRESS0=10.10.10.0

NETMASK0=255.255.255.0

GATEWAY0=192.168.0.1

ADDRESS1=172.16.1.0

NETMASK1=255.255.255.0

GATEWAY1=192.168.1.1

使用“网段/子网掩码”格式的静态路由配置文件时,每三条记录为一组静态路由配置,并且需要使用连接的数字对静态路由的顺序进行标识,如:ADDRESS0,ADDRESS1,ADDRESS2...

在上例中,因为到达10.10.10.0/24和172.168.1.0/24的网关,与默认网关是相同的,因此不配置静态路由也能实现通信,这个例子主要用作说明罢了。下面的例2则是个实际的配置情景。

例2:系统中有eth0,eth1和eth2,其中eth0连接到默认网关,eth1和eth2分别通过网关10.10.10.1和172.168.1.1连接到网络10.10.10.0/24和172.168.1.0/24,则静态路由配置的内容应该如下:

ADDRESS0=10.10.10.0

NETMASK0=255.255.255.0

GATEWAY0=10.10.10.1

ADDRESS1=172.16.1.0

NETMASK1=255.255.255.0

GATEWAY1=172.16.1.1

对于Fedora和其它Linux操作系统而言,这些配置均可以通过DHCP自行完成,因此没有必要在Fedora/Linux服务哭和客户端上配置静态路由。

网络函数

在Linux中,系统通过这些网络函数可执行以下功能:获取接口状态改变信息、设置主机名、寻找网关设备、验证指定设备的启用情况,以及添加静态路由……

Linux将启用和停用接口的一些重要的常用函数存放在文件中,例如/etc/sysconfig/network-scripts/network-functions文件包含最常用的IPv4函数。系统通过这些函数可执行以下功能:获取接口状态改变信息、设置主机名、寻找网关设备、验证指定设备的启用情况,以及添加静态路由……

而应用IPv6的接口所使用的函数与IPv4不同,它的函数存储在/etc/sysconfig/network-scripts/network-functions-ipv6文件中。这些函数可用于:配置和删除IPv6静态路由、创建和删除通道,添加和删除接口上的IPv6地址,以及接口上的IPv6地址测试……

通常查看网络函数文件能够帮助你更好的认识各个函数的功能和机制,从而加强配置和管理Linux网络环境的技巧和能力。

相关推荐