策略路由的使用(转载)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了策略路由的使用(转载)相关的知识,希望对你有一定的参考价值。
一、原理说明
1、路由表(table)从0到255进行编号,每个编号可以对应一个别名,编号和别名的对应关系
在linux下放在/etc/iproute2/rt_tables这个文件里,一般0编号的table对应的别名为upspec,255编号对应的别名
为local,254和253对应的别名分别为main和default,我们通常用route命令配置和查看的路由表信息为别名为main的路由表信息。
1、对于别名为main的路由表配置和查看我们一般只需要使用route命令就可以了,通常的格式如下:
route [-nNvee] [-FC] [<AF>] : 用来列出别名为main的路由表记录
route [-v] [-FC] {add|del|flush} ... :用来修改别名为main的路由表记录
ip route { list | flush | show } SELECTOR: 用来显示指定table的路由表记录
ip route { add | del | change | append | replace | monitor } ROUTE:用来修改指定table的路由表记录
注:ip命令为iproute2包的一个工具,用来定义ip包的一些规则
3、示例
解决双网卡在同一子网内,网关相同的情况下,使两块网卡各自的ip包从自己接口上出去。
A、两块的网的配置如下:
IP:192.168.9.8/22 网关:192.168.9.1
IP:192.168.9.9/22 网关:192.168.9.1
B、table 0的路由表查看(route -n)
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.8.0 0.0.0.0 255.255.252.0 U 0 0 0 eth0
192.168.8.0 0.0.0.0 255.255.252.0 U 0 0 0 eth1(这条实际上是无用的,选路时不会被选到)
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
0.0.0.0 192.168.9.1 0.0.0.0 UG 0 0 0 eth0
C、说明:第1、2条路由都由网卡的配置产生,需要路由时都使用最后一条默认路由192.168.9.1,并且从eth0上出去。问题:两块网卡的流量都从eth0上出去,相当于浪费了一块网卡。
D、
解决方法,由于在table
0中添加路由只能解决目的地址或目的网络不同时路由问题,但两块网卡有相同的子网,网关也一样,目的子网也一样,所以已经不能通过在table
0添加路由记录来解决问题,我们只能添加其他编号的table,并在新的table中添加路由记录,使eth1的包选路时使用新的table的路由记录,
并从eth1上出去。过程如下:
A、添加新table和新table的路由记录
ip route add 192.168.8.0 via 192.168.9.9 [dev eth1] table 10
ip route add default via 192.168.9.9 [dev eth1] table 10
ip rule add from 192.168.9.9 table 10
D、路由规则的管理使用ip rule,如ip rule show|list用来查看路由规则,ip rule add|del用来添加和删除路由规则。
E、再次分别查看两个接口上的流量或者抓包,可以看到两块网卡上的包分别从不同网卡出去了。
以上是关于策略路由的使用(转载)的主要内容,如果未能解决你的问题,请参考以下文章
精心收集的 48 个 JavaScript 代码片段,仅需 30 秒就可理解!(转载)
Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段