CCNP学习心得之双出口NAT

第一次写博客,发个最近做的CCNP实验水一波。

小学生

下图为拓扑结构:
拓扑

实验需求为:内网的172.16.1.1访问外网走上面的链路,192.168.1.1访问外网走下面的链路。当其中一条链路出故障时,可以自动切换线路使得上网不受影响。

先配置IP地址和OSPF:
R1:

1
2
3
4
5
6
7
8
9
10
int f0/0
ip add 10.12.12.1 255.255.255.0
no shutdown
ip ospf 1 area 0 #接口下启用OSPF
int loopback 1
ip add 172.16.1.1 255.255.255.0
ip ospf 1 area 0
int loopback 2
ip add 192.168.1.1 255.255.255.0
ip ospf 1 area 0

R2:

1
2
3
4
5
6
7
8
9
10
int f0/0
ip add 10.12.12.2 255.255.255.0
no shutdown
ip ospf 1 area 0
int f1/0
ip add 23.23.172.2 255.255.255.0
no shutdown
int f0/1
ip add 23.23.192.2 255.255.255.0
no shutdown

R3:

1
2
3
4
5
6
7
8
int f0/1
ip add 23.23.172.3 255.255.255.0
no shutdown
int f0/0
ip add 23.23.192.3 255.255.255.0
no shutdown
int loopback 1
ip add 211.1.1.1 255.255.255.252

接下来设置ACL(访问控制列表)匹配流量,再用策略路由调用ACL,将匹配到的流量送到相应的接口。设置两个下一跳,当第一条链路故障时第一个下一跳无法到达,可以调用第二个,防止断网。(两个链路都故障还是回去牵网线吧)
滑稽
R2:

1
2
3
4
5
6
7
8
9
10
access-list 1 permit 172.16.1.0 0.0.0.255
access-list 2 permit 192.168.1.0 0.0.0.255
route-map pbr permit 10
match ip add 1
set ip next-hop 23.23.172.3 23.23.192.3
route-map pbr permit 20
match ip add 2
set ip next-hop 23.23.192.3 23.23.172.3
int f0/0
ip policy route-map pbr #接口下调用策略路由

现在策略路由已经将流量送到了两个出接口了,这时候调用NAT,将地址转换为公网地址然后才能把流量发出去。

R2:

1
2
ip nat inside source route-map nat1 interface f1/0 overload 
ip nat inside source route-map nat2 interface f0/1 overload

这里的NAT采用PAT(端口多路复用)的方式,首先调用第一条NAT,NAT_1又调用了路由图_1,接下来我们去看路由图_1的内容。

Route-map nat1:

1
2
3
route-map nat1 permit 10
match ip address 1 2
match interface f1/0

路由图_1的意思是:匹配两个ACL匹配到的流量,再匹配接口f0/1,当流量是允许的流量且接口正常时,满足路由图的条件,此时再去调用nat1进行地址转换。当流量不匹配或者端口异常时,不满足路由图的条件,这样nat1就无法生效,此时调用nat2,从另一正常接口发送流量。

路由图_2也是这样:

1
2
3
route-map nat2 permit 10
match ip address 1 2
match interface f0/1

调用NAT:

1
2
3
4
5
6
int f0/0
ip nat inside
int f1/0
ip nat outside
int f0/1
ip nat outside

在R2上下放默认路由:

1
default-information originate always

下放默认路由后,R1才能访问外网,否则R1没有路由条目,无法知道到外网的流量如何转发。

在R1上写默认路由也一样:

1
ip route 0.0.0.0 0.0.0.0 10.12.12.2

此时可以分流:
分流图

当R2的f1/0接口关闭后:

1
2
int f1/0
shutdown

根据现象可以看出已经自动切换路径了。
切换路径

常见问题:
1、 ACL写错,流量无法匹配,导致策略路由没有被调用,此时R2收到流量后,直接查找路由表,没有匹配的路由条目,丢包。
如:

1
access-list 1 permit 172.16.1.0 0.0.0.0

2、 策略路由没有在接口上调用,结果如上。

3、 路由图没有匹配接口,当某一接口故障时,无法检测出来,流量被丢弃。

4、 路由图match关系写错,导致不满足路由图条件,IP地址无法转换。
如:

nat1 permit 10
1
2
3
match ip address 1
match ip address 2
match interface f0/1

这样写就必须满足,流量既属于列表1页属于列表2,不存在的。。。
tan90
排查思路:在R3上开启debug ip icmp ,查看地址是否转换。

5、 R2没有下放默认路由或者没有在R1上配默认路由,导致R1无法寻址。

6、 traceroute的时候没有带源地址(172.16.1.1或loopback1)。。。。
pi

7、 静态路由写错。
ip route 0.0.0.0 0.0.0.0 f0/0
这样写貌似可以,但是当封装MAC地址的时候,要去请求目的MAC地址,R2收到后。。。(谁鸟你啊,劳资也不知道) 跟下一跳的话,直接以下一跳的MAC地址作为目的MAC地址。

------ 本文结束感谢您的阅读 ------
坚持原创技术分享,您的支持将鼓励我继续创作!