HCIP——OSPF(笔记)

OSPF

开放式最短路径优先协议 --- 邻居间基于拓扑信息进行交互,更新量很大,故为了能在中大型复杂网络中工作,需要结构化的部署 --- 良好的ip地址规划,区域划分
更新方式 --- 触发更新(224.0.0.5/224.0.0.6),更新周期(30min)

OSPF数据包类型

跨层封装与三层报头,协议号89
HELLO包 --- 周期收发,用于邻居的发现、关系的建立、周期的保活(10s或者30s)
DBD包 --- 数据库描述包,用于携带数据库目录
LSR包 --- 链路状态请求包,基于本地未知的LSA信息进行查询
LSU包 --- 链路状态更新包,用于传递具体的LSA信息
LS ack包 --- 链路状态确认包,可靠性,确认包
​
LSA --- 链路状态通告,具体的每一条的拓扑或路由信息;

OSPF的状态机

邻居间的邻居关系的不同阶段
Down  一旦接收到hello包进入下一个状态
Init 初始化  收到的hello包中若存在本地的RID,进入下一状态
2way双向通讯    邻居关系建立的标志   
条件:点到点网络直接进入下一个状态机;MA网络进行DR/BDR选举(默认一个dead time),非DR/BDR间不能进入下一状态;     
Exstart 预启动  使用不携带数据库目录信息的DBD包进行主从关系的选举,RID数值大为主,优先进入下一个状态 ---   排序(避免同时更新,导致网络拥塞)
Exchange 准交换 使用携带目录信息的DBD包,进行交互
Loading 加载 查看完其他邻接发送过来的DBD后,基于当中本地未知的LSA信息,使用LSR查询,对端使用LSU来共享这些LSA信息,本地收到后需要ACK确认;--- 邻接间的数据库一致 
Full 转发  邻接关系建立的标志
​

OSPF的工作过程

启动配置完成后,邻居间组播收发hello包,获取对端的RID,建立邻居关系,生成邻居表;
邻居关系建立后,关注条件;条件不匹配的邻居间,将维持邻居关系,仅hello包周期保活即可;
条件匹配:可以建立邻接(毗邻)关系
将使用DBD/LSR/LSU/LSack来进行交互、共享,同步数据库,获取未知的LSA信息;最终生成与邻接一致的数据库表;
当数据库表同步完成后,本地使用SPF算法,将数据库表转换为有向图,再将有向图计算成为最短路径树,然后以本地为起点,计算到达所有未知网段的最短路径,然后将这些路由加载于本地的路由表中;收敛完成。
拓扑结构突变:
1)新增网段  直连新增网段的设备,使用LSU直接向本地所有邻接进行触发更新,对端需要确认
2)断开网段  直连断开网段的设备,使用LSU直接向本地所有邻接进行触发更新,对端需要确认
3)无法沟通  ---  没有周期的hello包;dead time为hello time的4倍--倒计时,正常被每一个新的hello包刷新,归0时断开邻居关系,删除该邻接共享的信息
​

OSPF的基础配置

[r1]ospf 1 router-id 1.1.1.1 启动时可以定义进程号,仅具有本地意义,默认为1;
       可以定义RID --- 手工 -- 环回上最大数值ip地址-- 物理接口上最大数值ip地址
