rhel6网络配置 运维日记016 RHEL6基础网络配置总结 - Linux - 服务器之家

服务器之家

专注于服务器技术!
当前位置:首页 > 服务器系统 > Linux

rhel6网络配置 运维日记016 RHEL6基础网络配置总结

发布时间:2017-11-02 来源:服务器之家

Linux下的基础网络配置主要包含网卡IP地址、网卡别名、子网掩码、网关以及DNS等的配置,以使得Linux主机可以和网络上的其他主机互联互通。以下对相关内容做一总结。

网卡名称

Linux内核将其检测到的网卡自动命名为ethX(X为数字,0,1,2…)。Linux下一个网卡也可以有多个名称,这叫做别名(aliases)。比如eht0网卡的别名通常命名为eth0:1、eht0:2等,每个别名都会被当做一个独立的网卡对待。当需要为一个物理网卡绑定多个IP地址时候,就需要使用网卡别名来实现。

查看当前的网卡配置

通常用ifconfig或者ip命令查看当前网卡IP地址配置。如:

$ ifconfig eth0
eth0 Link encap:Ethernet HWaddr 08:00:27:F1:3F:CA
inet addr:192.168.1.115 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fef1:3fca/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:79 errors:0 dropped:0 overruns:0 frame:0
TX packets:63 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:10369 (10.1 KiB) TX bytes:9375 (9.1 KiB)

而ip命令则更加强大灵活。首先它也可以查看当前的网卡配置信息:

$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00: 00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:f1:3f:ca brd ff:ff:ff:ff:ff:ff
$ ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:f1:3f:ca brd ff:ff:ff:ff:ff:ff
inet 192.168.1.115/24 brd 192.168.1.255 scope global eth0
inet6 fe80::a00:27ff:fef1:3fca/64 scope link
valid_lft forever preferred_lft forever

这里首先用ip link命名查看了当前系统内的所有网卡,然后用ip addr命令查看eth0的具体配置信息。这里的stat UP表示该网卡已启用,qlen 1000表示eth0是一个千兆网卡。

我们可用ip route命令查看当前路由:

# ip route
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.111
169.254.0.0/16 dev eth0 scope link metric 1002
default via 192.168.1.1 dev eth0

我们看到最后一行default via 192.168.1.1 dev eth0,含义是eth0网卡使用默认路由是192.168.1.1。

也可用route命令查看路由表:

# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

DNS配置信息保存在/etc/resolv.conf文件中。

# cat /etc/resolv.conf
search
nameserver 192.168.1.1

其中search 表示DNS后缀。

另外DNS可以分为默认的DNS和仅对某网卡生效的DNS。/etc/resolv.conf保存的是全局DNS,对所有网卡都有效。而网卡还可以设置仅仅对该网卡有效的DNS,例如:

" hljs makefile"># cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="none"
ONBOOT="yes"
TYPE="Ethernet"
IPADDR=192.168.1.111
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
IPV6INIT=no
USERCTL=no
DNS1=192.168.1.254

显然,192.168.1.254这个DNS仅仅当eth0激活时对eth0有效,它可以覆盖默认DNS。

Hostname即主机名,可用通过hostname命令查看:

# hostname
sailor-m.

Linux主机应该确保可以将自身主机名解析为正确的IP地址,这是通过/etc/hosts文件实现的。

# cat /etc/hosts
192.168.1.111 sailor-m. sailor-m
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
网络配置文件

传统UNIX的网络配置文件保存在/etc/sysconfig/network-scripts目录下,RHEL6也继承了这一传统。但是RHEL6还有另一套网络配置文件保存在/etc/sysconfig/networking目录下。如何两者配置不一致,系统优先采用前者的配置。如果手工配置网络,则需确保这两套配置体系的一致和同步,否则系统会产生紊乱。因此,推荐用户使用Redhat开发的网络配置工具system-config-network或者system-config-network-tui,可以自动同步两套配置文件,节省了不少工作量也避免了出错。

其中system-config-network-tui可以在字符终端界面下运行,而system-config-network则依赖XWidnows,推荐安装前者。

" hljs vala"># yum install system-config-network-tui

启动system-config-network-tui,配置完成后,使用service network restart,则网络配置生效。

另外,RHEL6提供了一个NetworkManager服务用于自动化的对网络进行配置。这个服务对于网络环境经常变化(如笔记本电脑)的情形提供了很大便利,但对于服务器应用,最好将该服务关闭,避免它自动对网络进行设置。

