OSPF转发地址深入解析

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:

FA是Forwarding Address的简写。FA是ASBR通告的TYPE 5 LSA中的字段,它的作用是告诉OSPF域内的路由器如何能够更快捷地到达LSA 5所通告路由的下一跳地址。以免OSPF内部路由器在广播网络上以ASBR为下一跳,再由ASBR自己转发到正确的下一跳,而产生额外的路由。简单来说,FA字段的作用类似于BGP协议中的“第三方下一跳”概念,主要在广播共享网络中起作用

5类LSA FA字段可以为全0或者非0两种选择,有以下几个规则:
1、当与引入路由的下一跳关联(互连)的接口没有启动OSPF时,FA设置为0;
例如在上面图中,R1引入直连接口E0/1的路由,此接口没有启动OSPF,因此TYPE 5的LSA中 FA字段为0。
2、当下列所有条件均满足的情况下,TYPE 5 LSA中FA字段设置为非0:
1、在ASBR上,与引入外部路由下一跳关联的接口启动了OSPF,即位于Network
命令范围内。
2、在ASBR上,与引入外部路由下一跳关联的接口不能配置被动接口;
//前两个规则是确保LSA能够被通告
3、在ASBR上,与引入外部路由下一跳关联的接口配置的OSPF网络类型不能是P2P或P2MP。
//确保网络类型是Broadcast或NBMA的共享网络。
在满足以上条件后,5类LSA的转发地址为连接外部路由下一跳的接口IP,如下图中的R2E0/0和R3E0/0。

FR是如何影响OSPF的路由选择的?
1、计算外部路由时,首先检查通告TYPE 5 LSA的ASBR是否存在,否则忽略该LSA;
2、检查TYPE 5 LSA的FA地址是否为0。如为0,说明路由必须经过ASBR转发,那么优选到ASBR metric最短的路径。当有多个最短路径时,优选从较大area ID学习到的。
3、如果FA非0,那么优选到FA地址 metric最短的路径。

此图中R4和R1在区域0,R1通过RIP重分布学习到外部路由,R2和R3都运行RIP。中间的交换机主要用来模拟出一个总线型网络,R1 E0/1 , R2 R3 E0/0都在同一网段。
R4配置如下:
R4(config-router)#network 10.1.0.0 0.0.0.255 area 0
R1配置如下:
R1(config-if)#router ospf 1
R1(config-router)#router-id 1.1.1.1
R1(config-router)#passive-inter de
R1(config-router)#no passive-inter e0/0
R1(config-router)#no passive-inter e0/1
R1(config-router)#network 172.16.0.0
R1(config-router)#network 172.16.1.0 0.0.0.255 area 0
R1(config-router)#network 1.1.1.1 0.0.0.0 area 0
R1(config-router)#network 10.0.1.0 0.0.0.3 area 0
R1(config-router)#redistribute rip subnets metric 1000 //将RIP重分布到OSPF中类型1开销1000
R2配置如下:
R2(config)#router rip
R2(config-router)#ver 2
R2(config-router)#no auto-summary
R2(config-router)#network 172.16.0.0
R2(config-router)#network 10.0.0.0
R2(config-router)#network 2.0.0.0
R2(config-router)#redistribute ospf 1 metric 5
R3配置如下:
R3(config-if)#router rip
R3(config-router)#ver 2
R3(config-router)#no auto-summary
R3(config-router)#network 172.16.0.0
R3(config-router)#network 10.0.0.0
R3(config-router)#network 3.0.0.0
当R1上没有将172.16.1.0网段发布到OSPF中时(no network 172.16.1.0 0.0.0.255 area 0 )在R4上查看路由
R4#show ip route ospf
O E1    10.2.0.0/24 [110/1010] via 10.0.1.2, 00:03:21, Ethernet0/0
O E1    10.3.0.0/24 [110/1010] via 10.0.1.2, 00:03:21, Ethernet0/0
查看5类LSA:
 LS age: 271
  Options: (No TOS-capability, DC)
  LS Type: AS External Link
  Link State ID: 10.2.0.0 (External Network Number )
  Advertising Router: 1.1.1.1
  LS Seq Number: 80000003
  Checksum: 0x6610
  Length: 36
  Network Mask: /24
        Metric Type: 1 (Comparable directly to link state metric)
        TOS: 0
        Metric: 1000
         Forward Address: 0.0.0.0 //转发地址为0.0.0.0
        External Route Tag: 0