宣告:1)区域划分  2)激活接口OSPF协议   3、共享接口信息
[r1-ospf-1]area  0
[r1-ospf-1-area-0.0.0.0]network 12.1.1.1 0.0.0.0
[r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
OSPF区域划分规则:
1)必须为星型结构   区域0为骨干,大于0为非骨干,非骨干必须连接骨干区域
2)区域间必须使用ABR来互联  -- ABR区域边界路由器
宣告配置全部完成后,邻居间周期组播收发HELLO包,建立邻居关系,生成邻居表;
OSPF协议的hello包为周期收发;邻居间hello包中必须完全一致的参数:否则无法建立邻居关系
Hello、dead time;区域编号;认证字段;末梢区域标记;在华为设备中邻居间hello包还将携带建邻的接口ip地址子网掩码,也必须和邻居一致;
<r2>display  ospf peer  查看邻居表
<r2>display  ospf peer brief  查看邻居简表
邻居关系建立后,邻居间进行条件的匹配;匹配失败维持邻居关系,仅hello包周期保活;
匹配成功,可以建立邻接关系;使用DBD/LSR/LSU/LSack来获取本地未知的LSA信息;实现邻接关系间设备的数据库一致;  数据库表:
<r1>display  ospf lsdb  查看数据库表  LSDB--链路状态数据库
DBD包:DBD包中携带接口的MTU值,要求两端接口MTU一致,否则将卡在exstart状态机;华为设备默认不携带MTU值
[r1]interface g0/0/1
[r1-GigabitEthernet0/0/1]ospf mtu-enable  两端直连接口均需开启
DBD包中的描述位:
I 为1表示本地发出的第一个DBD
M 为0表示本地发出的最后一个DBD
MS 为1表示本地为主,为0表示本地为从
DBD使用序列号来进行隐性确认,从基于主的序列号进行;
​
当邻接关系间数据库同步完成后,本地基于数据库中的所有LSA;生成 有向图 --> 最短路径树-->将本地作为起点,计算到达所有未知网段的最短路径,然后将其加载到路由表中:
在华为设备中,默认的优先级为10;使用cost作为度量;
Cost=开销值=参考带宽/接口带宽
默认参考带宽100M;cost值向上取整数;故当接口带宽大于参考带宽时,cost值为1;可能导致选路不佳;可以手工修改默认的参考带宽:
[r1]ospf 1 
[r1-ospf-1]bandwidth-reference ?
  INTEGER<1-2147483648>  The reference bandwidth (Mbits/s)
[r1-ospf-1]bandwidth-reference 1000
切记:一旦修改,全网所有设备需一致;
ospf协议默认将选择cost值之和最小的路径,为最短路径加表;
​

OSPF邻居关系建立成为邻接关系的条件

从邻居关系建立成为邻接关系,关注网络类型;点到点  MA
在点到点网络中,邻居直接全部建立为邻接关系;
在MA网络中若两两间均建立邻接关系,将可能出现大量的重复更新;DV距离矢量路由协议可以使用接口水平分割来解决,由于OSPF协议邻接需要数据库比对,故不能设计接口水平分割;只能进行DR/BDR选举来解决;所有非DR/BDR之间为邻居关系,不进行数据库同步;
选举规则:
1、先比较参选接口优先级,默认1;大优  为0标识不参选
2、若优先级相同,比较参选设备的RID数值,大优
​
[r1]int g0/0/1
[r1-GigabitEthernet0/0/1]ospf dr-priority 0
​

OSPF的接口网络类型

ospf协议在不同网络类型的接口上,不同的工作方式
​
[r1]display  ospf interface g0/0/1  查看OSPF协议在接口具体的工作方式名称
 Interface: 12.1.1.1 (GigabitEthernet0/0/1)
 Cost: 1       State: BDR       Type: Broadcast ;
​
接口类型                     OSPF工作方式
LoopBack     华为显示p2p,实为环回专用工作方式  无hello包 以32位主机路由传递
点到点类型(HDLC/PPP/GRE) p2p  hello time10s  不选DR,邻居直接建立为邻接
BMA(以太网) Broadcast  hello time10s  选DR/BDR 非DR/BDR间仅建立邻居关系
NBMA(MGRE) 默认和普通GRE一样接口工作方式为p2p,该工作方式在华为设备上仅和最先收到的hello包建立邻居关系;
故在MGRE环境需要手工修改接口工作方式:
[r1-Tunnel0/0/0]ospf network-type ?
  broadcast  Specify OSPF broadcast network
  nbma       Specify OSPF NBMA network
  p2mp       Specify OSPF point-to-multipoint network
  p2p        Specify OSPF point-to-point network
注:p2p 和broadcast 两种工作方式的hello time均为10s,故可以建立邻居关系,但在DR选举上不同,故无法正常交流LSA;
切记:邻居间ospf接口工作方式必须一致,才能正常建邻和正常收敛;
​
若将MGRE下所有接口的工作方式修改为broadcast,需要关注拓扑结构:
1)全连网状结构,可以正常工作,正常选举DR/BDR
2)非全连 ---管理员手工合理安排DR位置
3)星型结构-- 仅中心站点为DR,无BDR

