Network Types
1.loopback
2.point-to-point
3.broadcast
4.NBMA
5.POINT-TO-Multipoint
6.point-To-Multipoint Non-Broadcast
当路由器上的某个接口被宣告进ospf进程之后 此接口会默认对应一种ospf中的某种网络类型
类型 接口
loopback-----------------------------------loopback 接口 如果想使用loopback网络类型 只能用loopback接口 无论接口掩码是 多少 都会以/32主机路由通告
point-to-point------------------------------Serial/ISBN BRI/ FR point2point Subif(帧中继点到点子接口)支持组播.5和.6,没有DR
broadcast----------------------------------Ethernet 接口 支持组播 有DR
NBMA---------------------------------------FR主接口/FR多点子接口 不支持组播 有DR
POINT-TO-Multipoint-------------------默认无对应接口 支持组播 无DR 会自动生成关于直连邻居接口的/32的主机路由
point-To-Multipoint Non-Broadcast-...... 不支持组播 无DR 自动生成/32路由
查看接口网络类型的命令:
r1#show ip ospf interface
举例:router id 1.1.1.1 network type point-to-point cost:**
修改接口的网络类型
r1#int loopback 0
#ip ospf network broadcast 其中broadcast为想要修改的网络类型
如果想改成loopback类型 但是发现没有loopback的参数 所以只能够将原来的网络类型给no掉 即可恢复到原来 的loopback网络类型 no ip ospf network broadcast
直连的链路两端的接口的网络类型需要一致 举例 不能一边是broadcast 另一边是point-to-point ,但是其中有一个特例
一端是point-to-point 另一端是point-to-multipoint 可以运行 其余的都不行
a NBMA网络类型建立邻居
两端都是NBMA网络类型 需要指定对端的ip地址 因为有回传确认的机制存在 所以制定一个邻居即可
实验图
R1#int serial 1/1
#ip ospf network non-broadcast
r2#int serial 1/0
#ip ospf network non-broadcast
不支持组播和广播的网络类型 原来物理接口是支持的 所以表示无论原来的接口是否支持组合广播 再设置为 NBMA网络类型之后 此接口都不会主动的发送组播和广播的报文 只能发送单播
单播发送需要指定ip地址 所以r1需要以下命令 #neighbor 12.1.1.2 指定邻居的ip地址
注意 ospf 与rip、eigrp协议在指定邻居上的区别
rip eigrp由于没有回传确认机制的存在所以需要链路的两端都指定邻居 及r1指定r2的ip地址 r2同时也要指定r1 的ip地址 即双向指定
而ospf由于有回传确认机制的存在 在发送报文的时候 已经携带了源ip地址 接受者根据源地址回传确认报文 即单向指定
b p-to-p-----p-to-multipoint
hub---spoke hub结点指定对端 即可与对端建立链接
在实验图中 r1设置为p-to-multipoint r2设置为p-to-p
注意此时不能够建立邻居 查看ospf interface 接口细节可以看到 hello dead wait时间不一致
一个是hello10 dead 40 wait40 而多点是 30 120 120
所以需要修改hello时间 让其保持一致 修改谁都可以
命令:r2#interface serial1/0
#ip ospf hello-interval 30
c point-to-multipoint -------- point-to-multipoint
hello 30,dead 120,wait 120 时间与NBMA提示的信息一致
会自动生成关于直连邻居接口的/32的主机路由
#show ip route ospf
显示路由信息: O 12.1.1.2/32 ........
判断此条路由是自己生成的 还是邻居给自己传递过来的? 答案是邻居发送过来的
d point-to-multipoint Non-Broadcast
不能够发送组播和广播的报文 只能够发送单播的报文
所以同样的需要指定neighbor
会自动生成/32位路由
一点需要注意 在show ip ospf interface serial 1/1的时候
显示的与c中的point-to-multipoint类型一样 都是点到多点 不会显示NON-Broadcast的字样
只能使用show run interface serial1/1 来查看
案例
1.在FR环境中部署OSPF NBMA类型
r1#router ospf
#router ospf 110
#router-id 1.1.1.1
#network 1.1.1.1 0.0.0.0 area 0
#network 123.1.1.1 0.0.0.0 area 0
#neighbor 123.1.1.2
#neighbor 123.1.1.3 指定neighbor
r2#router ospf
#router ospf 110
#router-id 2.2.2.2
#network 2.2.2.2 0.0.0.0 area 0
#network 123.1.1.2 0.0.0.0 area 0
r2#router ospf
#router ospf 110
#router-id 3.3.3.3
#network 3.3.3.3 0.0.0.0 area 0
#network 123.1.1.3 0.0.0.0 area 0
在查找路由表准备发送报文时 会显示 show IP ospf neighbor 执行后出现的的attempt状态 建立邻接关系成功 之后 需要选择DR和BDR 在本例中DR是r3
在此例中保证HUB节点是DR 需要将r1设置为DR 不需要BDR 因为是轴辐型拓扑 方法是将r1的优先级改高即可 r2和r3直接改为0即可 即没有资格参选
r1#interface serial 1/1
#ip ospf priority 255 将优先级设置为最大 直接成为DR
r2#interface serial 1/1 将优先级设置为0 不能参加选举
#ip ospf priority 0
r2#interface serial 1/1
#ip ospf priority 0
r1#show ip ospf neighbor
显示r2和r3都是DROTHER 并且路由条目都显示正常
测试ping r1到r2 r1到r3都通 但是r2不能ping通r3 原因是基于路由表中的123.1.1.3 需要通过serial1/1 此接口为帧中继接口 需要封装 并且进行帧中继映射 所以r2中需要有到123.1.1.3的映射
添加封装映射
r2#interface serial 1/1
#frame-relay map ip 123.1.1.3 201 broadcast ietf 此为去包
同样的需要回包的帧中继映射
r3#interface serial 1/1
#frame-relay map ip 123.1.1.2 301 broadcast ietf 此为回包
之后可以ping通
总结注意:a 为了建立邻居需要hub节点手工指定Neighbor
b 为了保证路由传递没有问题,需要手工修改接口的ospf优先级,保证hub成为DR spoke什么都不是
c 为了保证spoke节点所连接的下游网段内的pc可以互访,需要在spoke节点彼此指定手工FR映射。
2.在FR环境中部署OSPF 使用广播类型broadcast
r1#int serial 1/1
#ip ospf network broadcast
r2与r3一样设置
为了确保路由表没有问题 需要手工设定优先级
r1#int serial 1/1
#ip priority 255 手工设定保证r1为DR
r2和r3都是0
此时r1和r2 3之间都能通 但是r2和r3之间不能ping通
与1中的情况一样 r2没有到r3之间的映射 所以需要手工的设定映射关系
总结:由于支持组播发送 因此不需要手工指定Neighbor (FR map 开启伪广播功能)
需要修改借口ospf优先级改变DR的位置
需要手工配置FR的映射 实现spoke节点的彼此访问。
与NBMA相比 省略掉指定neighbor这一步骤
3.在FR环境中部署OSPF 使用网络类型P2MP NON-Broadcast
r1 2 3中都要设置
ip ospf network point-to-multipoint non-broadcast
由于不支持组播 所以需要指定neighbor
r1#neighbor 123.1.1.2/3
由于是点到多点 不用选择DR和BDR
r1#show ip route ospf
会显示123.1.1.2/32 和123.1.1.3/32的主机路由
同时会显示 3.3.3.3 via 123.1.1.1
2.2.2.2 via 123.1.1.1 都是通过123.1.1.1发出和接收
总结: 需要手工指定neighbor
不需要手工修改借口ospf优先级 因为没有DR/BDR
不需要手工设置帧中继映射,因为/32的主机路由。
4.在FR环境中部署OSPF 网络类型使用p2MP
#ip ospf network point-to-multipoint
总结: 不需要手工neighbor 自动建立邻居
不需要修改优先级 因为没有DR
不需要手工映射 因为路由表已经全了 存在32位主机路由
在不同的路由器上 运行不同的网络类型 以使得网络达到最优化的目的
在hub节点上设置成p2mp网络类型 在对应spoke节点上设置成p2p网络类型
r1#int serial 1/1
#ip ospf network point-to-multipoint
r2#int serial 1/1
#ip ospf network point-to-point
r3#int serial 1/1
#ip ospf network point-to-point
为了建立邻居 需要修改hello时间
r1#IP ospf hello-interval 10 即可
小特性1 在ospf域内注入缺省路由
方式一
router ospf 110 r1主动下放缺省路由
default-information originate 此命令生效的前提条件是该路由器的路由表中拥有一条全0/0的缺省路由
#config t
#IP route 0.0.0.0 0.0.0.0 null 0 指向全0/0的 null 0接口的防环路由
r2#show IP route
会显示 O *E2 0.0.0.0/0 [110/1] via 123.1.1.1 ......
所以会生成一条O *E2的全0/0的 度量值为1的缺省路由 为r1下放的
可以修改此下放路由的度量值和类型
default-information originate metric 10 metric-type 1
方式二 无视路由表 直接下放缺省路由
r1#router ospf 110 r1主动下放缺省路由
default-information originate always 加上always参数
加always表示 表示不论是否有缺省 都主动下放; 不加always需要路由表中有缺省路由 才下放
特性2 被动接口
与eigrp相同 任何报文都不能收发
例子:passive-interface loopback 0
- OSPF 提升 一 ----基础
ospf ccnp内容 一 link-state protocols IGP 开放式的最短路径优先协议 公有协议 支持中到大型的网络 spf算法 链路状态协议 1. ...
- ospf 提升 二 ---LSA
ospf ABR和ASBR的区别 官方建议中大型网络的规模参考 根据spf算法 而不是路由器的硬件性能强弱 a ABR最多关联3个区域 b 单区域内路由器最多50台 c 一台运行ospf的路由 ...
- OSPF 提升 三 type of Areas
ospf ccnp 三 上图中 rip域中的不连续的100条路由 在a1中导致LSDB太大 在保证网段的可达性的前提下 尽可能减少区域内路由器的lsdb 可以将a1设置 ...
- Volley源码分析(四)NetWork与ResponseDelivery工作原理
这篇文章主要分析网络请求和结果交付的过程. NetWork工作原理 之前已经说到通过mNetWork.performRequest()方法来得到NetResponse,看一下该方法具体的执行流程,pe ...
- Kotlin Reference (四) Basic Types
most from reference 基本类型 在kotlin中,一切都是对象,我们可以在任何变量上调用成员函数和属性.一些类型可以具有特殊的内部表示:例如,数字.字符和布尔值都可以在运行时被表示为 ...
- Java提升四:Stream流
1.Stream流的定义 Stream是Java中的一个接口.它的作用类似于迭代器,但其功能比迭代器强大,主要用于对数组和集合的操作. Stream中的流式思想:每一步只操作,不存储. 2.Strea ...
- python 装饰器(八):装饰器基础(四)types.MethodType的作用
1 types.MethodType的作用—添加实例方法 import types class cla(object): def __init__(self, name, age): self.nam ...
- ballerina 学习十四 values && types
ballerina 包含的数据类型有string int map array record boolean ojbect function table tuple any 简单说明 数据类型和其他语言 ...
- OSPF
Ospf OSPF(开放最短路径优先协议)是一种无类内部网关协议(IGP):是一种链路状态路由选择协议: 入门: 可以把整个网络(一个自治系统AS)看成一个王国,这个王国可以分成几个 区(area), ...
随机推荐
- DB2中横表纵表互换
1.列转行:创建一个如下的表drop table dwtmp.tmp_xn_lsb; create table dwtmp.tmp_xn_lsb ( year int ,quarter ...
- kafka基础六
kafka中的高可用HA 1.replication副本 同一个partition会有一个leader和多个副本,这些副本存储的内容与leader相同,可以通过 server.properties 配 ...
- 前端经典面试题 不经典不要star!
前言 (以下内容为一个朋友所述)今天我想跟大家分享几个前端经典的面试题,为什么我突然想写这么一篇文章呢?今天我应公司要求去面试了下几位招聘者,然后又现场整不出几个难题,就搜了一下前端变态面试题! HA ...
- Flask应用运行流程
当我们运行项目后,Flask内部都经历了什么 1.app.run()启动项目,ctrl点进源码 app.py: 1)执行了run_simple() 2)注意第三个参数,这里是Flask实例化的对象,在 ...
- Servlet和JSP之标签文件学习
在上一篇文章中介绍了自定义标签的用法,接下来介绍标签文件的用法啦. tag file指令 tag file简介 用tag file的方式,无需编写标签处理类和标签库描述文件,也可以自定义标签.tag ...
- Caused by: java.lang.NoClassDefFoundError: com/sun/tools/javac/util/List at
折腾了一下的时间,都没有找到解决的方案,在网上搜了一下答案都是让清理编译环境和重新打包之类的.就这样折腾一下,还没有解决问题.之所以会抛出找不到类的问题,需要排查你使用这个包的类是否存在,存在之后 查 ...
- Python 目录和文件基本操作
今天在写一个小工具的过程中发现对目录和文件的基本操作不是很熟,特此把遇到的常用操作总结汇总下. 获取当前路径:os.getcwd() 目录操作:1.创建目录:os.mkdir('目录名')2.创建多级 ...
- Windows Dos命令下查看端口号,杀死端口
PS:本文以 Redis 默认端口 6379 为例 1,首先查询该端口的 pid,使用命令 [netstat -ano | findstr 端口号] F:\Program Files\Redi ...
- Java的jdbc调用SQL Server存储过程Bug201906131119
SQL Server数据库存储过程,一个查询使用动态sql,另一个不使用动态sql,这种情况,jdbc可能获取不到实际查询数据,虽然数据库中执行没问题. 解决方法,都使用静态sql,或都使用动态sql ...
- Python 解压序列、可迭代对象并赋值给多个变量
Python数据结构和类型 1.1 解压序列赋值给多个变量 现在有一个包含N个元素的元组或者是序列,怎样将它里面的值解压后同时赋值给N个变量? 解决思路:先通过简单的解压赋值给多个变量,前提是变量的数 ...