centos7网络配置详解


centos7网络配置详解
20150416 Chenxin
1.配置文件位置
网络基础信息配置处:/etc/sysconfig/network-scripts/ifcfg-em2
DNS服务器地址配置处:/etc/resolv.conf
主机名与网关地址配置处:/etc/sysconfig/network(主机名,网关地址) /etc/hosts /etc/hostname(centos7才有,配置主机名)
其他跟网络配置相关的文件列表:
centos6 /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM"net", ACTION"add", DRIVERS"?*", ATTR{address}"c8:1f:66:c0:e4:df", ATTR{type}"1", KERNEL"eth", NAME="em1"
SUBSYSTEM"net", ACTION"add", DRIVERS=="?
", ATTR{address}"c8:1f:66:c0:e4:e0", ATTR{type}"1", KERNEL=="eth*", NAME="em2"
centos7 cat /etc/udev/rules.d/70-persistent-ipoib.rules

ACTION"add", SUBSYSTEM"net", DRIVERS"?*", ATTR{type}"32", ATTR{address}=="?*00:02:c9:03:00:31:78:f2", NAME="mlx4_ib3"

2.网卡配置信息参数说明
配置说明
cat ifcfg-em1
TYPE=Ethernet #以太网
BOOTPROTO=none #启动静态IP,这里一般配置为static
DEFROUTE=yes #设置这块网卡作为默认路由
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes #此网卡作为默认路由
IPV6_FAILURE_FATAL=no
NAME=em1 #对应第一张网卡
UUID=42115cba-7ace-43b8-847f-230c4392c640 #UUID号码(唯一设备编号)
ONBOOT=yes #开机自启动
HWADDR=C8:1F:66:C0:C5:25 #硬件地址
IPADDR0=103.17.41.77 #IP地址
PREFIX0=27 #掩码信息
GATEWAY0=103.17.41.65 #网关
DNS1=202.106.0.20 #最好将DNS配置到/etc/resolv.conf内,统一起来.
DNS2=202.106.196.115 #备选DNS
IPV6_PEERDNS=yes #覆盖resolv.conf
IPV6_PEERROUTES=yes #是否覆盖其他配置信息里的路由信息
PEERDNS=no #是否覆盖resolv.conf文件的配置
http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-networkscripts-interfaces.html

IPV4_FAILURE_FATAL=no #解释如下(ipv4失败,是否连带其他一起失败呢)
If both IPv4 and IPv6 configuration is enabled, failing IPv4 configuration of activated device means that activation is considered as failing overall (which corresponds to Require IPv4 addressing for this connection to complete checked in nm-c-e or IPV4_FAILURE_FATAL=yes in ifcfg file).
Putting it another way it's saying that if a connection is setup for both IPv4 and IPv6, with this option set to yes, the setup of the said connection will be reported as failed, even if IPv6 is setup, and IPv4 is not.

ucloud centos7默认配置:
DEVICE=eth0
HWADDR=52:54:00:62:D8:1E
IPADDR=10.10.33.194
NETMASK=255.255.0.0
GATEWAY=10.10.0.1
BOOTPROTO=none
PEERDNS=yes
USERCTL=no
NM_CONTROLLED=no
ONBOOT=yes
DNS1=10.10.255.1
DNS2=10.10.255.2
DNS3=114.114.114.114

我们自有服务器,可以精简配置如下(centos5,6,7均支持):
TYPE=Ethernet
BOOTPROTO=static
NAME=em1
ONBOOT=yes
DEFROUTE=yes
HWADDR=C8:1F:66:C0:C1:55
IPADDR=103.17.41.75
NETMASK=255.255.255.224
GATEWAY=X.X.X.X
DNS1=X.X.X.X
DNS2=X.X.X.X
网关和DNS地址只能放在这个文件,否则重启后会失效.

查看网卡状态是否有异常: systemctl status network

单网卡多IP
centos6以及较早前版本均支持:使用子连接配置文件 ifcfg-*:n
子连接配置文件是 Centos6 常用的方法,即:如果当前网卡配置文件为 ifcfg-eth0,则子连接配置文件可以为 ifcfg-eth0:1,并且文件中需要写明 DEVICE=eth0:1 , IPADDR=<新IP地址> .
centos7对子连接配置方式不再支持,改为以下方式:
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=em2
UUID=553db91d-205d-4ae7-8ffb-2e9eac5bfefb
ONBOOT=yes
HWADDR=C8:1F:66:C0:C1:56
IPADDR0=192.168.63.75
PREFIX0=16
IPADDR1=192.168.64.75 #该网卡的第二个IP信息
PREFIX1=16
GATEWAY0=
DNS1=
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes

