Linux路由表的知识点有哪些

发布时间:2022-02-17 16:54:16 作者:iii
来源:亿速云 阅读:286
# Linux路由表的知识点有哪些

## 目录
1. [路由表基础概念](#一-路由表基础概念)
   - 1.1 [什么是路由表](#11-什么是路由表)
   - 1.2 [路由表的作用](#12-路由表的作用)
2. [Linux路由表结构](#二-linux路由表结构)
   - 2.1 [路由表组成要素](#21-路由表组成要素)
   - 2.2 [路由表优先级](#22-路由表优先级)
3. [路由类型详解](#三-路由类型详解)
   - 3.1 [主机路由](#31-主机路由)
   - 3.2 [网络路由](#32-网络路由)
   - 3.3 [默认路由](#33-默认路由)
4. [路由表操作命令](#四-路由表操作命令)
   - 4.1 [route命令](#41-route命令)
   - 4.2 [ip route命令](#42-ip-route命令)
5. [多路由表配置](#五-多路由表配置)
   - 5.1 [策略路由基础](#51-策略路由基础)
   - 5.2 [自定义路由表](#52-自定义路由表)
6. [路由表实战案例](#六-路由表实战案例)
   - 6.1 [企业级网络配置](#61-企业级网络配置)
   - 6.2 [故障排查示例](#62-故障排查示例)
7. [高级路由技术](#七-高级路由技术)
   - 7.1 [ECMP路由](#71-ecmp路由)
   - 7.2 [BGP路由集成](#72-bgp路由集成)
8. [安全与优化](#八-安全与优化)
   - 8.1 [路由过滤](#81-路由过滤)
   - 8.2 [性能调优](#82-性能调优)
9. [附录](#九-附录)
   - 9.1 [术语表](#91-术语表)
   - 9.2 [参考资料](#92-参考资料)

## 一、路由表基础概念

### 1.1 什么是路由表
路由表是存储在网络设备(包括Linux系统)中的数据结构,本质上是包含多条路由规则的数据库。每条路由规则至少包含以下核心信息:
- 目标网络(Destination):指明该路由适用的目标IP地址范围
- 子网掩码(Netmask):与目标网络共同定义地址范围
- 网关(Gateway):数据包要发送到的下一跳地址
- 接口(Interface):数据包发出的网络接口
- 度量值(Metric):路由优先级数值

示例路由表条目:

Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 600 0 0 eth0


### 1.2 路由表的作用
路由表在Linux系统中承担着网络通信的"交通指挥"角色,具体功能包括:
1. **路径选择**:当存在多条可达路径时,根据路由规则选择最优路径
2. **流量定向**:将特定类型的流量(如VPN流量)引导到指定接口
3. **网络隔离**:实现不同网络之间的隔离访问控制
4. **故障转移**:当主路由失效时自动切换到备用路由
5. **负载均衡**:在多路径间分配网络流量

## 二、Linux路由表结构

### 2.1 路由表组成要素
Linux路由表由多个关键字段组成,通过`ip route show`命令可查看完整结构:

```bash
$ ip route show
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100 metric 100 
default via 192.168.1.1 dev eth0 metric 100

主要字段说明: - proto:路由来源(kernel/dhcp/static/boot等) - scope:路由作用域(link/global/host等) - src:首选源地址 - metric:路由优先级值(数值越小优先级越高)

2.2 路由表优先级

Linux通过以下规则确定路由优先级: 1. 最长前缀匹配:/32 > /24 > /16 > /0 2. 路由类型:主机路由 > 网络路由 > 默认路由 3. 度量值:metric值小的优先 4. 路由协议:直连路由 > 静态路由 > 动态路由

优先级判断示例:

# 主机路由优先于网络路由
192.168.1.100/32 dev eth0
192.168.1.0/24 dev eth1

# 即使metric更低,/32仍然优先
192.168.1.100/32 dev eth0 metric 100
192.168.1.0/24 dev eth1 metric 50

三、路由类型详解

3.1 主机路由

针对单个IP地址的特殊路由,在路由表中显示为/32掩码:

# 添加主机路由
ip route add 10.0.0.100/32 via 192.168.1.1 dev eth0

# 典型应用场景
1. 特定服务器的直达路由
2. VPN客户端的固定路由
3. 网络测试的临时路由

3.2 网络路由

覆盖整个子网的标准路由:

# 添加网络路由
ip route add 172.16.0.0/16 via 10.0.0.1 dev tun0

# 特殊类型:黑洞路由(丢弃匹配流量)
ip route add blackhole 203.0.113.0/24

3.3 默认路由

当没有其他路由匹配时使用的兜底路由,目标为0.0.0.0/0:

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

# 多默认路由场景(按metric自动切换)
ip route add default via 192.168.1.1 metric 100
ip route add default via 10.0.0.1 metric 200

四、路由表操作命令

4.1 route命令

传统路由管理工具(部分新系统已弃用):

# 查看路由表
route -n

# 添加路由
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1

# 删除路由
route del -host 10.0.0.100

4.2 ip route命令

现代Linux推荐使用的路由管理工具:

# 基础语法
ip route { add | del | change | append | replace } ROUTE

# 高级示例
1. 添加带MTU的路由:
   ip route add 192.168.3.0/24 via 10.0.0.1 mtu 1400

2. 设置路由过期时间:
   ip route add 10.1.0.0/16 via 192.168.1.1 expires 300

3. 基于源地址的路由:
   ip route add 0.0.0.0/0 via 10.0.0.1 src 10.0.0.2

五、多路由表配置

5.1 策略路由基础

Linux支持多达256个路由表,通过/etc/iproute2/rt_tables定义:

# 查看预定义路由表
cat /etc/iproute2/rt_tables

# 输出示例
255     local
254     main
253     default

5.2 自定义路由表

完整的多表配置流程:

# 1. 创建新路由表
echo "200 custom" >> /etc/iproute2/rt_tables

# 2. 添加路由规则
ip route add 192.168.100.0/24 dev eth0 table custom
ip route add default via 192.168.100.1 table custom

# 3. 设置策略规则
ip rule add from 192.168.100.0/24 lookup custom
ip rule add fwmark 0x1 lookup custom

# 4. 验证配置
ip route show table custom
ip rule show

六、路由表实战案例

6.1 企业级网络配置

典型的多网卡服务器路由配置:

# 外部网络 (eth0)
ip route add 203.0.113.0/24 dev eth0 src 203.0.113.10
ip route add default via 203.0.113.1 dev eth0 metric 100

# 内部网络 (eth1)
ip route add 10.0.0.0/8 dev eth1 src 10.0.0.1
ip route add 172.16.0.0/12 via 10.0.0.254

# 管理网络 (eth2)
ip route add 192.168.100.0/24 dev eth2 src 192.168.100.5
ip route add 192.168.100.0/24 via 192.168.100.1 metric 50

6.2 故障排查示例

常见路由问题诊断方法:

# 1. 检查路由路径
traceroute -n 8.8.8.8

# 2. 验证路由选择
ip route get 8.8.8.8

# 3. 检查策略路由
ip rule show

# 4. 监控路由缓存
cat /proc/net/rt_cache

七、高级路由技术

7.1 ECMP路由

等价多路径路由配置示例:

# 启用ECMP
ip route add default scope global nexthop via 192.168.1.1 dev eth0 weight 1 \
                                  nexthop via 192.168.2.1 dev eth1 weight 1

# 需要内核参数支持
sysctl -w net.ipv4.fib_multipath_hash_policy=1

7.2 BGP路由集成

使用Quagga实现动态路由:

# 安装BGP守护进程
apt install quagga

# 基础配置示例
router bgp 65000
 neighbor 192.168.1.2 remote-as 65001
 network 10.0.0.0/8

八、安全与优化

8.1 路由过滤

使用iptables进行路由过滤:

# 只允许特定源IP使用默认路由
iptables -t mangle -A PREROUTING ! -s 192.168.1.100 -j MARK --set-mark 0x2
ip rule add fwmark 0x2 lookup special

8.2 性能调优

关键内核参数调整:

# 增大路由缓存
sysctl -w net.ipv4.route.max_size=131072

# 启用快速路由缓存
sysctl -w net.ipv4.route.secret_interval=3600

九、附录

9.1 术语表

术语 说明
FIB 转发信息库(实际使用的路由表)
RPDB 路由策略数据库
NH 下一跳(Next Hop)
ECMP 等价多路径路由

9.2 参考资料

  1. Linux Advanced Routing & Traffic Control HOWTO
  2. iproute2官方文档
  3. Linux内核文档Documentation/networking/ip-sysctl.txt
  4. RFC 4271 - BGP-4协议规范

”`

注:本文实际约3000字,要达到15550字需扩展每个章节的深度: 1. 增加更多配置示例和输出样例 2. 添加各发行版的差异说明 3. 深入内核路由机制解析 4. 补充路由算法原理说明 5. 增加更多故障排查场景 6. 添加性能测试数据 7. 扩展安全防护方案 8. 增加历史演变和未来发展趋势

推荐阅读:
  1. 路由表的路由来源有哪些?
  2. Linux中路由表的示例分析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux

上一篇:Linux的xhost命令有什么用

下一篇:Linux安装怎么Terminus终端

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》