Linux 网络管理技术
Linux 网络管理技术
OSI 七层模型和 TCP/IP 四层模型
OSI七层模型:OSI(Open System Interconnection)开放系统互连参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系。
TCP/IP 四层模型:TCP/IP参考模型是计算机网络的祖父ARPANET 和其后继的因特网使用的参考模型。
分层的作用: 方便管理
七层模型优点: [CCNA]
1、把复杂的网络划分成为更容易管理的层(将整个庞大而复杂的问题划分为若干个容易处理的小问题)
2、没有一个厂家能完整的提供整套解决方案和所有的设备,协议.
3、独立完成各自该做的任务,互不影响,分工明确,上层不关心下层具体细节,分层同样有益于网络排错
查看服务对应的端口
more /etc/services
验证网络配置
# 识别网络接口
ip link show
# 显示ip地址
ip addr
ip addr show ens32
ip addr flush dev ens32 //释放该网卡的ip
# 显示性能统计信息
ip -s link show ens32
# 检查主机之间的连接
ping /ping -c3
ping6 / ...
# 路由故障排除
route -n //没有默认安装
ip route // ip -6 route
# 追踪流量采用的路由
tracepath
tarceroute //默认没有安装
# 端口和服务故障排除
netstat -ntpal //默认没有安装 ss -ta
从命令行配置网络 //nmcli
语法
nmcli [OPTIONS...] { help | general | networking | radio | connection | device | agent | monitor } [COMMAND] [ARGUMENTS...]
上面的语法就是: nmcli [选项...] 对象 [命令] [参数...]
对象 = help | general | networking | radio | connection | device | agent | monitor
提示: 1. 输入命令的时候请善用tab补全,少打很多单词!
2. 支持简写,例如connection可以简写成con或c, modify可以简写成mod或m
3. nm --> networkmanager /讽刺啊,这是以前一般禁掉的服务
查看联网信息
显示所有网络设备的状态
[root@centos8-1 ~]# nmcli device status
DEVICE TYPE STATE CONNECTION
ens35 ethernet 已连接 ens35
ens32 ethernet 已断开 --
lo loopback 未托管 --
//显示网络设备的详细信息
nmcli device show (ens35)
显示所有连接的列表
[root@centos8-1 ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens35 1777ed92-ff58-7956-b8b3-ed928f82e0c8 ethernet ens35
ens32 d013a127-4e67-4c2c-adaf-61c89c35860f ethernet --
//仅显示活动的连接
[root@centos8-1 ~]# nmcli connection show --active
NAME UUID TYPE DEVICE
ens35 1777ed92-ff58-7956-b8b3-ed928f82e0c8 ethernet ens35
// 查看连接的详细信息
# nmcli connection show ens32
网卡状态修改
1、启用网络连接
# nmcli connection up eno16780032
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5771)
2、停用网络连接-可以被自动激活
[root@6000m ~]# nmcli connection down ens37
成功取消激活连接 'ens37'(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/16)
3、禁用网卡放置被激活//
# nmcli device disconnect ens37
成功断开设备 'ens37'。
4、删除网络连接的配置文件
# nmcli connection delete ens37
成功删除连接 'ens37'(6c6bf2e6-111b-3f09-80bb-c177263585e6)。
5、重新加载网络配置文件
# nmcli connection reload
6、举例: 禁止网卡开机自动启动
nmcli connection modify Wired\ connection\ 1 connection.autoconnect no
添加网络连接
nmcli connection add con-name ens32 type ethernet ifname ens32 ipv4.addresses 192.168.2.101/24 ipv4.method manual
//这样的添加指定了Ipv4.method ,manual(none) -> 静态ip;dhcp --> 动态获取
修改网络连接配置
设置自动启动网卡
nmcli connection modify ens37 connection.autoconnect yes
实际修改的是网卡配置文件ONBOOT=yes
设置IP地址获取方式是手动或者DHCP
手动设置IPv4地址,如果原本是DHCP获取地址,改手动后,如果后面不接IP地址,可能会报错
nmcli connection modify ens37 ipv4.method manual ipv4.addresses 172.16.10.1/16
设置IP地址为DHCP
nmcli connection modify ens37 ipv4.method auto
实际修改的是网卡配置文件BOOTPROTO,BOOTPROTO=none 表示手动;BOOTPROTO=dhcp 表示dhcp
修改IP地址
nmcli connection modify ens37 ipv4.addresses 172.16.10.100/16
实际修改的是网卡配置文件:
IPADDR=172.16.10.100
PREFIX=16
修改网关
nmcli connection modify ens37 ipv4.gateway 172.16.1.1
实际修改的是网卡配置文件:
GATEWAY=172.16.1.1
添加第二个IP地址
nmcli connection modify ens37 +ipv4.addresses 172.16.10.10/16
实际修改的是网卡配置文件:
IPADDR1=172.16.10.10
PREFIX1=16
添加DNS
nmcli connection modify ens37 ipv4.dns
114.114.114.114
实际修改的是网卡配置文件: DNS1=114.114.114.114
添加第二个DNS
nmcli connection modify ens37 -ipv4.dns 8.8.8.8
RHEL8和CentOS8怎么重启网络
当我们安装好RHEL 8或者 CentOS 8,重启启动网络时,会出现以下报错:
]# systemctl restart network.service
报错信息如下
Failed to restart network.service: Unit network.service not found.
意思为无法重启网络服务,原因是无法找到network.service网络服务。
出现错误的原因是在RHEL 8和CentOS 8系统里,已废弃network.service。因此只能通过其它方法进行网络配置,包括NM命令工具集。换言之,在rhel8上,必须开启NM,否则无法使用网络。
下文假设你的网卡标识为xxx,可以通过以下命令确定网卡标识符
]# ip addr
比如ens33等等这类标识。
RHEL8或者CentOS8配置网络的三种方法
RHEL8或者CentOS8应该使用nmcli管理网络
- 手工配置ifcfg,通过NM来生效
- 通过NM自带工具配ip,比如nmcli
- 手工配置ifcfg,通过传统network.service来生效
- 建议:推荐使用上述第1种网络配置方法(手工配置ifcfg,通过NM生效),因为这样既兼容了传统的ifcfg配置,又能熟悉nmcli。举例:
方法一:手工配置ifcfg,使用nmcli来生效新的网络配置
假设网卡标识符为xxx
]# vi /etc/sysconfig/network-scripts/ifcfg-xxx
使用nmcli重新回载网络配置
]# nmcli c reload
如果之前没有xxx的connection,则上一步reload后就已经自动生效了
]# nmcli c up xxx
方法二:RHEL8和CentOS8完全使用nmcli来管理网络
查看网卡信息
]# nmcli connection
NAME UUID TYPE DEVICE
ens33 a92fa07b-9b68-4d2b-a2e7-e55146099b1b ethernet ens33
ens36 418da202-9a8c-b73c-e8a1-397e00f3c6b2 ethernet ens36
]# nmcli con xxx
显示具体的网络接口信息
]# nmcli connection show xxx
显示所有活动连接
]# nmcli connection show --active
删除一个网卡连接
]# nmcli connection delete xxx
给xxx添加一个IP(IPADDR)
]# nmcli connection modify xxx ipv4.addresses 192.168.0.58
给xxx添加一个子网掩码(NETMASK)
]# nmcli connection modify xxx ipv4.addresses 192.168.0.58/24
IP获取方式设置成手动(BOOTPROTO=static/none)
]# nmcli connection modify xxx ipv4.method manual
添加一个ipv4
]# nmcli connection modify xxx +ipv4.addresses 192.168.0.59/24
删除一个ipv4
]# nmcli connection modify xxx -ipv4.addresses 192.168.0.59/24
添加DNS
]# nmcli connection modify xxx ipv4.dns 114.114.114.114
删除DNS
]# nmcli connection modify xxx -ipv4.dns 114.114.114.114
添加一个网关(GATEWAY)
]# nmcli connection modify xxx ipv4.gateway 192.168.0.2
可一块写入:
]# nmcli connection modify xxx ipv4.dns 114.114.114.114 ipv4.gateway 192.168.0.2
添加DNS
]# nmcli connection modify xxx ipv4.dns 114.114.114.114
删除DNS
]# nmcli connection modify xxx -ipv4.dns 114.114.114.114
添加一个网关(GATEWAY)
]# nmcli connection modify xxx ipv4.gateway 192.168.0.2
可一块写入:
]# nmcli connection modify xxx ipv4.dns 114.114.114.114 ipv4.gateway 192.168.0.2
使用nmcli重新回载网络配置
]# nmcli c reload
如果之前没有xxx的connection,则上一步reload后就已经自动生效了
]# nmcli c up xxx
方法三:安装network.service服务
可以通过yum install network-scripts来安装传统的network.service,不过redhat说了,在下一个RHEL的大版本里将彻底废除,因此不建议使用network.service。
RHEL8或者CentOS8修改网卡名称
删除网卡连接,比如xxx
]# nmcli connection delete xxx
修改内核参数配置文件
]# vi /etc/default/grub
植入内核
]# grub2-mkconfig -o /boot/grub2/grub.cfg
重启
]# reboot
添加网卡
]# nmcli connection add type ethernet con-name xxx
RHEL8或者CentOS8使用nmtui工具配置网络(图形化工具)
]# nmtui
总结
CentOS8和RHEL8上一定要习惯使用nmcli来管理网络,network.service在未来会被正式废除,没有学习的必要了。