配置主机网络

安装完成linux 系统后,我们需要为主机配置一个可用的网络地址

下面以配置eth0接口为例来说明下

说明

在RHEL7中重新定义了Linux网卡的命名规则,不再遵循原来的eth[0,1,……]。下面的例子中全部使用RHEL6的示例。

关于RHEL7的网卡命名原则

在进行centos7的pxe安装测试中发现了网卡命名不再遵从来有的命名规则而启用了最新的命名方式,官网文档描述如下:

在 Red Hat Enterprise Linux 7 中,systemd 和 udevd 支持大量不同的命名方案。默认行为是根据固件、拓扑及位置信息分配固定名称。这个命名方法的优点是完全自动且可预测,即使添加或者删除硬件也不会变化(未  发生重新列举),且可以在不产生任何影响的情况下替换破坏的硬件。这个行为的缺点是名称有时比之前使用的名称难读,例如使用  enp5s0 替换 eth0。

目前 udevd 本身就支持下列命名方案。

  • 方案 1

合并固件或者 BIOS 的名称为板载设备提供索引号的名称,例如:eno1。如果固件信息适用且可用,则 systemd 默认情况下根据这个方案命名接口,同时使用方案 2 作为备选。

  • 方案 2

合并固件或者 BIOS 的名称提供  PCI 快捷热插拔插槽索引号的名称,例如 ens1。如果固件信息适用且可用,则 systemd 默认情况下根据这个方案命名接口,同时使用方案 3 作为备选。

  • 方案 3

合并硬件连接器物理位置的名称,例如:enp2s0。如果固件信息适用且可用,则 systemd 默认情况下根据这个方案命名接口,同时使用方案 5 作为备选。

  • 方案 4

合并接口 MAC 地址的名称,例如:enx78e7d1ea46da。默认情况下 systemd 不会根据这个方案命名接口,但如果需要可以启用这个功能。

  • 方案 5

传统的不可预测内核属性 ethX 命名,例如:eth0。如果其他所有方法都失败,systemd 就根据这个方案命名接口。

如果该系统启用了 BIOSDEVNAME,或者用户已添加更改内核设备名称的 udevd 规则,则这些规则将替代默认的 systemd 策略。

说到这里,估计大家都知道了,那么如果对于怀旧的人们来说,想让RHEL7继续使用eth0这种人类可以理解的方式的话如何修改呢,方法如下

编辑/etc/sysconfig/grub文件内容,增加“net.ifnames=0”,如下——

GRUB_CMDLINE_LINUX="vconsole.keymap=us  crashkernle=auto vconsole.font=latarcyrheb-sun16 net.ifnames=0 rhgb  quiet"

 执行:grub2-mkconfig -o  /boot/grub2/grub.cfg

 然后重命名配置文件——

mv /etc/sysconfig/network-scripts/ifcfg-enp0s3  ifcfg-eth0

     注意把配置文件里面的“NAME=enp0s3”修改成“eth0”。

最后重启系统,就一切OK了!

 

Shell># vi/etc/sysconfig/network-script/ifcfg-eth0

DEVICE=eth0

HWADDR=00:0C:29:C9:F2:34

TYPE=Ethernet

UUID=f7710b52-b28d-4435-8ae3-8c095a094677

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=static

IPADDR=10.10.2.31

NETMASK=255.255.255.0

GATEWAY=10.10.2.254

DNS1=10.10.2.250

DNS2=8.8.8.8

因ifcfg-ethx中的信息较多,大部分我们用不到,下表中我们来说明下网卡配置文件中的选项和其意义。

选项

说明

备注

DEVICE

物理设备的逻辑名称,如eth0,或者eno16777736,如果是ppp设备,可以没有这个选项。


NAME

网络链接的名称,可以为任意字符串,不包含特殊符号,一般与DEVICE名称一致,也可以根据现实情况修改。

可以不填写

HWADDR

物理设备的MAC地址

可以不填写