# service NetworkManager stop
# chkconfig NetworkManager off
网络配置基本流程

网络配置可依据以下流程对各项进行设置:

IP Address

Network mask

Gateway
# need to have network restarted after modify 1, 2, 3

DNS

DNS suffix
# no need to restart network after modify 4, 5

Hostname
# usually need to restart the machine after modify 6

/etc/hosts (hostname must be resolved anytime)
# no need to restart the network after modify 7

其中,步骤1~3可以用system-config-network-tui工具进行设置,配置完成后需要重启网络服务以生效。当然也可以通过ip、ifconfig命令或者直接修改配置文件进行设置,但较复杂容易出错,不推荐。

对于步骤4、5即全局的DNS和DNS后缀,可以直接修改/etc/resolv.conf文件,修改完成后无需重启网络服务而立即生效。

对于步骤6即hostname,可以通过修改/etc/sysconfig/network文件实现。

# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=wjm.rhel_
GATEWAY=192.168.1.1

这个文件中的NETWORKING=yes可以开启或者关闭整个系统的网络;HOSTNAME=wjm.rhel_设置了系统的主机名;GATEWAY=192.168.1.1设置了系统的默认路由,而在/etc/sysconfig/network-scripts/ifcfg-ethX(X为数字)文件中配置的是针对该网卡的路由,它可以覆盖默认路由,如果ifcfg文件没有设置路由,则默认路由生效。修改了hostname之后,通常需要重启整个系统才能生效。

对于步骤7即/etc/hosts文件,这个文件实现了在本地对主机名称进行解析。当Linux主机需要进行主机名解析时,会先访问/etc/hosts文件,如果本地解析不成功,再查询DNS。可以将自身的主机名和一些经常需要解析的主机名放在/etc/hosts文件中,用以加快解析速度。这里给出一个/etc/hosts文件的例子:

# cat /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.1.100 linumu100
192.168.1.120 ftpserver ftp120

一般情况下hosts文件的每行尾一个主机,每行由三部分组成,每个部分由空格隔开。第一部分:网络IP地址;第二部分:主机名或域名;第三部分:主机名别名。

当需要为一块物理网卡绑定多个IP地址时,需要使用网卡别名(alias)。简单的方法可以手动配置ifcfg文件来实现。

" hljs makefile"># cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="none"
ONBOOT="yes"
TYPE="Ethernet"
IPADDR=192.168.1.111
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
IPV6INIT=no
USERCTL=no
DNS1=192.168.1.254

下面对这个配置文件的主要项进行解释。DEVICE="eth0"表示设备名为eht0;BOOTPROTO="none"表示是否启用DHCP,none表示不启用;ONBOOT="yes"表示启动时激活该网卡;IPADDR、DNS1、GATEWAY几项分别设置该网卡的IP、DNS和网关;USERCTL=no表示不允许非root用户控制该网卡。另外还可以有NM_CONTROLLED="yes"表示该网卡受Network Manager服务的控制,实时生效而无需重启网络服务,这其实是很大的安全隐患,很容易造成网络中断,建议设置为no。

接下来演示如何设置网卡子卡(别名):

# cd /etc/sysconfig/network-scripts/
# cp ifcfg-eth0 ifcfg-eth0:0
# vi ifcfg-eth0:0

首先将ifcfg-eth0文件复制一份命名为ifcfg-eth0:0,然后vi打开ifcfg-eht0:0文件,修改其中的设备名称和IP地址项:

# cat ifcfg-eth0:0
DEVICE="eth0:0"
BOOTPROTO="none"
ONBOOT="yes"
TYPE="Ethernet"
IPADDR=192.168.1.112
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
IPV6INIT=no
USERCTL=no
DNS1=192.168.1.1

可以看到,设备名改为eht0:0(必须和文件命一致),IP地址改为192.168.1.112。重启网络即可生效。

# service network restart
# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:f1:3f:ca brd ff:ff:ff:ff:ff:ff
inet 192.168.1.111/24 brd 192.168.1.255 scope global eth0
inet 192.168.1.112/24 brd 192.168.1.255 scope global secondary eth0:0
inet6 fe80::a00:27ff:fef1:3fca/64 scope link
valid_lft forever preferred_lft forever

这里可以看到eth0网卡已有了192.168.1.111/24和192.168.1.112/24两个IP地址。另外请记住,子卡必须使用静态IP。