OSPF的不规则区域

1,远离骨干的非骨干区域
2,不连续骨干
解决方案:
1、tunnel ---点到点GRE
在合法与非ABR间建立隧道,然后将其宣告于OSPF协议中;
缺点:1、周期和触发信息对中间穿越区域造成资源占用
      2、选路不佳

2、OSPF虚链路
由合法ABR,给同一区域的非法ABR进行授权,之后非法ABR能够进行区域间路由共享;
[r2]ospf 1 
[r2-ospf-1]area  1  两台ABR均处于的区域
[r2-ospf-1-area-0.0.0.1]vlink-peer 4.4.4.4  对端ABR的RID;两台ABR均需配置
优点:没有新的数据链路出现,故选路正常; 
缺点:两台ABR之间的周期信息,依然对中间区域造成影响,增加延时
cisco思科--- 取消两台ABR间所有的周期信息,仅存在触发更新-- 不可靠
     华为 --- 保留所有的周期信息,对中间区域资源占用严重

3、多进程双向重发布(推荐)
多进程 ---  一台路由器上允许的多个ospf进程,每个进程运行独立的接口(一个接口只能宣告于一个进程中);存在独立的邻居,生成独立的数据库,且数据库间不做共享;仅将所有数据库计算所得的路由加载于同一路由表中;

可以将非法ABR上,不同区域宣告与不同的OSPF进程,造成独立的协议;之后使用重发布进行,将该非法ABR转换为ASBR,进行协议间路由条目共享即可;
不存在选路不佳问题,不存在周期资源占用,和不可靠问题;
双向重发布
[r4]ospf 1 
[r4-ospf-1]import-route ospf 2
[r4-ospf-1]q
[r4]ospf 2 
[r4-ospf-2]import-route ospf 1 

OSPF的数据库表

<r1>display  ospf lsdb   查看数据库目录
OSPF的数据库是由大量的LSA组成;LSA --- 链路状态通告
LSDB --- 链路状态数据库  -- 各种LSA构成
每一条LSA携带具体的拓扑或者路由信息;不同环境下将产生不同类别的LSA;
<r1>display  ospf lsdb network 12.1.1.1  查看具体的一条LSA信息
                        类别名   link-id
无论哪类LSA,均存在以下基本参数
  Type      : Router   类型名,此处为1类
  Ls id     : 1.1.1.1   link-id该条目在目录中的编号(页码号)
  Adv rtr   : 1.1.1.1   通告者 -- 该条LSA的更新源设备的RID
  Ls age    : 1666  老化时间,周期1800s刷新,触发马上刷新;最大老化3609s
  Len       : 48         数据包长度
  seq#      : 80000015   序列号     更新后变化
  chksum    : 0x6f95      校验码号  更新后变化
​
类型名             传播范围           通告者                 携带信息
1/ Router            单区域         该区域的每台路由器       本地直连拓扑
2/Network            单区域          单网段内的DR         单个MA网络内的拓扑 
3/summary         整个OSPF域          ABR                  域间路由
4/asbr         除ASBR所在区域外        ARB                ASBR位置
    的整个OSPF域(ASBR所在区域使用1类告知位置)  
5/Ase              整个OSPF域          ASBR                域外路由
7/nssa             单个NSSA区域内      ASBR                 域外路由
​
类别名          link-ID                       通告者
 Router       通告者RID                  该区域的每台路由器      
Network      DR在该网段接口的ip地址          单网段内的DR 
Summary      域间路由的目标网络号     ABR 在经过下一台ABR,修改为新的ABR
Asbr         ASBR的RID            ABR 在经过下一台ABR,修改为新的ABR
Ase          域外路由的目标网络号                ASBR 
Nssa          域外路由的目标网络号               ASBR 
​

优化OSPF的LSA(减少LSA的更新量)

