您的位置:首页 > 其它

多出口的ISP NAT高级配置+route-map策略路由

2016-07-06 14:35 295 查看
本设计从简单到难,便于理解
本次设计涉及到 NAT高级应用和route-map及其策略路由
----

--------------------------------------------------------------------------------------------------------
第一阶段
让SERVER1 、server2 server3 分别从 S0/1 S0/2S0/3出口出去,并且要使用 相对应的NAT地址池,
比如:从ISP1走的必须 使用 ISP1的地址池。
第二阶段
如果有一条链路坏了,比如ISP 1 坏了,让SERV1走 ISP2或ISP 3
第三阶段
实现TCP负载,并且因为是服务器,必须使用ipnat inside destination 映射
---------------------------------------------------------------------------------------------------------

资料:
1、route-map是按照从最低的序列号到最高的序列号的顺序来执行的。可以通过序列号来编辑或者修改route-map;

2、如果和route-map中的某一序列号匹配了,那么以后序列号的route-map语句就不再执行;
3、可以使用route-map来permit ordeny和match语句匹配的信息;
4、如果在一个route-map序列号中有多个match语句被引用,那么所有的match语句都必须匹配,才能产生为真的结果;
5、如果route-map应用在一个策略性路由的环境中,那么和match条件不匹配的数据包会根据路由表转发出去;
6、如果在route-map的序列号中没有match语句,那么所有的路由和数据包都会匹配。set语句的行为会应用于所有的路由或者数据包;
7、如果在route-map序列号中的match语句没有相应的访问控制列表,那么所有的路由都会匹配。set语句的行为会应用在所有的路由上;
8、就像访问控制列表一样,在route-map策略的末尾有一个隐含的deny语句;
9、可以使用route-map基于下面的这些条件来建立策略:
-IP地址;
-终端系统ID;
-应用程序;
-协议;
-数据包大小。----------------------------------------------------------------------------------------------------------------------




第一阶段:
实现192.168.1.0/24 192.168.2.0/24192.168.3.0/24网段的分流
192.168.1.0走ISP1
192.168.2.0走ISP2
192.168.3.0走ISP3

第一个问题
如何接口,让192.168.1.0走ISP1
如何接口,让192.168.2.0走ISP2
如何接口,让192.168.3.0走ISP3

access-list 1 permit192.168.1.0 0.0.0.255
route-map gateway1 permit10
match ip address1
set interfaces0/1

access-list 2 permit192.168.2.0 0.0.0.255
route-map gateway2 permit10
match ip address2
set interfaces0/2

access-list 3 permit192.168.3.0 0.0.0.255
route-map gateway3 permit10
match ip address3
set interfaces0/3

第二个问题
如何让走ISP1的出口的,利用电信的NAT地址池
(为何要这样?因为如果你使用了电信的NAT LG地址从网通出去了,数据包可以回来吗?如果你访问的电信的地址,网通ISP没有这条目的地的路由就无法通信)

1.access-list 1 permit192.168.1.0 0.0.0.255(上面已经配置过,无需再次配置)
2.ip nat pool poolisp11.1.1.5 1.1.1.10 netmask 255.255.255.0
3.route-map isp1 permit10
match ip address 14.ip nat inside sourceroute-map isp1 pool poolisp1 overload

1.access-list 2 permit192.168.2.0 0.0.0.255(上面已经配置过,无需再次配置)
2.ip nat pool poolisp22.2.2.5 2.2.2.10 netmask 255.255.255.0
3.route-map isp2 permit10
match ip address 24.ip nat inside sourceroute-map isp2 poo2 poolisp2 overload

1.access-list 1 permit192.168.3.0 0.0.0.255(上面已经配置过,无需再次配置)
2.ip nat pool poolisp33.3.3.5 3.3.3.10 netmask 255.255.255.0
3.route-map isp3 permit10
match ip address 34.ip nat inside sourceroute-map isp3 pool poolisp3 overload

这样就实现了分流
1.第一步设置下一条,让某一网段从固定接口出去
2.第二步设置ACL,通过route-map让NAT地址池选择感兴趣的流量进行NAT转换

第二阶段:
(现在解决第一阶段遗留的重大问题)

问题1:
access-list 1 permit192.168.1.0 0.0.0.255
route-map gateway1 permit10
match ip address1
set interfaces0/1

