路由配置

教学目标

  • 了解Linux系统中路由的基本概念和作用
  • 掌握静态路由的配置和管理方法
  • 熟悉默认路由的设置和使用
  • 了解策略路由的原理和应用
  • 掌握路由表的查看和管理
  • 学会分析和排查路由相关的网络问题

主要知识点

  • 路由概述
  • 路由表结构
  • 静态路由配置
  • 默认路由配置
  • 策略路由配置
  • 路由管理工具
  • 路由故障排查

实用案例分析

案例1:路由基本概念和路由表

场景:了解路由的基本概念和查看路由表。

操作步骤

# 查看当前路由表
ip route show
route -n

# 查看详细路由表信息
ip route show table all

# 查看特定网络的路由
ip route show | grep 192.168.

# 查看路由缓存
ip route show cache

# 查看路由表统计信息
ip -s route show

# 查看策略路由规则
ip rule show

# 查看特定路由表
ip route show table main
ip route show table default

案例2:静态路由配置

场景:配置和管理静态路由。

操作步骤

# 添加静态路由
ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1 dev eth0

# 添加主机路由
ip route add 192.168.2.100 via 192.168.1.1 dev eth0
route add -host 192.168.2.100 gw 192.168.1.1 dev eth0

# 添加网络路由(不同出接口)
ip route add 192.168.3.0/24 via 192.168.1.2 dev eth1

# 查看路由配置
ip route show

# 删除静态路由
ip route del 192.168.2.0/24
route del -net 192.168.2.0 netmask 255.255.255.0

# 永久配置静态路由(CentOS/RHEL)
vim /etc/sysconfig/network-scripts/route-eth0

# 配置内容示例
192.168.2.0/24 via 192.168.1.1 dev eth0
192.168.3.0/24 via 192.168.1.2 dev eth0

# 或使用network-scripts格式
vim /etc/sysconfig/static-routes

# 配置内容示例
any net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1
any net 192.168.3.0 netmask 255.255.255.0 gw 192.168.1.2

# 永久配置静态路由(Debian/Ubuntu)
vim /etc/network/interfaces

# 在接口配置后添加路由
iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    up route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1
    down route del -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1

# 重启网络服务使路由配置生效
systemctl restart network  # CentOS/RHEL
systemctl restart networking  # Debian/Ubuntu

# 查看路由配置是否生效
ip route show

案例3:默认路由配置

场景:配置和管理默认路由。

操作步骤

# 查看当前默认路由
ip route show | grep default
route -n | grep UG

# 添加默认路由
ip route add default via 192.168.1.1 dev eth0
route add default gw 192.168.1.1 dev eth0

# 添加多个默认路由(不同优先级)
ip route add default via 192.168.1.1 dev eth0 metric 100
ip route add default via 192.168.1.2 dev eth1 metric 200

# 查看默认路由
ip route show | grep default

# 删除默认路由
ip route del default via 192.168.1.2 dev eth1
route del default gw 192.168.1.2 dev eth1

# 永久配置默认路由(CentOS/RHEL)
vim /etc/sysconfig/network-scripts/ifcfg-eth0

# 添加默认网关配置
GATEWAY=192.168.1.1

# 永久配置默认路由(Debian/Ubuntu)
vim /etc/network/interfaces

# 添加默认网关配置
iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1

# 重启网络服务
systemctl restart network  # CentOS/RHEL
systemctl restart networking  # Debian/Ubuntu

# 测试默认路由
ping -c 4 google.com

案例4:策略路由配置

场景:配置和使用策略路由。

操作步骤

# 查看当前策略路由规则
ip rule show

# 创建自定义路由表
echo "100 custom" >> /etc/iproute2/rt_tables

# 查看路由表列表
ip route show table all | grep table

# 向自定义路由表添加路由
ip route add default via 192.168.1.2 dev eth1 table custom
ip route add 192.168.3.0/24 via 192.168.1.2 dev eth1 table custom

# 添加策略路由规则
ip rule add from 192.168.1.100 table custom
ip rule add to 192.168.3.0/24 table custom

# 查看策略路由规则
ip rule show

# 查看自定义路由表
ip route show table custom

# 删除策略路由规则
ip rule del from 192.168.1.100 table custom

# 删除自定义路由表中的路由
ip route flush table custom

# 测试策略路由
# 从特定IP地址发送ping
ping -I 192.168.1.100 google.com

# 使用traceroute测试路由路径
traceroute google.com

案例5:路由管理和监控

场景:管理和监控路由状态。

操作步骤

# 查看路由表的统计信息
ip -s route show

# 监控路由表变化
watch -n 1 'ip route show'

# 查看路由缓存
ip route show cache

# 清除路由缓存
ip route flush cache

# 查看ARP缓存
arp -a
ip neigh show

# 清除ARP缓存
ip neigh flush all

# 查看路由相关的系统参数
sysctl -a | grep net.ipv4.route

# 配置路由相关的系统参数
sysctl -w net.ipv4.route.gc_timeout=300

# 查看路由表的内存使用情况
cat /proc/net/route

# 使用mtr工具监控路由路径
mtr google.com

# 使用traceroute工具跟踪路由路径
traceroute google.com