1,手工汇总 --- 减少骨干区域的LSA
​
1) 域间路由汇总  --- 只能在区域间传递3类LSA时,进行手工的路由汇总
在ABR上配置
[r1]ospf 1 
[r1-ospf-1]area  2   本地通过该区域的1/2LSA拓扑计算所得路由才能汇总
[r1-ospf-1-area-0.0.0.2]abr-summary 5.5.4.0 255.255.254.0
​
​
2) 域外路由汇总--当ASBR将其他协议产生的路由条目重发布进入OSPF域时,可以进行汇总配置
[r4]ospf 1 
[r4-ospf-1]asbr-summary 99.1.0.0 255.255.252.0
​
2,特殊区域 --- 减少非骨干区域的LSA
不能是骨干区域,不能存在虚链路;
1)不能存在ASBR
1」末梢区域 --  该区域拒绝,外部进入的4/5的LSA;由该区域连接骨干的ABR,向内部产生一条3类的缺省路由
[r5]ospf 1 
[r5-ospf-1]area  2  该区域内所有路由器均需配置
[r5-ospf-1-area-0.0.0.2]stub 
​
2」完全末梢区域 --- 在末梢区域的基础上,进一步拒绝3类LSA的进入;仅保留一条3类缺省的进入
先将该区域配置为末梢区域
然后仅在ABR上配置完全末梢即可;
[r1]ospf 1 
[r1-ospf-1]area  2 
[r1-ospf-1-area-0.0.0.2]stub no-summary 
​
​
不能是骨干区域,不能存在虚链路;
2)  存在ASBR
1」NSSA--非完全末梢区域;该区域拒绝4/5的LSA;本地ASBR产生的域外路由,使用7类在本NSSA区域传递,通过ABR进入骨干区域,被转换成5类;由该区域连接骨干的ABR向内部发送一条7类缺省;
其存在的价值,是为了让该区域拒绝其他区域的,ASBR产生的4/5类LSA进入
[r4]ospf 1 
[r4-ospf-1]area  1 
[r4-ospf-1-area-0.0.0.1]nssa 
​
​
2」完全NSSA -- 在普通NSSA的基础上,进一步拒绝3的类LSA进入该区域;由该区域连接骨干的ABR向内部发布一条3类缺省
先将区域配置为NSSA,然后仅在连接骨干的ABR上,定义完全即可
[r3]ospf 1 
[r3-ospf-1]area  1 
[r3-ospf-1-area-0.0.0.1]nssa  no-summary
​

OSPF扩展配置

手工认证
接口认证
直连的邻居间,设定认证口令,进行身份核实,同时对双方交互的数据进行加密保护
[r9-GigabitEthernet0/0/1]ospf authentication-mode md5 1 cipher 123456 
邻居间认证模式、编号、密码必须完全一致
区域认证
实际在该设备上所有属于同一区域的接口进行了接口认证配置;(批量操作命令)
[r1]ospf 1 
[r1-ospf-1]area  1 
[r1-ospf-1-area-0.0.0.1]authentication-mode md5 1 cipher 123456
虚链路认证
[r1-ospf-1-area-0.0.0.1]vlink-peer 3.3.3.3 md5 1 cipher 123456
加快收敛
ospf的hello time 默认为10或30s;dead time为hello time 的4倍;邻居间hello、dead time必须完全一致,否则无法建立邻居关系
修改本端的hello time,本端的dead time自动4倍关系匹配;不易修改的过小;
[r2-GigabitEthernet0/0/0]ospf timer hello 10 
沉默接口
仅接收不发送路由协议信息;配置于被宣告的连接用户终端接口,不能配置于连接邻居的骨干接口,否则无法建立邻居关系
[r5]ospf 1 
[r5-ospf-1]silent-interface GigabitEthernet 0/0/2
缺省路由
1,自动产生缺省   3类、5类、7类
3类缺省 --- 特殊区域产生  末梢  完全末梢  完全NSSA  这三种特殊区域在配置完成后,连接骨干区域的ABR将向该区域发布3类缺省
5类缺省为手工配置产生;  
7类缺省 --- 特殊区域产生  NSSA、完全NSSA均产生;但完全NSSA也产生3类缺省,3类优于7类;
​
2,手工配置产生 --- 5类缺省  
[r9]ospf 2 
[r9-ospf-2]default-route-advertise  将本地路由表中无论何种来源产生的缺省路由,重发布到本地的OSPF进程2中,让其他与本地进程2在一个ospf域中的路由器,产生5类缺省,指向R9;(注:以上命令若本地路由表中没有缺省,将无效;)
[r9]ospf 1 
[r9-ospf-1]default-route-advertise always   该指令为本地强制向邻接发送5类缺省路由,无论本地路由表是否存在缺省;
<r10>display  ospf routing   查看本地接收和发送的所有ospf路由信息