这个配置是有问题的,当你的s0/1 down之后,这条策略还是会执行,但是出口还是s0/1

修改如下:
access-list 1 permit192.168.1.0 0.0.0.255
route-map gateway1 permit10
match ip address1
match interface s0/1(判断s0/1的up ordown,up执行)
set interfaces0/1(把数据包送到s0/1出口)

如果上一条策略没有匹配,那么执行路由查找,为了达到冗余的效果,我们执行s0/1 down之后,利用 ISP2进行通信。

问题来了,如果isp2也坏呢,怎么办,所以制定一个循环。
--------------------------------
192.168.1.0网段
切换到ISP2链路:
------------------------------------------------------------------------------------------------
1.route-map gateway12 permit 10(把数据包从s0/1换成s0/2)
match ipaddress 1
matchinterface s0/2 (判断s0/2 up or down,为下面做准备)
setinterface s0/2 (把数据包全部交给s0/2)

intfa1/0
ip policyroute-map gateway12 ------------错误
---------------------------------------------------------------------------------------------------------

注意:接口下只能写一条ip policy route-map 所以这里要修改:



access-list 1 permit192.168.1.0 0.0.0.255
接口匹配:
track 10 rtr 1reachability
!
track 20 rtr 2reachability
ip sla 1
icmp-echo 1.1.1.1source-interface Serial1/0
ip sla schedule 1 lifeforever start-time now
ip sla 2
icmp-echo 2.2.2.1source-interface Serial1/1
ip sla schedule 2 lifeforever start-time now
access-list 1 permit192.168.1.0 0.0.0.255
!
route-map ccie permit10
match ip address1
set ip next-hopverify-availability 1.1.1.1 1 track 10
set ip next-hopverify-availability 2.2.2.1 2 track 2
int fa1/0
ip policy route-mapgateway1 //应用到接口下

NAT匹配:
route-map isp12 permit10 (自定加载到 ISP2的地址池)
match ip address1
match interface s0/2 //这里为什么需要加这个,因为匹配NAT地址池。

ip nat inside sourceroute-map isp12 pool poolisp2 overload (使用ISP2的地址池)

切换到ISP3链路:
route-map isp13 permit10 (自定加载到 ISP3的地址池)
match ip address1
match interfaces0/3

ip nat inside sourceroute-map isp13 pool poolisp3 overload (使用ISP3的地址池)
(这里要注意一下:当接口下的route-map匹配之后,进入NAT的route-map如果s0/1 s0/2 s0/3都up,那么如何执行呢,这个要按照顺序,数字1-100,字母a-z,这里特别配置的时候要注意。)
---------------------
192.168.2.0网段:
切换ISP1链路:
接口匹配:
可参照上面
NAT匹配:
route-map isp21 permit10 (自定加载到 ISP1的地址池)
match ip address2
match interfaces0/1

ip nat inside sourceroute-map isp21 pool poolisp1 overload (使用ISP1的地址池)

切换ISP3链路:
route-map isp23 permit10 (自定加载到 ISP3的地址池)
match ip address2
match interfaces0/3

ip nat inside sourceroute-map isp23 pool poolisp3 overload (使用ISP3的地址池)

-----------
192.168.3.0网段:
切换ISP1链路:
接口匹配:
可参照上面
NAT匹配:
route-map isp31 permit10 (自定加载到 ISP1的地址池)
match ip address3
match interfaces0/1

ip nat inside sourceroute-map isp31 pool poolisp1 overload (使用ISP1的地址池)

切换到ISP2链路:
route-map isp32 permit10 (自定加载到 ISP2的地址池)
match ip address3
match interfaces0/2

ip nat inside sourceroute-map isp32 pool poolisp2 overload (使用ISP2的地址池)

Ip route 0.0.0.0 0.0.0.01.1.1.1
Ip route 0.0.0.0 0.0.0.02.2.2.1
Ip route 0.0.0.0 0.0.0.03.3.3.1
加上默认路由是为了方便没有应用策略路由的数据包,能够通信!

这里再解释下:setinterface s0/1 与set ip next-hop1.1.1.1的区别,与以太网的静态路由类似,最好用下一跳地址作为set 参数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  route-map 策略路由 PBR