多线接入的返程路由

来自深圳捷联讯通科技有限公司
跳转至: 导航搜索
当做RouterOS的PCC多线路负载均衡的时候,我们会发现一组规则,在ip firewall mangle 的input和output链表中出现的,这条规则用于非默认路
由的返程,即从那个三层口到路由器,就从那个三层接口返回。通常路由器默认路由只有一条(除 ECMP 外),返程路由可以保证数据不会被拒绝。
默认路由(Default Route):即网关设备的默认路由出口,如果要讲就需要把三层网络和路由长篇大论一番,但这里就不细说,可以去网上查查。

返程路由

下面具体点,假设我们有两条线路,线路 A 和线路 B,做 PCC 负载均衡,PCC 的具体配置就不细说,来看看这两条返程路由的规则和默认路由的区别
♠ 线路 A:1.1.1.2/24,网关 1.1.1.1,接口 wan1
♠ 线路 B:2.2.2.2/24,网关 2.2.2.1,接口 wan2
6-69.png
首先配置 PCC mangle 标记(配置省略),主要看看 PCC 中的 mangle 标记中有以下两组规则
6-70.png
input 链表配置的是进入 wan1 口的数据标记为 1st_conn,进入 wan2 接口的标记为 2nd_conn
6-71.png
在 output 链表中将 1st_conn 做路由标记到 pcc1,2nd_conn 标记到 pcc2
当然我们会把对应的标记指定到相同的网关上
6-72.png
注意正常情况下,我们会配置一条默认路由,例如:
6-73.png
路由表的情况如下:
6-74.png
路由配置完成了,现在假设没有 input 和 output 的两组规则,会发生什么事情,参考下图:
6-76.png
上面的拓扑图有两个外部用户 A 和 B 需要访问路由器(该实例都以访问路由器自身为例,即对于路由器在RouterOS 的处理链表为 input 和 output),
路由器上双线接入,由于路由器默认网关只有一个,因此会出现A 和 B 用户访问不同线路产生的结果不同。
当外部网络 A 访问 1.1.1.2 的时候,1.1.1.2 回复外部请求,整个 RouterOS 路由器的默认网关是 1.1.1.1,理所当然的会走 wan1 的 1.1.1.1 出去,
从原路进来,从原路返回。
但如果外部网络 B 访问的是 2.2.2.2,那 2.2.2.2 也会回复外部请求,正常的情况下应该是走 2.2.2.1 回复,但路由器自身的默认路由是 1.1.1.1,返
回到外部 B 不会走 2.2.2.1 网关回去,而是走的默认网关 1.1.1.1,而我们路由器都是做了 nat 的转换,即 B 请求 2.2.2.2,回复的却是 1.1.1.2,B 网络
就认为是非法数据,数据包被丢弃掉。
因此在配置了 input 和 output 规则后,所有访问外网接口的 IP 就按照访问的原路有返回

返程路由的多线路端口映射

这里我们有一个延伸出来的应用,如端口映射,在多线路下要实现内部服务器端口映射同时被各个出口线路访问,也受到返程路由的影响,即当有电信和联
通出口时,我们可以做两条端口映射,一条电信映射一条联通映射。
因此我们把 PCC 的返程路由配置引入多线路的端口映射应用中,
6-77.png
配置中同样是在 mangle 中做以下标记
6-78.png
input 链表配置的是进入 wan1 口的数据标记为 1st_conn,进入 wan2 接口的标记为 2nd_conn
6-79.png
在 output 链表中将 1st_conn 做路由标记到 pcc1,2nd_conn 标记到 pcc2
再把对应的标记指定到相同的网关上
6-80.png
剩下的就是配置端口映射到内网服务器上
首先要配置默认的 src-nat 的伪装规则隐藏内网地址
6-81.png
配置相应的端口映射规则
6-82.png
作者:余松

上一页 下一页