MACAADR

物理设备MAC地址,可以不设定,也可以与HWADDR同时设定,同时设定时,必须一致

可以不填写

TYPE

物理设备类型,可以选下面中的任意一种。

  • loop (Local Loopback)

  • slip (Serial Line IP)

  • cslip (VJ Serial Line IP)

  • slip6 (6-bit Serial Line IP)

  • cslip6 (VJ 6-bit Serial Line  IP)

  • adaptive (Adaptive Serial  Line IP)

  • strip (Metricom Starmode IP)  

  • ash (Ash)

  • ether (Ethernet)

  • tr (16/4 Mbps Token Ring)

  • tr (16/4 Mbps Token Ring  (New))

  • ax25 (AMPR AX.25)

  • netrom (AMPR NET/ROM)

  • rose (AMPR ROSE)

  • tunnel (IPIP Tunnel)

  • ppp (Point-to-Point  Protocol)

  • hdlc ((Cisco)-HDLC) lapb  (LAPB)

  • arcnet (ARCnet)

  • dlci (Frame Relay DLCI)

  • frad (Frame Relay Access  Device)

  • sit (IPv6-in-IPv4)

  • fddi (Fiber Distributed Data  Interface)

  • hippi (HIPPI)

  • irda (IrLAP)

  • ec (Econet)

  • x25 (generic X.25)

  • infiniband (InfiniBand)

写了这一片,我都想吐槽自己,这个东西真心没必要去写入到配置文件中。系统在启用网卡的时候会自动的判断这个设备是啥类型的,如果这点都做不到,就可以去死了。

UUID

全球唯一标识符,干啥用的????

可以不填写

ONBOOT

是否开机时启用该设备,布尔型输入

  • yes  开机时启动该设备

  • no  开机时不启动该设备

不用网络就填no

NM_CONTROLLED

NetManager服务控制,当NetManager服务启用时,当修改网卡配置文件时,系统自动应用网卡配置文件,布尔型输入

  • yes  允许NetManager控制

  • no  不允许NetManger控制。

说明:默认值是no

推荐设定成no或者不输入,更推荐关闭NetManger服务,避免领导找你喝茶,哈哈。

USERCTL

是否允许非root用户控制该设备,布尔型输入

  • yes  非root用户可以控制该设备

  • no  非root用户被禁止控制该设备

推荐设定成no,

BOOTPROTO

启动协议。这个是针对DHCP来说的,

  • none  不使用boot协议

  • static  使用静态IP地址

  • bootp  使用bootp协议

  • dhcp  使用dhcp协议

看需要吧,对于服务器更多是时none或者static,也可以不写。

PEERDNS

是否指定DNS,如果使用dhcp协议,默认为yes。布尔型输入

  • yes,如果设置DNS,修改/etc/resolv.conf

  • no  不修改/etc/resolv.conf

可以不输入,dhcp时默认为yes,其它推荐设置为no

IPV6INIT

是否初始化IPv6,布尔型输入

  • yes  启用IPv6

  • no  不启用IPv6

默认为yes

DEFROUTE

默认路由             


PEERROUTES

布尔型输入

  • yes  启用

  • no  不启用


IPV4_FAILURE_FATAL



IPV6_AUTOCONF



IPV6_DEFROUTE



IPV6_PEERDNS



IPV6_FAILURE_FATAL



IPADDR

网卡IPv4地址设定,格式为点分十进制,示例如下

IPADDR=192.168.1.1


NETMASK

网卡IPv4子网掩码设定,格式为点分十进制,示例如下

NETMASK=255.255.255.0


PREFIX

子网掩码长度,可以单独使用,也可以与NETMASK一起使用。推荐不要写入这个,偶尔会出问题!哈哈。示例如下

PREFIX=24

推荐不使用

NETWORK

网卡IPv4网络地址设定,格式为点分十进制

可以不设定

BROADCAST

网卡IPv4广播地址设定,格式为点分十进制

