Linux系统网络管理
一、基本网络配置:
将Linux主机接入网络,需要配置网络相关设置
一般包括以下内容:
主机名
IP/netmask
路由:默认网关
DNS服务器:
主DNS服务器
次DNS服务器
网络配置文件:
IP、MASK、GW、DNS相关配置文件:/etc/sysconfig/networkscripts/ifcfg-IFACE:
DEVICE=ene33 # 针对网卡名称(必须有)
ONTBOOT=yes # yes表示开机自动启动网卡,默认yes
BOOTPROTO=dhcp # 自动获取,生产中一般改为手动配置static|none(必须有)
IPADDR=172.20.0.6 # 设置IP(必须有)
NETMASK=255.255.0.0 # 传统方式配置掩码(必须有)
PREFIX=16 # CIDR法设置掩码(必须有)
GATEWAY=172.20.0.1 # 设置网关
DNS1=114.114.114.114 # 设置DNS1
DNS2=8.8.8.8 # 设置DNS2
TYPE # 接口类型,常见有Ethernet,Bridge
UUID # 设备唯一表示
路由相关的配置文件:/etc/sysconfig/network-scripts/route-IFACE
注意:需service network restart生效
两种风格:
(1) TARGET via GW
如:10.0.0.0/8 via 172.16.0.1
(2) 每三行定义一条路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
网络配配置方式:
静态指定:
命令:
ifcfg家族:
ifconfig:配置IP,NETMASK
route:路由
netstat:状态及统计数据查看
iproute2家族:
ip OBJECT:
addr:地址和掩码;
link:接口
route:路由
ss:状态及统计数据查看
CentOS 7:nm(Network Manager)家族 立即生效,修改配置文件
nmcli:命令行工具
nmtui:text window 工具
注意:
(1) DNS服务器指定
配置文件:/etc/resolv.conf
(2) 本地主机名配置
hostname
配置文件:/etc/sysconfig/network
CentOS 7:hostnamectl
配置文件:
RedHat及相关发行版
/etc/sysconfig/network-scripts/ifcfg-NETCARD_NAME
动态分配(dhcp):依赖于本地网络中有DHCP服务
DHCP:Dynamic Host Configure Procotol
二、主机、网卡名称管理
传统命名:
以太网:ethX, [0,oo),例如eth0, eth1, ...
PPP网络(点到点网络,拨号上网):pppX, [0,...], 例如,ppp0, ppp1, ...
可预测命名方案(CentOS 7):
支持多种不同的命名机制:
基于 Fireware, 拓扑结构命名
(1) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,则根据此索引进行命名,如eno1, eno2, ...
(2) 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,如ens1, ens2, ...
(3) 如果硬件接口的物理位置信息可用,则根据此信息命名,如enp2s0, ...
(4) 如果用户显式定义,也可根据MAC地址命名,例如enx122161ab2e10, ...
上述均不可用,则仍使用传统方式命名;
命名格式的组成:
en:ethernet
wl:wlan
ww:wwan
名称类型:
o<index>:集成设备的设备索引号;
s<slot>:扩展槽的索引号;
x<MAC>:基于MAC地址的命名;
p<bus>s<slot>:基于总线及槽的拓扑结构进行命名;
网络接口识别并命名相关的udev配置文件:
/etc/udev/rules.d/70-persistent-net.rules
查看网卡:
dmesg |grep –i eth
ethtool -i eth0
卸载网卡驱动:
modprobe -r e1000
rmmod e1000
装载网卡驱动:
modprobe e1000
修改主机名:
hostname [NEWNAME] 临时生效,重启恢复
永久生效:
CentOS6:
修改/etc/sysconfig/network
CentOS7:
修改/etc/hostname
或:hostnamectl set-hostname [NEWNAME]
hostname [NEWNAME] 使配置文件生效
修改CentOS7网卡命名为传统命名方式,实现自动化运维
(1) 编辑/etc/default/grub配置文件
GRUB_CMDLINE_LINUX=”rhgb quiet net.ifnames=0″
或:修改/boot/grub2/grub.cfg linux 16 行尾添加 net.ifnames=0
(2) 为grub2生成其配置文件
grub2-mkconfig -o /etc/grub2.cfg
(3) 重启系统
修改本地解析器:
/etc/hosts
本地主机名数据库和IP地址的映像
对小型独立网络有用
通常,在使用DNS前检查
一般建议在127.0.0.1的行尾加上本机的hostname
注:如果hostname发生更改,一定要记得同时更改/etc/hosts里的原添加内容
搭建网站也建议将网站地址与网页名称对应写入到/etc/hosts文件中,避免解析出错
设置DNS:
/etc/resolv.conf
nameserver DNS_SERVER_IP1
nameserver DNS_SERVER_IP2
nameserver DNS_SERVER_IP3
三、网卡别名
对虚拟环境有用,可将多个IP地址绑定到一个网卡上
eth0:1、eth0:2、eth0:3
ifconfig命令:
ifconfig eth0:0 192.168.1.100/24 up
ifconfig eth0:0 down
ip命令:
ip addr add 172.16.1.2/16 dev eth0
ip addr add 172.16.1.1/16 dev eth0 label eth0:0
ip addr add 172.16.1.2/16 dev eth0 label eth0:0
ip addr del 172.16.1.1/16 dev eth0 label eth0:0
ip addr flush dev eth0 label eth0:0
为别名设备添加配置文件,永久生效
(1)service NetworkManager stop 关闭图形界面网络管理
(2)ifctg-ethX:xxx
(3)必须使用静态IP配置
DEVICE=eth0:0
IPADDR=10.10.10.10
NETMASK=255.0.0.0
ONPARENT=yes
(4)最后重启网络服务
service network restart
四、网络接口配置bonding
Bonding是将多个网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。
直接给两块网卡设置同一IP地址是不可以的。
通过bonding,虚拟一块网卡对外提供链接,物理网卡被修改为相同的MAC地址
Bonding工作模式:
Mode 0 (balance-rr)
轮转(Round-robin)策略:从头到尾顺序的在每个slave接口上发送数据包。提供负载均衡和容错的能力
Mode 1 (active-backup)
活动-备份(主备)策略:只有一个slave被激活,当且仅当活动的slave接口失败时才会激活其他slave。
为了避免交换机发生混乱此时绑定的MAC地址只有一个外部端口上可见
Mode 3 (broadcast)
广播策略:在所有的slave接口上传送所有的报文,提供容错能力
查看bond0主备状态:
/proc/net/bonding/bond0
创建bonding设备的配置文件
/etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
BONDING_OPTS= “miimon=100 mode=0”
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no
也可使用nmcli实现bonding
添加bonding接口
nmcli con add type bond con-name mybond0 ifname mybond0 mode active-backup
添加从属接口
nmcli con add type bond-slave ifname ens7 master mybond0
nmcli con add type bond-slave ifname ens3 master mybond0
注:如无为从属接口提供连接名,则该名称是接口名称加类型构成,要启动绑定,则必须首先启动从属接口
nmcli con up bond-slave-eth0
nmcli con up bond-slave-eth1
启动绑定
nmcli con up mybond0
取消bonding
1.卸载驱动模块
lsmod 显示所有已加载的驱动模块
lsmod | grep bond
ifconfig bond0 down 禁用网卡
modproble -r bonding
2.删除和修改文件
rm -r ifcfg-bond0
vim ifcfg-eth{0,1}
service network restart 重启网络服务
五、实现网络组
代替bonding的一种技术
网络组:将多个网卡聚合在一起的方法,从而实现冗错和提高吞吐量
多种方式运行:
broadcast 广播模式
roundrobin 轮播模式
activebackup 主备模式
loadbalance 负载均衡模式
lacp (implements the 802.3ad Link Aggregation Control Protocol)
创建网络组Network Teaming(RHCE)
nmcli con add type team con-name team0 ifname team0 config
‘{“runner”: {“name”: “loadbalance”}}’
nmcli con mod team0 ipv4.addresses 192.168.1.100/24
nmcli con mod team0 ipv4.method manual
nmcli connection show
nmcli con add con-name team0-eth1 type team-slave ifname eth1 master team0
nmcli con add con-name team0-eth2 type team-slave ifname eth2 master team0
nmcli con up team0
nmcli con up team0-eth1
nmcli con up team0-eth2
nmcli connection show
teamdctl team0 state
删除网络组:
第一种方法:删除network-scripts下配置文件
第二种方法:nmcli connection delete team0 team0-eth1 team0-eth2