在Linux环境下搭建集群网络需要根据具体场景(如高性能计算HPC、Kubernetes、Hadoop等)进行配置,但核心步骤相通。以下是通用配置指南:
IP地址分配
管理网络: 192.168.1.0/24 (SSH/管理)
存储网络: 10.0.1.0/24 (NFS/ceph)
计算网络: 172.16.1.0/24 (MPI/应用通信)
主机名与DNS
/etc/hosts
,确保所有节点能互相解析:
bash
192.168.1.101 node1
192.168.1.102 node2
...
编辑/etc/netplan/01-netcfg.yaml
(Ubuntu)或/etc/sysconfig/network-scripts/ifcfg-eth0
(CentOS/RHEL):
# Ubuntu示例(Netplan)
network:
version: 2
renderer: networkd
ethernets:
eth0:
addresses: [192.168.1.101/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 1.1.1.1]
提高带宽和冗余,编辑/etc/modprobe.d/bonding.conf
:
alias bond0 bonding
options bonding mode=802.3ad miimon=100
然后在Netplan或NetworkManager中配置bond接口。
SSH免密登录(集群管理必备)
# 所有节点执行:
ssh-keygen -t rsa
ssh-copy-id node1 # 互相复制到所有节点
防火墙配置
# 开放集群通信端口(示例)
sudo ufw allow 22/tcp # SSH
sudo ufw allow 9000-10000/tcp # 应用端口范围
sudo ufw allow from 192.168.1.0/24 # 允许集群网段
时间同步(NTP)
sudo timedatectl set-timezone Asia/Shanghai
sudo apt install chrony -y # Ubuntu/Debian
sudo yum install chrony -y # CentOS/RHEL
sudo systemctl enable --now chronyd
基础连通性测试
ping node2
traceroute node2
arp -a # 检查ARP表
带宽与延迟测试
# 使用iperf3(需一个节点作为服务端)
iperf3 -s # 服务端
iperf3 -c node1 -t 20 # 客户端测试
多网卡绑定验证
cat /proc/net/bonding/bond0
VLAN隔离
# Netplan示例
eth0:
dhcp4: no
addresses: [192.168.1.101/24]
vlans:
vlan100:
id: 100
addresses: [10.0.100.101/24]
RDMA网络(InfiniBand/RoCE)
# 安装驱动和工具
sudo apt install rdma-core infiniband-diags
ibstat # 检查IB设备状态
负载均衡(LVS/Keepalived)
# 安装LVS
sudo apt install ipvsadm keepalived
节点间无法通信
sudo ufw status
ip route show
mtr node2
SSH连接慢
/etc/ssh/sshd_config
:
ini
UseDNS no
GSSAPIAuthentication no
多网卡流量不均
cat /proc/net/bonding/bond0
mode=802.3ad
(LACP)根据实际需求调整上述配置,高性能计算集群可能需要更低延迟的网络配置(如MTU=9000),而Kubernetes集群需关注CNI插件(Calico/Flannel)的配置。