可以不设定

GATEWAY

网卡IPv4网关设定,格式为点分十进制

可以不设定

IPV6ADDR

网卡IPv6地址,格式为十六进制


IPV6DEFAULTGW

网卡IPv6网关地址,


DNS1

网卡主DNS服务器地址设定


DNS2

网卡辅DNS服务器地址设定


MASTER

这个不属于网络配置选项,在双网卡绑定时使用


SLAVE

这个不属于网络配置选项,在双网卡绑定时使用


配置完成后,重新启动网络服务

RHEL6

Shell># service network restart

RHEL7

Shell># service network restart

或者

Shell># systemctl restart  network.service

验证

RHEL6

Shell># ip addr

Shell>#  ifconfig –a

RHEL7

Shell># ip addr

Shell>#  ifcfg –a

说到这里了,我们说下linux下动态修改ip和其它网络配置的命令及其方法吧。

说明:

RHEL7中最小化安装时不在包括ifconfig命令了,在RHEL7中,可以使用ifcfg命令来实现部分ifconfig的功能接口地址全部使用eth0 作为示例,如RHEL7中有明显不同的,会特别指出。

查看接口详细信息

Shell># ifconfig [ ] [ -a ] [ -v ]

输出如下

eth0      Link encap:Ethernet  HWaddr 00:0C:29:A4:9A:76 

          inet addr:192.168.8.140  Bcast:192.168.8.255  Mask:255.255.255.0

          inet6 addr:  fe80::20c:29ff:fea4:9a76/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500   Metric:1

          RX packets:983 errors:0 dropped:0  overruns:0 frame:0

          TX packets:456 errors:0 dropped:0  overruns:0 carrier:0

           collisions:0 txqueuelen:1000  

          RX bytes:77387 (75.5 KiB)  TX bytes:62593 (61.1 KiB)

          Interrupt:19 Base address:0x2000

 

lo        Link encap:Local Loopback 

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:65536   Metric:1

          RX packets:0 errors:0 dropped:0  overruns:0 frame:0

          TX packets:0 errors:0 dropped:0  overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

查看接口数据包统计

RHEL6

Shell># ifconfig –s [device]

Iface   MTU Met    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg

eth0       1500   0        1024      0      0         0      467      0         0      0 BMRU

lo        65536   0           0      0      0         0        0      0         0      0 LRU


RHEL7

Shell>#ifstat [device]

#kernel

Interface        RX Pkts/Rate    TX Pkts/Rate    RX Data/Rate    TX Data/Rate 

                 RX Errs/Drop    TX Errs/Drop    RX Over/Rate    TX Coll/Rate 

lo                     0 0             0 0             0 0             0 0     

                       0 0             0 0             0 0             0 0     

eno16777736           10 0             6 0           830 0          1036 0     

                       0 0             0 0             0 0             0 0   


关闭接口

Shell># ifconfig eth0 down

Shell># ifcfg eth0 down

开启接口

Shell># ifconfig eth0 up

Shell># ifcfg eth0 up

配置或者修改网络地址(以IPv4为例)

Shell># ifconfig eth0 192.168.8.145/24

Shell># ifcfg eth0 192.168.8.145/24(存在疑问?好像在RHEL7中有问题)

添加第二(或更多)地址

Shell># ifconfig eth0 add192.168.8.140/24

删除第二(或更多)地址

Shell># ifconfig eth0 del192.168.8.140/24

修改子网掩码

Shell># ifconfig eth0 netmask 255.255.254.0

修改默认网关(仅RHEL6可用)

Shell>#route add default gw192.168.8.2

修改DNS

shell># vi /etc/resolv.conf

内容如下

nameserver ip_addr

示例

nameserver 8.8.8.8

可以填写多个,一般填两个就好了。

修改主机名称

Shell># hostname your_new_hostname

永久化保存

Shell># vi /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=your_new_hostname

好了,说多了,就先这样了,RHEL7的后期在补充吧。