帧中继是典型的 NBMA NonBroadcast Multiple Access )网络。它的拓扑结构通常有两种:全互连 (full mesh) 和中心 - 分支 (hub-and-spoke) 。因为中心 - 分支结构具有节约费用,简化配置等优点,在实际工作中应用广泛。本实验系列主要实现以下四种模式: <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

1.NBMA(non-broadcast) 非广播模式 ---RFC 标准

2.BMA (广播模式) ---Cisco 私有

3.Point-to-point( 点到点模式 )---Cisco 私有

4.Point-to-multipoint( 点到多点模式 )--- RFC 标准

实验一:帧中继环境下 NBMA 模式

实验拓扑:
实验步骤:

先配置好帧中继交换机, NA 里就学过,这里我们再温习一回!

Router>en

Router#conf t

Router(config)#ho FR-SW   // 给设备起名

FR-SW(config)#no ip domain lookup   // 关闭域名查找

FR-SW(config)#lin con 0    // 进入 con

FR-SW(config-line)#logg s  // 设定输出信息同步,防止干扰我们

FR-SW(config-line)#exec-t 0 0   // 设为永不超时 ( 工作中勿用 )

FR-SW(config-line)#exit

FR-SW(config)#frame-relay switching // 将路由器设定为帧中继交换机

FR-SW(config)#int s0/0

FR-SW(config-if)#no sh

FR-SW(config-if)#clock rate 64000  // 设定串口时钟

FR-SW(config-if)#encapsulation frame-relay   // 在接口上封装帧中继

注意:此命令后面可加 ietf 参数,如果不加,默认帧类型是 Cisco IETF 是通用标准。

FR-SW(config-if)#int s0/1

FR-SW(config-if)#no sh

FR-SW(config-if)#clock rate 128000   // 设定串口时钟

FR-SW(config-if)#encapsulation frame-relay   // 在接口上封装帧中继

FR-SW(config-if)#exit

FR-SW(config)#interface s0/2

FR-SW(config-if)#no sh

FR-SW(config-if)#clock rate 128000  // 设定串口时钟

FR-SW(config-if)#encapsulation frame-relay   // 在接口上封装帧中继

FR-SW(config-if)#int s0/0   

FR-SW(config-if)#frame-relay intf-type dce // 设定接口是帧中继的 DCE

FR-SW(config-if)#frame-relay lmi-type cisco // 设定 LMI 的类型,默认是 Cisco 。通用标准为 ansi

FR-SW(config-if)#int s0/1

FR-SW(config-if)#frame-relay intf-type dce // 设定接口是帧中继的 DCE

FR-SW(config-if)#frame-relay lmi-type cisco // 设定 LMI 的类型,默认是 Cisco 。通用标准为 ansi

FR-SW(config-if)#int s0/2

FR-SW(config-if)#frame-relay intf-type dce // 设定接口是帧中继的 DCE

FR-SW(config-if)#frame-relay lmi-type cisco // 设定 LMI 的类型,默认是 Cisco 。通用标准为 ansi

FR-SW(config-if)#exit

FR-SW(config)#interface s0/0

FR-SW(config-if)#frame-relay route 102 interface s0/2 201 // 配置帧中继交换表,也就是告诉路由器如果从此接口收到 DLCI=102 的帧,就从 s0/2 发送出去,并将 DLCI 改为 201.

FR-SW(config-if)#frame-relay route 103 interface s0/1 301

// 配置帧中继交换表,也就是告诉路由器如果从此接口收到 DLCI=103 的帧,就从 s0/1 发送出去,并将 DLCI 改为 301.

FR-SW(config-if)#int s0/2

FR-SW(config-if)#frame-relay route 201 interface s0/0 102

// 配置帧中继交换表,也就是告诉路由器如果从此接口收到 DLCI=201 的帧,就从 s0/0 发送出去,并将 DLCI 改为 102.

FR-SW(config-if)#int s0/1

FR-SW(config-if)#frame-relay route 301 interface s0/0 103

// 配置帧中继交换表,也就是告诉路由器如果从此接口收到 DLCI=301 的帧,就从 s0/1 发送出去,并将 DLCI 改为 103.

FR-SW(config-if)#exit

FR-SW(config)#^Z

查看一下帧中继交换机是否正常:

FR-SW#show frame-relay route

OK! 映射关系都正常!

配置路由器 R1:

Router>en

Router#conf t

Router(config)#no ip domain lookup // 关闭域名查找

Router(config)#lin con 0

Router(config-line)#logg s// 设定输出信息同步

Router(config-line)#exec-t 0 0// 设定永不超时 ( 实际工作中不建议 )

Router(config-line)#exit

Router(config)#hostname R1    // 给设备起名

R1(config)#interface loopback 0  --- 创建本地环回接口

R1(config-if)#ip add 1.1.1.1 255.255.255.255 --- 指定 IP 地址及掩码

R1(config-if)#ip ospf network point-to-point --- 定义接口模式为点到点

R1(config-if)#int s0/0  // 进入串口 s0/0

R1(config-if)#ip add 192.168.1.1 255.255.255.0

R1(config-if)#encapsulation frame-relay   --- 封装帧中继协议

R1(config-if)#frame-relay map ip 192.168.1.2 102 broadcast

// 帧中继静态映射

R1(config-if)#frame-relay map ip 192.168.1.3 103 broadcast

// 帧中继静态映射

R1(config-if)#frame-relay map ip 192.168.1.1 102  // 设置可以 ping 通自已

R1(config-if)#no frame-relay inverse-arp  // 关闭动态 ARP 解析

R1(config-if)#no sh    // 打开接口

R1(config-if)#exit

