1. 网络基础:Linux网络栈的核心组件
1.1 网络协议栈架构
关键组件解析
- Socket API:应用程序与内核的接口(如bind、connect)。
- TCP/UDP:传输层协议,负责端到端通信。
- IP:网络层协议,负责路由与寻址。
- 数据链路层:MAC地址管理、ARP解析。
- 物理层:网卡驱动、硬件信号传输。
1.2 网络命名空间(Network Namespace)
- 概念:隔离网络栈的虚拟化技术,每个命名空间有独立的IP、路由表、防火墙规则。
- 应用场景:
- 容器网络(Docker、Kubernetes)。
- 多租户网络隔离。
命名空间操作
# 创建命名空间
ip netns add ns1
# 在命名空间中执行命令
ip netns exec ns1 ip addr show
# 删除命名空间
ip netns delete ns1
2. 网络配置:从静态IP到动态路由
2.1 网络接口管理
ifconfig vs ip命令
- ifconfig:传统工具,功能有限。
ifconfig eth0 192.168.1.100 netmask 255.255.255.0 up
- ip:现代工具,功能强大。
ip addr add 192.168.1.100/24 dev eth0
ip link set eth0 up
网络配置文件
- Debian/Ubuntu:/etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
- CentOS/RHEL:/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
ONBOOT=yes
2.2 路由配置
静态路由
# 添加路由
ip route add 10.0.0.0/8 via 192.168.1.1 dev eth0
# 查看路由表
ip route show
动态路由协议
- OSPF:适用于大型网络,支持多路径负载均衡。
- BGP:适用于跨AS(自治系统)路由,如云服务商互联。
3. 高级网络技术:Bonding与VLAN
3.1 网卡绑定(Bonding)
Bonding模式对比
模式 | 特性 | 适用场景 |
mode=0 | 轮询(Round-robin) | 高吞吐量 |
mode=1 | 主备(Active-backup) | 高可用性 |
mode=4 | 动态链路聚合(LACP) | 交换机支持LACP |
Bonding配置实战
# 安装工具
yum install -y bonding
# 创建Bonding接口
cat > /etc/sysconfig/network-scripts/ifcfg-bond0 < /etc/sysconfig/network-scripts/ifcfg-eth0 <<EOF
DEVICE=eth0
MASTER=bond0
SLAVE=yes
ONBOOT=yes
EOF
# 重启网络服务
systemctl restart network
3.2 VLAN配置
VLAN原理
- 802.1Q协议:在以太网帧中插入VLAN标签,实现逻辑隔离。
- VLAN ID范围:1-4094,其中1是默认VLAN。
VLAN配置实战
# 安装工具
yum install -y vlan
# 创建VLAN接口
ip link add link eth0 name eth0.10 type vlan id 10
# 配置IP地址
ip addr add 192.168.10.100/24 dev eth0.10
ip link set eth0.10 up
4. 网络安全:防火墙与云服务器安全组
4.1 iptables基础
四表五链
表 | 链 | 功能 |
filter | INPUT | 处理入站数据包 |
FORWARD | 处理转发数据包 | |
OUTPUT | 处理出站数据包 | |
nat | PREROUTING | 修改目标地址(DNAT) |
POSTROUTING | 修改源地址(SNAT) | |
OUTPUT | 本地生成数据包的NAT |
常用规则
# 允许SSH访问
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 允许ICMP(Ping)
iptables -A INPUT -p icmp -j ACCEPT
# 默认拒绝所有入站流量
iptables -P INPUT DROP
4.2 firewalld高级配置
区域管理
# 查看默认区域
firewall-cmd --get-default-zone
# 添加服务到区域
firewall-cmd --zone=public --add-service=http --permanent
# 重新加载配置
firewall-cmd --reload
富规则(Rich Rules)
# 允许特定IP访问SSH
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept' --permanent
4.3 云服务器安全组
AWS安全组配置
{
"SecurityGroupName": "web-sg",
"Description": "Allow HTTP/HTTPS access",
"IpPermissions": [
{
"IpProtocol": "tcp",
"FromPort": 80,
"ToPort": 80,
"IpRanges": [{"CidrIp": "0.0.0.0/0"}]
},
{
"IpProtocol": "tcp",
"FromPort": 443,
"ToPort": 443,
"IpRanges": [{"CidrIp": "0.0.0.0/0"}]
}
]
}
阿里云安全组配置
# 添加规则
aliyun ecs AuthorizeSecurityGroup \
--SecurityGroupId sg-bp1abc123 \
--IpProtocol tcp \
--PortRange 80/80 \
--SourceCidrIp 0.0.0.0/0
5. 网络性能调优
5.1 TCP/IP参数优化
内核参数调优
# 增加TCP窗口大小
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
# 启用TCP Fast Open
sysctl -w net.ipv4.tcp_fastopen=3
# 调整TIME_WAIT状态
sysctl -w net.ipv4.tcp_tw_reuse=1
sysctl -w net.ipv4.tcp_tw_recycle=1
应用层优化
- Nginx:
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
}
5.2 网络监控工具
iftop实时流量监控
iftop -i eth0
nload带宽统计
nload -u M # 以MB为单位显示
6. 网络故障排查
6.1 常见故障场景
案例一:网络不通
- 排查步骤:
- 检查物理连接:ip link show
- 检查IP配置:ip addr show
- 测试连通性:ping 192.168.1.1
- 检查路由:ip route show
案例二:DNS解析失败
- 排查步骤:
- 检查DNS配置:cat /etc/resolv.conf
- 测试DNS解析:nslookup example.com
- 检查防火墙规则:iptables -L -n
6.2 高级排查工具
tcpdump抓包分析
# 抓取HTTP流量
tcpdump -i eth0 -n port 80 -w http.pcap
# 分析抓包文件
tcpdump -r http.pcap
Wireshark图形化分析
- 使用场景:
- 分析TCP重传。
- 定位DNS解析问题。
- 解码HTTPS流量(需私钥)。
7. 云原生网络:Kubernetes与Service Mesh
7.1 Kubernetes网络模型
Pod网络
- CNI插件:Calico、Flannel、Cilium。
- IP分配:每个Pod分配独立IP,支持跨节点通信。
Service网络
- ClusterIP:内部虚拟IP,负载均衡。
- NodePort:暴露节点端口。
- LoadBalancer:云服务商提供的负载均衡器。
7.2 Service Mesh(Istio)
核心功能
- 流量管理:金丝雀发布、A/B测试。
- 安全通信:mTLS加密。
- 可观测性:分布式追踪、指标监控。
部署示例
# 安装Istio
istioctl install --set profile=demo
# 启用Sidecar注入
kubectl label namespace default istio-injection=enabled
8. 未来趋势:5G与边缘计算
8.1 5G网络切片
- 概念:将物理网络划分为多个逻辑网络,满足不同业务需求。
- 应用场景:
- 低延迟:自动驾驶、远程手术。
- 高带宽:4K/8K视频流。
8.2 边缘计算网络
- 架构:
- 边缘节点:靠近数据源的轻量级计算单元。
- 中心云:集中管理与分析。
- 技术栈:
- KubeEdge:Kubernetes边缘计算框架。
- OpenYurt:阿里云开源的边缘计算平台。
总结:从传统网络到云原生的跨越
网络管理是Linux运维的核心技能,从基础的IP配置到高级的Bonding、VLAN,再到云原生时代的Service Mesh与边缘计算,每一层技术演进都在重塑网络架构。通过本节的学习,你已掌握从传统到前沿的网络管理方法论。下一节我们将深入系统监控,揭秘Prometheus与Grafana的终极配置!