# 使用tracepath工具跟踪路由路径
tracepath google.com

案例6:路由故障排查

场景:排查和解决路由相关的网络问题。

操作步骤

# 检查路由表配置
ip route show
route -n

# 检查网络接口状态
ip link show
ifconfig

# 检查网络接口的IP地址配置
ip addr show
ifconfig

# 检查默认路由配置
ip route show | grep default

# 测试路由连通性
ping -c 4 192.168.1.1
ping -c 4 192.168.2.1
ping -c 4 google.com

# 跟踪路由路径
traceroute 192.168.2.1
traceroute google.com

# 检查ARP缓存
arp -a
ip neigh show

# 检查路由规则
ip rule show

# 检查防火墙规则
iptables -L -n

# 检查SELinux状态
getenforce

# 检查网络配置文件
cat /etc/sysconfig/network-scripts/ifcfg-eth0  # CentOS/RHEL
cat /etc/network/interfaces                    # Debian/Ubuntu

# 检查网络服务状态
systemctl status network
systemctl status NetworkManager

# 重启网络服务
systemctl restart network  # CentOS/RHEL
systemctl restart networking  # Debian/Ubuntu

# 重置网络接口
ip link set eth0 down
ip link set eth0 up

案例7:高级路由配置

场景:配置高级路由功能,如源路由、黑洞路由等。

操作步骤

# 配置源路由
ip route add 192.168.2.0/24 from 192.168.1.100 via 192.168.1.1 dev eth0

# 配置黑洞路由(丢弃特定网络的流量)
ip route add blackhole 192.168.3.0/24

# 配置 unreachable 路由(返回不可达错误)
ip route add unreachable 192.168.4.0/24

# 配置 prohibit 路由(返回禁止访问错误)
ip route add prohibit 192.168.5.0/24

# 查看特殊路由
ip route show | grep -E 'blackhole|unreachable|prohibit'

# 测试黑洞路由
ping -c 4 192.168.3.1

# 测试 unreachable 路由
ping -c 4 192.168.4.1

# 测试 prohibit 路由
ping -c 4 192.168.5.1

# 删除特殊路由
ip route del blackhole 192.168.3.0/24
ip route del unreachable 192.168.4.0/24
ip route del prohibit 192.168.5.0/24

# 配置路由的MTU
ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0 mtu 1400

# 查看路由的MTU
ip route show | grep mtu

案例8:多路由表配置

场景:配置和管理多个路由表。

操作步骤

# 查看当前路由表
cat /etc/iproute2/rt_tables

# 添加自定义路由表
echo "100 net1" >> /etc/iproute2/rt_tables
echo "200 net2" >> /etc/iproute2/rt_tables

# 查看更新后的路由表
cat /etc/iproute2/rt_tables

# 向自定义路由表添加路由
ip route add default via 192.168.1.1 dev eth0 table net1
ip route add 192.168.2.0/24 dev eth0 table net1

ip route add default via 192.168.3.1 dev eth1 table net2
ip route add 192.168.4.0/24 dev eth1 table net2

# 查看自定义路由表
ip route show table net1
ip route show table net2

# 添加策略路由规则
ip rule add from 192.168.1.0/24 table net1
ip rule add from 192.168.3.0/24 table net2

# 查看策略路由规则
ip rule show

# 测试多路由表
# 从不同接口发送ping
ping -I eth0 google.com
ping -I eth1 google.com

# 清除自定义路由表
ip route flush table net1
ip route flush table net2

# 删除策略路由规则
ip rule del from 192.168.1.0/24 table net1
ip rule del from 192.168.3.0/24 table net2

# 从路由表文件中删除自定义路由表
# 编辑 /etc/iproute2/rt_tables 文件,删除添加的行

课后练习

  1. 基础练习

    • 查看和分析系统的路由表
    • 配置静态路由
    • 配置默认路由
  2. 进阶练习

    • 配置策略路由
    • 管理多个路由表
    • 配置高级路由功能
  3. 实践任务

    • 为一个多网段网络设计和配置路由
    • 排查路由相关的网络故障
    • 测试和验证策略路由的效果

总结

本章节详细介绍了Linux系统中路由的基本概念、配置方法和管理技巧,包括:

  1. 路由概述:了解路由的基本概念、作用和工作原理
  2. 路由表结构:掌握路由表的组成和查看方法
  3. 静态路由配置:熟悉静态路由的添加、删除和管理
  4. 默认路由配置:掌握默认路由的设置和使用
  5. 策略路由配置:了解策略路由的原理和应用场景
  6. 路由管理工具:学会使用各种工具管理和监控路由
  7. 路由故障排查:掌握路由相关网络问题的分析和解决方法

路由是网络通信的核心组成部分,它决定了数据包的传输路径,对于网络的性能和可靠性具有重要影响。通过本章节的学习,用户可以建立起路由配置和管理的知识体系,提高网络配置的准确性和效率。

在实际工作中,路由配置是网络管理员的重要任务之一,合理的路由配置可以优化网络流量,提高网络性能,确保网络的稳定运行。因此,建议用户在学习过程中注重实践,通过实际操作加深对路由配置的理解和掌握。

« 上一篇 网络接口管理 下一篇 » 网络诊断工具