centOS7网络配置(nmcli,bonding,网络组)
关于网络接口命名
CentOS 6之前,网络接口使用连续号码命名: eth0、 eth1等,当增加或删除网卡时,名称可能会发生变化。CentOS 7使用基于硬件,设备拓扑和设置类型命名。
网卡命名机制
systemd对网络设备的命名方式
(a) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1
(b) 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1
(c) 如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0
(d) 如果用户显式启动,也可根据MAC地址进行命名,enx2387a1dc56
(e) 上述均不可用时,则使用传统命名机制
网卡名称
(1)基于BIOS支持启用biosdevname软件
内置网卡: em1,em2
pci卡: pYpX Y: slot ,X:port
(2) 名称组成格式
en: Ethernet 有线局域网
wl: wlan 无线局域网
ww: wwan无线广域网
名称类型:
o<index>: 集成设备的设备索引号
s<slot>: 扩展槽的索引号
x<MAC>: 基于MAC地址的命名
p<bus>s<slot>: enp2s1
网卡设备的命名过程
第一步:
udev, 辅助工具程序/lib/udev/rename_device
/usr/lib/udev/rules.d/60-net.rules
第二步:
biosdevname 会根据/usr/lib/udev/rules.d/71-biosdevname.rules
第三步:
通过检测网络接口设备,根据
/usr/lib/udev/rules.d/75-net-description
ID_NET_NAME_ONBOARD
ID_NET_NAME_SLOT
ID_NET_NAME_PATH
采用传统命名方式
(1) 编辑/etc/default/grub配置文件
GRUB_CMDLINE_LINUX="rhgb quiet net.ifnames=0"
或:修改/boot/grub2/grub.cfg(不建议)
(2) 为grub2生成其配置文件
grub2-mkconfig -o /etc/grub2.cfg
(3) 重启系统
CentOS 7网络配置工具
centOS7主机名
配置文件:/etc/hostname ,默认没有此文件, 通过DNS反向解析获取主机名, 主机名默认为: localhost.localdomain
显示主机名信息
hostname
hostnamectl status(显示更全的信息)
[root@CT731 ~]#hostnamectl status Static hostname: CT731 Icon name: computer-vm Chassis: vm Machine ID: 618d3baeb5754f7092242f811c7aa740 Boot ID: 3e2702fde99242248e0f20c0b7c5c19c Virtualization: vmware Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-514.el7.x86_64 Architecture: x86-64
设置主机名
hostnamectl set-hostname centos7(即时生效,直接写入配置文件)
删除文件/etc/hostname, 恢复主机名localhost.localdomain
CentOS 7网络配置工具nmcli
由于这个工具是centOS7上面的新工具,不仅大而且选项很多,但是工具很强大,我们就学习它的一部分功能。
地址配置工具: nmcli
nmcli [ OPTIONS ] OBJECT { COMMAND | help }
device - show and manage network interfaces
connection - start, stop, and manage network connections
nmcli connection/device help 查看帮助
修改IP地址等属性
nmcli connection modify IFACE [+|-]setting.property value
setting.property:
ipv4.addresses
ipv4.gateway
ipv4.dns1
ipv4.method manual/auto
[root@CT731 ~]#nmcli connection modify eth2 autoconnect no
[root@CT731 ~]#nmcli connection modify eth2 ipv4.method auto
[root@CT731 ~]#nmcli connection modify eth2 +ipv4.addresses 192.168.111.122/24
[root@CT731 ~]#nmcli connection modify eth2 +ipv4.dns 8.8.8.8
DNS设置,存放在/etc/resolv.conf文件中
PEERDNS=no 表示当IP通过dhcp自动获取时, dns仍是手动设置,不自动获取。等价于下面命令:
nmcli con mod "system eth0" ipv4.ignore-auto-dns yes
修改配置文件执行生效
systemctl restart network
nmcli connection reload
[root@CT731 ~]#nmcli connection reload
网络接口的启用与停用:
nmcli connection down eth0
nmcli connection up eth0
[root@CT731 ~]#nmcli connection down eth2 Connection 'eth2' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/77) [root@CT731 ~]#nmcli connection up eth2 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/78)
显示网络接口
显示所有包括不活动连接
nmcli connection show
[root@CT731 ~]#nmcli connection show NAME UUID TYPE DEVICE eth0 c96bc909-188e-ec64-3a96-6a90982b08ad 802-3-ethernet eth0 eth1 94aea789-efb3-ef4c-81b0-e8b18ecc9797 802-3-ethernet eth1 eth2 3a73717e-65ab-93e8-b518-24f5af32dc0d 802-3-ethernet eth2
显示所有活动连接
nmcli connection show --active
显示网络连接配置
nmcli connection show eth0
[root@CT731 ~]#nmcli connection show eth2 connection.id: eth2 connection.uuid: 3a73717e-65ab-93e8-b518-24f5af32dc0d connection.stable-id: -- connection.interface-name: eth2 ... ... 802-3-ethernet.wake-on-lan: 1 (default) 802-3-ethernet.wake-on-lan-password: -- ipv4.method: auto ipv4.dns: 8.8.8.8 ipv4.dns-search: ipv4.dns-options: (default) ipv4.dns-priority: 0 ipv4.addresses: 192.168.111.160/24, 192.168.111.122/24 ipv4.gateway: -- ... ... GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/5 GENERAL.SPEC-OBJECT: / GENERAL.MASTER-PATH: -- IP4.ADDRESS[1]: 192.168.111.122/24 IP4.ADDRESS[2]: 192.168.111.160/24 IP4.ADDRESS[3]: 192.168.111.143/24 IP4.GATEWAY: IP4.DNS[1]: 192.168.111.1 IP4.DNS[2]: 8.8.8.8 IP4.DOMAIN[1]: localdomain DHCP4.OPTION[1]: requested_domain_search = 1 DHCP4.OPTION[2]: requested_time_offset = 1 DHCP4.OPTION[3]: requested_domain_name = 1 DHCP4.OPTION[4]: requested_rfc3442_classless_static_routes = 1 ... ...
显示设备状态
nmcli device status
[root@CT731 ~]#nmcli device status
DEVICE TYPE STATE CONNECTION
eth0 ethernet connected eth0
eth1 ethernet connected eth1
eth2 ethernet connected eth2
lo loopback unmanaged --
显示网络接口属性
nmcli device show eth0
[root@CT731 ~]#nmcli device show eth2 GENERAL.DEVICE: eth2 GENERAL.TYPE: ethernet GENERAL.HWADDR: 00:0C:29:84:00:C8 GENERAL.MTU: 1500 GENERAL.STATE: 100 (connected) GENERAL.CONNECTION: eth2 GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/78 WIRED-PROPERTIES.CARRIER: on IP4.ADDRESS[1]: 192.168.111.122/24 IP4.ADDRESS[2]: 192.168.111.160/24 IP4.ADDRESS[3]: 192.168.111.143/24 IP4.GATEWAY: IP4.DNS[1]: 192.168.111.1 IP4.DNS[2]: 8.8.8.8 IP4.DOMAIN[1]: localdomain IP6.ADDRESS[1]: fe80::bd9a:88f7:695e:fdce/64
创建新的网络接口(存在未使用的网卡)
创建新连接default, IP自动通过dhcp获取
nmcli connection add con-name eth0 type Ethernet ifname eth0
创建新连接static ,指定静态IP,不自动连接
[root@CT731 ~]#nmcli connection add con-name eth4 ifname eth4 autoconnect no type Ethernet ipv4.address 172.25.12.10/24 ipv4.gateway 172.25.12.254 Connection 'eth4' (403fe692-04cd-4a01-b8bb-7e2bb468daf1) successfully added.
删除连接
[root@CT731 ~]#nmcli connection delete eth4 Connection 'eth4' (403fe692-04cd-4a01-b8bb-7e2bb468daf1) successfully deleted
nmcli命令与配置文件对应关系
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
关闭并删除bond
nmcli con down mybond0
rm –f /etc/sysconfig/network-scripts/ifcfg-*bond*
nmcli connection reload
网络组Network Teaming
网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量
网络组不同于旧版中bonding技术,提供更好的性能和扩展性
网络组由内核驱动和teamd守护进程实现.
多种方式runner
broadcast
roundrobin
activebackup
loadbalance
lacp (implements the 802.3ad Link Aggregation Control、Protocol)
网络组的注意事项:
启动网络组接口不会自动启动网络组中的port接口
启动网络组接口中的port接口总会自动启动网络组接口
禁用网络组接口会自动禁用网络组中的port接口
没有port接口的网络组接口可以启动静态IP连接
启用DHCP连接时,没有port接口的网络组会等待port接口的加入
创建网络组接口
命令:
nmcli con add type team con-name CNAME ifname INAME [config JSON]
CNAME 连接名, INAME 接口名(两个可以指定相同名字)
JSON 指定runner方式
格式: '{"runner": {"name": "METHOD"}}'
METHOD :
broadcast, roundrobin,activebackup, loadbalance, lacp
我们创建的接口就是对外的连接口,是用于让服务器以外的主机进行访问的,在创建接口的同时,我们可以直接在创建的同时设置IP地址,如果我们不设置IP地址,它会采用DHCP的方式寻求DHCP服务器给分配一个IP地址
创建port接口
nmcli con add type team-slave [con-name CNAME] ifname INAME master TEAM
CNAME 连接名
INAME 网络接口名
TEAM 网络组接口名
连接名若不指定,默认为team-slave-IFACE
nmcli dev dis INAME
nmcli con up CNAME
INAME 设备名 CNAME 网络组接口名或port接口
创建port其实就是将原来存在的网卡加入到网络组中,使用统一的网址进行访问,通过不同的模式使用网卡,可实现负载均衡,高可用性等。
启用网络接口
先启用port接口(逐个启用)
nmcli connection up team-slave-eth*
再启用网络接口
nmcli connection up con-team0
完成后就可以访问了。
查看网络组网卡状态
teamdctl team0 state
关闭网络组
首先,我们要down掉网络组,命令:
nmcli connection up con-team0
然后删除相关配置文件:
rm /etc/sysconfig/network-scripts/ifcfg-*team*
最后重新加载网络
nmcli connection reload
管理网络组配置文件
我们使用nmcli设置网络组,实际上就是直接操作的配置文件,我们可以对关于网络组的一些配置文件做一个了解。
/etc/sysconfig/network-scripts/ifcfg-con-team0
DEVICE=team0
TEAM_CONFIG="{\"runner\":{\"name\":\"roundrobin\"}}"
BOOTPROTO=none
DEFROUTE=yes
NAME=con-team0
ONBOOT=yes
DEVICETYPE=Team
IPADDR=192.168.111.100
PREFIX=24
/etc/sysconfig/network-scripts/ifcfg-team-slave-eth1
NAME=team-slave-eth1
UUID=af7e25aa-6a08-4fda-a33d-3a9de62b6f66
DEVICE=eth1
ONBOOT=yes
TEAM_MASTER=team0
DEVICETYPE=TeamPort
网桥的软实现
桥接:把一台机器上的若干个网络接口"连接"起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。网桥就是这样一个设备,它有若干个网口,并且这些网口是桥接起来的。与网桥相连的主机就能通过交换机的报文转发而互相通信。
主机A发送的报文被送到交换机S1的eth0口,由于eth0与eth1、 eth2桥接在一起,故而报文被复制到eth1和eth2,并且发送出去,然后被主机B和交换机S2接收到。而S2又会将报文转发给主机C、 D。
创建软件网桥
创建接口
nmcli con add type bridge con-name br0 ifname br0
设置IP(不设置则DHCP分配)
nmcli connection modify br0 ipv4.addresses 192.168.74.100/24 ipv4.method manuall
向往桥中添加网卡(一般添加两个以上)
nmcli con add type bridge-slave [con-name br0-port0] ifname eth0 master br0
启动网桥
nmcli connection up br0-port0
关闭并取消网桥设置
先down掉网桥
nmcli connection down br0
在删除设置
nmcli connection delete bridge-slave-eth1
nmcli connection delete br0
重新加载网络
nmcli connection reload
扩展
网络测试工具
测试网络连通性
ping
[root@CT731 network-scripts]#ping 172.17.0.1 PING 172.17.0.1 (172.17.0.1) 56(84) bytes of data. 64 bytes from 172.17.0.1: icmp_seq=1 ttl=64 time=1.27 ms 64 bytes from 172.17.0.1: icmp_seq=2 ttl=64 time=0.849 ms 64 bytes from 172.17.0.1: icmp_seq=3 ttl=64 time=0.662 ms
mtr
My traceroute [v0.85] CT731 (0.0.0.0) Thu Sep 7 21:26:59 2017 Keys: Help Display mode Restart statistics Order of fields quit Packets Pings Host Loss% Snt Last Avg Best Wrst StDev 1. 172.17.0.1 0.0% 10 1.0 0.8 0.5 1.0 0.0 2. ???
显示正确的路由表
ip route
[root@CT731 network-scripts]#ip route default via 172.17.0.1 dev eth0 proto static metric 100 172.17.0.0/16 dev eth0 proto kernel scope link src 172.17.254.57 metric 100 192.168.111.0/24 dev eth1 proto kernel scope link src 192.168.111.120 metric 100 192.168.111.0/24 dev eth2 proto kernel scope link src 192.168.111.122 metric 101
确定名称服务器使用:
nslookup
nslookup命令是常用域名查询工具,就是查DNS信息用的命令。 nslookup4有两种工作模式,即“交互模式”和“非交互模式”。在“交互模式”下,用户可以向域名服务器查询各类主机、域名的信息,或者输出域名中的主机列表。而在“非交互模式”下,用户可以针对一个主机或域名仅仅获取特定的名称或所需信息。 进入交互模式,直接输入nslookup命令,不加任何参数,则直接进入交互模式,此时nslookup会连接到默认的域名服务器(即/etc/resolv.conf的第一个dns地址)。或者输入nslookup -nameserver/ip。进入非交互模式,就直接输入nslookup 域名就可以了。
[root@CT731 network-scripts]#nslookup www.sina.com Server: 172.17.0.1 Address: 172.17.0.1#53 Non-authoritative answer: www.sina.com canonical name = us.sina.com.cn. us.sina.com.cn canonical name = wwwus.sina.com. Name: wwwus.sina.com Address: 66.102.251.33
host
host命令是常用的分析域名查询工具,可以用来测试域名系统工作是否正常。
[root@CT731 network-scripts]#host www.baidu.com www.baidu.com is an alias for www.a.shifen.com. www.a.shifen.com has address 111.13.100.92 www.a.shifen.com has address 111.13.100.91
dig
dig命令是常用的域名查询工具,可以用来测试域名系统工作是否正常
[root@CT731 ~]#dig www.baidu.com ; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> www.baidu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23008 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 6
跟踪路由
traceroute
[root@CT691 ~]#traceroute www.baidu.com traceroute to www.baidu.com (14.215.177.38), 30 hops max, 60 byte packets 1 172.17.0.1 (172.17.0.1) 2.929 ms 2.823 ms 2.779 ms 2 * * * 3 * * *
tracepath
[root@CT691 ~]#tracepath www.baidu.com 1?: [LOCALHOST] pmtu 1500 1: 172.17.0.1 (172.17.0.1) 0.707ms 1: 172.17.0.1 (172.17.0.1) 0.648ms 2: no reply
网络客户端工具
ftp
下载命令 get,mget
查看 ls
帮助 help ?
!ls 看本机的文件列表
lftp
比ftp更好用
lftpget URL直接下载,非交互(下载ftp服务上的文件,也支持http协议)
wget [option] [url] 非交互式的下载文件
-q:静默模式
-c:断点续传
-O:保存位置
-P:指定下载到某个目录
--limit-rate= :指定传输速率,单位K,M等。
links URL字符界面的浏览器
--dump 显示页面文字
--source 查看源码