ip default-gateway,顾名思义,其含义就是默认网关的意思。那么在什么情况下会使用到该命令呢?熟悉windows的朋友都知道,当winPC插上网线后默认会通过DHCP自动获取主机IP和默认网关地址,通过在命令行界面下输入ipconfig可以看到当前PC网卡的接口IP地址和默认网关地址。路由器上的ip default-gateway就可以把它看成PC机的默认网关,配置了默认网关的路由器会把前往任何网络的数据包发给自己默认网关来处理。
需要记住的是,ip default-gateway仅在路由器关闭路由功能的情况或者路由功能模块损坏的情况下才有效!这样的路由器看起来就像是一台PC主机。
PS:这里还需注意的一点就是路由器以太口默认开启的ip proxy-arp功能(代理ARP),代理ARP会在没有默认网关的网络中起到一定作用。
结合示例来分析:
R1-fa0/0:12.1.1.1/24
R2-fa0/0:12.1.1.2/24 lo0:172.16.1.2/24
具体接口IP的配置就不罗嗦了,下面仅给出与ip default-gateway相关的配置情况;
//首先关闭R1的路由功能,且暂且不给它配置默认网关,R2的fa0/0接口上的ip proxy-arp是默认打开的,也不动它。
R1(config)#no ip routing
R1#sh ip route
Default gateway is not set
Host Gateway Last Use Total Uses Interface
ICMP redirect cache is empty
//这里可以看到R1关闭路由功能后,路由表为空,且显示默认网关未设置。
//那么这里R1路由已经被关闭,又没有给它指定默认网关是谁,这时R1 ping 172.16.1.2能不能通呢?
R1#ping 172.16.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.1.2, timeout is 2 seconds:
.!!!.
Success rate is 80 percent (4/5), round-trip min/avg/max = 4/265/1012 ms
//事实证明R1可以ping通172.16.1.2,为什么?因为R1在向外发送数据包,封装到2层时,由于不知道该用哪个MAC地址来完成封装,所以R1会向接口所在网段广播ARP请求,R2收到R1的广播ARP,一看172.16.1.2正是自己直连的,并且R2的fa0/0的代理ARP默认是开启的,所以R2会用自己的fa0/0的MAC回应给R1,R1完成数据帧的封装,就把帧发给了R2,通信成功了!
//接下来,我们关闭R2的fa0/0的proxy-arp功能
R2(config)#int fa0/0
R2(config-if)#no ip proxy-arp //关闭proxy-arp
R1#clear arp-cahe //防止前面的arp缓存记录影响实验
R1#ping 172.16.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.1.2, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
//这时再从R1 ping 172.16.1.2时,就不通了,因为R2不再响应R1的arp请求。
//现在给R1指定默认网关为12.1.1.2,让它把所有流量都发给网关R2来处理
R1(config)#ip default-gateway 12.1.1.2
R1#sh ip route
Default gateway is 12.1.1.2
Host Gateway Last Use Total Uses Interface
ICMP redirect cache is empty
//可以看到路由表中有一个表项显示着R1的默认网关为12.1.1.2
R1#ping 172.16.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.1.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/212/1004 ms
//这时R1 ping 172.16.1.2就可以通了!这时候R1在对数据进行2层封装的时候会直接请求网关R2接口12.1.1.2对应的MAC,而不会请求172.16.1.2的MAC。这里并不会触发代理ARP。
//以上就是我对ip default-gateway的理解。
转载于:https://blog.51cto.com/2506658/768242