OSPF的缺省注意事项

由于OSPF的特殊区域可以自动产生缺省路由指向骨干0区域;故ISP在网络中的位置将决定,网络是否会因为缺省路由产生环路;若ISP连接骨干区域,那么所有的非骨干可以正常定义为各种特殊区域;若ISP处于某个非骨干,或非骨干连接的其他协议,那么对应的该非骨干区域不能配置为任何特殊区域,必须手工进行优化管理;

五类和七类lsa路由存在一个类型1和类型2的区别

类型2(默认)仅显示种子(起始)度量
类型1显示整段路径的总度量;
[r9-ospf-2]default-route-advertise type 1  重发布缺省时,修改为类型1;
类型2的路由,虽然仅显示起始度量,但实际选路时依然基于总度量选择;
类型1优于类型2;
总结:无论类型1还是类型2,在选路均基于实际本地到达ASBR的距离来选路;因为重发布将清除原有协议的度量,故ospf默认的选路规则将可能选中非最佳路径;通过修改重发布过程中修改度量类型为1,实现快速人工干预;

OSPF扩展知识点

附录E
link-id相同的问题
若一台ABR将两条3类LSA导入其他区域;或者一台ASBR将两条5/7类导入OSPF域;同时这两条LSA的link-id会相同;
假设:短掩码网段先进入,link-id正常显示;长掩码进入时link-id加反掩码
20.1.0.0/16 --- link-id 20.1.0.0
20.1.0.0/24 --- link-id 20.1.0.255
若长掩码先进入,再短掩码进入时,长掩码的信息被刷新为反掩码;
OSPF选路规则
1,AD(管理距离)无关的一种情况
r2(config)#router ospf 1 
r2(config-router)#distance 109 1.1.1.1 0.0.0.0
本地从RID为1.1.1.1的设备处学习到路由条目,管理距离修改109;
一台路由器从两个OSPF邻居处学习到了两条相同的路由时,仅比较度量值,不关注管理距离;因为仅针对一台邻居进行管理距离修改的结果是要么两台都被改,要么修改失败;关注IOS版本 --- 有时修改RID大的路由器管理距离生效,有时需要修改RID小的设备;
​
2,AD(管理距离)无关的第二种情况 O  IA 3类
O IA 与 O IA路由相遇,到达相同目标的两条3类路由,这两条路由均通过非骨干传递,仅关注cost值,不关注管理距离;
若一条通过骨干区域传递,另一条同过非骨干区域传递--非骨干传递的路由无效
OSPF的区域水平分割:区域标号为A的3类LSA,不能回到区域A;
先比类型- 区域cost
​
3,OE 与 OE  E为5类   N为7类
默认所有重发布进入路由条目均为类型2,类型2在路由表中的cost值不会显示沿途的累加,仅显示其实度量值;
两条均为OE2或者均为N2,起始度量相同; 关注沿途的累加度量 (OE2路由在表中度量默认不显示内部度量,仅显示起始度量)
两条均为OE2或者均为N2,起始度量不同;优先起始度量小的路径;
注:以上设计是便于管理员快速干涉选路;
OE1路由仅比较总度量(起始度量+沿途累加),仅修改起始度量不一定能干涉选路,必须在修改后使得总度量产生区别才能干涉选路;
​
4,拓扑优于路由   1/2LSA计算所得路由优于3/4/5/7类计算所得
内部优于外部   3类优于4/5/7类
类型1优于类型2  E1优于E2,N1优于N2,E1优于N2,N1优于E2;
E1与N1相遇,或E2与N2相遇,先比总度量(起始+沿途)小优;度量一致5类优于7类
​
重发布进入ospf的路由条目,无论5或7类LSA,均存在一个类型号;默认为类型2,类型2路由仅显示起始度量;修改为类型1后将显示实际总度量; 
类型2虽然仅显示起始度量,但在选路时,实际比较的是总度量;
FA—转发地址
正常OSPF区域收到的5类LSA不存在FA值;
产生FA的条件:
1,5类LSA ---- 假设R2为ASBR,g0/0口工作的OSPF中,g0/1口工作在非ospf协议或不同ospf进程中;若g0/1也同时宣告在和g0/0相同的OSPF进程中,同时该接口的工作方式为广播型;
将在5类LSA中出现FA地址,地址为R2连接R3网段中R3的接口ip; 
​
2,7类LSA---必然出现FA地址
假设R9为ASBR,S0/0口工作的OSPF中,S0/1口工作在非ospf协议或不同进程中;
S0/1未运行OSPF--FA地址为R9上最后宣告的环回地址(个别IOS也可能是最大环回接口ip地址),若R9没有环回接口;FA地址为R9上最后宣告的物理接口地址(个别IOS也可能是最大的物理接口ip地址)
​
R9的S0/1也工作OSPF协议中,S0/1接口工作方式为广播,那么FA地址为R10接口ip;
S0/1的工作方式为点到点,那么FA地址为R9的s0/1口ip
切记:在FA地址出现后,4类LSA无效;人为过滤掉4类LSA,依然可达域外;
      当4类LSA存在,却人为过滤了到达FA地址的路由,那么将无法访问域外;
      一旦出现FA地址,所有的选路计算均基于FA地址进行;
 1、针对存在FA的5/7类路由,4类LSA无意义,仅递归到FA地址;若FA地址被策略过滤导致不可达;
 2、路由表中的度量是到FA地址的度量,不是到ASBR的度量;
