指定缺省路由(last resort gateway)的指令供有3种,可以分成两类:
1、Ip default-gateway
仅在 " no ip routing" (关闭路由功能) 时生效;并且一台设备只能配置一条;
ip defaut-gateway这条命令,是给交换机自己用的,而不是做为下联PC的网关;
两个作用:
1. 路由器配置ip default-gateway :为路由器指定一个默认网关,用于把路由器当作PC用;
2. 交换机配置ip default-gateway :作为交换机管理地址(Vlan)的默认网关.
(1)在R1上配置IP Default-Gateway
R1(config)#no ip routingR1(config)#ip default-gateway 12.1.1.2// 在R1上关闭路由功能,并指定默认网关为12.1.1.2
(2)在R1上查看默认网关
R1#show ip routeDefault gateway is 12.1.1.2Host Gateway Last Use Total Uses InterfaceICMP redirect cache is empty//R1上路由功能已关闭,并且所有的数据包都将发给网关12.1.1.2
(3)测试网络连通性
R1#ping 2.2.2.2Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:!!!!!Success rate is 100 percent (5/5), round-trip min/avg/max = 20/40/108 ms//因为R1网关为12.1.1.2,而2.2.2.2在R2上,所有R1和2.2.2.2通信正常
(4)现在假设不关闭路由功能,看ip default-gateway起作用不
R1(config)#ip routingR1(config)#do show ip routeGateway of last resort is not set12.0.0.0/24 is subnetted, 1 subnetsC 12.1.1.0 is directly connected, FastEthernet0/0R1#ping 2.2.2.2Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:.....Success rate is 0 percent (0/5)//可以看到ip default-gateway没有起作用,所有得到结论:必须要先关闭路由功能才能使用ip default-gateway
2、Ip default-network和ip route 0.0.0.0 0.0.0.0
两者都用于ip routing有效的情况下,区别主要在于路由协议是否传播这条路由信息;
ip route 0.0.0.0 0.0.0.0 默认路由ip //默认只会影响本机,不会自动被动态路由协议传播;ip default-network 默认路由ip //可以自动被动态路由协议(RIP/IGRP/EIGRP)传播。
ip route 0.0.0.0 0.0.0.0
ip route 0.0.0.0 0.0.0.0 在有路由功能(ip routing)的情况下使用,且可以配置多条,流量会自动在多条链路上负载均衡.但它不会自动被动态路由协议通告给邻居。(实验将在下面体现)
ip default-network
ip default-network 所定义的网络将成为路由器的默认网关(所有未知目标的数据包都会发往该网络),但必须是在目标网络(必须为主类网络)已经存在于路由表的情况下,否则执行无效;当配置了这条命令后,路由器将会把这条路由当成网关和路由表最后一个条目相匹配。当该条目匹配可达时,这条路径将会在路由表中被标记为*号(设为默认网关)[这是没有路由协议的情况]。
当用ip default-network指令设定多条默认路由时,AD最短的将会成为缺省网关;如果AD都相等,那么在路由表(show ip route)中第一个显示的,就作为缺省网关。
举例:
注意最后一条路由: S 198.10.1.0/24 [1/0] via 161.44.192.2 这条静态路由(事先已配置);
当配置了ip default-network 198.10.1.0 后,路由表将发生变化。如下:
现在Gateway of last resort被设置成161.44.192.2,且原路由条目被标记为*号(默认路由)
第二个例子:
R1(config)#ip route 171.70.24.0 255.255.255.0 131.108.99.2
结果是只出来一条汇总路由:将171.70.0.0汇总到170.70.24.0. Why?
因为ip default-network命令是一个有类的命令(classfull),所指定的网段必须是没有划分过子网的主类网络*,否则不会产生默认网关(路由表不会将这条路由标记为*)!而是会安装一条主类路由(ip route 171.70.0.0 255.255.0.0 171.70.24.0)进路由表(RUN里可以看到)
*这里因为171.70.24.0/24是170.70.0.0/16的子网,所以被忽略了.
如果想在路由表里标记路由就只有宣告主类网络才行
R1(config)#no ip route 171.70.24.0 255.255.255.0 131.108.99.2R1(config)#no ip default-network 171.70.24.0R1(config)#ip route 171.70.0.0 255.255.0.0 131.108.99.2R1(config)#ip default-network 171.70.0.0
如果同时使用ip default-network和ip route 0.0.0.0 0.0.0.0设定默认路由时,且ip default-network指定的网络是已经由静态路由配置(路由表内已有条目),那么ip defaut-network优先(成为缺省路由);但如果ip default-network指定的网络是由交换路由信息得来的,则ip route 0.0.0.0 0.0.0.0指定的表项成为缺省路由。
实验1
完成基本的IP配置,
R2上
ip route 192.168.1.0 255.255.255.0 172.16.12.1 ip default-network 192.168.1.0
路由表:
Gateway of last resort is 172.16.12.1 to network 192.168.1.0
S* 192.168.1.0/24 [1/0] via 172.16.12.1// 路由表中有了标记为S*条目
ip default-network将192.168.1.0标记为缺省路由,而去往该网络的下一跳172.16.12.1即成为R2的缺省网关.
如此一来,R2ping 1.1.1.1就能通了
(R1当前路由表中有一条指向192.168.1.0/24的默认路由,会将所有未知网络发往192.168.1.0,最终(192.168.1.0发往172.16.12.1)R1能够和1.1.1.1/24通信。)
实验2
完成基本的IP配置,然后在R2上
ip route 172.16.3.0 255.255.255.0 172.16.23.2ip default-network 172.16.3.0
查看R2的路由表:
S 172.16.0.0/16 [1/0] via 172.16.3.0// 出来一条汇总路由,而不是缺省路由
S 172.16.3.0/24 [1/0] via 172.16.23.2
R2 show run后发现:
ip default-network 172.16.3.0 变成了:ip route 172.16.0.0 255.255.0.0 172.16.3.0
这是因为ip default-network 是有类的,因此如果使用该命令标记一个子网,实际上路由器会安装主类路由进路由表,因此不会产生任何缺省路由。
再在R2上配置 ip default-network 172.16.0.0 //将172.16.0.0指定为缺省路由
这样一来路由表:
Gateway of last resort is 172.16.3.0 to network 172.16.0.0
* 172.16.0.0/16 is variably subnetted, 4 subnets, 2 masks
S* 172.16.0.0/16 [1/0] via 172.16.3.0
S 172.16.3.0/24 [1/0] via 172.16.23.3
如此一来,R2ping 3.3.3.3就能通了
(所有未知网络 --- 172.16.0.0 --- 172.16.3.0 --- 172.16.23.3)