一,路由表里路由条目拥有六个元素
1,前缀 ----- 主机位全为0
2,掩码 ----- 伴随前缀使用
3,下一跳地址 -----去往目的网段下游的第一台3层设备的接受接口的IP地址
4,出站接口-----描述通过什么接口把报文发送出去
5,Metric(度量值)----花销越小越好,描述路由条目的好坏
6,AD(管理距离)-----管理距离越小越可靠,描述路由信息获悉方式的可靠程度
二,路由汇总原则
1,被汇总的路由条目必须连续
如下图所示,如果我们要汇总,那么我们就汇总成192.168.0.0/19,但是这个时候就有个问题了!去往192.168.15.0/24网段的流量到达R2就会被抛弃,这就是路由黑洞。
2,被汇总的路由条目必须共享相同的出站接口以及下一跳地址
三,路由汇总详解
四,路由汇聚算法的实现
1)将各子网地址的网段以二进制写出。
2)比较,从第1位比特开始进行比较,将从开始不相同的比特到末尾位填充为0。由此得到的地址为汇总后的网段的网络地址,其网络位为连续的相同的比特的位数。
五,默认网关
网关实质上是一个网络通向其他网络的IP地址。比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。网络B向网络A转发数据包的过程也是如此。所以说,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信。那么这个IP地址是哪台机器的IP地址呢?网关的IP地址是具有路由功能的设备的IP地址,具有路由功能的设备有路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。
六,网关在不同网段通信的作用
验证不同网段通信的过程
(1)设备的配置
PC1的网关是192.168.1.1
PC2的网关是172.16.0.1
路由器R1: R1(config)#interface f1/0 R1(config-if)#ip address 192.168.1.1 255.255.255.0 R1(config-if)#no shutdown R1(config-if)#int f1/1 R1(config-if)#ip address 172.16.0.1 255.255.255.0 R1(config-if)#no shutdown R1#debug arp //开启arp的debug功能 PC1: PC1(config)#interface f1/0 PC1(config-if)#ip address 192.168.1.2 255.255.255.0 PC1(config-if)#no shutdown PC1(config)#ip default-gateway 192.168.1.1 PC1#debug arp //开启arp的debug功能 PC2: PC2(config)#interface f1/0 PC2(config-if)#ip address 172.16.0.2 255.255.255.0 PC2(config-if)#no shutdown PC2#debug arp //开启arp的debug功能
(2)PC2 ----ping-----PC1 查看日志信息
R1: *Nov 7 17:20:19.675: IP ARP: rcvd rep src 192.168.1.2 ca03.0854.001c, dst 192.168.1.2 FastEthernet1/0 R1# *Nov 7 17:22:54.871: IP ARP: rcvd rep src 172.16.0.2 ca04.1574.001c, dst 172.16.0.2 FastEthernet1/1 R1# *Nov 7 17:24:44.451: IP ARP: rcvd req src 172.16.0.2 ca04.1574.001c, dst 172.16.0.1 FastEthernet1/1 *Nov 7 17:24:44.459: IP ARP: creating entry for IP address: 172.16.0.2, hw: ca04.1574.001c *Nov 7 17:24:44.459: IP ARP: sent rep src 172.16.0.1 ca05.0854.001d, dst 172.16.0.2 ca04.1574.001c FastEthernet1/1 *Nov 7 17:24:45.379: IP ARP: creating incomplete entry for IP address: 192.168.1.2 interface FastEthernet1/0 *Nov 7 17:24:45.383: IP ARP: sent req src 192.168.1.1 ca05.0854.001c, dst 192.168.1.2 0000.0000.0000 FastEthernet1/0 R1# *Nov 7 17:24:45.471: IP ARP: rcvd rep src 192.168.1.2 ca03.0854.001c, dst 192.168.1.1 FastEthernet1/0 *Nov 7 17:24:45.531: IP ARP: rcvd req src 192.168.1.2 ca03.0854.001c, dst 192.168.1.1 FastEthernet1/0 *Nov 7 17:24:45.531: IP ARP: sent rep src 192.168.1.1 ca05.0854.001c, dst 192.168.1.2 ca03.0854.001c FastEthernet1/0
PC1: *Nov 7 17:24:45.267: IP ARP: rcvd req src 192.168.1.1 ca05.0854.001c, dst 192.168.1.2 FastEthernet1/0 *Nov 7 17:24:45.271: IP ARP: sent rep src 192.168.1.2 ca03.0854.001c, dst 192.168.1.1 ca05.0854.001c FastEthernet1/0 *Nov 7 17:24:45.403: IP ARP: creating incomplete entry for IP address: 192.168.1.1 interface FastEthernet1/0 *Nov 7 17:24:45.403: IP ARP: sent req src 192.168.1.2 ca03.0854.001c, dst 192.168.1.1 0000.0000.0000 FastEthernet1/0 *Nov 7 17:24:45.407: IP ARP throttled out the ARP Request for 192.168.1.1 *Nov 7 17:24:45.539: IP ARP: rcvd rep src 192.168.1.1 ca05.0854.001c, dst 192.168.1.2 FastEthernet1/0 PC1#
PC2: PC2#ping 192.168.1.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds: *Nov 7 17:24:44.767: IP ARP: creating incomplete entry for IP address: 172.16.0.1 interface FastEthernet1/0 *Nov 7 17:24:44.767: IP ARP: sent req src 172.16.0.2 ca04.1574.001c, dst 172.16.0.1 0000.0000.0000 FastEthernet1/0 *Nov 7 17:24:44.947: IP ARP: rcvd rep src 172.16.0.1 ca05.0854.001d, dst 172.16.0.2 FastEthernet1/0.!!!! Success rate is 80 percent (4/5), round-trip min/avg/max = 12/51/88 ms PC2#
(3)分析分析日志
.1 首先当PC2(172.16.0.2)----ping----PC1(192.168.1.2)的时候,由于 PC1的IP地址不和自己在一个网段,会请求自己的网关帮助,所以就会发送ARP req请求,如下所示的报文
source IP :172.16.0.2 (PC2的IP地址) source MAC:ca04.1574.001c (PC2的MAC地址) destination IP:172.16.0.1 (网关的IP地址,也就是说,这个ARP req是发给网关的) destination MAC: 0000.0000.0000 (广播的MAC地址,因为不知道PC1的MAC地址)
.2 路由器R1收到PC2发来的ARP req请求的时候查看ARP表是否有对应的条目,如果没有就创建相应的ARP条目
creating entry for IP address: 172.16.0.2, hw: ca04.1574.001c
创建好条目之后就响应ARP请求给PC2发送ARP rep,当然PC2可以收到这个rep报文并且缓存网关的IP地址和MAC地址
source IP: 172.16.0.1 (R1的f1/1的IP地址) source MAC:ca05.0854.001d (R1的f1/1的MAC地址) destination IP : 172.16.0.2 (PC2的IP地址) destination MAC :ca04.1574.001c (PC2的MAC地址)
.3由于PC2发送的是ping报文,那么这个报文里面一定携带了IP地址(192.168.1.2),当这个报文到达路由器R1之后,R1会拆包检查destination IP(192.168.1.2)在ARP表中是否有缓存对应的MAC地址,如果没有,就通过路由器R1找到192.168.1.0/24的网关地址(192.168.1.1)发送arp req请求192.168.1.2的MAC地址,因为只有通过网关才知道192.168.1.0/24网段主机的MAC信息。
*Nov 7 17:24:45.379: IP ARP: creating incomplete entry for IP address: 192.168.1.2 interface FastEthernet1/0 *Nov 7 17:24:45.383: IP ARP: sent req src 192.168.1.1 ca05.0854.001c, dst 192.168.1.2 0000.0000.0000 FastEthernet1/0
.4 PC1(192.168.1.2)收到了网关发来的ARP req请求就会回应ARP rep,ARP rep报文中包含了PC1的source IP(192.168.1.2)和MAC地址(ca03.
0854
.001c
),当然PC1也会缓存网关的MAC地址。
*Nov 7 17:24:45.267: IP ARP: rcvd req src 192.168.1.1 ca05.0854.001c, dst 192.168.1.2 FastEthernet1/0 *Nov 7 17:24:45.271: IP ARP: sent rep src 192.168.1.2 ca03.0854.001c, dst 192.168.1.1 ca05.0854.001c FastEthernet1/0 *Nov 7 17:24:45.403: IP ARP: creating incomplete entry for IP address: 192.168.1.1 interface FastEthernet1/0
.5 网关收到PC1发送来的ARP rep就可以知道192.168.1.2对应的MAC地址是ca03.
0854
.001c
,所以就这样R1路由器就知道了PC1和PC2的IP地址和对应的MAC地址。记住不同网络通信依靠的是MAC地址,但是PC1和PC2只会缓存自己网段的MAC地址和IP地址(包括网关的MAC地址和IP地址)
七,ARP的反向代理
启用代理ARP的条件
1,路由器需要拥有ARP被请求者的所在网段的路由条目
R1#show arp Protocol Address Age (min) Hardware Addr Type Interface Internet 172.16.0.1 - ca05.0854.001d ARPA FastEthernet1/1 Internet 172.16.0.2 11 ca04.1574.001c ARPA FastEthernet1/1 Internet 192.168.1.1 - ca05.0854.001c ARPA FastEthernet1/0 Internet 192.168.1.2 11 ca03.0854.001c ARPA FastEthernet1/0
2,路由器需要判断请求者和被请求者不在同一个广播域
3,路由器在ARP请求的接口需要开启代理ARP功能
R1(config-if)# ip proxy-arp
R1#show ip interface f1/1 FastEthernet1/1 is up, line protocol is up Internet address is 172.16.0.1/24 Proxy ARP is enabled
还是如上的图,如果我们关闭PC1和PC2的网关,然后继续PC2----ping----PC1,任然ping得通
但是当路由器的f1/1收到ARP req请求的时候,会将f1/1的MAC地址( ca05.
0854
.001d
)作为ARP rep发送给PC2,这就是代理ARP. 这里就像f1/1直接给PC2响应。
*Nov 7 19:36:52.543: IP ARP: sent req src 172.16.0.2 ca04.1574.001c, dst 192.168.1.2 0000.0000.0000 FastEthernet1/0 *Nov 7 19:36:52.691: IP ARP: rcvd rep src 192.168.1.2 ca05.0854.001d, dst 172.16.0.2 FastEthernet1/0.!!!!
我们发现网关(172.16.1.1)和PC1(192.168.1.2)都有相同的MAC地址(ca05.
0854
.001d
),保存在ARP缓存表中。
PC2#show arp Protocol Address Age (min) Hardware Addr Type Interface Internet 172.16.0.1 146 ca05.0854.001d ARPA FastEthernet1/0 Internet 172.16.0.2 - ca04.1574.001c ARPA FastEthernet1/0 Internet 192.168.1.2 14 ca05.0854.001d ARPA FastEthernet1/0
开启免费arp
PC2(config)# ip gratuitous-arps //开启免费arp PC2(config)# no ip gratuitous-arps //关闭免费arp
本文出自 “好好活着” 博客,转载请与作者联系!