R1(config)#router ospf 100  // 启用 OSPF 进程, AS 号为 100

R1(config-router)#router-id 1.1.1.1   // 手工指定 Router ID

R1(config-router)#network 1.1.1.1 0.0.0.0 area 0  // 指定参与 OSPF 进程的接口地址

R1(config-router)#network 192.168.1.1 0.0.0.0 area 0 // 指定参与 OSPF 进程的接口地址

R1(config-router)#neighbor 192.168.1.2  // 手工指定 OSPF 邻居

R1(config-router)#neighbor 192.168.1.3  // 手工指定 OSPF 邻居

R1(config-router)#exit

配置路由器 R2:

Router>en

Router#conf t

Router(config)#no ip domain lookup  // 关闭域名查找

Router(config)#hostname R2// 给设备起名

R2(config)#lin con 0

R2(config-line)#logg s     // 设定输出信息同步

R2(config-line)#exec-t 0 0    // 设定永不超时 ( 实际工作不建议 )

R2(config-line)#exit

R2(config)#interface loopback 0   // 创建本地环回接口

R2(config-if)#ip add 2.2.2.2 255.255.255.255

R2(config-if)#ip ospf network point-to-point  // 定义接口模式为点到点

R2(config-if)#int s0/0

R2(config-if)#ip add 192.168.1.2 255.255.255.0

R2(config-if)#encapsulation frame-relay   // 封装帧中继协议

R2(config-if)#ip ospf priority 0 // 设定 Spoke OSPF 接口优先级为 0

R2(config-if)#frame-relay map ip 192.168.1.1 201 broadcast

// 帧中继静态映射

R2(config-if)#frame-relay map ip 192.168.1.3 201 broadcast

// 帧中继静态映射

R2(config-if)#frame-relay map ip 192.168.1.2 201  // 设定可以 ping 通自已

R2(config-if)#no frame-relay inverse-arp   // 关闭动态 ARP 解析

R2(config-if)#no sh

R2(config-if)#exit

R2(config)#router ospf 100   // 启用 OSPF 进程, AS 号为 100

R2(config-router)#router-id 2.2.2.2   // 手工指定 Router ID

R2(config-router)#network 2.2.2.2 0.0.0.0 area 0 

// 指定参与 OSPF 进程的接口地址

R2(config-router)#network 192.168.1.2 0.0.0.0 area 0

// 指定参与 OSPF 进程的接口地址

R2(config-router)#exit

配置路由器 R3:

Router>en

Router#conf t

Router(config)#no ip domain lookup  // 关闭域名查找

Router(config)#hostname R3  // 给设备起名

R3(config)#lin con 0

R3(config-line)#logg s  // 设定输出信息同步

R3(config-line)#exec-t 0 0  // 设定永不超时 ( 实际工作中不建议 )

R3(config-line)#exit

R3(config)#interface loopback 0   // 创建本地环回接口

R3(config-if)#ip add 3.3.3.3 255.255.255.255

R3(config-if)#ip ospf network point-to-point  // 设定接口模式为点到点

R3(config-if)#int s0/0

R3(config-if)#ip add 192.168.1.3 255.255.255.0

R3(config-if)#encapsulation frame-relay   // 在接口上封装帧中继协议

R3(config-if)#ip ospf priority 0  // 手工指定接口优先级

R3(config-if)#frame-relay map ip 192.168.1.1 301 broadcast

// 帧中继静态映射

R3(config-if)#frame-relay map ip 192.168.1.2 301 broadcast

// 帧中继静态映射

R3(config-if)#frame-relay map ip 192.168.1.3 301  // 设定可以 ping 通自已

R3(config-if)#no frame-relay inverse-arp   // 关闭动态 ARP 解析

R3(config-if)#no sh  // 开启端口

R3(config-if)#exit

R3(config)#router ospf 100  // 启用 OSPF 进程 ,AS 号为 100

R3(config-router)#router-id 3.3.3.3   // 手工指定 Router ID

R3(config-router)#network 3.3.3.3 0.0.0.0 area 0

// 指定参与 OSPF 进程的接口地址

R3(config-router)#network 192.168.1.3 0.0.0.0 area 0

// 指定参与 OSPF 进程的接口地址

R3(config-router)#exit

注意:

1. 在帧中继网络中, OSPF 接口默认的网络类型为 non-broadcast 。在这种模式下, OSPF 不会在帧中继接口上发送 hello 包,所以无法建立最起码的邻接关系。故使用 neighbor 命令手工指定邻居。此时 hello 包以单播发送。

2.NBMA 属于多路访问网络。它必须得进行 DR 选举。但因为 hello 包只能传 1 跳,所以在中央 --- 分支 (hub-and-spoke) 结构中,必须控制处于“ hub ”端的路由器为 DR 。一般用得最多的办法是将“ spoke ”端接口优先级设为 0 ,让它没有 DR 选举资格。这样 hub 端路由器自然就成了 DR 。如若不然,有可能会产生路由学习不正常的问题。

实验调试:

R1#show ip ospf interface

上图分析:

1. 接口网络类型为 NBMA 模式

2. 自已是 DR, 接口优先级为 1

3. 没有 BDR

4.NBMA 模式下, Hello 时间为 30 秒,保持时间 120

5.R1 与路由器 R2/R3 形成邻居关系

R3#show ip route

可以看出,到达网络 2.2.2.2 的下一跳地址为 192.168.1.2(R2 路由器 ) ,而不是 192.168.1.1(R1 路由器 ) 。所以在 R3 的接口上必定有到 192.168.1.2 的映射!也就是: frame-relay map ip 192.168.1.2 301 broadcast

OK! 到这我们的实验全部完成。明天接着做 BMA 实验!!!