由此可发现但转发地址为0.0.0.0时,外部路由开销的计算就是到达ASBR的开销+外部开销=10+1000=1010
当R1上将172.16.1.0网段发布到OSPF中时( network 172.16.1.0 0.0.0.255 area 0 )在R4上查看路由:
R4#show ip route ospf
O E1    10.2.0.0/24 [110/1020] via 10.0.1.2, 00:00:16, Ethernet0/0
O E1    10.3.0.0/24 [110/1020] via 10.0.1.2, 00:00:16, Ethernet0/0
 LS age: 172
  Options: (No TOS-capability, DC)
  LS Type: AS External Link
  Link State ID: 10.2.0.0 (External Network Number )
  Advertising Router: 1.1.1.1
  LS Seq Number: 80000004
  Checksum: 0x6610
  Length: 36
  Network Mask: /24
        Metric Type: 1 (Comparable directly to link state metric)
        TOS: 0
        Metric: 1000
         Forward Address: 172.16.1.2 ///转发地址为直连外部路由下跳接口IP         External Route Tag: 0
 LS age: 2796
  Options: (No TOS-capability, DC)
  LS Type: AS External Link
  Link State ID: 10.3.0.0 (External Network Number )
  Advertising Router: 2.2.2.2
  LS Seq Number: 80000002
  Checksum: 0x4E24
  Length: 36
  Network Mask: /24
        Metric Type: 1 (Comparable directly to link state metric)
        TOS: 0
        Metric: 1000
         Forward Address: 172.16.1.3 //转发地址为直连外部路由下跳接口IP
        External Route Tag: 0Link connected to: a Stub Network
     1类LSA:
(Link ID) Network/subnet number: 172.16.1.0
     (Link Data) Network Mask: 255.255.255.0
      Number of TOS metrics: 0
       TOS 0 Metrics: 10
由此可发现但转发地址不为0时,外部路由开销的计算就是到达转发地址的开销+外部开销=10+10+1000=1020
在R1上配置被动接口(R1(config-router)#passive-interface e0/1):
 Routing Bit Set on this LSA
  LS age: 19
  Options: (No TOS-capability, DC)
  LS Type: AS External Link
  Link State ID: 10.2.0.0 (External Network Number )
  Advertising Router: 1.1.1.1
  LS Seq Number: 80000005
  Checksum: 0xF26
  Length: 36
  Network Mask: /24
        Metric Type: 1 (Comparable directly to link state metric)
        TOS: 0Metric: 1000
        Forward Address: 0.0.0.0  //5类LSA的转发地址全变为0.0.0.0
        External Route Tag: 0
大家思考如果是七类LSA的转发地址会怎么样?
区域2是NSSA区域,RIP通过重发布到OSPF中,那么RT2产生的七类LSA的转发地址是怎么样的,经RT6做7转5后,转发地址会有什么变化?
关于这张拓扑的配置请见前面博文:http://tangfangxiao.blog.51cto.com/2116646/632997 
如果172.16.24.0/30的网段没有发布到OSPF中,7类LSA的转发地址会像5类那样变为0.0.0.0吗?如果是的话,在RT6上作7转5后,转发地址还是0.0.0.0,那这表示是到达RT6还是RT2这个ASBR呢?所以7类LSA的转发地址不可能为0.0.0.0,7类转5时,不会改变转发地址。
当172.16.24.0/24没有发布到OSPF中,转发地址为Router-id.
  LS age: 324
  Options: (No TOS-capability, Type 7/5 translation, DC)
  LS Type: AS External Link
  Link State ID: 172.16.4.0 (External Network Number )
  Advertising Router: 2.2.2.2
  LS Seq Number: 80000001
  Checksum: 0xB1BC
  Length: 36
  Network Mask: /24
        Metric Type: 1 (Comparable directly to link state metric)
        TOS: 0 
        Metric: 1000 
          Forward Address: 2.2.2.2  //转发地址不为0
        External Route Tag: 0
我重新指定Router-id,重启OSPF进程:
R2(config-router)#do show ip ospf   
 Routing Process "ospf 1" with ID  10.10.10.10 //router-id为10.10.10.10
 Supports only single TOS(TOS0) routes
 Supports opaque LSA
 
Link State ID: 172.16.4.0 (External Network Number )
  Advertising Router: 2.2.2.2
  LS Seq Number: 80000002
  Checksum: 0x410C
  Length: 36
  Network Mask: /24
        Metric Type: 1 (Comparable directly to link state metric)
        TOS: 0 
        Metric: 1000 
        Forward Address: 10.10.10.10 //转发地址为10.10.10.10
        External Route Tag: 0
在RT6上经过7类转5类的LSA的转发地址不会改变:
LS age: 12
  Options: (No TOS-capability, DC)
  LS Type: AS External Link  //5类LSA
  Link State ID: 172.16.4.0 (External Network Number )
  Advertising Router: 6.6.6.6 //通告路由器
  LS Seq Number: 80000001
  Checksum: 0x5FE8
  Length: 36
  Network Mask: /24
        Metric Type: 1 (Comparable directly to link state metric)
        TOS: 0 
        Metric: 1000 
         Forward Address: 10.10.10.10  //转发地址不变
其它的跟5类LSA的转发地址一样,大家可以去验证一下,我就不写了!
最后总结一下:
5类LSA若同时满足以下三个条件
a)引入的这条外部路由,其对应的出接口启用了OSPF
b)引入的这条外部路由,其对应的出接口未设置为passive-interface
c)引入的这条外部路由,其对应的出接口的OSPF网络类型为broadcast
则产生的Type 5 LSA,其FA地址等于该引入的外部路由的下一条地址 ,反之为 0.0.0.0(ASBR)
7类LSA的转发地址不会为0.0.0.0,满足以上三个条件为外部路由的下一条地址,反之为Router-id。



