本设计从简单到难,便于理解

本次设计涉及到 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;

-应用程序;

-协议;

-数据包大小。

----------------------------------------------------------------------------------------------------------------------

 

多出口的ISP <wbr> <wbr>NAT高级配置+route-map策略路由 <wbr> <wbr>CCIE级别案例(原创)


第一阶段:
实现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 1
4.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 2
4.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 3
4.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 参数。