Linux中的网络设置

Linux系统具有强大的网络功能,例如路由、Bonding等功能。

一.基本网络配置

Linux系统安装完成之后,就会自动生成网卡配置文件,位于/etc/sysconfig/network-scripts/下,文件名为ifcfg-eth0。添加了新网卡后如果没有此文件,可以自己创建一个相对应的文件。
ifcfg-eth0 网卡文件的格式:

1.配置选项:

HWADDR:对应的设备MAC地址
BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none,bootp
NM_CONTROLLED:NM是NetworkManager的简写,此网卡是否接受NM控制;建议CentOS6为“no
ONBOOT:在系统引导时是否激活此设备
TYPE:接口类型;常见有的Ethernet, Bridge
UUID:设备的惟一标识
GATEWAY: 默认网关
DNS1:第一个DNS服务器指向
DNS2:第二个DNS服务器指向
USERCTL:普通用户是否可控制此设备
PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的
dns服务器指向信息直接覆盖至/etc/resolv.conf文件中
*IPADDR:指明IP地址
*NETMASK:子网掩码
*DEVICE:此配置文件对应的设备
  • 其中最后带*号的三条配置是必须要有的,其他的根据实际情况需要配置。

2.重启网络服务,使配置文件生效

centos 6:
service NetworkManager stop NetworkManager会和network冲突,所以建议关闭
service network restart 重启network服务

centos 7:
systemctl restart network

二.路由功能配置

在实际生产中我们也可以把Linux系统配置为路由器。
如下图所示,共有5台主机,中间R1,R2,R3三台作为路由器使用。首先我们为5台主机配置好相关的IP地址。
Linux中的常见网络配置_第1张图片

1.开启路由功能

查看路由功能是否开启:

cat /proc/sys/net/ipv4/ip_forward 1 为开通,0 为未开通

开通路由功能

echo 1 > /proc/sys/net/ipv4/ip_forward 此修改内核文件为临时性的,修改即生效,但重启之后会失效

写入相关文件

/etc/sysctl.conf 文件中,修改 net.ipv4.ip_forward = 1

2.添加静态路由

路由配置使用route命令
route

route add/del [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
add 添加路由
del 删除路由
-host 配置为主机路由
-net 配置为网段路由
default 默认路由
target 目标地址或目标网段
gw 后面跟上网关的地址
dev 后面跟上路由出口的网卡设备名

首先,我们为两台主机配置网关,或者添加默认路由。以A主机为例:

route add default 192.168.17.3 dev eth0

然后再根据网络具体情况配置静态路由。以R1为例
R1:

route add -net 192.168.17.0/24 gw 192.168.27.2
route add -net 192.168.87.0/24 gw 192.168.37.3

这样就完成了路由功能的配置,但这些路由表示临时的,我们需要写到文件中。

  • 1.创建对应网卡的配置文件,在/etc/sysconfig/network-scripts/ 文件夹下,名称为route-IFACE IFACE为网卡的具体名称
  • 2.文件内容格式为:192.168.17.0/24 via 192.168.27.2
  • 3.每个网卡对应不同的文件和其相应的路由

系统防火墙默认是禁止forward转发,所以在进行试验时可以执行以下命令清除防火墙设置

iptables -F

这样路由表就不会因为重启而丢失。

三.Bonding功能配置

通过Bonding,对同一个IP地址同时绑定两块网卡,可以实现高可用或者负载均衡。绑定之后两块网卡将被修改为相同的MAC地址。

1.Bonding的3种常见工作模式

mode 0 (balance-rr) 从头到尾顺序的在每一个网卡上发送数据包。
mode 1 (active-backup) 只有一个网卡在工作,当工作网卡出现问题时,备用网卡才会被激活使用
mode 3 (broadcast) 所有网卡上传送所有报文

2.Bonding配置

在这里,我以eth0、eth1两块网卡为基础。
首先,创建bond0的配置文件ifcfg-bond0,在/etc/sysconfig/network-scripts/下。
ifcfg-bond0 文件:

DEVICE=bond0
BOOTPROTO=none
BONDING-OPTS= "miimon=100 mode=1" mode为模式的值,miion表示两块网卡的询问时间间隔
IPADDR=192.168.37.100
PREFIX=24

网卡文件的配置,以ifcfg-eth1为例

DEVICE=eth1 对应的设备名
MASTER=bond0 所属于的bond
SLAVE=yes

3.重启服务

service network restart centos 6
systemctl restart network centos 7

有时候重启服务也不能使Bonding生效,这时候可以通过卸载、加载相对应的功能模块来使服务生效。

rmmode bonding 卸载bonding
modprobe bonding 重新加载bonding

查看bond状态

cat /proc/net/bonding/bond0

4.删除Bonding

首先禁用bond0

ifconfig bond0 down

删除相应功能模块

rmmod bonding

最后删除相对应的配置文件。

四.centos 7 中的网卡采用传统命名方式

centos 7 系统采用了新的网卡命名方式,根据网卡的性质而命名为相对应的名称。有时候因为个人习惯,我们可以修改为传统的命名方式。

(1) 编辑/etc/default/grub配置文件

GRUB_CMDLINE_LINUX="rhgb quiet " quiet后面加入 net.ifnames=0
或:修改/boot/grub2/grub.cfg

(2) 为grub2生成其配置文件

grub2-mkconfig -o /etc/grub2.cfg

(3) 重启系统

reboot