网络管理
网络管理
route -n 查看路由
/etc/resolve.conf 查看DNS
RHEL7以前 network服务管理网络(对应软件包network-scripts),可以通过修改配置文件管理网络
7使用network和NetworkManager
RHEL8只有NetworkManager服务管理网络,通过nmcli命令管理网络
网络管理工具
- ifconfig
- ip
- nmcli NetworkManager服务提供,nmtui
route
route add 192.168.10.0 255.255.255.0 192.168.10.1
route -n #查看路由表
ifconfig
- ifconfig查看激活的网卡信息
- 激活/禁用网卡:ifconfig ens160 up/down
- ifconfig -a 查看所有网卡信息
- 设置临时ip: ifconfig ens16 ip/掩码
ip命令
- 管理设备:ip link
- 管理ip: ip addr
- 管理路由表:ip route
命令 | 解释 |
---|---|
ip link [show] | 查看设备信息 |
ip link set ens160 up/down | 激活、禁用网卡 |
ip addr [show] | 查看网络地址 |
ip addr add ip/netmask dev ens160 | 添加地址 |
ip addr del ip/netmask dev ens160 | 删除地址 |
ip route [show] | 查看路由表信息 |
ip route add 目标ip[/netmask] via 网关ip | 添加路由 |
ip route del 目标ip[/netmask] | 删除路由 |
nmcli
nmcli con reload加载配置文件
nmcli con up con-name 立即生效
网卡配置文件
/etc/sysconfig/network-scripts/ifcfg-*
TYPE=Ethernet 网络类型 默认为以太网
BOOTPROTO=dhcp 获取IP的方式 默认为动态获取,设置静态参数为static、none
DEFROUTE=yes 是否将该接口设置为默认路由
IPV4_FAILURE_FATAL=no 如果为IPv4和IPv6设置了连接,并将此选项设置为yes,则即使IPv6已将所述连接的设置报告为失败是设置,IPv4不是。
IPV6INIT=yes IPV6是否启用
IPV6_AUTOCONF=yes 自动配置IPV6地址
IPV6_DEFROUTE=yes 将该接口设置为ipv6的默认路由
IPV6_FAILURE_FATAL=no
NAME=eth0 网卡的名字
#UUID=3d1c3ea2-fabf-4e6d-b07f-31dce1a1a5de 网卡的UUID
ONBOOT=yes 激活网卡
HWADDR=00:0C:29:42:8C:0D 网卡的物理地址
PEERDNS=yes 自动获取dns
PEERROUTES=yes 自动获取路由地址
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
主机名设置
主机名文件 /etc/hostname
永久更改主机名:
1. 修改配置文件
2. hostnamectl set-hostname 主机名
hostnamectl status
生产环境主机名规范
#以公有云为例:地区-项目-业务-服务-节点-地址
wh-shop-register-nginx-node1-192.168.9.3
DNS配置
/etc/hosts 局域网内使用
192.168.152.60 master
/etc/resolv.conf 互联网
nameserver 223.5.5.5
nameserver 223.6.6.6
端口监听查看
标准服务端口 /etc/services
ss命令
红帽8
选项 | 解释 |
---|---|
-n | 显示端口编号,而不是服务名称, EX:ssh 显示 22 |
-t | TCP端口 |
-u | UDP端口 |
-l | 仅显示监听的端口(套接字) |
-a | 显示所有(监听和已建立连接)的端口 |
-p | 显示对应的进程 |
netstat命令
红帽7即以前
选项 | 解释 |
---|---|
-a | 显示所有选项,默认不显示LISTEN相关 |
-t | 仅显示tcp相关的端口 |
-u | 仅显示UDP |
-p | 显示已建立连接服务的进程 |
-n | 显示端口编号 |
-l | 仅列出在监听的服务 |
ss与netstat区别
ss从内核层读取信息,netstat逐个读取,ss效率更高
常见端口
http 80
https 443
ssh 22
ftp 20,21
mysql 3306
rsync 873
redis 6379
traceroute
traceroute 、mtr跟踪路由
mtr 使用icmp协议
traceroute www.baidu.com
mtr www.baidu.com
网络连接状态
- LISTEN:⾸先服务端需要打开⼀个socket进⾏监听,状态为 LISTEN,侦听来⾃远⽅TCP端⼝的连接请求 ;
- SYN_SENT:客户端通过应⽤程序调⽤connect进⾏active open,于是客户端tcp发送⼀个SYN以请求建⽴⼀ 个连接,之后状态置为 SYN_SENT,在发送连接请求后等待匹配的连接请求;
- SYN_RECV:服务端应发出ACK确认客户端的 SYN,同时⾃⼰向客户端发送⼀个SYN,之后状态置为,在收到 和发送⼀个连接请求后等待对连接请求的确认;
- ESTABLISHED:代表⼀个打开的连接,双⽅可以进⾏或已经在数据交互了, 代表⼀个打开的连接,数据可以 传送给⽤户;
- FIN_WAIT1:主动关闭(active close)端应⽤程序调⽤close,于是其TCP发出FIN请求主动关闭连接,之后进⼊ FIN_WAIT1状态, 等待远程TCP的连接中断请求,或先前的连接中断请求的确认;
- CLOSE_WAIT:被动关闭(passive close)端TCP接到FIN后,就发出ACK以回应FIN请求(它的接收也作为⽂件结 束符传递给上层应⽤程序),并进⼊CLOSE_WAIT, 等待从本地⽤户发来的连接中断请求;
- FIN_WAIT2:主动关闭端接到ACK后,就进⼊了 FIN-WAIT-2,从远程TCP等待连接中断请求;
- LAST_ACK:被动关闭端⼀段时间后,接收到⽂件结束符的应⽤程 序将调⽤CLOSE关闭连接,这导致它的TCP 也发送⼀个 FIN,等待对⽅的ACK.就进⼊了LAST-ACK,等待原来发向远程TCP的连接中断请求的确认;
- TIME_WAIT:在主动关闭端接收到FIN后,TCP 就发送ACK包,并进⼊TIME-WAIT状态,等待⾜够的时间以确保 远程TCP接收到连接中断请求的确认;
- CLOSING: ⽐较少⻅,等待远程TCP对连接中断的确认;
- CLOSED: 被动关闭端在接受到ACK包后,就进⼊了closed的状态,连接结束,没有任何连接状态;
- UNKNOWN:未知的Socket状态;
- SYN: (同步序列编号,Synchronize Sequence Numbers)该标志仅在三次握⼿建⽴TCP连接时有效。表示⼀个 新的TCP连接请求。
- ACK: (确认编号,Acknowledgement Number)是对TCP请求的确认标志,同时提示对端系统已经成功接收所有 数据。
- FIN: (结束标志,FINish)⽤来结束⼀个TCP回话.但对应端⼝仍处于开放状态,准备接收后续数据。
网络故障排查思路
- 软、硬件故障
- 网卡、链路
- 网卡驱动
- 排查思路
- ping本地回环口,确定本机TCP/IP协议栈是否正常
- ping本机ip地址, 确定本地设备以及驱动是否正常
- ping同⽹段主机, 确定⼆层⽹络是否正常⼯作
- ping⽹关地址, 确定本地与⽹络是否正常
- ping公⽹地址, 确定本地路由是否正常 ping baidu.com ping 223.5.5.5
- ping公⽹域名, 确定DNS客户端是否正常 dns/resove有配置dns有问题
- 服务故障排查思路
- 使⽤telnet检测端⼝是否开放
- 检查服务端防⽕墙以及SElinux
- 检查相应的权限是否配置正常
- 检查⽇志是否有异常
- 检查完毕后持续测试
修改网卡命名规则
ens33这类不方便管理
- 修改配置文件,更改单个
cp ifcfg-ens33 ifcfg-eth0
vi ifcfg-eth0
NAME=eth0
DEVICE=eth0
- 更改grub内核参数
vi /etc/sysconfig/grub
GRUB_CMDLINE_LINUX="...net.ifnames=0 biosdevname=0 quiet"
grub2-mkconfig -o /boot/grub2/grub.cfg
双网卡绑定
双网卡绑定方式:
bond 绑定
team 聚合
双网卡绑定实验:
- 两个干净的网卡
- 添加虚拟网卡(指定bond模式):
nmcli con add type bond ifname bond0 con-name bond0 mode active-backup miimon 1000
- 将两个物理网卡绑定到虚拟网卡上
nmcli con add type bond-slave ifname ens160 master bond0
nmcli con add type bond-slave ifname ens224 master bond0
- 给虚拟网卡配置ip并激活网卡
cat /proc/net/bonding/bond0 可以看到bond0状态
bond4
创建/etc/sysconfig/network-scripts/ifcfg-bond0文件,加入如下内容:
DEVICE=bond0
NAME=bond0
TYPE=Bond
BONDING_MASTER=yes
IPADDR=192.168.120.30
PREFIX=24
GATEWAY=192.168.120.1
ONBOOT=yes
BOOTPROTO=static
BONDING_OPTS="mode=4 miimon=100 lacp_rate=1"
注:mode=4,设置为链路负载均衡模式;miimon=100,监控网线链路故障的时间间隔(毫秒);lacp_rate=1,检测主机网卡是否存活的检测包每30秒(fast)或每秒(slow)发送一次。
修改/etc/sysconfig/network-scripts/ifcfg-em1文件:
DEVICE=em1
TYPE=Ethernet
BOOTPROTO=static
NAME=em1
ONBOOT=yes
MASTER=bond0
SLAVE=yes
修改/etc/sysconfig/network-scripts/ifcfg-em2文件:
DEVICE=em2
TYPE=Ethernet
BOOTPROTO=static
NAME=em2
ONBOOT=yes
MASTER=bond0
SLAVE=yes
桥接网卡实验
- 添加虚拟网卡接口指定类型为网桥。
nmcli con add type bridge ifname br0 con-name br0
- 给网桥添加一个ip地址
nmcli con modify br0 ipv4.method manual ipv4.addresses ip .....
- 绑定一个物理网卡到虚拟网卡接口上
nmcli con add type bridge-slave ifname ens160 con-name ens160 master br0
- 激活虚拟网桥