NP位+E位
P位被加密,故抓包时看不见P位;
正常NSSA区域内的hello包中,N=1    E=0  标识该区域转发7类LSA,不转发5类
非NSSA区域E=1 N=0 标识可以转发5类,不能转发7类
P位为1,标识该区域将执行7类转5类;  P为0,不能7转5;
​
区域0连接到两个非骨干区域,这两个非骨干假设为区域1和区域2;区域1/2同时连接同一个外部协议,且同时进行了重发布配置;区域1为NSSA区域,区域2为非NSSA区域;那么此时的区域1,P位=0不能进行7转5;故骨干区域只能收到从区域2来的外部路由;
若NSSA和非NSSA均将同一条域外路由向内部传递,仅非NSSA区域可以实现;
若区域1和区域2均为NSSA区域,那么ABR的RID大区域进行7转5,另一个区域不转,
故同一条域外路由,骨干区域只能收到从一个区域传递的外部路由;若以上条件中,两个区域均为非NSSA区域,那么P位无效,故两个区域的路由均回进入骨干区域;
OSPF状态机
1,点到点网络类型   down -->init -- >(前提为可以建立邻接)exstart -->exchange-->若查看邻接的DBD目录后发现不用进行LSA直接进入full  若查看后需要进行查询、应答先进入loading,在查询应答完后再进入full;
2,MA网络类型  down -->init -- >2way-->(前提为可以建立邻接,通过DR/BDR选举后来判断)exstart -->exchange-->若查看邻接的DBD目录后发现不用进行LSA直接进入full  若查看后需要进行查询、应答先进入loading,在查询应答完后再进入full;
3,当hello time较大时,状态机在down和init之间将出现尝试等待状态;
SFP算法
OSPF防环机制
1,在同一个区域每台路由器具有一致的LSDB
2,每台路由器以自己为根计算到达每个目标的最短路径(最小cost值)
3,必须区域划分
    优势 --- 1)域间汇总减少路由条目数量
            2)汇总路由是在所有明细路由均消失后才删除,网络更加稳定
            3)区域划分后不同类别的LSA传播范围不同,控制更新量
总结 --- 观看OSPF防环文档
过程--基于本地LSDB(1/2类LSA)生成--生成有向图--基于有向图来进行最短路径树生成
最短路径树,关注本地LINK-ID的LSA开始--》基于该LSA内提及到点到点或传输网络信息,加载小cost到树形结构中,再查看link-id递归到下一条信息;基于所有点到点和传输网络信息生成最短路径树主干;
然后用树中每台设备的末梢网络信息补充路由表,完成收敛;
  • 14
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值