本文转自 tangfangxiao 51CTO博客,原文链接:http://blog.51cto.com/tangfangxiao/637084
相关文章
|
6月前
|
存储 Java C++
C++ 引用和指针:内存地址、创建方法及应用解析
C++中的引用是现有变量的别名,创建时需用`&`运算符,如`string &meal = food;`。指针存储变量的内存地址,使用`*`创建,如`string* ptr = &food;`。引用必须初始化且不可为空,而指针可初始化为空。引用在函数参数传递和提高效率时有用,指针适用于动态内存分配和复杂数据结构操作。选择使用取决于具体需求。
90 9
|
1天前
|
存储 网络协议 算法
OSPF基本概念解析:从零开始理解
OSPF基本概念解析:从零开始理解
6 0
|
1月前
|
网络协议 开发工具 C语言
Jetson错误(二):wget命令提示无法解析主机地址的问题解决
对于解决在NVIDIA Jetson平台上使用wget命令时出现的无法解析主机地址的问题,提供了两种解决方法:一种是临时修改DNS服务器为Google的公共DNS,另一种是永久修改DNS设置。
72 5
|
1月前
|
存储 自然语言处理 API
基于 Python 的地址解析:自动识别姓名、电话、地址、详细地址与省市区
基于 Python 的地址解析:自动识别姓名、电话、地址、详细地址与省市区
147 1
|
3月前
|
网络协议 算法 数据库
|
3月前
【Azure 应用服务】App Service 配置 Application Settings 访问Storage Account得到 could not be resolved: '*.file.core.windows.net'的报错。没有解析成对应中国区 Storage Account地址 *.file.core.chinacloudapi.cn
【Azure 应用服务】App Service 配置 Application Settings 访问Storage Account得到 could not be resolved: '*.file.core.windows.net'的报错。没有解析成对应中国区 Storage Account地址 *.file.core.chinacloudapi.cn
|
3月前
|
负载均衡 监控 网络协议
|
3月前
|
网络协议 NoSQL 网络安全
【Azure 应用服务】由Web App“无法连接数据库”而逐步分析到解析内网地址的办法(SQL和Redis开启private endpoint,只能通过内网访问,无法从公网访问的情况下)
【Azure 应用服务】由Web App“无法连接数据库”而逐步分析到解析内网地址的办法(SQL和Redis开启private endpoint,只能通过内网访问,无法从公网访问的情况下)
|
4月前
|
存储 缓存 网络协议
ARP 地址解析协议
ARP 地址解析协议
70 0
|
5月前
|
C++ 存储 Java
C++ 引用和指针:内存地址、创建方法及应用解析
'markdown'C++ 中的引用是现有变量的别名,用 `&` 创建。例如:`string &meal = food;`。指针通过 `&` 获取变量内存地址,用 `*` 创建。指针变量存储地址,如 `string *ptr = &food;`。引用不可为空且不可变,指针可为空且可变,适用于动态内存和复杂数据结构。两者在函数参数传递和效率提升方面各有优势。 ```

推荐镜像

更多