1.以太网接口
以太网最常见的接口文件是ifcfg-eth0,它控制系统里的第一个以太网卡.如果系统里有多个网卡,就有多个配置文件ifcfg-eth<X> (<X>是特定接口的唯一标识).因为每个设备都有自己的配置文件,管理员就能分别对每个接口功能进行控制.
以下是使用固定IP地址的一个ifcfg-eth0文件实例:
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
NETWORK=10.0.1.0
NETMASK=255.255.255.0
IPADDR=10.0.1.27
USERCTL=no
接口配置文件里的值会根据其他的值而改变.举例来说,应用DHCP的接口文件ifcfg-eth0会有点不一样,因为IP信息是由DHCP服务器提供的.
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
然而,对于给定的网络接口,手工编辑配置文件也是有可能的.
下面是一个以太接口配置文件的配置参数清单:
BONDING_OPTS=<parameters>,这个可为多个绑定设备分别进行配置.如果在ifcfg-<name>中使用了BONDING_OPTS,请不要为该绑定设备指定选项.
DEVICE=<name>,<name>是物理设备的名称(当它是动态分配的PPP设备时,它是逻辑名).
BOOTPROTO=<protocol>,在这里,<protocol>是以下值中的一个:
none,在启动时不使用任何协议.
bootp,使用BOOTP协议.
dhcp,使用DHCP协议.
DHCP_HOSTNAME,当DHCP服务器需要客户机在接收IP地址前指定主机名时才使用该选项.
ETHTOOL_OPTS=<options>,<options>是被ethtool支持的特定设备的选项.
例如,您需要设置100Mb,双项网络:ETHTOOL_OPTS="autoneg off speed 100 duplex full"
和使用定制初始化脚本相反,请使用ETHTOOL_OPTS设定接口速率和双工设定.在网络初始化脚本之外运行定制初始化脚本可导致在重启后引导网络设备时出现无法预计的结果.
注:如果要改变速度和双工设置,需要禁止自动协商选项autoneg off.这个必须先于其他选项启动,因为选项都是按顺序排列的.
MASTER=<bond-interface>,<bond-interface>是以太网接口所连接的接口的频道绑定接口.这个项和SLAVE项一起使用.
SLAVE=<bond-interface>,<bond-interface>是以下值中的一个:
yes,这个设备由MASTER项中指定的频道绑定接口控制.
no,这个设备不被MASTER项中指定的频道绑定接口控制.
这个项与MASTER项一起使用.
HWADDR=<MAC-address>,<MAC-address>是以太网设备的硬件地址(格式为AA:BB:CC:DD:EE:FF).这个项对有多个网卡的系统非常有用,无论每个网卡的模块是以什么顺序被加载的,它们都可以获得正确的设备名.这个项不能和MACADDR一起使用.
MACADDR=<MAC-address>,<MAC-address>是以太网设备的硬件地址(格式为AA:BB:CC:DD:EE:FF).这个项被用来为一个接口分配一个MAC地址,这个地址会覆盖分配给物理网卡的地址.这个不能和HWADDR一起使用.
IPADDR=<address>,<address>是IP地址.
NETMASK=<mask>,<mask>是网络掩码的值.
GATEWAY=<address>,<address>是路由器或网关设备的IP地址.
NETWORK=<address>,<address>是网络地址.这个项已经不再被使用,它现在被ifcalc自动计算.
BROADCAST=<address>,<address>是广播的地址.这个项已经不再被使用,因为这个值可以被ifcalc自动计算.
ONBOOT=<answer>,<answer>是以下值中的一个:
yes,这个设备在启动时被激活.
no,这个设备在启动时不被激活.
DNS{1,2}=<address>,<address>是/etc/resolv.conf(PEERDNS项被设为yes)文件中的名称服务器的地址.
PEERDNS=<answer>,<answer>是以下值中的一个:
yes,如果DNS项被设定,修改/etc/resolv.conf;如果使用DHCP,yes就是默认设置.
no,不修改/etc/resolv.conf文件.
SRCADDR=<address>,<address>是为输出的包指定的源IP地址.
USERCTL=<answer>,<answer>是以下值之一:
yes,允许非根用户控制该设备.
no,不允许非根用户控制该设备.
以太网最常见的接口文件是ifcfg-eth0,它控制系统里的第一个以太网卡.如果系统里有多个网卡,就有多个配置文件ifcfg-eth<X> (<X>是特定接口的唯一标识).因为每个设备都有自己的配置文件,管理员就能分别对每个接口功能进行控制.
以下是使用固定IP地址的一个ifcfg-eth0文件实例:
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
NETWORK=10.0.1.0
NETMASK=255.255.255.0
IPADDR=10.0.1.27
USERCTL=no
接口配置文件里的值会根据其他的值而改变.举例来说,应用DHCP的接口文件ifcfg-eth0会有点不一样,因为IP信息是由DHCP服务器提供的.
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
然而,对于给定的网络接口,手工编辑配置文件也是有可能的.
下面是一个以太接口配置文件的配置参数清单:
BONDING_OPTS=<parameters>,这个可为多个绑定设备分别进行配置.如果在ifcfg-<name>中使用了BONDING_OPTS,请不要为该绑定设备指定选项.
DEVICE=<name>,<name>是物理设备的名称(当它是动态分配的PPP设备时,它是逻辑名).
BOOTPROTO=<protocol>,在这里,<protocol>是以下值中的一个:
none,在启动时不使用任何协议.
bootp,使用BOOTP协议.
dhcp,使用DHCP协议.
DHCP_HOSTNAME,当DHCP服务器需要客户机在接收IP地址前指定主机名时才使用该选项.
ETHTOOL_OPTS=<options>,<options>是被ethtool支持的特定设备的选项.
例如,您需要设置100Mb,双项网络:ETHTOOL_OPTS="autoneg off speed 100 duplex full"
和使用定制初始化脚本相反,请使用ETHTOOL_OPTS设定接口速率和双工设定.在网络初始化脚本之外运行定制初始化脚本可导致在重启后引导网络设备时出现无法预计的结果.
注:如果要改变速度和双工设置,需要禁止自动协商选项autoneg off.这个必须先于其他选项启动,因为选项都是按顺序排列的.
MASTER=<bond-interface>,<bond-interface>是以太网接口所连接的接口的频道绑定接口.这个项和SLAVE项一起使用.
SLAVE=<bond-interface>,<bond-interface>是以下值中的一个:
yes,这个设备由MASTER项中指定的频道绑定接口控制.
no,这个设备不被MASTER项中指定的频道绑定接口控制.
这个项与MASTER项一起使用.
HWADDR=<MAC-address>,<MAC-address>是以太网设备的硬件地址(格式为AA:BB:CC:DD:EE:FF).这个项对有多个网卡的系统非常有用,无论每个网卡的模块是以什么顺序被加载的,它们都可以获得正确的设备名.这个项不能和MACADDR一起使用.
MACADDR=<MAC-address>,<MAC-address>是以太网设备的硬件地址(格式为AA:BB:CC:DD:EE:FF).这个项被用来为一个接口分配一个MAC地址,这个地址会覆盖分配给物理网卡的地址.这个不能和HWADDR一起使用.
IPADDR=<address>,<address>是IP地址.
NETMASK=<mask>,<mask>是网络掩码的值.
GATEWAY=<address>,<address>是路由器或网关设备的IP地址.
NETWORK=<address>,<address>是网络地址.这个项已经不再被使用,它现在被ifcalc自动计算.
BROADCAST=<address>,<address>是广播的地址.这个项已经不再被使用,因为这个值可以被ifcalc自动计算.
ONBOOT=<answer>,<answer>是以下值中的一个:
yes,这个设备在启动时被激活.
no,这个设备在启动时不被激活.
DNS{1,2}=<address>,<address>是/etc/resolv.conf(PEERDNS项被设为yes)文件中的名称服务器的地址.
PEERDNS=<answer>,<answer>是以下值中的一个:
yes,如果DNS项被设定,修改/etc/resolv.conf;如果使用DHCP,yes就是默认设置.
no,不修改/etc/resolv.conf文件.
SRCADDR=<address>,<address>是为输出的包指定的源IP地址.
USERCTL=<answer>,<answer>是以下值之一:
yes,允许非根用户控制该设备.
no,不允许非根用户控制该设备.
2.别名和克隆文件
alias和clone文件是两个用的比较少的接口配置文件.
用来在同一接口上绑定多个地址的别名接口配置文件,使用ifcfg-<if-name>:<alias-value>命名规则.
例如:ifcfg-eth0:0可以指定DEVICE=eth0:0和静态地址10.0.0.2.假设以太网接口已经配置成通过DHCP里获取IP信息.在这种情况下,eth0被绑定在一个动态地址上,但同一网卡又可以设置成静态地址10.0.0.2.
注:别名接口不支持DHCP.
例如:ifcfg-eth0:0可以指定DEVICE=eth0:0和静态地址10.0.0.2.假设以太网接口已经配置成通过DHCP里获取IP信息.在这种情况下,eth0被绑定在一个动态地址上,但同一网卡又可以设置成静态地址10.0.0.2.
注:别名接口不支持DHCP.
克隆接口配置文件应该使用这样的命名规则:ifcfg-<if-name>-<clone-name>.别名文件允许同一接口拥有多个地址,克隆文件用来指定某一接口的额外选项.
例如:一个叫eth0的标准DHCP以太接口,可能象下面这样:
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
如果USERCTL=yes的值没有被指定,非根用户就不能启动或停止这个接口.如果拷贝ifcfg-eth0到克隆文件ifcfg-eth0-user,并且把下面的语句加进去,就可以让非根用户控制这个接口.
USERCTL=yes
因为ifcfg-eth0和ifcfg-eth0-user里的配置选项被合并了,用户可以用/sbin/ifup eth0-user命令来启动接口eth0. 尽管这只是个非常简单的例子, 这个方法也可以用于其他的选项和接口.
例如:一个叫eth0的标准DHCP以太接口,可能象下面这样:
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
如果USERCTL=yes的值没有被指定,非根用户就不能启动或停止这个接口.如果拷贝ifcfg-eth0到克隆文件ifcfg-eth0-user,并且把下面的语句加进去,就可以让非根用户控制这个接口.
USERCTL=yes
因为ifcfg-eth0和ifcfg-eth0-user里的配置选项被合并了,用户可以用/sbin/ifup eth0-user命令来启动接口eth0. 尽管这只是个非常简单的例子, 这个方法也可以用于其他的选项和接口.
3.通道联合
红帽企业Linux允许管理员使用bonding核心模块和一个特殊的网络接口(channel bonding interface)把多个网络接口绑定成一个单一接口,这个接口就叫通道联合.通道联合使两个或更多的网络接口象单一接口一样地工作, 既增加了带宽,也提供了冗余功能.
搞清楚什么是通道联合(bonding)需要从网卡的混杂(promisc)模式说起.我们知道,在正常情况下,网卡只接收目的硬件地址(MAC Address)是自身Mac的以太网帧,对于别的数据帧都滤掉,以减轻驱动程序的负担.但是网卡也支持另外一种被称为混杂promisc的模式,可以接收网络上所有的帧,比如说tcpdump,就是运行在这个模式下.bonding也运行在这个模式下,而且修改了驱动程序中的mac地址,将两块网卡的Mac地址改成相同,可以接收特定mac的数据帧.然后把相应的数据帧传送给bonding驱动程序处理.
为了创建一个通道联合接口,需要在/etc/sysconfig/network-scripts/目录下创建一个叫ifcfg-bond<N>的文件(<N>是接口的序号, 如0).
这个文件的内容可以和任意一个绑定的接口相同,如以太接口.区别在于,DEVICE=必须是bond<N>(<N>是接口的序号, 如0).
下面是个通道绑定配置文件的样本:
DEVICE=bond0
BONDING_OPTS="mode=1 miimon=500"
BOOTPROTO=none
ONBOOT=yes
NETWORK=10.0.1.0
IPADDR=10.0.1.27
NETMASK=255.255.255.0
USERCTL=no
通道绑定接口创建以后,被绑定接口的配置文件里必需加入MASTER=和SLAVE=.各绑定接口的配置文件可以近似相同.
举例来说,如果两个以太接口被绑定,eth0和eth1可能是下面的样子:
DEVICE=eth<N>
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
4.IPsec接口
红帽企业Linux通过像因特网一样的常用网络载体使用一个安全隧道支持IPsec对远程主机和各网络之间的互相连接.IPsec可以通过应用主机到主机(即一个到另一个电脑工作站)或网络到网络(一个到另一个LAN/WAN)的配置来实现.
在红帽企业Linux中IPsec的实现使用Internet Key Exchange(IKE),即一个由网络工程任务强制(Internet Engineering Task Force,IETF)实现的协议,用来实现相连接系统之间的相互验证和安全关联.
一个IPsec连接分成两个逻辑阶段.在第一阶段,一个IPsec节点发起与远程节点或网络的连接.该远程节点或网络检查请求连接的节点的资格,预连接的双方协商连接的验证方法.
在红帽企业Linux系统上,一种IPsec连接使用pre-shared key(事先选好的共享密码)方法进行IPsec节点验证.在pre-shared key IPsec连接中,两个主机双方必须使用同一个密码才能过渡到IPsec连接的第二阶段.
IPsec连接的第二阶段也就是Security Association(安全关联)(SA)在IPsec节点之间被建立的阶段.这个阶段建立一个含有像加密方法,密钥交换参数等更多配置信息的SA数据库.同时这个阶段也在各远程节点和网络间建立起实际的IPsec连接.
红帽企业Linux在网络上的主机之间就共享密钥而言使用IKE来实现IPsec.设定密钥守护进程racoon用来处理IKE密钥分配和交换.
4.1.IPsec的安装
使用IPsec需要在所有IPsec主机上(如果使用主机到主机配置)或路由器上(如果使用网络到网络配置)安装ipsec-tools RPM软件包.该RPM软件包含有主要程序库,守护进程和建立IPsec连接的各种配置文件,包括:
/sbin/setkey,操纵内核中IPsec的密钥管理和安全属性.这项可执行程序由racoon密钥管理守护进程控制.
/sbin/racoon,IKE密钥管理守护进程,用来管理和控制由IPsec相连系统间的安全关联和密钥共享.
/etc/racoon/racoon.conf,即racoon守护进程配置文件,用来配置IPsec连接的各个方面,包括连接时使用的验证方法和加密算法.
要在红帽企业Linux中配置IPsec,可以使用手工编辑网络和IPsec配置文件.
使用IPsec需要在所有IPsec主机上(如果使用主机到主机配置)或路由器上(如果使用网络到网络配置)安装ipsec-tools RPM软件包.该RPM软件包含有主要程序库,守护进程和建立IPsec连接的各种配置文件,包括:
/sbin/setkey,操纵内核中IPsec的密钥管理和安全属性.这项可执行程序由racoon密钥管理守护进程控制.
/sbin/racoon,IKE密钥管理守护进程,用来管理和控制由IPsec相连系统间的安全关联和密钥共享.
/etc/racoon/racoon.conf,即racoon守护进程配置文件,用来配置IPsec连接的各个方面,包括连接时使用的验证方法和加密算法.
要在红帽企业Linux中配置IPsec,可以使用手工编辑网络和IPsec配置文件.
4.2.IPsec主机到主机连接配置
IPsec通过配置可以使用主机到主机方式将一个台式机或工作站(主机)连接到另一个.这种类型的连接利用连接至每一台主机的网络在主机之间建立一个安全隧道.建立主机到主机连接的IPsec配置是极少的.主机双方只需要连接到一个可靠的连接载体(比如因特网)和红帽企业 Linux上,从而建立IPsec连接.
主机到主机的IPsec连接是一种两个系统之间的加密连接,双方都运行带有同样验证密码的IPsec.IPsec连接激活后,两个主机之间的任何网络业务都以加密形式进行.
建立连接的第一步是从各工作站收集系统和网络的信息.要建立主机到主机连接,你需要下列信息:
a.每个主机的 IP 地址
b.一个独一无二的名称,如ipsec1.在进行IPsec连接时这个名称用来进行身份验证并与其它服务和连接区别开来.
c.一个事先选好的密钥或由racoon自动生成的密钥.
d.一个事先选好的共享验证密码,该密码在连接建立的最初阶段会用到,用来进行密钥交换.
例如,假设工作站A和工作站B想通过IPsec隧道建立相互的连接.这两个工作站要用一个事先选好的共享密码即Key_Value01进行连接,而且用户们同意让racoon自动生成一个主机之间共享的验证密码.连接双方决定以ipsec1来命名这一连接.
下面是IPsec为工作站A与工作站B进行主机到主机IPsec连接的配置文件.这个例子中识别该连接的独一无二的名称是ipsec1,因此该连接合成的文件名是/etc/sysconfig/network-scripts/ifcfg-ipsec1.
DST=X.X.X.X
TYPE=IPsec
ONBOOT=no
IKE_METHOD=PSK
对工作站A来说,X.X.X.X 是工作站B的IP地址.对工作站B来说,X.X.X.X 是工作站A的IP地址.这一连接的设定不是在启动(ONBOOT=no)时就启动该连接,而是要使用事先选好的共享验证密码方式(IKE_METHOD=PSK)进行连接.
下面是关于事先选好的共享验证密码的文件内容(叫 /etc/sysconfig/network-scripts/keys-ipsec1),两个工作站都需要验证相互的身份.这个文件的内容在两个工作站处应该是完全一致的,而且应该只有根用户才有读取和写入该文件的权限.
IKE_PSK=Key_Value01
注意:要在keys-ipsec1文件创建后修改此文件以保证只有根用户能够读取和编辑该文件.
接下来的例子显示连接到远程主机时第一阶段的具体配置.该文件叫X.X.X.X.conf,其中X.X.X.X 是IPsec连接中远程主机的IP地址.注意这个文件是在IPsec隧道被激活时自动生成的,而且应该无法直接对它进行编辑.
remote X.X.X.X
{
exchange_mode aggressive, main;
my_identifier address;
proposal {
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group 2 ;
}
}
默认情况下,当IPsec连接启动时第一阶段配置文件含有红帽企业Linux使用的和由IPsec实现的下列声明:
remote X.X.X.X,指定该配置文件随后的文件段只适用于由X.X.X.X IP地址识别的远程节点.
exchange_mode aggressive,在红帽企业Linux上IPsec默认的配置是使用挑衅性的验证方式(aggressive authentication mode),这样可以使该连接在空中降低位置,从而允许与多个主机进行多项连接的IPsec配置.
my_identifier address,验证节点时指定要使用的验证身份的方式,红帽企业Linux使用IP地址来识别节点.
encryption_algorithm 3des,指定验证身份时使用的密码暗号.默认情况下,给定使用Triple Data Encryption Standard(3DES).
hash_algorithm sha1,指定节点之间在第一阶段的协商中所使用的散列算法.默认情况下,给定使用Secure Hash Algorithm version 1(安全散列算法第一版).
authentication_method pre_shared_key,指定节点之间协商中所使用的验证方法.默认情况下,红帽企业Linux使用事先选好的共享密码验证方法.
dh_group 2,指定Diffie-Hellman的组号码以便建立动态生成的会话密钥.其默认号码是modp1024 (group 2).
最后是racoon配置文件,/etc/racoon/racoon.conf文件在所有IPsec节点上应该是完全一样的,只有一个例外,那就是include "/etc/racoon/X.X.X.X.conf" 声明.这个声明(以及它相关的文件)是在IPsec隧道被激活时生成的.对工作站A来说,include声明中的X.X.X.X是工作站B的IP地址.反过来则是工作站A的IP地址.下面显示的是当IPsec连接被激活时生成的racoon.conf的典型文件.
path include "/etc/racoon";
path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";
sainfo anonymous
{
pfs_group 2;
lifetime time 1 hour;
encryption_algorithm 3des, blowfish 448, rijndael;
authentication_algorithm hmac_sha1, hmac_md5;
compression_algorithm deflate;
}
include "/etc/racoon/X.X.X.X.conf";
这个默认的racoon.conf文件包括IPsec配置定义好的路径,事先选好的共享密钥文件和证书.sainfo anonymous中的字段描述IPsec节点之间的第二阶段SA.下面的列表定义第二阶段的各项字段:
sainfo anonymous,表明SA可以在匿名状态下启动任何同级设备,只要其IPsec资格相匹配.
pfs_group 2,定义Diffie-Hellman密钥交换协议,该协议决定使用什么方法使IPsec节点之间建立相互的临时会话密码,以便进行IPsec第二阶段的连接.默认情况下,红帽企业Linux实施IPsec使用Diffie-Hellman密码密钥交换组中的组2(group 2)(或modp1024).组2使用1024比特模运算方式,这种方式可以防止袭击者们试图破解在此之前传输的IPsec信息,即使他们找到一个有效密码而进入也无济于事.
lifetime time 1 hour,这个参数指定一个以时间或以字节数来量化的SA寿命.默认红帽企业Linux规定其寿命是一个小时.
encryption_algorithm 3des, blowfish 448, rijndael,指定所支持的进行第二阶段的加密暗号.红帽企业Linux支持3DES,448-bit Blowfish,和Rijndael(在 Advanced Encryption Standard或AES中使用的密码).
authentication_algorithm hmac_sha1, hmac_md5,列出所支持的为身份验证而进行的散列算法.所支持的方式是sha1和md5散列讯息验证码(HMAC).
compression_algorithm deflate,为IP Payload Compression (IPCOMP)支持设备定义Deflate压缩算法,这样能在传输比较慢的连接上潜在地加速IP数据报的传输.
接下来,便可以启用IPsec连接了.要测试IPsec连接,执行tcpdump命令来查看传输在主机之间的网络数据包,并验证该连接是通过IPsec进行加密的.这个数据包应该包括一个AH标题,并且显示是ESP数据包,ESP意味着是加密的.
例如:[root@myServer ~]# tcpdump -n -i eth0 host <targetSystem>
IP 172.16.45.107
> 172.16.44.192: AH(spi=0x0954ccb6,seq=0xbb): ESP(spi=0x0c9f2164,seq=0xbb)
IPsec通过配置可以使用主机到主机方式将一个台式机或工作站(主机)连接到另一个.这种类型的连接利用连接至每一台主机的网络在主机之间建立一个安全隧道.建立主机到主机连接的IPsec配置是极少的.主机双方只需要连接到一个可靠的连接载体(比如因特网)和红帽企业 Linux上,从而建立IPsec连接.
主机到主机的IPsec连接是一种两个系统之间的加密连接,双方都运行带有同样验证密码的IPsec.IPsec连接激活后,两个主机之间的任何网络业务都以加密形式进行.
建立连接的第一步是从各工作站收集系统和网络的信息.要建立主机到主机连接,你需要下列信息:
a.每个主机的 IP 地址
b.一个独一无二的名称,如ipsec1.在进行IPsec连接时这个名称用来进行身份验证并与其它服务和连接区别开来.
c.一个事先选好的密钥或由racoon自动生成的密钥.
d.一个事先选好的共享验证密码,该密码在连接建立的最初阶段会用到,用来进行密钥交换.
例如,假设工作站A和工作站B想通过IPsec隧道建立相互的连接.这两个工作站要用一个事先选好的共享密码即Key_Value01进行连接,而且用户们同意让racoon自动生成一个主机之间共享的验证密码.连接双方决定以ipsec1来命名这一连接.
下面是IPsec为工作站A与工作站B进行主机到主机IPsec连接的配置文件.这个例子中识别该连接的独一无二的名称是ipsec1,因此该连接合成的文件名是/etc/sysconfig/network-scripts/ifcfg-ipsec1.
DST=X.X.X.X
TYPE=IPsec
ONBOOT=no
IKE_METHOD=PSK
对工作站A来说,X.X.X.X 是工作站B的IP地址.对工作站B来说,X.X.X.X 是工作站A的IP地址.这一连接的设定不是在启动(ONBOOT=no)时就启动该连接,而是要使用事先选好的共享验证密码方式(IKE_METHOD=PSK)进行连接.
下面是关于事先选好的共享验证密码的文件内容(叫 /etc/sysconfig/network-scripts/keys-ipsec1),两个工作站都需要验证相互的身份.这个文件的内容在两个工作站处应该是完全一致的,而且应该只有根用户才有读取和写入该文件的权限.
IKE_PSK=Key_Value01
注意:要在keys-ipsec1文件创建后修改此文件以保证只有根用户能够读取和编辑该文件.
接下来的例子显示连接到远程主机时第一阶段的具体配置.该文件叫X.X.X.X.conf,其中X.X.X.X 是IPsec连接中远程主机的IP地址.注意这个文件是在IPsec隧道被激活时自动生成的,而且应该无法直接对它进行编辑.
remote X.X.X.X
{
exchange_mode aggressive, main;
my_identifier address;
proposal {
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group 2 ;
}
}
默认情况下,当IPsec连接启动时第一阶段配置文件含有红帽企业Linux使用的和由IPsec实现的下列声明:
remote X.X.X.X,指定该配置文件随后的文件段只适用于由X.X.X.X IP地址识别的远程节点.
exchange_mode aggressive,在红帽企业Linux上IPsec默认的配置是使用挑衅性的验证方式(aggressive authentication mode),这样可以使该连接在空中降低位置,从而允许与多个主机进行多项连接的IPsec配置.
my_identifier address,验证节点时指定要使用的验证身份的方式,红帽企业Linux使用IP地址来识别节点.
encryption_algorithm 3des,指定验证身份时使用的密码暗号.默认情况下,给定使用Triple Data Encryption Standard(3DES).
hash_algorithm sha1,指定节点之间在第一阶段的协商中所使用的散列算法.默认情况下,给定使用Secure Hash Algorithm version 1(安全散列算法第一版).
authentication_method pre_shared_key,指定节点之间协商中所使用的验证方法.默认情况下,红帽企业Linux使用事先选好的共享密码验证方法.
dh_group 2,指定Diffie-Hellman的组号码以便建立动态生成的会话密钥.其默认号码是modp1024 (group 2).
最后是racoon配置文件,/etc/racoon/racoon.conf文件在所有IPsec节点上应该是完全一样的,只有一个例外,那就是include "/etc/racoon/X.X.X.X.conf" 声明.这个声明(以及它相关的文件)是在IPsec隧道被激活时生成的.对工作站A来说,include声明中的X.X.X.X是工作站B的IP地址.反过来则是工作站A的IP地址.下面显示的是当IPsec连接被激活时生成的racoon.conf的典型文件.
path include "/etc/racoon";
path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";
sainfo anonymous
{
pfs_group 2;
lifetime time 1 hour;
encryption_algorithm 3des, blowfish 448, rijndael;
authentication_algorithm hmac_sha1, hmac_md5;
compression_algorithm deflate;
}
include "/etc/racoon/X.X.X.X.conf";
这个默认的racoon.conf文件包括IPsec配置定义好的路径,事先选好的共享密钥文件和证书.sainfo anonymous中的字段描述IPsec节点之间的第二阶段SA.下面的列表定义第二阶段的各项字段:
sainfo anonymous,表明SA可以在匿名状态下启动任何同级设备,只要其IPsec资格相匹配.
pfs_group 2,定义Diffie-Hellman密钥交换协议,该协议决定使用什么方法使IPsec节点之间建立相互的临时会话密码,以便进行IPsec第二阶段的连接.默认情况下,红帽企业Linux实施IPsec使用Diffie-Hellman密码密钥交换组中的组2(group 2)(或modp1024).组2使用1024比特模运算方式,这种方式可以防止袭击者们试图破解在此之前传输的IPsec信息,即使他们找到一个有效密码而进入也无济于事.
lifetime time 1 hour,这个参数指定一个以时间或以字节数来量化的SA寿命.默认红帽企业Linux规定其寿命是一个小时.
encryption_algorithm 3des, blowfish 448, rijndael,指定所支持的进行第二阶段的加密暗号.红帽企业Linux支持3DES,448-bit Blowfish,和Rijndael(在 Advanced Encryption Standard或AES中使用的密码).
authentication_algorithm hmac_sha1, hmac_md5,列出所支持的为身份验证而进行的散列算法.所支持的方式是sha1和md5散列讯息验证码(HMAC).
compression_algorithm deflate,为IP Payload Compression (IPCOMP)支持设备定义Deflate压缩算法,这样能在传输比较慢的连接上潜在地加速IP数据报的传输.
接下来,便可以启用IPsec连接了.要测试IPsec连接,执行tcpdump命令来查看传输在主机之间的网络数据包,并验证该连接是通过IPsec进行加密的.这个数据包应该包括一个AH标题,并且显示是ESP数据包,ESP意味着是加密的.
例如:[root@myServer ~]# tcpdump -n -i eth0 host <targetSystem>
IP 172.16.45.107
> 172.16.44.192: AH(spi=0x0954ccb6,seq=0xbb): ESP(spi=0x0c9f2164,seq=0xbb)
4.3.IPsec网络到网络连接配置
IPsec也可以用来配置整个一个网络(像LAN或WAN)通过网络到网络连接方式连接到另一个远程网络上.网络到网络连接要求在连接的两端设定IPsec路由器来用透明的方式处理路径信息,其路径从LAN上的一个节点到远程LAN上的另一个节点.
建立网络到网络连接所需信息包括:
专用IPsec路由器上可以公开访问的IP地址
由IPsec路由器服务的LAN/WAN的网络地址区间(比如192.168.1.0/24或10.0.1.0/24).
将数据由网络传输到因特网的网关设备IP地址
一个独一无二的名称,例如ipsec1.在进行IPsec连接时这个名称用来进行身份验证并与其它服务和连接区别开来.
一个选定的密钥或由racoon自动生成的密钥
一个事先选好的共享验证密码,该密码在连接建立的最初阶段会用到,用来进行密钥交换.
一个网络到网络IPsec连接要用两个IPsec路由器,一个网络一个,专用分支网络之间的传输就通过这两个路由器建立.
IPsec路由器要求有可以公开访问的IP地址和第二个以太网(Ethernet)设备连接到相应的专用网上.网络业务只能通过一个IPsec路由器到另一个IPsec路由器,而且两个路由器之间的传输连接是加密的.
其它网络配置选项包括在各个IP路由器和因特网之间设立防火墙,也在每个IPsec路由器和分支网络网关之间设立内联网防火墙.IPsec路由器和分支网络网关可以是同一个系统下的两个以太网(Ethernet)设备:一个有可以公开访问的IP地址,用作IPsec路由器;而另一个有专用IP地址,用作专用分支网络的网关.每个IPsec路由器可以在其专用分支网内使用网关,也可以通过公用网关将数据包传送到另一个IPsec路由器.
假设LAN A(lana.example.com)和LAN B (lanb.example.com)要通过IPsec隧道进行相互的连接.LAN A的网络地址是192.168.1.0/24区间,而LAN B使用192.168.2.0/24区间.LAN A的网关IP地址为192.168.1.254,LAN B的网关IP地址为192.168.2.254.IPsec各个路由器由LAN网关使用两个网络设备(eth0 和 eth1)隔开:eth0被指派给一个可以公开访问的静态IP地址,可以连接因特网;而eth1则被用作一个选路点(routing point)来处理和传输从一个网络节点到各远程网络节点的LAN数据包.
各网络之间的IPsec连接使用事先选好的共享密钥r3dh4tl1nux,而且系统管理员A和B同意让racoon自动生成并共享每个IPsec路由器之间的验证密码.LAN A管理员决定命名该IPsec连接为 ipsec0,而LAN B管理员命名该IPsec连接为ipsec1.
下面的例子显示LAN A的网络到网络IPsec连接的ifcfg文件的内容.本例中识别该连接的独特名称为ipsec0,所以合成的文件叫作/etc/sysconfig/network-scripts/ifcfg-ipsec0.
TYPE=IPSEC
ONBOOT=yes
IKE_METHOD=PSK
SRCGW=192.168.1.254
DSTGW=192.168.2.254
SRCNET=192.168.1.0/24
DSTNET=192.168.2.0/24
DST=X.X.X.X
下面的列表描述该文件的内容:
TYPE=IPSEC,指定连接类型.
ONBOOT=yes,指定电脑启动时便激活这个连接.
IKE_METHOD=PSK,指定该连接使用事先选好的共享密钥来进行身份验证.
SRCGW=192.168.1.254,源网关的IP地址.对LAN A来说是LAN A网关,对LAN B来说是LAN B网关.
DSTGW=192.168.2.254,目的地网关的IP地址.对LAN A来说是LAN B网关,对LAN B来说是LAN A网关.
SRCNET=192.168.1.0/24,为IPsec连接指定源网络,在这个例子中则是LAN A的网络区间.
DSTNET=192.168.2.0/24,为IPsec连接指定目的地网络,在这个例子中则是LAN B的网络区间.
DST=X.X.X.X,LAN B的可以公开访问的IP地址.
下面的例子是事先选好的共享密钥文件的内容,该文件叫/etc/sysconfig/network-scripts/keys-ipsecX(其中X对LAN A来说是0, 对LAN B来说是1).A和B两个网络都用这个密钥来相互验证,而且这个文件的内容在A和B处应该完全一致,只有根用户才有读取和写入的权限.
IKE_PSK=r3dh4tl1nux
IPsec也可以用来配置整个一个网络(像LAN或WAN)通过网络到网络连接方式连接到另一个远程网络上.网络到网络连接要求在连接的两端设定IPsec路由器来用透明的方式处理路径信息,其路径从LAN上的一个节点到远程LAN上的另一个节点.
建立网络到网络连接所需信息包括:
专用IPsec路由器上可以公开访问的IP地址
由IPsec路由器服务的LAN/WAN的网络地址区间(比如192.168.1.0/24或10.0.1.0/24).
将数据由网络传输到因特网的网关设备IP地址
一个独一无二的名称,例如ipsec1.在进行IPsec连接时这个名称用来进行身份验证并与其它服务和连接区别开来.
一个选定的密钥或由racoon自动生成的密钥
一个事先选好的共享验证密码,该密码在连接建立的最初阶段会用到,用来进行密钥交换.
一个网络到网络IPsec连接要用两个IPsec路由器,一个网络一个,专用分支网络之间的传输就通过这两个路由器建立.
IPsec路由器要求有可以公开访问的IP地址和第二个以太网(Ethernet)设备连接到相应的专用网上.网络业务只能通过一个IPsec路由器到另一个IPsec路由器,而且两个路由器之间的传输连接是加密的.
其它网络配置选项包括在各个IP路由器和因特网之间设立防火墙,也在每个IPsec路由器和分支网络网关之间设立内联网防火墙.IPsec路由器和分支网络网关可以是同一个系统下的两个以太网(Ethernet)设备:一个有可以公开访问的IP地址,用作IPsec路由器;而另一个有专用IP地址,用作专用分支网络的网关.每个IPsec路由器可以在其专用分支网内使用网关,也可以通过公用网关将数据包传送到另一个IPsec路由器.
假设LAN A(lana.example.com)和LAN B (lanb.example.com)要通过IPsec隧道进行相互的连接.LAN A的网络地址是192.168.1.0/24区间,而LAN B使用192.168.2.0/24区间.LAN A的网关IP地址为192.168.1.254,LAN B的网关IP地址为192.168.2.254.IPsec各个路由器由LAN网关使用两个网络设备(eth0 和 eth1)隔开:eth0被指派给一个可以公开访问的静态IP地址,可以连接因特网;而eth1则被用作一个选路点(routing point)来处理和传输从一个网络节点到各远程网络节点的LAN数据包.
各网络之间的IPsec连接使用事先选好的共享密钥r3dh4tl1nux,而且系统管理员A和B同意让racoon自动生成并共享每个IPsec路由器之间的验证密码.LAN A管理员决定命名该IPsec连接为 ipsec0,而LAN B管理员命名该IPsec连接为ipsec1.
下面的例子显示LAN A的网络到网络IPsec连接的ifcfg文件的内容.本例中识别该连接的独特名称为ipsec0,所以合成的文件叫作/etc/sysconfig/network-scripts/ifcfg-ipsec0.
TYPE=IPSEC
ONBOOT=yes
IKE_METHOD=PSK
SRCGW=192.168.1.254
DSTGW=192.168.2.254
SRCNET=192.168.1.0/24
DSTNET=192.168.2.0/24
DST=X.X.X.X
下面的列表描述该文件的内容:
TYPE=IPSEC,指定连接类型.
ONBOOT=yes,指定电脑启动时便激活这个连接.
IKE_METHOD=PSK,指定该连接使用事先选好的共享密钥来进行身份验证.
SRCGW=192.168.1.254,源网关的IP地址.对LAN A来说是LAN A网关,对LAN B来说是LAN B网关.
DSTGW=192.168.2.254,目的地网关的IP地址.对LAN A来说是LAN B网关,对LAN B来说是LAN A网关.
SRCNET=192.168.1.0/24,为IPsec连接指定源网络,在这个例子中则是LAN A的网络区间.
DSTNET=192.168.2.0/24,为IPsec连接指定目的地网络,在这个例子中则是LAN B的网络区间.
DST=X.X.X.X,LAN B的可以公开访问的IP地址.
下面的例子是事先选好的共享密钥文件的内容,该文件叫/etc/sysconfig/network-scripts/keys-ipsecX(其中X对LAN A来说是0, 对LAN B来说是1).A和B两个网络都用这个密钥来相互验证,而且这个文件的内容在A和B处应该完全一致,只有根用户才有读取和写入的权限.
IKE_PSK=r3dh4tl1nux
下面的例子显示IPsec连接的/etc/racoon/racoon.conf配置文件内容.注意该文件的最下面一行即include是自动生成的,而且只有在IPsec隧道运行时才显示.
path include "/etc/racoon";
path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";
sainfo anonymous
{
pfs_group 2;
lifetime time 1 hour ;
encryption_algorithm 3des, blowfish 448, rijndael ;
authentication_algorithm hmac_sha1, hmac_md5 ;
compression_algorithm deflate ;
}
include "/etc/racoon/X.X.X.X.conf"
下面是连接到远程网络的具体配置,该文件叫作X.X.X.X.conf(其中X.X.X.X是远程IPsec路由器的IP地址).注意该文件是IPsec隧道被激活时自动生成的,而且无法直接对其进行编辑.
remote X.X.X.X
{
exchange_mode aggressive, main;
my_identifier address;
proposal {
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group 2 ;
}
}
在启动IPsec连接之前,内核中IP转发功能应该被启动.要启动IP转发功能,可以编辑/etc/sysctl.conf并设定net.ipv4.ip_forward为1,并用sysctl -p /etc/sysctl.conf使这一改变生效.
要启动IPsec连接,请在各个路由器上使用下面的命令:
/sbin/ifup ipsec0
连接被激活,LAN A和LAN B便可以相互交流了,因为在IPsec连接上运行ifup时路径就通过初始化脚本被自动生成.要想显示该网络的路径列表,请用下面的命令:
/sbin/ip route list
要测试IPsec连接,在外选路(externally-routable)设备(这个例子里即eth0)上运行tcpdump程序来查看网络数据包在主机(网络)之间的传输,以及验证其传输是通过IPsec加密的.
例如,要检查LAN A的IPsec连通性,使用下面的命令:
tcpdump -n -i eth0 host lana.example.com
这个数据包应该包括一个AH主题,并显示为ESP数据包,其中,ESP意味着是加密的.
path include "/etc/racoon";
path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";
sainfo anonymous
{
pfs_group 2;
lifetime time 1 hour ;
encryption_algorithm 3des, blowfish 448, rijndael ;
authentication_algorithm hmac_sha1, hmac_md5 ;
compression_algorithm deflate ;
}
include "/etc/racoon/X.X.X.X.conf"
下面是连接到远程网络的具体配置,该文件叫作X.X.X.X.conf(其中X.X.X.X是远程IPsec路由器的IP地址).注意该文件是IPsec隧道被激活时自动生成的,而且无法直接对其进行编辑.
remote X.X.X.X
{
exchange_mode aggressive, main;
my_identifier address;
proposal {
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group 2 ;
}
}
在启动IPsec连接之前,内核中IP转发功能应该被启动.要启动IP转发功能,可以编辑/etc/sysctl.conf并设定net.ipv4.ip_forward为1,并用sysctl -p /etc/sysctl.conf使这一改变生效.
要启动IPsec连接,请在各个路由器上使用下面的命令:
/sbin/ifup ipsec0
连接被激活,LAN A和LAN B便可以相互交流了,因为在IPsec连接上运行ifup时路径就通过初始化脚本被自动生成.要想显示该网络的路径列表,请用下面的命令:
/sbin/ip route list
要测试IPsec连接,在外选路(externally-routable)设备(这个例子里即eth0)上运行tcpdump程序来查看网络数据包在主机(网络)之间的传输,以及验证其传输是通过IPsec加密的.
例如,要检查LAN A的IPsec连通性,使用下面的命令:
tcpdump -n -i eth0 host lana.example.com
这个数据包应该包括一个AH主题,并显示为ESP数据包,其中,ESP意味着是加密的.
4.4.启动和中止IPsec连接
如果IPsec连接的配置不是在电脑启动就激活,你可以从命令行中启动.
要启动连接,如果是主机到主机IPsec连接,就在各个主机上运行下面的命令,如果是网络到网络IPsec连接,就在各个IPsec路由器上运行下面的命令:
/sbin/ifup <nickname>,<nickname>是先前配置的名称,比如像ipsec0.
要中止连接,运行下面的命令:
/sbin/ifdown <nickname>
如果IPsec连接的配置不是在电脑启动就激活,你可以从命令行中启动.
要启动连接,如果是主机到主机IPsec连接,就在各个主机上运行下面的命令,如果是网络到网络IPsec连接,就在各个IPsec路由器上运行下面的命令:
/sbin/ifup <nickname>,<nickname>是先前配置的名称,比如像ipsec0.
要中止连接,运行下面的命令:
/sbin/ifdown <nickname>
5.拨号接口
如果你通过拨号来连接互联网,这个接口必需有一个配置文件.
PPP接口文件采用下列格式来命名:
ifcfg-ppp<X>
当使用wvdial,网络管理工具或者Kppp来创建拨号帐号,PPP接口配置文件会自动创建.您也可以手工创建和编辑这个文件.
下面是一个典型的ppp文件实例:
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
Serial Line Internet Protocol(SLIP)是另一个拨号接口,尽管用的比较少.它的配置文件名类似于ifcfg-sl0.
可以在这些文件里使用的其他选项包括:
DEFROUTE=<answer>,<answer>是以下值中的一个:
yes,设置这个接口作为默认路由.
no,不让这个接口作为默认路由.
DEMAND=<answer>,<answer>是如下值中的一个:
yes,允许pppd发起连接.
no,必须手动连接.
IDLETIMEOUT=<value>,<value>是允许空闲的秒数,超过这个时间会自动断开连接.
INITSTRING=<string>,<string>是modem所需的初始字符串,这通常用在与SLIP结合的端口上.
LINESPEED=<value>,<value>是设备的波特率,可选值包括57600,38400,19200,9600.
MODEMPORT=<device>,<device>是用来建立连接的串口设备的名字.
MTU=<value>,<value>用来设置接口的最大传输单元(Maximum Transfer Unit)(MTU).
NAME=<name>,<name>指拔号连接的名字.
PAPNAME=<name>,<name>是指与远程系统发生PAP(Password Authentication Protocol)交换时的用户名.
PERSIST=<answer>,<answer>是如下值中的一个:
yes,始终保持连接.
no,不用始终保持连接.
REMIP=<address>,<address>指远程系统的IP地址,这通常不用指定.
WVDIALSECT=<name>,<name>指与/etc/wvdial.conf关联的名字.
6.其它接口
其它常用的配置文件如下:
ifcfg-lo,本地loopback interface通常用来测试, 有时候也被一些需要指向自身地址的应用程序里所使用. 所有发送到回路设备的数据都会马上被回送到主机的网络层.
ifcfg-irlan0,infrared interface允许设备之间的信息,如笔记本和打印机,通过红外连接进行交换.这和以太设备很相似,只不过红外连接通常是点对点的连接.
ifcfg-plip0,Parallel Line Interface Protocol(PLIP)连接和以太设备几乎一样,只不过它是使用并行接口罢了.
ifcfg-tr0,Token Ring拓扑结构不像Local Area Networks(LANs)那么常见,它已经逐渐被以太网替代了.
7.配置控制脚本
接口控制脚本激活和终止系统接口.在/etc/sysconfig/network-scripts/目录下有两个主要的调用控制脚本的接口控制脚本:/sbin/ifdown和/sbin/ifup.
接口脚本ifup和ifdown都是/sbin/目录下脚本的链接. 其中一个被调用的时候, 都需要指定的接口的值, 如:
ifup eth0
/etc/rc.d/init.d/functions和/etc/sysconfig/network-scripts/network-functions用作在启动网络接口时的初始化.当确认接口已经被指定而且用户被允许控制这个接口, 适当的脚本就会启动或停止接口.下面是一些在/etc/sysconfig/network-scripts/目录下的常见接口控制脚本.
ifup-aliases,当有多个IP接口联接到同一接口时,可以在接口配置文件里配置IP别名.
ifup-ippp和ifdown-ippp,启动和停止ISDN接口.
ifup-ipsec和ifdown-ipsec,启动和停止IPsec接口.
ifup-ipv6和ifdown-ipv6,启动和停止IPv6接口.
ifup-ipx,启动IPX接口.
ifup-plip,启动PLIP接口.
ifup-plusb,启动用于网络连接的USB接口.
ifup-post和ifdown-post,包含在接口已经启动或停止后执行的命令.
ifup-ppp和ifdown-ppp,启动或停止PPP接口.
ifup-routes,当设备接口被启动后加入静态路由.
ifup-sit和ifdown-site,包括在IPv4连接里启动和停止IPv6管道的功能调用.
ifup-sl和ifdown-sl,启动和停止SLIP接口.
ifup-wireless,启动一个无线接口.
注:删除和修改/etc/sysconfig/network-scripts/目录下的脚本会导致接口连接不正常工作.只有高级用户才可以修改网络接口脚本.
同时操作所有网络脚本最简单的方法就是使用/sbin/service在网络服务(/etc/rc.d/init.d/network)里的命令,如下所示:
/sbin/service network <action>
在这里,<action>可以是start, stop或restart.
可以使用下列命令来查看已经配置好的设备和激活的网络接口:
/sbin/service network status
8.配置静态路由
因为将在路由设备中配置路由,所以无需在红帽企业版Linux服务器或者客户端中配置静态路由.但如果需要静态路由,可以为每个接口单独配置.这在不同的子网有多个接口时很有用.可使用route命令显示IP路由表.
静态路由配置保存在/etc/sysconfig/network-scripts/route-interface文件中.例如:eth0接口的静态路由是保存在/etc/sysconfig/network-scripts/route-eth0文件中.route-interface 文件有两种格式:IP命令参数和网络/子网掩码指令.
IP命令参数格式如下:
default X.X.X.X dev interface,X.X.X.X是默认网关IP地址.interface是已连接到默认网关或者可连接到默认网关的接口.
X.X.X.X/X via X.X.X.X dev interface,X.X.X.X/X是网络号和静态路由的子网掩码.X.X.X.X和interface分别是默认网关的IP地址和接口.X.X.X.X地址不一定是默认网关的IP地址.在大多数情况下,X.X.X.X会是不同子网下的IP地址,而interface将是已经连接到或者可以连接到那个子网的接口.可根据要求任意添加静态路由.
以下是使用IP命令参数格式的route-eth0文件示例.默认网关为192.168.0.1,接口eth0.两个静态路由分别针对10.10.10.0/24和172.16.1.0/24网络:
default 192.168.0.1 dev eth0
10.10.10.0/24 via 192.168.0.1 dev eth0
172.16.1.0/24 via 192.168.0.1 dev eth0
应该只能为其它子网配置静态路由.以上示例并不是必须的配置文件,因为流向网络10.10.10.0/24和172.16.1.0/24的数据包会使用默认网关.下面是在位于192.168.0.0/24子网的机器中将静态路由设定到不同子网的配置示例.示例机器在192.168.0.0/24子网中有eth0接口,在10.10.10.0/24子网中有eth1接口:
10.10.10.0/24 via 10.10.10.1 dev eth1
如果已经从DHCP分配了默认网关,IP命令参数格式会在启动或者使用ifup命令将接口开启时造成一个或者两个错误:"RTNETLINK answers: File exists" 或者 \'Error: either "to" is a duplicate, or "X.X.X.X" is a garbage.\',其中 X.X.X.X 是网关或者不同的IP地址.这些错误还会在您使用默认网关路由到另一个网络时发生.这两个错误都无伤大雅,可被忽略.
网络/子网掩码指令格式如下:
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是ADDRESS0=X.X.X.X定义的网络号的子网掩码.
GATEWAY0=X.X.X.X是默认网关或者可用来连接到ADDRESS0=X.X.X.X的IP地址.
以下是使用网络/子网掩码指令格式的route-eth0文件示例.默认网关为192.168.0.1,接口eth0.两个静态路由分别针对10.10.10.0/24和172.16.1.0/24网络.但如前所述,这个示例并不是必要的,因为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.0.1
之后的静态路由必须按顺序编号,且不可跳过任何数值.例如:ADDRESS0,ADDRESS1,ADDRESS2等等.
以下是在位于192.168.0.0/24子网的机器中将静态路由设定到不同子网的示例.示例机器在192.168.0.0/24子网中有eth0接口,而在10.10.10.0/24子网中有eth1接口.
ADDRESS0=10.10.10.0
NETMASK0=255.255.255.0
GATEWAY0=10.10.10.1
DHCP应该会自动分配这些设定,因此不需要在红帽企业版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是ADDRESS0=X.X.X.X定义的网络号的子网掩码.
GATEWAY0=X.X.X.X是默认网关或者可用来连接到ADDRESS0=X.X.X.X的IP地址.
以下是使用网络/子网掩码指令格式的route-eth0文件示例.默认网关为192.168.0.1,接口eth0.两个静态路由分别针对10.10.10.0/24和172.16.1.0/24网络.但如前所述,这个示例并不是必要的,因为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.0.1
之后的静态路由必须按顺序编号,且不可跳过任何数值.例如:ADDRESS0,ADDRESS1,ADDRESS2等等.
以下是在位于192.168.0.0/24子网的机器中将静态路由设定到不同子网的示例.示例机器在192.168.0.0/24子网中有eth0接口,而在10.10.10.0/24子网中有eth1接口.
ADDRESS0=10.10.10.0
NETMASK0=255.255.255.0
GATEWAY0=10.10.10.1
DHCP应该会自动分配这些设定,因此不需要在红帽企业版Linux服务器或者客户端中配置静态路由.
9.网络功能文件
红帽企业Linux使用了几个包含启动和停止接口的重要常用功能的文件.这些功能分列在多个文件里,而不只是单一的接口控制文件.
文件/etc/sysconfig/network-scripts/network-functions包含了最常用的IPv4功能,这些功能被许多接口控制脚本所采用.这些功能包括获取接口状态变化的信息,设置主机名,寻找网关设备,探测指定设备是否运行,增加缺省路由等等.
因为IPv6接口需要的功能和IPv4不一样,文件/etc/sysconfig/network-scripts/network-functions-ipv6被用来记录这些不同的信息.这个文件里的功能配置和删除IPv6的静态路由,建立和删除管道,增加和删除接口的IPv6地址,以及测试接口上的IPv6地址是否存在.