Linux系统的网络管理(二)
一、路由的配置
route命令
route命令用来显示并设置Linux内核中的网络路由表,route命令设置的路由主要是静态路由。
- 查看路由:
route -n
(显示数字形式 IP) - 添加路由:
route add -net 目标网络 gw 网关 dev 接口
- 删除路由:
route del -net 目标网络
语法:
route [选项] [参数]
选项:
选项 | 描述 |
---|---|
-A | 设置地址类型; |
-C | 打印将Linux核心的路由缓存; |
-v | 详细信息模式; |
-n | 直接显示数字形式的IP地址; |
-e | netstat格式显示路由表; |
-net | 到一个网络的路由表; |
-host | 到一个主机的路由表。 |
参数:
参数 | 描述 |
---|---|
add | 增加指定的路由记录; |
del | 删除指定的路由记录; |
target | 目的网络或目的主机; |
gw | 设置默认网关; |
mss | 设置TCP的最大区块长度(MSS),单位MB; |
window | 指定通过路由表的TCP连接的TCP窗口大小; |
dev | 路由记录所表示的网络接口。 |
常用命令与参数
route add -net 0/0 gw 192.168.100.254 dev ens34
启路由转发功能:
vim /etc/sysctl.conf
# 添加:net.ipv4.ip_forward = 1
sysctl -p # 加载配置
二、网络连接查看
netstat 命令
查看网络监听状态和连接状态:
- 常用选项组合:
-anptu
-n
:显示数字地址-a
:显示所有连接-p
:显示进程信息-t
:显示 TCP 连接-u
:显示 UDP 连接
ss 命令
netstat 的替代工具,更高效:
- 常用选项:
-anptuli
(增加了-i
查看连接状态)
bond 绑定
将多个物理网卡组合为逻辑网卡,提高可用性和性能:
主要模式:
- mode0(平衡负载):需要交换机支持
- mode1(自动备援):单网卡工作,故障自动切换
- mode6(平衡负载):无需交换机支持,推荐使用
3.2、绑定案例
基于OpenEuler(国内的信创项目)
好的,以下是 nmcli
命令中 Bonding 模式的所有选项及其详细含义的完整列表。
Bonding 模式列表及含义
在 nmcli
中,使用 mode
参数来指定 Bonding 模式。以下是所有可用的模式:
NMCLI 模式值 | 模式编号 | 中文名称 | 含义及特点 |
---|---|---|---|
balance-rr | mode-0 | 轮询 | 特点: 数据包按顺序依次从每个 Slave 接口发送。 优点: 提供负载均衡和容错能力。 缺点: 需要交换机支持端口聚合,否则可能导致网络混乱。 交换机要求: 必须配置为静态聚合或 LACP。 |
active-backup | mode-1 | 主备 | 特点: 只有一个 Slave 接口处于活动状态,其他作为备份。只有在活动接口故障时,备份接口才被激活。 优点: 提供高可用性,配置简单,交换机无需特殊配置。 缺点: 不能增加带宽,资源利用率低。 交换机要求: 无特殊要求。 |
balance-xor | mode-2 | 异或 | 特点: 基于 [(源MAC地址 ⊕ 目标MAC地址) % Slave数量] 来选择发送接口。 优点: 为同一对话提供负载均衡和容错,保证数据包顺序。 缺点: 流量分布可能不均衡。 交换机要求: 必须配置为静态聚合或 LACP。 |
broadcast | mode-3 | 广播 | 特点: 所有数据包都从所有 Slave 接口发送。 优点: 提供极高的容错能力。 缺点: 极度浪费带宽,通常只用于非常特殊的场景。 交换机要求: 无特殊要求。 |
802.3ad | mode-4 | 动态链路聚合 (LACP) | 特点: IEEE 802.3ad 标准模式。使用 LACP 协议与交换机动态协商和监控聚合链路。 优点: 标准的链路聚合,提供负载均衡、高可用性和良好的监控能力。 缺点: 需要交换机支持并正确配置 LACP。 交换机要求: 必须配置为 LACP 模式(主动或被动)。 |
balance-tlb | mode-5 | 自适应传输负载均衡 | 特点: 根据每个 Slave 的当前负载进行出口流量(发送)的负载均衡。入口流量(接收)由当前 Slave 处理。 优点: 不需要交换机特殊配置。 缺点: 只有出口流量被均衡,容错能力较弱(故障切换时可能导致ARP问题)。 交换机要求: 无特殊要求。 |
balance-alb | mode-6 | 自适应负载均衡 | 特点: 在 mode-5 (tlb) 的基础上,增加了入口流量(接收)的负载均衡,通过ARP协商实现。 优点: 提供出口和入口的负载均衡,且不需要交换机特殊支持。 缺点: 在软件层实现,会消耗更多主机CPU资源。 交换机要求: 无特殊要求。 |
在 nmcli
命令中的使用示例
创建 Bond 连接时,使用 mode
参数指定上述任一模式:
# 示例:创建 mode-4 (LACP) 绑定
nmcli connection add type bond con-name my-bond0 ifname bond0 \mode 802.3ad \ipv4.method auto
# 示例:创建 mode-1 (主备) 绑定
nmcli connection add type bond con-name my-bond0 ifname bond0 \mode active-backup \ip4 192.168.1.100/24 \gw4 192.168.1.1 \ipv4.method manual
# 示例:创建 mode-6 (自适应负载均衡) 绑定
nmcli connection add type bond con-name my-bond0 ifname bond0 \mode balance-alb \ipv4.method auto
查看当前系统支持的所有模式
虽然 nmcli
本身不直接列出模式,但您可以通过查看内核文档或帮助信息来确认支持的模式:
# 查看 bond 连接的帮助信息,其中会包含 mode 参数的简要说明
nmcli connection add type bond help
更详细的信息通常需要查阅官方文档或内核的 bonding 文档:
# 查看系统上的 bonding 文档(如果已安装)
# 查看 bond 连接的帮助信息,其中会包含 mode 参数的简要说明
nmcli connection add type bond help
总结与选择建议
场景 | 推荐模式 | 原因 |
---|---|---|
标准数据中心 | 802.3ad (mode-4) | 需要交换机支持。是行业标准,提供最好的性能和可靠性。 |
高可用性 (HA) | active-backup (mode-1) | 配置简单,交换机无要求。主要目标是故障切换而非带宽聚合。 |
无交换机支持 | balance-alb (mode-6) | 不需要配置交换机,能同时实现出入向流量的负载均衡。 |
极简负载均衡 | balance-tlb (mode-5) | 不需要配置交换机,但只均衡出口流量。 |
特定网络需求 | balance-xor (mode-2) | 适用于需要保持数据包顺序的特定应用。 |
希望这个完整的列表和解释能帮助您更好地理解和使用 nmcli
进行 Bonding 配置。
bond0设置
nmcli c ad type bond con-name bond0 ifname bond0 mode balance-alb
服务器有两块网卡 ens33和ens36,在目录 est/sysconfig/network-scritps/ 进入对应的网卡配置文件进行操作
ens34操作
TYPE=ethernet
BOOTPROTO=none
NAME=ens34
DEVICE=ens34
ONBOOT=yes
MASTER=bond0
SLAVE=yes
ens37操作
TYPE=ethernet
BOOTPROTO=none
NAME=ens37
DEVICE=ens37
ONBOOT=yes
MASTER=bond0
SLAVE=yes
bond0操作
TYPE=ethernet
BOOTPROTO=none
NAME=bond0
DEVICE=bond0
ONBOOT=yes
IPADDR=192.168.1.1
PREFIX=24
GATEWAY=192.168.1.254
DNS1=192.168.1.254
添加bond配置文件
vim /etc/modprobe.d/bond.conf
alias bond0 bonding
options bonding mode=6 miimon=200
关闭网络图形化服务
systemctl stop NetworkManager 【关闭后开机失效】
systemctl disable --now NetworkManager 【关闭且开机不自启】
重启网络服务
systemctl stop NetworkManager 【关闭后开机失效】
systemctl disable --now NetworkManager 【关闭且开机不自启】
结果
抓包工具
- tcpdump:命令行抓包工具
# 抓取目标端口80的1000个报文 tcpdump -tn dst port 80 -c 1000 -i bond0
-c 当 收到多少个报文后退出-i 监听 interface. 如果 不指定 接口, tcpdump 在 系统 的 接口 清单 中,寻找 号码最小, 已经 配置好的 接口 (loopback 除外). 选中的时候会中断连接.-n 不要把地址转换成 名字 (指的是 主机地址, 端口号等)-t 禁止 显示 时戳标志.-v (稍微多一点) 繁琐的输出. 例如, 显示 IP 数据报 中的 生存周期 和服务类型.-e 显示 链路层报头
- Wireshark:图形化抓包工具