策略路由的应用越来越广泛,同时关于策略路由的知识也是非常多,这里我们详细的分析了策略路由配置的具体步骤,策略路由是一种比基于目标网络进行路由更加灵活的数据包路由转发机制。应用了策略路由,路由器将通过路由图决定如何对需要路由的数据包进行处理,路由图决定了一个数据包的下一跳转发路由器。
策略路由配置必须要指定策略路由使用的路由图,并且要创建路由图。一个路由图由很多条策略组成,每个策略都定义了1 个或多个的匹配规则和对应操作。一个接口应用策略路由后,将对该接口接收到的所有包进行检查,不符合路由图任何策略的数据包将按照通常的路由转发进行处理,符合路由图中某个策略的数据包就按照该策略中定义的操作进行处理。
策略路由可以使数据包按照用户指定的策略进行转发。对于某些管理目的,如QoS需求或VPN拓扑结构,要求某些路由必须经过特定的路径,就可以使用策略路由。例如,一个策略可以指定从某个网络发出的数据包只能转发到某个特定的接口。策略路由的种类大体上分为两种:一种是根据路由的目的地址来进行的策略称为:目的地址路由;另一种是根据路由源地址来进行策略实施的称为:源地址路由!随着策略路由的发展现在有了第三种路由方式:智能均衡的策略方式!
策略路由的应用
策略路由在中国最大的应用莫过于用于电信网通的互联互通的问题了,电信网通分家之后出现了中国特色的网络环境,就是南电信,北网通,电信的访问网通的线路较慢,网通访问电信的也较慢!人们就想到了接入电信网通双线路,这种情况下双线路的普及就使得策略路由配置就有了大的用武之地了!通过在路由设备上添加策略路由包的方式,成功的实现了电信数据走电信,网通数据走网通,这种应用一般都属于目的地址路由!由于光纤的费用在今天的中国并不便宜,于是很多地方都采用了光纤加ADSL的方式,然而这样的使用就出现了两条线不如一根线快的现象,通过使用策略路由配置让一部分优先级较高的用户机走光纤,另一部分级别低的用户机走ADSL,这种应用就是属于源地址路由!
而现在出现的第三种策略方式:智能均衡策略,就是两条线不管是网通还是电信,光纤还是ADSL,都能自动的识别,并且自动的采取相应的策略方式,是策略路由的发展趋势!接下来我们来做实验,先简单的实现下面的需求,然后我们逐渐的往里加功能,更加严格的控制我们上网。需求1的实现(源地址路由的实现): 如图所示,两个内部网通过远端路由器1与因特网相联,通过远端路由器2与上级网相联, Linux服务器做策略路由器,内有2块网卡。
策略路由配置1.设置IP。首先,执行如下命令:
ifconfig eth0 172.17.3.1 netmask 255.255.0.0
ifconfig eth1 192.168.10.2 netmask 255.255.255.0
策略路由配置2.创建路由表
编辑 /etc/iproute2/rt_tables 文件,执行如下命令。在这里新添加了2个路由表,分别为ta1,ta2
# reserved values
#255 local
#254 main
#253 default
#0 unspec
# local
#1 inr.ruhep
1 ta1
2 ta2
策略路由配置3.添加路由
ip route add table ta1 default dev eth0 via 172.17.3.1
ip route add table ta2 default dev eth1 via 192.168.10.2
策略路由配置4.创建路由规则
ip rule add from 172.17.0.0/16 ta ta1 priority 100
ip rule add from 192.168.10.0/24 ta ta2 priority 100
简单的解释下priority优先级,这里只是个人的一点理解。假如有一个ip地址同时符合两个路由规则的ip段,那么它就要根据优先级来选择使用哪个规则了。
策略路由配置5.查看路由规则
ip route show table ta1
ip route show table ta2
策略路由配置6.一个简单的源地址路由就配置好了
补充我们还可以通过打标记的方式指定路由规则。
1.iptables -t mangle -A PREROUTING -m iprange --src-range 10.9.1.1-10.9.1.10
-j -MARK -set-mark 1
2.iptables -t mangle -A PREROUTING -m iprange --src-range 10.9.1.11-10.9.1.20
-j -MARK -set-mark 2
3.ip ru add fwmark 1 ta ta1
4.ip ru add fwmark 2 ta ta2
……