ip addr检查:
id: em2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether c8:1f:66:c0:c1:56 brd ff:ff:ff:ff:ff:ff
inet 192.168.63.75/16 brd 192.168.255.255 scope global em2
valid_lft forever preferred_lft forever
inet 192.168.64.75/16 brd 192.168.255.255 scope global secondary em2
valid_lft forever preferred_lft forever
inet6 fe80::ca1f:66ff:fec0:c156/64 scope link
valid_lft forever preferred_lft forever
通过内网连接测试:OK

3.配置网卡后无默认路由的原因排查
cat /home/admin/ifcfg-em1_201504161113 (时好时坏)
...
IPADDR0=103.17.41.75
PREFIX0=27
GATEWAY0=103.17.41.65 #发现这个参数是导致路由时好时坏的原因.如果放到/etc/sysconfig/network则无故障.或改为GATEWAY=x.x.x.x
...
详情见"4".

4.centos7关于路由的说明
ip route显示和设定路由
4.1显示路由表

ip route show (无默认路由)

103.17.41.64/27 dev em1 proto kernel scope link src 103.17.41.75
169.254.0.0/16 dev em1 scope link metric 1002
169.254.0.0/16 dev em2 scope link metric 1003
192.168.0.0/16 dev em2 proto kernel scope link src 192.168.63.75

route

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
103.17.41.64 0.0.0.0 255.255.255.224 U 0 0 0 em1
link-local 0.0.0.0 255.255.0.0 U 1002 0 0 em1
link-local 0.0.0.0 255.255.0.0 U 1003 0 0 em2
192.168.0.0 0.0.0.0 255.255.0.0 U 0 0 0 em2

4.2添加静态路由

ip route add 10.15.150.0/24 via 192.168.150.253 dev em2

4.3删除静态路由
只需要把 add 替换成 del,或者更简单的只写目标网络

ip route del 10.15.150.0/24

4.4添加永久静态路由
ip route 指令对路由的修改不能保存,重启就没了。
把 ip route 指令写到 /etc/rc.local 也是徒劳的。
RHEL7官网文档没有提到 /etc/sysconfig/static-routes,经测试此文件已经无效;
/etc/sysconfig/network 配置文件仅仅可以提供全局默认网关,语法同 Centos6 一样: GATEWAY=
永久静态路由需要写到 /etc/sysconfig/network-scripts/route-interface 文件中,比如添加两条静态路由:

vi /etc/sysconfig/network-scripts/route-enp0s3(网卡名)

10.15.150.0/24 via 192.168.150.253 dev enp0s3
10.25.250.0/24 via 192.168.150.253 dev enp0s3
重新启用设备enp0s3才能生效.

nmcli dev connect enp0s3

一般直接连接一次设备即可,如果不成功就先断开设备再连接设备,注意必须两个指令一起运行,否则,你晓得。

nmcli dev disconnect enp0s3 && nmcli dev connect enp0s3

4.5清除永久静态路由
可以删除 ifcfg-enp0s3文件或者注释掉文件里的相应静态路由条目,重启计算机。
想要让修改后的静态路由立即生效,只能用 ip route del 手工删除静态路由条目。

4.6实验的过程中出现两个奇怪的现象:
1.有时候路由生效了但是在 ip route show 却没有显示,重启计算机后是肯定显示的,原因暂时不明。
2.存在多个网卡时,默认路由似乎是随机经由某个网卡设备(故在ifcfg-em1里配置GATEWAY0=X.X.X.X经常造成无默认路由的情况)。检查了所有连接配置文件后发现,第一网卡的默认连接配置文件 ifcfg-eth0 设置了GATEWAY0(此设置会覆盖/etc/sysconfig/network 定义的全局默认网关).第二网卡的连接配置文件 ifcfg-eth1 使用的是dhcp,会在启动时也分配默认网关,两个默认网关让计算机糊涂了。这是在测试系统里经常发生的现象,生产系统一般不会让网卡用dhcp,或者即使是用了也会仔细分配默认网关防止冲突。

4.7其他需要注意的:
1.连接配置文件 ifcfg-* 里可以设置多个GATEWAY,一般第一个是 GATEWAY0,然后GATEWAY1, GATEWAY2... ,尾号最大的有效;
2.如果必须在/etc/sysconfig/network 文件定义全局网关,连接配置文件 ifcfg-* 就不要设置GATEWAY了,dhcp的连接要注意dhcp服务器不要定义默认网关。
3.ifcfg-enp0s3 文件改名为 ifcfg-eth0 后,route-enp0s3 文件也要改名为 route-eth0。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM