前文我们了解了PPPoE协议相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15182512.html;今天我们聊聊一聊OSPF中的网络类型相关话题;
在na的笔记里,我们也提到过ospf的网络类型;ospf的网络类型是根据对应接口二层封装来进行分类的;对于二层链路是以太网封装的,在ospf里叫广播型网络类型;这种网络类型支持广播和组播,也是我们最常见的一种ospf网络类型;对于二层链路是ppp点到点封装的,在ospf里叫点到点网络类型,该网络类型,支持广播和组播,但不支持多路访问;所谓多路访问是指是否有共享介质将多个网络设备连接在一起;对于点到点类型的网络,接口和接口中间没有其他共享介质连接其他设备,所以点到点类型的网络不是多路访问网络,但支持广播和组播;除上述两种常见的网络类型以外;还有一种就是非广播多路访问;这种网络类型的二层链路封装是帧中继封装;不支持广播和组播,但是它是多路访问,原因是帧中继网络类型,可以用帧中继交换机将多个路由器连接起来,实现帧中继网络;以上是三种ospf里的网络类型;它们的二层链路封装都有默认的协议封装;但对于第四种网络类型P2MP(点到多点,是多个点到点的网络集合),这种网络类型来说,它没有默认的二层链路封装协议,只有我们手动更改对应接口的网络类型为P2MP网络类型;这种手动更改为P2MP网络类型我们可以看作一组点到点网络的集合;这种网络类型支持广播、组播;
P2P网络类型
提示:P2P网络连接了一对通过PPP协议的二层链路封装的路由器,中间没有其他设备,广播、珠宝数据包都可以正常转发;该网络类型,ospf是不需要选DR和BDR;
广播型网络
提示:广播型网络支持两台及以上的设备接入同一共享链路且可以支持广播、组播报文的转发,是ospf中最常见的网络类型;广播型网络是通过以太网链路相连的路由器网络;该网络类型,ospf是需要选DR和BDR;
NBMA网络
提示:NBMA网络默认不支持广播域组播报文的转发,在NBMA网络上,OSPF模拟在广播型网络上的操作,但每个路由器的邻居需要我们手动配置;NBMA网络是全互联的帧中继链路相连的路由器网络;该网络类型,ospf是需要选DR和BDR;
P2MP网络
提示:P2MP网络我们可以看作一组P2P网络,这样便行成为了一个点到多点网络;在P2MP网络上,每个路由器的OSPF邻居可以使用方向地址解析协议(Inverse ARP)来发现;P2MP可以看作多个P2P的集合,所以P2MP可以支持广播、组播的转发;没有一种链路层协议默认属于P2MP类型网络,也就是说我们必须由其他的网络类型强制更改为P2MP;最为常见的做法将非完全连接的帧中继或ATM(异步传输)改为P2MP;该网络类型,ospf是不需要选DR和BDR;
实验:如下拓扑,实现全互联的帧中继网络
提示:DLCI我们可以理解为以太网交换机中的mac地址;上图中AR1上有去往AR2的HDLC为102,去往AR3的DLCI为103;AR2去往AR1的HDLI为201,去往AR3的DLCI为203;AR3去往AR1的DLCI为301,去往AR2的DLCI为302;
配置各路由器接口ip地址和更改对应接口为帧中继封装
配置R1
sys sys R1 int s4/0/0 link-protocol fr y ip add 202.11.0.1 24View Code
配置R2
sys sys R2 int s4/0/0 link-protocol fr y ip add 202.11.0.2 24View Code
配置R3
sys sys R3 int s4/0/0 link-protocol fr y ip add 202.11.0.3 24View Code
提示:三个路由器都需要将对应串口的二层封装修改为帧中继网络;从上面的截图可以看到,更改对应接口的封装为帧中继封装,配置好ip地址以后,对应的接口都up起来;
验证:在R1上pingR2 、R3看看是否能正常ping通?
提示:可以看到在R1上ping R2、R3都不能Ping通;什么原因呢?其实原因就是因为我们中间连接的是帧中继交换机,它和以太网交换机不同,需要我们手动配置对应网络的映射关系,类似以太网交换机中的mac地址表;
配置帧中继交换机映射
提示:上述三条映射分别表示R1从帧中继0口收到DLCI为102的数据包,从1口发送出去修改为201;对应返回的数据包,它会自动根据这条映射,将DLCI为201的数据包从1口收到,从0口发送出去,并将对应DLCI修改为102;这样一来就打通了R1到R2的映射;同样的道理R1到R3,源端口为0口,发送出去的的DLCI为103,对应帧中继交换机的1口收到此类数据包,会将对应的数据包的DLCI为103修改为301,然后从2口发送出去,回来的包自动修改对应的DLCI;对于R2到R3也是类似的逻辑;
配置路由器映射
配置R1的映射,将DLCI为102映射为对应网络为202.11.0.2,DLCI为103映射对应网络为202.11.0.3
提示:配置映射需要在对应接口下配置;
配置R2的映射,把DLCI为201映射ip为202.11.0.1,DLCI为203映射ip为202.11.0.3
配置R3的映射,把DLCI为301映射ip为202.11.0.1,DLCI为302映射ip为202.11.0.2
提示:后面的broadcast参数表示支持广播发送;
验证:在R1上看对应映射配置
提示:查看映射,一定要看对应状态为active状态才表示对应映射生效;
验证:现在用R1ping R2、R3看看是否能够ping通呢?
提示:可以看到R1可以正常ping通R2和R3;
验证:在帧中继交换机的0口抓包看看通信过程
提示:可以看到R1ping R2的所有包其DLCI都为102;
验证:用R1PingR3看看对应包的DLCI是否为103呢?
提示:可以看到R1PingR3的DLCI是103;其实我们也很好理解,路由器里有对应的映射,它在发送数据包之前会查看对应的目标地址,根据对应目标地址修改其DLCI;回包也是同样的逻辑;
实验:如下拓扑配置非完全互联的帧中继网络
提示:这个实验和上面那个实验唯一的区别是R2没有直达R3的DLCI,其他都一样,变化的只有R2、R3的映射,以及正宗交换机里的映射;
配置帧中继交换机映射
配置R2、R3映射
提示:上述命令表示R2去往R1或和R3对应的DLCI都为201;
提示:上述命令表示R3去往R1或和R2对应的DLCI都为301;
验证:现在用R2pingR3看看是否能通?
提示:可以看到R2现在也能正常ping通R3;
验证:在帧中继交换机的0口抓包看看R2pingR3对应DLCI的变化
提示:可以看到R2pingR3是,首先R2用DLCI为201把数据包发送给R1,帧中继交换机收到对应的数据包,会从0口发送给R1并把对应DLCI修改为102,随后R1收到对应DLCI为102的数据包,查看目标网络为R3,然后它查映射表,然后把对应的数据包的DLCI修改为103,然后发送给帧中继交换机;从上面的过程可以看到,此时R2和R3没有直达DLCI时,可以借助R1的DLCI实现通讯;
其实上述实验中,我们不配置路由器的映射,对应网络也能正常实现互通;其原因是在帧中继网络里可以用方向地址解析(Inverse ARP)来学习到对应的DLCI映射关系;默认情况下是开启Inverse arp功能;如果手动关闭了此功能,就需要我们手动配置对应路由的映射;
关闭方向地址arp解析
在上述实验环境跑OSPF
提示:上述命令需要在三个路由器上都配置对应ospf;
验证:查看对应ospf网络类型
提示:可以看到对应ospf网络类型为NBMA;
验证:查看ospf邻居信息
提示:可以看到配置好对应ospf以后,对应邻居并没有建立;其原因是NBMA网络类型不支持组播;所以我们还需要手动配置邻居信息;
在R1手动配置邻居关系
提示:可以看到手动配置邻居信息以后,对应邻居就处于attempt状态;该状态表示等待邻居唤醒;只要对应邻居也认识了R1,对应状态就会变为full;
在R2上手动配置邻居关系
提示:可以看到在R2上手动配置邻居信息以后,对应邻居状态就变为full了;此时R2就和R1建立起邻居关系;对于R1和R3也是同样的逻辑;但是R2和R3是建立不起邻居的;原因是R2没有直达R3的链路;他俩通信需要R1的中转,所以建立不起邻居;在完全互联的帧中继网络是可以正常建立邻居关系;这里还需说明一点NBMA虽然不支持广播、组播,但它还是一个多路访问网络,所以它还是会选DR和BDR的;
在R2上查看DR和BDR
更改NBMA网络类型为P2MP
修改R1的s4/0/0接口网络类型为P2MP
提示:可以看到把R1的s4/0/0接口网络类型修改为P2MP以后,对应邻居就down掉了,过一会有起来了;现在R1的s4/0/0的网络类型为P2MP,而R2的接口还是NBMA,从原理上讲,两者封装不同应该建立不起邻居;为什么这里建立起邻居了呢?其实原因就是ospf建立邻居它不看接口网络类型;但通常建议把对应接口都改为相同的网络类型;
修改R2的s4/0/0接口网络类型为P2MP
验证:ospf网络类型
提示:P2MP网络类型是不需要选DR和BDR,其原因是它本质上还是点到点类型网络;但该网络类型支持广播和组播,所以我们无需手动建立邻居;
回环接口/32主机路由现象
实验:在R1上新建回环接口lo1其地址为1.1.1.1 24,并宣告在ospf里,看看R2学习到的路由掩码是多少
在R2上查看对应学习到的路由信息
提示:上述两条命令都可以用来查看ospf路由信息;从上面的信息可以看到对应R2学习到的路由并非/24,而是/32;这到底是为什么呢?原因是ospf认为回环口只有一个地址,它不可能和其他接口在同一网段,所以在传递是自动变成/32的主机路由信息;我们可以通过修改对应回环口网络类型为broadcast来还原;
查看R1回环接口的网络类型
提示:默认情况下lo接口的网络类型为p2p网络类型;
修改lo1接口的网络类型为broadcast,再次看看R2学习到的路由还会是/32吗?
在R2上查看对应学习到的路由
提示:可以看到现在ospf学习到的回环接口的路由的掩码就变为了24,还原了对应网络配置时的掩码;