Centos7相较于Centos6而言,有着许多更新改动的地方:
-
内核版本:
2.6.x-x
-->3.10.x-x
-
软件(防火墙,默认数据库):
iptables
,MySQL
-->firewalld
,MariaDB
-
文件系统:
EXT4
-->XFS
。
XFS相较于EXT4,更好的支持了单个最大文件大小,由原先的16TB增加到9EB,在其他方面也做出了一定优化。但是就目前而言,使用者并不能体验到二者的区别。另外,XFS与EXT4的一些磁盘操作命令并不完全相同,如fdisk
等。因而在一定程度上增加了系统维护成本。 -
系统配置命令
a. 修改时区、语言、主机名:
/etc/sysconfig/clock
-->timedatectl set-timezone Asia/Shanghai
;
/etc/sysconfig/i18n
-->localectl set-locale LANG=zh-CN.UTF-8
((en-US.utf-8)
);
/etc/sysconfig/network
,/etc/hostname
-->hostnamectl set-hostname hostname.hostnamedomain
b. 服务管理:
service 服务名 start
,chkconfig 服务名 off
-->systemctl start 服务名
-
网络配置
a. 网卡名:eth0
-->ens33
(centos 7.5及后版本固定名称)
b. 网络配置命令以及网络服务:
ifconfig
,setup
-->ip
,nmctl
;
network
-->NetworkManager
本文后续内容将会针对 5.b 内容展开讨论,分析ip
,nmctl
(也就是控制NetworkManager的命令行工具。在终端界面同样提供了控制NM的图形化工具nmtui
)的使用场景与常用命令。
网络设备知识概要
-
linux虚拟网桥
网桥是一种工作在数据链路层的网络设备,可以配置IP、MAC地址等。linux虚拟网桥类似于一个虚拟交换机,与物理交换机具有相类似的功能。- 刚创建一个虚拟网桥时,他就是一个独立的网络设备。只有一个端口连着协议栈,其余端口都没有连接任何设备。这样的网桥没有任何实际的功能。
- 将虚拟或物理网卡与网桥相连后,网桥开始发挥作用:此时网桥与网卡是一个双向的通道。物理(或虚拟)网卡与协议栈之间成为单通道。网卡的数据将发送给网桥,而非协议栈。协议栈的数据则还能正常发送给网卡。网桥的mac地址变成了网卡的mac地址。
相当于网桥在网卡与协议栈之间做了一些手脚,拦截了网卡发送给协议栈的数据。
但这里会引发一个问题。为了方便以下问题的讨论,我们将物理网卡、虚拟网桥分别命名为eth0
,br0
。同时在协议栈上还存在另外一块物理网卡eth1
。我们分析一下arp包:当eth0向eth1网卡发送arp请求时,eth1网卡的确会把自己的mac地址发送给eth0。但eth0会将该reply发送给br0网桥,而非协议栈。协议栈得不到eth1网卡的mac地址,从而通信失败。
ETH0---arp request---BR0---ETH1
ETH1---arp reply---ETH0---BR0--x--NPS
(eth0网卡并没有将reply中的mac地址发给协议栈) - 由此我们可以看出,给与网桥相连的网络设备配置IP没有意义。即:就算协议栈将数据包发送给该网络设备,它也无法得到应答包。因此需要将网络设备的IP让给网桥。当该网络设备不再拥有IP时,可以认为它与协议栈之间没有任何联系了。它相当于一更网线。
-
veth网卡
-
BOOTPROTO none与static的区别
NetworkManager.service
nmctl命令初探
-
nmctl unmanaged 的问题
-
man NetworkManager.conf
-
有哪些是nmctl无能为力的
ip命令初探
-
创建虚拟网桥实现一个demo
分析docker的网络拓扑
以上简要列举了本文将要分享的知识内容大纲,之后会逐渐完善。在更新过程中也可能会新增一些比较有意思的问题。