1、 链路状态协议
1. 链路状态协议包含两个协议,OSPF(开放最短路径优先协议)、IS-IS(中间系统到中间系统)。链路状态协议是通过和自己的对等设备建立邻居关系,然后把相邻的设备放到自己的邻居
中,并且彼此传递自己的链路状态消息(接口状态,IP信息),然后形成链路状态数据库,如果一次类推,网络中所有的路由器链路状态数据库是同步的,也就是说拥有了一张类似于北京地图的链路库。然后利用SPF最短路径优先算法,以自己为源点,所有者为目的,计算出最短的路径cost开销,然后把这条路径放入到路由表中的行为,称为链路状态协议。
链路状态协议三张表:
A 邻居表
B 链路状态数据表
C 路由表
链路状态协议全部都是组播协议。
2. 划分区域的好处:
区域与区域之间可以隔离,可以做结构,但是最主要的目的就是拓扑的更新泛洪消息,可以控制再一个区域内,那么区域与区域之间的更新,我们可以汇总为一条汇总消息更新就OK了。没有必要把所有的泛洪到所有的区域。
当然,如果说你把所有的路由器放到一个区域内,那么泛洪也是大家都收到的。
试验、RIPv1和静态路由的备份试验
步骤:
1. 启动rip,调试。
r1#sh ip route rip
R 2.0.0.0/8 [120/1] via 199.99.2.2, 00:00:19, Serial1/0
2. 配置静态路由,然后观察结果
r1(config)#ip route 2.0.0.0 255.0.0.0 199.99.1.2
r1(config)#no ip route 2.0.0.0 255.0.0.0 199.99.1.2
r1(config)#ip route 2.0.0.0 255.0.0.0 199.99.1.2 121
3. 观察效果
试验、RIPv2的试验
删除上面试验中的所有静态路由部分
步骤:
1. RIPv2的配置
r1(config)#router rip
r1(config-router)#version 2 修改版本号为2
r1(config-router)#no auto-summ 关闭自动汇总功能
r2(config)#router rip
r2(config-router)#ver 2
r2(config-router)#no au
2. RIPv2的查询
r1#clear ip route * 重新计算路由协议
r1#sh ip route rip
2.0.0.0/24 is subnetted, 1 subnets
R 2.2.2.0 [120/1] via 199.99.2.2, 00:00:17, Serial1/0
r1#debug ip rip
RIP protocol debugging is on 开启debug
*Mar 1 00:14:06.663: RIP: sending v2 update to 224.0.0.9(RIPv2的更新是组播,组播更新地址是224.0.0.9) via Loopback0 (1.1.1.1)
*Mar 1 00:14:06.667: RIP: build update entries
*Mar 1 00:14:06.667: 2.2.2.0/24 via 0.0.0.0, metric 2, tag 0
*Mar 1 00:14:06.671: 199.99.2.0/24 via 0.0.0.0, metric 1, tag 0
*Mar 1 00:14:06.679: RIP: ignored v2 packet from 1.1.1.1 (sourced from one of our addresses)
r1#
*Mar 1 00:14:07.971: RIP: sending v2 update to 224.0.0.9 via Serial1/0 (199.99.2.1)
*Mar 1 00:14:07.975: RIP: build update entries
*Mar 1 00:14:07.975: 1.1.1.0/24 via 0.0.0.0, metric 1, tag 0
r1#
*Mar 1 00:14:10.547: RIP: received v2 update from 199.99.2.2 on Serial1/0
*Mar 1 00:14:10.551: 2.2.2.0/24 via 0.0.0.0 in 1 hops
3. RIPv2的加密
步骤:
A建立密码
r1(config)#key chain fxh 建立这个加密的名字,这个名字以后要被调用
r1(config-keychain)#key ?
<0-2147483647> Key identifier
r1(config-keychain)#key 1 建立加密的标识
r1(config-keychain-key)#key-string cisco 密码是cisco
B调用密码
r1(config-keychain-key)#int s1/0
r1(config-if)#ip rip authentication mode md5 标识我们的加密是MD5哈希
r1(config-if)#ip rip authentication key-chain fxh 调用刚才建立好的密码标识名称fxh
重点:RIPv1和V2的兼容性问题,
V1可以收V2,但是V2不能收V1
r1(config-if)#ip rip send v 2可以解决,
试验、EIGRP的配置
1. EIGRP的基本配置
r1(config)#router eigrp ? 后面跟的是自治系统
<1-65535> Autonomous system number
r1(config)#router eigrp 100 进入EIGRP的路由配置
r1(config-router)#no auto-summ 关闭自动汇总功能
r1(config-router)#net 1.1.1.0 0.0.0.255 进行宣告,用的是反掩码
r1(config-router)#net 199.99.1.0
2. EIGRP的查询
*Mar 1 00:03:02.431: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 100: Neighbor 199.99.1.1 (Serial1/0) is up: new adjacency
提示你邻居已经建立
邻居表:
r1#show ip eigrp neighbors (邻居)
IP-EIGRP neighbors for process 100
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
0 199.99.1.2 Se1/0 13 00:01:16 31 200 0 3
r1#show ip eigrp topology (拓扑)
IP-EIGRP Topology Table for AS(100)/ID(1.1.1.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - reply Status, s - sia Status
P 1.1.1.0/24, 1 successors, FD is 128256
via Connected, Loopback0
P 2.2.2.0/24, 1 successors, FD is 2297856
via 199.99.1.2 (2297856/128256), Serial1/0
P 199.99.1.0/24, 1 successors, FD is 2169856
via Connected, Serial1/0
r1#show ip route eigrp 100
2.0.0.0/24 is subnetted, 1 subnets
D 2.2.2.0 [90/2297856] via 199.99.1.2, 00:02:27, Serial1/0
3. EIGRP的加密
加密跟rip一样
r1(config)#key chain fxh
r1(config-keychain)#key 1
r1(config-keychain-key)#key-str cisco
关键是调用不一样
r1(config-if)#ip authentication mode eigrp 100 md5
*Mar 1 00:07:29.807: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 100: Neighbor 199.99.1.2 (Serial1/0) is down: authentication mode changed
我们发现一加密,邻居马上down,模式为验证更新了
r1(config-if)#ip authentication key-chain eigrp 100 fxh调用刚才的密码
*Mar 1 00:07:29.219: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 100: Neighbor 199.99.1.1 (Serial1/0) is down: Interface Goodbye received 对端加密,我没有,重新协商
r2#
*Mar 1 00:07:33.891: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 100: Neighbor 199.99.1.1 (Serial1/0) is up: new adjacency 对端没有调用密码,所以可以启动邻居
r2#
*Mar 1 00:08:37.879: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 100: Neighbor 199.99.1.1 (Serial1/0) is down: Auth failure 验证失败
试验、OSPF的配置
步骤:
1. 链路的配置,和网络IP地址配置
2. OSPF的配置和讲解
r1(config)#router ospf ? 后跟的参数进程ID
<1-65535> Process ID
r1(config)#router ospf 100
r1(config-router)#router-id 1.1.1.1 手工指定路由ID。
OSPF维护邻居表的时候,她主要看的是路由ID的状态,而路由ID说白了就是一个接口的ip地址。而路由器本身有很多IP地址,那个是路由ID,她可以选举,位数最大的那个为路由ID。例如:1.1.1.1和2.2.2.2,那么2.2.2.2就是路由ID,因为2>1。但是刚才讲了,也就是说。接口的UP和down的状态决定了OSPF的邻居状态,如果接口反复的UP和DOWN,那么整个的OSPF网络要面临一次浩劫,这样,我们就可以把loopback手工指定为路由ID,因为她是永远不down的。
r1(config-router)#network 1.1.1.0 0.0.0.255 area 0
宣告接口网段进入到区域0中
r1(config-router)#network 199.99.1.0 0.0.0.255 area 0
r2(config-if)#router ospf 100
r2(config-router)#router-id 2.2.2.2
r2(config-router)#net 2.2.2.0 0.0.0.255 a 0
r2(config-router)#net 199.99.1.0 0.0.0.255 a 0
这时候,我们会发现:
*Mar 1 00:06:06.459: %OSPF-5-ADJCHG(邻居更新消息): Process 100进程号100, Nbr 1.1.1.1 (指的是邻居路由ID)on Serial1/0 from LOADING to FULL(说明已经完全彼此同步了LSA链路状态信息,并且路由计算完成了), Loading Done
3. OSPF的查询
邻居表:
r1#sh ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
2.2.2.2 0 FULL/ - 00:00:38 199.99.1.2 Serial1/0
链路状态表:
r1#sh ip ospf database
OSPF Router with ID (1.1.1.1) (Process ID 100)
Router Link States (Area 0)
Link ID ADV Router Age Seq# Checksum Link count
1.1.1.1 1.1.1.1 130 0x80000003 0x0080A3 3
2.2.2.2 2.2.2.2 126 0x80000002 0x00A477 3
r1#sh ip route ospf
2.0.0.0/32 is subnetted, 1 subnets
O 2.2.2.2 [110/65] via 199.99.1.2, 00:02:14, Serial1/0
问题:65怎么来的!
她是一个metric数值,也是一个cost数值。
表:
100M=1
10M=10
1.544M=64
65=64+1(64的1.544M的链路开销+一个环回接口的默认开销1)
r2#clear ip ospf p 重新计算OSPF
Reset ALL OSPF processes? [no]: y
4. OSPF的验证
验证:接口验证 NA
r1(config-if)#ip ospf authentication 开启验证
r1(config-if)#ip ospf authentication-key cisco 建立验证密码
*Mar 1 00:21:00.327: OSPF: Rcv pkt from 199.99.1.2, FastEthernet0/0 : Mismatch Authentication type. Input packet specified type 0, we use type 1
密文:
r1(config-if)#ip ospf authentication message-digest 启动MD5
r1(config-if)#ip ospf message-digest-key 1 md5 cisco 建立密码
区域验证NP
2、 访问控制列表ACL
访问控制列表说白了就是条件的集合,我们设置一些条件,然后把这个条件调用到接口上,来过滤穿越路由器的流量。
*****路由器自己产生的流量过滤不了
1. acl过滤流程需要注意的地方:
访问控制列表是由条件组成
只要一个中招,那么就不检查其他的。
我们要把严格的条件写在上面,这样做的好处可以节省cpu资源
如果所有的条件都没有中招,也要被drop,所有的访问控制列表都有一个隐藏的deny any 所有的语句,*******判断一个acl是否正确,有一个非常简单的 标准,就是所有的acl必须有一条permit。
2. 统配掩码
你可以简单的把它理解为反掩码,但是我个人认为这样理解是很愚蠢的。
我们需要过滤,看什么,就是看统配掩码检查的位数。
0 必须要检查
1 放过
我要过滤199.99.1.1 这个地址
199.99.1.1 0.0.0.0
199.99.1.0/24 0.0.0.255
试验、标准访问控制列表试验
步骤:
1.建立R1和R2的路由,能够让R1
和R2之间完整通信
2.从R2上宣告10.10.10.10/32和20.20.20.20/32,从R1都学到,希望R1过滤掉2.2.2.2/32 and 20.20.20.20/32,只允许10.10.10.10/32访问R1
r1(config)#access-list 1 deny host 2.2.2.2 (接受列表1拒绝主机2.2.2.2)
r1(config)#access-list 1 deny host 20.20.20.20
r1(config)#access-list 1 permit any
r1(config)#int f0/0
r1(config-if)#ip access-group 1 in
3. 测试和查询
r1#sh access-list
Standard IP access list 1
10 deny 2.2.2.2
20 deny 20.20.20.20
30 permit any (205 matches)
那么我们更换一种思维,我们来看:如果R1的acl变化了,她的思想是不允许1.1.1.1/32出去。可以不可以再R1的接口f0/0out方向调用
(**&&******)方向问题:
结果是肯定不行:
看一下:
再R2的接口下S1/2 out这个acl