ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

OSPF基础(上)

2021-07-29 10:58:06  阅读:380  来源: 互联网

标签:AR1 AR2 GigabitEthernet0 ospf 基础 0.0 OSPF


1.OSPF基础概念 

1.1 OSPF特点:

  • 支持无类域间路由(CIDR)
  • 无路由自环(区域内无环),域间和外部路由还可能存在环路
  • 收敛速度快
  • 使用IP组播收发协议数据
  • 支持多条等值路由 ECMP
  • 支持协议报文的认证(同时支持明文和密文认证)

OSPF最显著的特点是使用链路状态算法,区别于早先的路由协议使用的距离矢量算法,因此,本文首先介绍链路状态算法的路由计算基本过程。

每个路由器通过泛洪链路状态通告(LSA) 向外发布本地链路状态信息(例如使能OSPF的端口,可到达的邻居以及相邻的网段等等)。

每一个路由器通过收集其它路由器发布的链路状态通告以及自身生成的本地链路状态通告,形成一个链路状态数据库(LSDB)。LSDB描述了路由域内详细的网络拓扑结构。

所有路由器上的链路状态数据库是相同的。

通过LSDB,每台路由器计算一个以自己为根,以网络中其它节点为叶的最短路径树。

通过每台路由器计算的最短路径树得出了到网络中其它节点的路由表。

1.2 基本概念

1.2.1 Router-id介绍

  • 自治系统(Autonomous System):

      一个自治系统是指使用同一种路由协议交换路由信息的一组路由器。

  •  Router ID:

     用于在自治系统中唯一标识一台运行OSPF的路由器的32位整数,每个运行OSPF的路由器都有一个Router ID

Router-id (路由器标识):用一个32位地址表示,在OSPF中router-id用于唯一标识一台设备。

OSPF中router-id指定有两种方式:手动指定、自动选举

1、手动指定:为每一个进程手工指定一个ROUTER-ID。 手工指定优先于自动选举。

2、自动选举:

     (1)优先选举本地逻辑接口IP地址大一个

    (2) 如果没有逻辑接口,会选择本地活动的物理接口IP地址大的一个。

1.2.2 区域划分

OSPF的区域划分
1.骨干区域:区域0为骨干区域0.0.0.0

2、非骨干区域:普通区域和特殊区域(stub. totally stub、nssa、 totally nssa)

OSPF的多区域场景下,所有的非骨干区域都必须和骨干区域相连,非骨干区域之间不能互联。主要目的是为了避免OSPF环路。

1.3 路由器分类

IR 域内路由器   ABR 区域边界路由器   BR 骨干路由器   ASBR 自治系统边界路由器

ABR: 区域边界路由器

什么设备会成为ABR?

1、设备连接多个区域

2、有一个接口被宣告进了区域0

3、在区域0 (骨干区域)内有一个活动的邻接关系

如果只满足前2个条件只能说明是一-个假ABR (功能缺陷),同时满足三个条件是真的ABR

ASBR:自治系统边界路由器,连接OSPF的同时也连接了其它的协议,需要在该设备上配置双向重分发实现互通。 

内部路由器(Internal Router) :
内部路由器是指所有所连接的网段都在一个区域的路由器。属于同一个区域的IR维护相同的
LSDB。
区域边界路由器(Area Border Router) :
区域边界路由器是指连接到多个区域的路由器。ABR为每一个所连接的区域维护一个
LSDB。
骨干路由器(Backbone Router) :
骨干路由器是指至少有一个端口(或者虛连接)连接到骨干区域的路由器。包括所有的ABR
和所有端口都在骨干区域的路由器。
AS边界路由器(AS Boundary Router) :
AS边界路由器是指和其他AS中的路由器交换路由信息的路由器,这种路由器向整个AS通告
AS外部路由信息。
AS边界路由器可以是内部路由器IR或者是ABR,可以属于骨干区域也可以不属于骨干区
域。 

全局router-id,如果后面的ospf不宣告的话,默认加入全局router-id

ospf number 代表ospf进程序号   后面可以加router-id

通配符  比特位为0必须匹配,比特位为1可以忽略 

 注:华为高端设备,查看隐藏命令  display ip routing-table _vrbd             诊断视图 display ip routing-table _diag

1.4 路由协议优先级

华为路由协议优先级列表: (华为 支持修改路由协议的外部优先级,但是内部优先级为系统默
认无法修改,优先级越小越优)

路由协议 外部优先级内部优先级
direct00
static6060
ospf(O/O|A)1010
ospf ase150150
ospf nssa150150
RIP100100

ISIS(level-1)

       (level-2)

15

15

17

18

BGP(IBGP)

        (EBGP)

255

255

200

20

 1、什么时候比较优先级

通过不同的路由协议学到同一条路由

2、什么时候比较cost值(metric值)

通过不同邻居传来的相同协议携带的同一条路由

2. OSPF实验

2.1 OSPF建立

拓扑图:

AR1配置

sys 
Enter system view, return user view with Ctrl+Z.
[Huawei]sys AR1
[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]ip add 11.1.1.1 24
Apr  8 2021 22:58:42-08:00 AR1 %%01IFNET/4/LINK_STATE(l)[1]:The line protocol IP
 on the interface GigabitEthernet0/0/0 has entered the UP state. 
[AR1-GigabitEthernet0/0/0]q


AR2配置

sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sys AR2
[AR2]int g0/0/0
[AR2-GigabitEthernet0/0/0]ip add 11.1.1.2 24
[AR2-GigabitEthernet0/0/0]
Apr  8 2021 22:58:32-08:00 AR2 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP
 on the interface GigabitEthernet0/0/0 has entered the UP state. 
 

AR1配置

[AR1]router id 1.1.1.1
Info: Router ID has been modified, please reset the relative protocols manually 
to update the Router ID.
[AR1]ospf 1 ?           //不加数字默认为OSPF进程1,后面不加router-id默认在全局id下
  router-id     OSPF Private router ID
  vpn-instance  VPN routing/forwarding Instance
           Please press ENTER to execute command 
[AR1]ospf
[AR1-ospf-1]area 0
[AR1-ospf-1-area-0.0.0.0]network 11.1.1.1 0.0.0.255
[AR1-ospf-1-area-0.0.0.0]q
[AR1-ospf-1]q
[AR1]dis ospf inter

     OSPF Process 1 with Router ID 1.1.1.1
         Interfaces 

 Area: 0.0.0.0          (MPLS TE not enabled)
 IP Address      Type         State    Cost    Pri   DR              BDR 
 11.1.1.1        Broadcast    Waiting  1       1     0.0.0.0         0.0.0.0
 

[AR1]dis curr section ospf   //查看当前OSPF配置
[V200R003C00]
#
ospf 1 
 area 0.0.0.0 
  network 11.1.1.0 0.0.0.255 
#
 

变更ospf router id

[AR1]ospf 1 router-id 2.2.2.2
Info: The configuration succeeded. You need to restart the OSPF process to valid
ate the new router ID.
[AR1-ospf-1]q
[AR1]q
reset ospf ?
  INTEGER<1-65535>  Process ID
  counters          OSPF counters
  process           Reset OSPF process
  redistribution    Reset OSPF route redistribution
reset ospf 1 process
Warning: The OSPF process will be reset. Continue? [Y/N]:y
dis ospf in

     OSPF Process 1 with Router ID 2.2.2.2    //已经变更router-id
         Interfaces 

 Area: 0.0.0.0          (MPLS TE not enabled)
 IP Address      Type         State    Cost    Pri   DR              BDR 
 11.1.1.1        Broadcast    Waiting  1       1     0.0.0.0         0.0.0.0
 

重启OSPF命令

reset ospf  process //重启所有ospf进程

reset ospf number process  //重启特定ospf进程

AR2配置

[AR2]ospf router-id 3.3.3.3
[AR2-ospf-1]q

//OSPF的接口下宣告
[AR2]int g0/0/0
[AR2-GigabitEthernet0/0/0]ospf enable ?
  INTEGER<1-65535>  Process ID
  area              OSPF area parameters
[AR2-GigabitEthernet0/0/0]ospf enable 1 area 0
[AR2-GigabitEthernet0/0/0]q
[AR2]dis ospf int                  //注意:发现该配置并没有生效,因为华为必须在OSPF中创建区域

     OSPF Process 1 with Router ID 3.3.3.3
         Interfaces 

[AR2]ospf 1
[AR2-ospf-1]area 0   //区域号转为32为的iPv4地址来显示
[AR2-ospf-1-area-0.0.0.0]q
[AR2-ospf-1]dis ospf int
Apr  8 2021 23:53:56-08:00 AR2 %%01OSPF/4/NBR_CHANGE_E(l)[0]:Neighbor changes ev
ent: neighbor status changed. (ProcessId=256, NeighborAddress=1.1.1.11, Neighbor
Event=HelloReceived, NeighborPreviousState=Down, NeighborCurrentState=Init) 
[AR2-ospf-1]dis ospf int    /./发现该配置生效

     OSPF Process 1 with Router ID 3.3.3.3
         Interfaces 

 Area: 0.0.0.0          (MPLS TE not enabled)
 IP Address      Type         State    Cost    Pri   DR              BDR 
 11.1.1.2        Broadcast    BDR      1       1     11.1.1.1        11.1.1.2
 
[AR2-ospf-1]
Apr  8 2021 23:53:56-08:00 AR2 %%01OSPF/4/NBR_CHANGE_E(l)[1]:Neighbor changes ev
ent: neighbor status changed. (ProcessId=256, NeighborAddress=1.1.1.11, Neighbor
Event=2WayReceived, NeighborPreviousState=Init, NeighborCurrentState=2Way) 
[AR2-ospf-1]
Apr  8 2021 23:53:56-08:00 AR2 %%01OSPF/4/NBR_CHANGE_E(l)[2]:Neighbor changes ev
ent: neighbor status changed. (ProcessId=256, NeighborAddress=1.1.1.11, Neighbor
Event=AdjOk?, NeighborPreviousState=2Way, NeighborCurrentState=ExStart) 
[AR2-ospf-1]
Apr  8 2021 23:53:56-08:00 AR2 %%01OSPF/4/NBR_CHANGE_E(l)[3]:Neighbor changes ev
ent: neighbor status changed. (ProcessId=256, NeighborAddress=1.1.1.11, Neighbor
Event=NegotiationDone, NeighborPreviousState=ExStart, NeighborCurrentState=Excha
nge) 
[AR2-ospf-1]
Apr  8 2021 23:53:56-08:00 AR2 %%01OSPF/4/NBR_CHANGE_E(l)[4]:Neighbor changes ev
ent: neighbor status changed. (ProcessId=256, NeighborAddress=1.1.1.11, Neighbor
Event=ExchangeDone, NeighborPreviousState=Exchange, NeighborCurrentState=Loading

[AR2-ospf-1]
Apr  8 2021 23:53:56-08:00 AR2 %%01OSPF/4/NBR_CHANGE_E(l)[5]:Neighbor changes ev
ent: neighbor status changed. (ProcessId=256, NeighborAddress=1.1.1.11, Neighbor
Event=LoadingDone, NeighborPreviousState=Loading, NeighborCurrentState=Full)

[AR2]dis ospf peer brief    //可以看到邻居已被建立,router-id为2.2.2.2

     OSPF Process 1 with Router ID 1.1.1.1
          Peer Statistic Information
 ----------------------------------------------------------------------------
 Area Id          Interface                        Neighbor id      State    
 0.0.0.0          GigabitEthernet0/0/0             2.2.2.2          Full        
 ----------------------------------------------------------------------------

注:单区域的OSPF不需要配置区域0,多区域需要配置区域0,并且所有的非骨干区域都必须和骨干区域相连。 

2.2 OPSF报文分析  

2.2.1 报文头

Version :V2用于IPV4  V3应用于IPV6

Type :标识报文类型,分五种,数字从1~5

Packet Length:包含报文头部和内容

Router ID:用于标识一台设备(32bit)

Area ID:携带报文发送接口所在的区域ID(32bit)

Checksum:校验值,用于核对报文是否被修改(在报文发送以前发送方计算一遍值,将数字写入checksum,接收到报文后,接收方将除了Checksum以外的字段计算一遍,与Checksum进行比对)

AutoType:认证类型,用于表示OSPF是什么认证,其值一般为0,不进行认证;1代表明文认证,2代表密文认证

Authentication:认证数据,携带密码,与接收发比对是否一致;如果一致,建立连接

2.2.2 报文类型

 OSPF报文类型: ( OSPF报文可以通过组播和单播的方式发送,如果用组播发送,会用到两个组播地址224.0.0.5 ( ALLSPFRouters ) 224.0.0.6 ( ALLDRouters ) )

HELLO:  发现、建立和维护邻居关系。
DBD :  数据库描述报文,通告本地LSDB(链路状态数据库)中所有LSA (链路状态通告,就是所谓的链路信息)的摘要信息( LSA的头部内容)进行通告
LSR :  收到DBD报文后需要将DBD报文中的LSA的摘要信息和本地的LSDB做对比,将本地不存在的LSA存放到“链路状态请求列表”中,通过LSR报文请求这些不存在的LSA.
LSU:  收到LSR后,通过LSU回复具体的LSA。
LSACK:  收到LSU后通过LSACK确认接收到的LSA。

OSPF支持的网络类型:

1、点到点

2、广播网

3、非广播网 

4、点到多点

5、虚链路

Hetwork Mask: 发送Hello报文的接口的网络掩码。
HelloInterval:发送Hello报文的时间间隔。单位为秒。
Options:标识发送此报文的OSPF路由器所支持的可选功能。具体的可选功能不在本课程的讨论范围之列。
DC:如果置1标识按需电路
DN (DownBit) :如果置1,用于LSA的防环。
E:如果置1,表示可以接收外部路由,如果为0,不能接收外部路由。
N/P:如果在HELLO或者DBD报文中置位,说明该报文来自于NSSA区域。如果在LSA中置1,说LSA需要进行7转5.
Rtr Pri:发送Hello报文的接口的Router Priority,用于选举DR和BDR。
RouterDeadInterval:宣告邻居路由器不继续在该网段上运行OSPF的时间间隔,单位为秒,通常为四倍HelloInterval。
Designated Router:发送Hello报文的路由器所选举出的DR的IP地址。如果设置为0.0.0.0,表示未选举DR路由器。
Backup Designated Router:发送Hello报文的路由器所选举出的BDR的IP地址。如果设置0.0.0.0,表示未选举BDR路由器。
Neighbor:邻居路由器的Router ID列表。表示本路由器已经从该邻居收到合法的Hello报文。 

重要字段解释:
Network Mask:发送Hello报文的接口的网络掩码。
HelloInterval:发送Hello报文的时间间隔。单位为秒。
Options:标识发送此报文的OSPF路由器所支持的可选功能。具体的可选功能不在本课程的
讨论范围之列。
Rtr Pri:发送Hello报文的接口的Router Priority,用于选举DR和BDR。
RouterDeadInterval:宣告邻居路由器不继续在该网段上运行OSPF的时间间隔,单位为秒,
通常为四倍HelloInterval。
Designated Router:发送Hello报文的路由器所选举出的DR的IP地址。如果设置为0.0.0.0,
表示未选举DR路由器。
Backup Designated Router:发送Hello报文的路由器所选举出的BDR的IP地址。如果设置为
0.0.0.0, 表示未选举BDR路由器。
Neighbor:邻居路由器的Router ID列表。表示本路由器已经从该邻居收到合法的Hello报文。

 2.2.3 OSPF如何判断一个接口所属的网络类型?

通过接口的二层封装协议判断,如下表所示:

接口封装协议网络类型
IEEE802.3/EthernetIIBroadcast
ATM/Fream relayNon Broadcast/Point-to-MultiPoint(手动)
P2P/HDLCPoint-to-Point
Virtual-LinkVirtual-link

不同网络类型中报文通告间隔

网络类型

Hello

Interval

Dead

Interval

Poll

Interval

Retransmit

Timer

广播网10秒40秒5秒
非广播网30秒120秒120秒5秒
点到点10秒40秒5秒
点到多点30秒120秒5秒
虚链路

10秒(友商

None)

40秒5秒

不同网络类型中报文的发送方式

网络类型HelloDBDLSRLSULSACK
广播网组播单播单播单播/组播单播/组播
非广播网单播单播单播单播单播
点到点组播组播组播组播组播
点到多点组播单播单播单播单播
虚链路单播单播单播单播单播

 2.3 邻居和邻接

注:在OSPF中所有路由器之间都可以建立邻居关系,但是只有满足条件的设备才能建立邻接关系。 

2.4 哪些条件会影响OSPF的邻居建立

哪些条件会影响OSPF的邻居建立?
1、hello interval和dead interval不一致
(1)如果只调整hello interval,dead interval也会跟着改变。

(2)如果只调整dead interval,hello interval不会改变。
配置:需要在接口下修改
2、网络类型不一致(主要原因还是由于timer不一致导致无法建立邻居,

1、hello interval和dead interval不一致
2、网络类型不一致(主要原因还是由于timer不一致导致无法建立邻居,比如:一边是broadcast,另一边是non broadcast。如果一点是point-to-point,另一边是broadcast,是可以建立邻接关系的,但是没有路由条目)
3、认证不一致(1、认证类型不一致2、认证类型一致,但是密码不一致)

4、区域ID不一致
5、Router-id冲突(直连设备如果router-id冲突也无法建立邻居关系)

6、OSPF版本(需要版本一致)
7、不在同一个网段(只在广播、非广播网、点到多点网络类型中有问题,因为在这些网络类型中存在源检查机制(收到报文后需要检查报文的发送源和接收接口的地址是否在同一个网段),在点到点、虚链路中是没有源检查的)
8、掩码长度不一致(在广播网、非广播网中如果两端掩码长度不一致,无法建立邻居关系。而在点到点、点到多点和虚链路中不检查掩码长度)
9、silent接口(被silent的接口不会在发送和接收hello报文)10、区域类型不一致
11、ACL导致

 

拓扑:

 AR1配置:

[Huawei]sys AR1
[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]ip add 12.1.1.1 24
Jun 23 2021 22:51:49-08:00 AR1 %%01IFNET/4/LINK_STATE(l)[6]:The line protocol IP
 on the interface GigabitEthernet0/0/0 has entered the UP state. 
[AR1-GigabitEthernet0/0/0]q
[AR1]ospf 1
[AR1-ospf-1]area 0
[AR1-ospf-1-area-0.0.0.0]network 12.1.1.1 0.0.0.0


AR2配置:

配置接口IP地址
[AR2]interface GigabitEthernet0/0/0
[AR2-GigabitEthernet0/0/0]ip address 12.1.1.2 255.255.255.0 

配置OSPF策略

[AR2]ospf 1
[AR2-ospf-1]area 0
[AR2-ospf-1-area-0.0.0.0]network 12.1.1.1 0.0.0.0

此时已经建立邻接关系,可以输入命令 display ospf peer brief查看状态信息

设置OSPF新的类型

[AR2-GigabitEthernet0/0/0]ospf timer dead 75 //设置dead time时间为75

使用display ospf peer brief 命令可以查看到此时状态为空,无法建立邻居关系,因为dead time mismatches 无法匹配

2.4.1 hello interval和dead interval不一致


[AR2]int g0/0/0
[AR2-GigabitEthernet0/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
[AR2-GigabitEthernet0/0/0]ospf network-type p2mp
[AR2-GigabitEthernet0/0/0]q
[AR2]dis ospf int g0/0/0

     OSPF Process 1 with Router ID 12.1.1.2
         Interfaces 


 Interface: 12.1.1.2 (GigabitEthernet0/0/0)
 Cost: 1       State: P-2-P     Type: P2MP      MTU: 1500  
 Timers: Hello 30 , Dead 75 , Poll  120 , Retransmit 5 , Transmit Delay 1 

可以查看到此时hello time 时间发生变化
[AR2]int g0/0/0
[AR2-GigabitEthernet0/0/0]undo ospf timer dead
[AR2-GigabitEthernet0/0/0] 
[AR2-GigabitEthernet0/0/0]
[AR2-GigabitEthernet0/0/0]q
[AR2]dis ospf int g0/0/0

     OSPF Process 1 with Router ID 12.1.1.2
         Interfaces 


 Interface: 12.1.1.2 (GigabitEthernet0/0/0)
 Cost: 1       State: P-2-P     Type: P2MP      MTU: 1500  
 Timers: Hello 30 , Dead 120 , Poll  120 , Retransmit 5 , Transmit Delay 1 

可以查看到此时dead time 与hello time时间成四倍的比例关系
[AR2]

  Please check whether system data has been changed, and save data in time

  Configuration console time out, please press any key to log on


sys
Enter system view, return user view with Ctrl+Z.
[AR2]dis ospf peer brief

     OSPF Process 1 with Router ID 12.1.1.2
          Peer Statistic Information
 ----------------------------------------------------------------------------
 Area Id          Interface                        Neighbor id      State    
 ----------------------------------------------------------------------------
[AR2]q
reset ospf ?
  INTEGER<1-65535>  Process ID
  counters          OSPF counters
  process           Reset OSPF process
  redistribution    Reset OSPF route redistribution
[AR2]reset ospf counters  //重置统计数据

[AR2]dis ospf peer brief

     OSPF Process 1 with Router ID 12.1.1.2
          Peer Statistic Information
 ----------------------------------------------------------------------------
 Area Id          Interface                        Neighbor id      State    
 ----------------------------------------------------------------------------
[AR2]dis ospf error inter g0/0/0

     OSPF Process 1 with Router ID 12.1.1.2
         OSPF error statistics 

 Interface: GigabitEthernet0/0/0 (12.1.1.2)
General packet errors:
 0     : Bad version                    0     : Bad checksum
 0     : Bad area id                    0     : Bad authentication type
 0     : Bad authentication key         0     : Unknown neighbor
 0     : Bad net segment                0     : Extern option mismatch
 0     : Router id confusion

HELLO packet errors:
 0     : Netmask mismatch               2     : Hello timer mismatch   //不匹配
 0     : Dead timer mismatch            0     : Invalid Source Address

DD packet errors:
 0     : MTU option mismatch

LS REQ packet errors:
 0     : Bad request

LS UPD packet errors:
 0     : LSA checksum bad

Receive Grace LSA errors:
 0     : Number of invalid LSAs         0     : Number of policy failed LSAs
 0     : Number of wrong period LSAs
[AR2]

  Please check whether system data has been changed, and save data in time

  Configuration console time out, please press any key to log on

2.4.2 网络类型不一致


sys
Enter system view, return user view with Ctrl+Z.
[AR2]dis ospf peer brief

     OSPF Process 1 with Router ID 12.1.1.2
          Peer Statistic Information
 ----------------------------------------------------------------------------
 Area Id          Interface                        Neighbor id      State    
 ----------------------------------------------------------------------------
[AR2]int g0/0/0
[AR2-GigabitEthernet0/0/0]ospf ?
  authentication-mode  Specify an authentication mode
  bfd                  Enable bfd on this interface
  cost                 Interface link cost
  dr-priority          Router priority
  enable               Enable OSPF in interface View
  filter-lsa-out       Configure LSA Filter policy
  frr                  OSPF fast reroute
  ldp-sync             Enable LDP-OSPF synchronization
  mtu-enable           Enable checking MTU on DD packets
  network-type         Network link states
  p2mp-mask-ignore     OSPF P2MP ignores the mask check
  smart-discover       Enable smart-discover Function
  timer                Specify timer interval
  trans-delay          Link state transmit delay(Second)
[AR2-GigabitEthernet0/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
[AR2-GigabitEthernet0/0/0]ospf network-type p2p
[AR2-GigabitEthernet0/0/0]
Jun 23 2021 23:49:37-08:00 AR2 %%01OSPF/4/NBR_CHANGE_E(l)[0]:Neighbor changes ev
ent: neighbor status changed. (ProcessId=256, NeighborAddress=1.1.1.12, Neighbor
Event=HelloReceived, NeighborPreviousState=Down, NeighborCurrentState=Init) 
[AR2-GigabitEthernet0/0/0]
Jun 23 2021 23:49:37-08:00 AR2 %%01OSPF/4/NBR_CHANGE_E(l)[1]:Neighbor changes ev
ent: neighbor status changed. (ProcessId=256, NeighborAddress=1.1.1.12, Neighbor
Event=2WayReceived, NeighborPreviousState=Init, NeighborCurrentState=ExStart) 
[AR2-GigabitEthernet0/0/0]
Jun 23 2021 23:49:37-08:00 AR2 %%01OSPF/4/NBR_CHANGE_E(l)[2]:Neighbor changes ev
ent: neighbor status changed. (ProcessId=256, NeighborAddress=1.1.1.12, Neighbor
Event=NegotiationDone, NeighborPreviousState=ExStart, NeighborCurrentState=Excha
nge) 
[AR2-GigabitEthernet0/0/0]
Jun 23 2021 23:49:37-08:00 AR2 %%01OSPF/4/NBR_CHANGE_E(l)[3]:Neighbor changes ev
ent: neighbor status changed. (ProcessId=256, NeighborAddress=1.1.1.12, Neighbor
Event=ExchangeDone, NeighborPreviousState=Exchange, NeighborCurrentState=Loading

[AR2-GigabitEthernet0/0/0]
Jun 23 2021 23:49:37-08:00 AR2 %%01OSPF/4/NBR_CHANGE_E(l)[4]:Neighbor changes ev
ent: neighbor status changed. (ProcessId=256, NeighborAddress=1.1.1.12, Neighbor
Event=LoadingDone, NeighborPreviousState=Loading, NeighborCurrentState=Full) 
[AR2-GigabitEthernet0/0/0]q
[AR2]dis ospf peer brief

     OSPF Process 1 with Router ID 12.1.1.2
          Peer Statistic Information
 ----------------------------------------------------------------------------
 Area Id          Interface                        Neighbor id      State    
 0.0.0.0          GigabitEthernet0/0/0             12.1.1.1         Full      //已建立邻接关系,但是协议不同,影响通信  
 ----------------------------------------------------------------------------

配置逻辑接口来进行实验,测试是否可以正常通信
[AR2]int lo 0
[AR2-LoopBack0]ip add 1.1.1.1 32
[AR2-LoopBack0]ospf ?
  authentication-mode  Specify an authentication mode
  cost                 Interface link cost
  enable               Enable OSPF in interface View
  network-type         Network link states
[AR2-LoopBack0]ospf en 1 area 0   //开启OSPF协议
[AR2-LoopBack0]q
[AR2]dis ospf inter

     OSPF Process 1 with Router ID 12.1.1.2
         Interfaces 

 Area: 0.0.0.0          (MPLS TE not enabled)
 IP Address      Type         State    Cost    Pri   DR              BDR 
 12.1.1.2        P2P          P-2-P    1       1     0.0.0.0         0.0.0.0
 1.1.1.1         P2P          P-2-P    0       1     0.0.0.0         0.0.0.0

//在路由器AR1中发现并无逻辑接口的路由信息 ,无法建立通信

[AR1]dis ip ro
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
         Destinations : 7        Routes : 7        

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

       12.1.1.0/24  Direct  0    0           D   12.1.1.1        GigabitEthernet
0/0/0
       12.1.1.1/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/0
     12.1.1.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/0
      127.0.0.0/8   Direct  0    0           D   127.0.0.1       InLoopBack0
      127.0.0.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0
127.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0
255.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0

2.4.3 认证不一致

(1、认证类型不一致2、认证类型一致,但是密码不一致)

配置方式有两种:
(1)区域认证(在区域下配置)
如果在区域下配置了认证,那么属于该区域的所有接口在发送报文时都会携带认证。相当于全局认证
(2)接口认证(接口下配置)
相当于本地认证,如果配置了接口认证,那么从该接口发送的ospf报文会携带认证。
注:如果同时配置了区域认证和接口认证,接口认证优先。

OSPF的认证方式: 
( 1)明文认证
(2)密文认证(MD5是加密算法,长度是128bit( 16Byte))

接口认证优于区域认证 

AR1  配置

区域认证

 [AR1]ospf 1
[AR1-ospf-1]area 0
[AR1-ospf-1-area-0.0.0.0]authentication-mode simple cipher HW  //密码本地密文保存

[AR1-ospf-1-area-0.0.0.0]authentication-mode simple plain HW  //密码覆盖,本地明文保存

AR2配置:

接口认证

[AR2]int g0/0/0
[AR2-GigabitEthernet0/0/0]ospf authentication-mode simple cipher HW
 

实验密码大小写不一致能否匹配

AR1配置:

[AR1]ospf 1
[AR1-ospf-1]area 0
[AR1-ospf-1-area-0.0.0.0]auth    
[AR1-ospf-1-area-0.0.0.0]authentication-mode simple plain hw
重启进程

<AR1>reset ospf 1 process 
Warning: The OSPF process will be reset. Continue? [Y/N]:y
Jul 11 2021 22:48:14-08:00 AR1 %%01OSPF/3/NBR_CHG_DOWN(l)[0]:Neighbor event:neig
hbor state changed to Down. (ProcessId=256, NeighborAddress=2.1.1.12, NeighborEv
ent=KillNbr, NeighborPreviousState=Full, NeighborCurrentState=Down) 

 查看邻居关系建立

[AR1]dis ospf peer brief

     OSPF Process 1 with Router ID 12.1.1.1
          Peer Statistic Information
 ----------------------------------------------------------------------------
 Area Id          Interface                        Neighbor id      State    
 ----------------------------------------------------------------------------

配置接口认证,接口认证优于区域 

 [AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]ospf authentication-mode simple plain HW

再次实验MD5配置

[AR1]undo ospf 1
Warning: The OSPF process will be deleted. Continue? [Y/N]:y
[AR1]ospf 1
[AR1-ospf-1]area 0
[AR1-ospf-1-area-0.0.0.0]network 12.1.1.1 0.0.0.0
[AR1-ospf-1-area-0.0.0.0]authentication-mode md5 9 plain huawei

 AR1配

[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]dis this
[V200R003C00]
#
interface GigabitEthernet0/0/0
 ip address 12.1.1.1 255.255.255.0 
 ospf authentication-mode simple plain HW 
#
return
[AR1-GigabitEthernet0/0/0]undo ospf auth

<AR1>reset ospf 1 pro
Warning: The OSPF process will be reset. Continue? [Y/N]:y
<AR1>sys
Enter system view, return user view with Ctrl+Z.
[AR1]dis ospf peer br

     OSPF Process 1 with Router ID 12.1.1.1
          Peer Statistic Information
 ----------------------------------------------------------------------------
 Area Id          Interface                        Neighbor id      State    
 ----------------------------------------------------------------------------


AR2配置

 [AR2]int g0/0/0
[AR2-GigabitEthernet0/0/0]dis this
[V200R003C00]
#
interface GigabitEthernet0/0/0
 ip address 12.1.1.2 255.255.255.0 
 ospf authentication-mode simple cipher %$%$a7Q*F'Xz(EY<^XKp(]2M[i-m%$%$ 
 ospf network-type p2p
#
return
[AR2-GigabitEthernet0/0/0]undo ospf au

配置AR2接口下的MD5认证

[AR2]int g0/0/0
[AR2-GigabitEthernet0/0/0]ospf authentication-mode ?
  hmac-md5  Use HMAC-MD5 algorithm
  keychain  Keychain authentication mode
  md5       Use MD5 algorithm
  null      Use null authentication
  simple    Simple authentication mode
[AR2-GigabitEthernet0/0/0]ospf authentication-mode md5 9 plain huawei

 再次修改key id

[AR2]int g0/0/0
[AR2-GigabitEthernet0/0/0]ospf auth ?
  hmac-md5  Use HMAC-MD5 algorithm
  keychain  Keychain authentication mode
  md5       Use MD5 algorithm
  null      Use null authentication
  simple    Simple authentication mode
[AR2-GigabitEthernet0/0/0]ospf auth md5 4 plain huawei

 实验结果 ,可以看到错误的认证密钥

 二、序列号算法和系统时间算法

2.4.4.区域ID不一致

AR2配置

[AR2-ospf-1]area 0
[AR2-ospf-1-area-0.0.0.0]
[AR2-ospf-1-area-0.0.0.0]dis this
[V200R003C00]
#
 area 0.0.0.0 
  network 12.1.1.2 0.0.0.0 
#
return
[AR2-ospf-1-area-0.0.0.0]undo network 12.1.1.2 0.0.0.0
[AR2-ospf-1-area-0.0.0.0]area 1
[AR2-ospf-1-area-0.0.0.1]network 12.1.1.2 0.0.0.0
[AR2-ospf-1-area-0.0.0.1]dis this
[V200R003C00]
#
 area 0.0.0.1 
  network 12.1.1.2 0.0.0.0 
#
return
[AR2-ospf-1-area-0.0.0.1]q
[AR2-ospf-1]q
[AR2]q
<AR2>reset ospf 1 pro    //重启ospf进程
Warning: The OSPF process will be reset. Continue? [Y/N]:y
<AR2>reset ospf counters  //清零ospf统计数据
效果图:显示错误的区域ID号

 2.4.5.router-id冲突

AR1配置查看:

AR2配置:

<AR2>sys
Enter system view, return user view with Ctrl+Z.
[AR2]ospf 1 router-id 12.1.1.1
Info: The configuration succeeded. You need to restart the OSPF process to valid
ate the new router ID.
[AR2-ospf-1]q
[AR2]q
<AR2>reset ospf 1 pro
Warning: The OSPF process will be reset. Continue? [Y/N]:y
<AR2>
Jul 18 2021 23:40:00-08:00 AR2 %%01OSPF/4/CONFLICT_ROUTERID_INTF(l)[0]:OSPF Rout
er id conflict is detected on interface. (ProcessId=256, RouterId=1.1.1.12, Area
Id=1.0.0.0, InterfaceName=GigabitEthernet0/0/0,  IpAddr=2.1.1.12, PacketSrcIp=1.
1.1.12) 
效果图:router-id冲突,因为router-id在area id的前面,error命令只能统计一个错误数据

2.4.6 不在同一网段

AR1配置:

 将AR1接口IP换成不同网段

[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]dis this
[V200R003C00]
#
interface GigabitEthernet0/0/0
 ip address 12.1.1.1 255.255.255.0 
#
return
[AR1-GigabitEthernet0/0/0]undo ip add
[AR1-GigabitEthernet0/0/0]
Jul 19 2021 13:19:49-08:00 AR1 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP
 on the interface GigabitEthernet0/0/0 has entered the DOWN state. 
[AR1-GigabitEthernet0/0/0]ip add 11.1.1.1 24
Jul 19 2021 13:19:54-08:00 AR1 %%01IFNET/4/LINK_STATE(l)[1]:The line protocol IP
 on the interface GigabitEthernet0/0/0 has entered the UP state. 
[AR1-GigabitEthernet0/0/0]dis this
[V200R003C00]
#
interface GigabitEthernet0/0/0
 ip address 11.1.1.1 255.255.255.0 
#
return
 

配置新的OSPF网段

[AR1]undo ospf 1
Warning: The OSPF process will be deleted. Continue? [Y/N]:y
[AR1]ospf 1
[AR1-ospf-1]area 0
[AR1-ospf-1-area-0.0.0.0]network 11.1.1.1 0.0.0.0
[AR1-ospf-1-area-0.0.0.0]q

 AR2配置:

修改类型,换成AR1一致的类型,控制变量

 [AR2]int g0/0/0
[AR2-GigabitEthernet0/0/0]dis this
[V200R003C00]
#
interface GigabitEthernet0/0/0
 ip address 12.1.1.2 255.255.255.0 
 ospf authentication-mode md5 4 plain huawei
 ospf network-type p2p
#
return
[AR2-GigabitEthernet0/0/0]undo ospf network-type

 [AR2]undo ospf 1
Warning: The OSPF process will be deleted. Continue? [Y/N]:y
[AR2]ospf 1
[AR2-ospf-1]area 0
[AR2-ospf-1-area-0.0.0.0]net 12.1.1.2 0.0.0.0

取消认证类型

[AR2]int g0/0/0
[AR2-GigabitEthernet0/0/0]dis this
[V200R003C00]
#
interface GigabitEthernet0/0/0
 ip address 12.1.1.2 255.255.255.0 
 ospf authentication-mode md5 4 plain huawei
#
return
[AR2-GigabitEthernet0/0/0]undo ospf au

由图看出,未建立连接

 

 由结果图可知。错误信息提示为错误网段

错误网段不一致,也可建立邻居关系

 AR1配置

[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]ospf net    
[AR1-GigabitEthernet0/0/0]ospf network-type p2p
 

AR2配置:

<AR2>sys
Enter system view, return user view with Ctrl+Z.
[AR2]int g0/0/0
[AR2-GigabitEthernet0/0/0]ospf net    
[AR2-GigabitEthernet0/0/0]ospf network-type p2p

虽然建立了邻居关系,但是依然ping不通

 

 虽然有路由,但是点到点的链路类型并没有IP12.1.1.2的MAC地址,以太网口需要MAC地址封装

AR1配置

[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]shut
Jul 19 2021 23:02:07-08:00 AR1 %%01IFPDT/4/IF_STATE(l)[5]:Interface GigabitEther
net0/0/0 has turned into DOWN state.
 

再次测验,配置trunk口,点到点的链路方式不需要封装MAC地址,只需要从接口发出

AR1配置

[AR1]int ser 4/0/0
[AR1-Serial4/0/0]ip add 100.1.1.1 24
[AR1-Serial4/0/0]ospf e    
[AR1-Serial4/0/0]ospf enable 1 area 0
[AR1-Serial4/0/0]q

 AR2配置:

<AR2>sys
Enter system view, return user view with Ctrl+Z.
[AR2]int ser 4/0/0
[AR2-Serial4/0/0]ip add 200.1.1.1 24
[AR2-Serial4/0/0]
Jul 19 2021 23:12:03-08:00 AR2 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol PP
P IPCP on the interface Serial4/0/0 has entered the UP state. 
[AR2-Serial4/0/0]ospf en 1 area 0
[AR2-Serial4/0/0]
Jul 19 2021 23:12:23-08:00 AR2 %%01OSPF/4/NBR_CHANGE_E(l)[1]:Neighbor changes ev
ent: neighbor status changed. (ProcessId=256, NeighborAddress=1.1.1.100, Neighbo
rEvent=HelloReceived, NeighborPreviousState=Down, NeighborCurrentState=Init) 

 2.4. 7 掩码长度不一致

AR1配置

[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]
[AR1-GigabitEthernet0/0/0]dis this
[V200R003C00]
#
interface GigabitEthernet0/0/0
 shutdown
 ip address 11.1.1.1 255.255.255.0 
 ospf network-type p2p
#
return
[AR1-GigabitEthernet0/0/0]ip add 12.1.1.1 24
[AR1-GigabitEthernet0/0/0]undo shut
 

[AR1-GigabitEthernet0/0/0]undo ospf net
[AR1-GigabitEthernet0/0/0]q
[AR1]dis ospf int

     OSPF Process 1 with Router ID 11.1.1.1
         Interfaces 

 Area: 0.0.0.0          (MPLS TE not enabled)
 IP Address      Type         State    Cost    Pri   DR              BDR 
 100.1.1.1       P2P          P-2-P    48      1     0.0.0.0         0.0.0.0
 
[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]ospf en 1 area 0

AR2配置

[AR2]int g0/0/0
[AR2-GigabitEthernet0/0/0]
[AR2-GigabitEthernet0/0/0]undo ospf net
[AR2-GigabitEthernet0/0/0]
[AR2-GigabitEthernet0/0/0]q
[AR2]dis ospf peer br

     OSPF Process 1 with Router ID 12.1.1.2
          Peer Statistic Information
 ----------------------------------------------------------------------------
 Area Id          Interface                        Neighbor id      State    
 0.0.0.0          Serial4/0/0                      11.1.1.1         Full        
 ---------------------------------------------------------------------------

 AR1配置

<AR1>reset ospf 1 pro

 2.4.8 slient接口

 AR1配置:

<AR1>sys
Enter system view, return user view with Ctrl+Z.
[AR1]ospf 1
[AR1-ospf-1]si    
[AR1-ospf-1]silent-interface g0/0/0
[AR1-ospf-1]
[AR1-ospf-1]dis this
[V200R003C00]
#
ospf 1 
 silent-interface GigabitEthernet0/0/0
 area 0.0.0.0 
  network 11.1.1.1 0.0.0.0 
#
return
查看

[AR1]dis int g0/0/0
GigabitEthernet0/0/0 current state : UP
Line protocol current state : UP
Last line protocol up time : 2021-07-19 23:26:35 UTC-08:00
Description:HUAWEI, AR Series, GigabitEthernet0/0/0 Interface
Route Port,The Maximum Transmit Unit is 1500
Internet Address is 12.1.1.1/16
IP Sending Frames' Format is PKTFMT_ETHNT_2, Hardware address is 00e0-fcab-5e59
Last physical up time   : 2021-07-19 23:26:35 UTC-08:00
Last physical down time : 2021-07-19 23:02:07 UTC-08:00
Current system time: 2021-07-19 23:40:56-08:00
Port Mode: FORCE COPPER
Speed : 1000,  Loopback: NONE
Duplex: FULL,  Negotiation: ENABLE
Mdi   : AUTO
Last 300 seconds input rate 56 bits/sec, 0 packets/sec
Last 300 seconds output rate 56 bits/sec, 0 packets/sec
Input peak rate 944 bits/sec,Record time: 2021-07-19 22:58:52
Output peak rate 1144 bits/sec,Record time: 2021-07-19 22:58:52

Input:  148 packets, 12074 bytes
  Unicast:                 11,  Multicast:                 128
  Broadcast:                9,  Jumbo:                       0
  Discard:                  0,  Total Error:                 0

  CRC:                      0,  Giants:                      0
  Jabbers:                  0,  Throttles:                   0
  Runts:                    0,  Symbols:                     0
  Ignoreds:                 0,  Frames:                      0

Output:  131 packets, 10692 bytes
  Unicast:                  9,  Multicast:                 118
  Broadcast:                4,  Jumbo:                       0
  Discard:                  0,  Total Error:                 0

  Collisions:               0,  ExcessiveCollisions:         0
  Late Collisions:          0,  Deferreds:                   0

    Input bandwidth utilization threshold : 100.00%
    Output bandwidth utilization threshold: 100.00%
    Input bandwidth utilization  :    0%
    Output bandwidth utilization :    0%
清除统计数据

<AR1>reset coun int g0/0/0
Info: Reset successfully.

 

2.4. 9 区域类型不一致

恢复

AR1配置:

[AR1]ospf 1
[AR1-ospf-1]undo silent-interface g0/0/0
[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]dis this
[V200R003C00]
#
interface GigabitEthernet0/0/0
 ip address 12.1.1.1 255.255.0.0 
 ospf enable 1 area 0.0.0.0
#
return
[AR1-GigabitEthernet0/0/0]ip add 12.1.1.1 24

 AR1配置

[AR1]undo ospf 1
Warning: The OSPF process will be deleted. Continue? [Y/N]:y
[AR1]ospf 1
[AR1-ospf-1]area 1
[AR1-ospf-1-area-0.0.0.1]network 12.1.1.1 0.0.0.0
[AR1-ospf-1-area-0.0.0.1]q
[AR1-ospf-1]q
[AR1]dis ospf int

     OSPF Process 1 with Router ID 100.1.1.1
         Interfaces 

 Area: 0.0.0.1          (MPLS TE not enabled)
[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]ospf en 1 area 1
Error: The interface is already enabled.
[AR1-GigabitEthernet0/0/0]undo ospf en 1 area 1
[AR1-GigabitEthernet0/0/0]undo ospf en 1 area 0
[AR1-GigabitEthernet0/0/0]ospf en 1 area 1
[AR1-GigabitEthernet0/0/0]q
[AR1]dis ospf int

     OSPF Process 1 with Router ID 100.1.1.1
         Interfaces 

 Area: 0.0.0.1          (MPLS TE not enabled)
 IP Address      Type         State    Cost    Pri   DR              BDR 
 12.1.1.1        Broadcast    Waiting  1       1     0.0.0.0         0.0.0.0
AR2配置:

<AR2>sys
Enter system view, return user view with Ctrl+Z.
[AR2]undo ospf 1
Warning: The OSPF process will be deleted. Continue? [Y/N]:y
[AR2]ospf 1
[AR2-ospf-1]area 1 
[AR2-ospf-1-area-0.0.0.1]network 12.1.1.2 0.0.0.0
[AR2-ospf-1-area-0.0.0.1]stub
[AR2-ospf-1-area-0.0.0.1]q
[AR2-ospf-1]q
[AR2]dis ospf peer br

     OSPF Process 1 with Router ID 12.1.1.2
          Peer Statistic Information
 ----------------------------------------------------------------------------
 Area Id          Interface                        Neighbor id      State    
 ----------------------------------------------------------------------------
[AR2]dis ospf error int g0/0/0

     OSPF Process 1 with Router ID 12.1.1.2
         OSPF error statistics 

 Interface: GigabitEthernet0/0/0 (12.1.1.2)
General packet errors:
 0     : Bad version                    0     : Bad checksum
 0     : Bad area id                    0     : Bad authentication type
 0     : Bad authentication key         0     : Unknown neighbor
 0     : Bad net segment                0     : Extern option mismatch
 0     : Router id confusion

HELLO packet errors:
 0     : Netmask mismatch               0     : Hello timer mismatch
 0     : Dead timer mismatch            0     : Invalid Source Address

DD packet errors:
 0     : MTU option mismatch

LS REQ packet errors:
 0     : Bad request

LS UPD packet errors:
 0     : LSA checksum bad

Receive Grace LSA errors:
 0     : Number of invalid LSAs         0     : Number of policy failed LSAs
 0     : Number of wrong period LSAs
[AR2]dis ospf int

     OSPF Process 1 with Router ID 12.1.1.2
         Interfaces 

 Area: 0.0.0.1          (MPLS TE not enabled)
 IP Address      Type         State    Cost    Pri   DR              BDR 
 12.1.1.2        Broadcast    DR       1       1     12.1.1.2        0.0.0.0
 
[AR2]dis ospf error int g0/0/0

     OSPF Process 1 with Router ID 12.1.1.2
         OSPF error statistics 

 Interface: GigabitEthernet0/0/0 (12.1.1.2)
General packet errors:
 0     : Bad version                    0     : Bad checksum
 0     : Bad area id                    0     : Bad authentication type
 0     : Bad authentication key         0     : Unknown neighbor
 0     : Bad net segment                11    : Extern option mismatch
 0     : Router id confusion

HELLO packet errors:
 0     : Netmask mismatch               0     : Hello timer mismatch
 0     : Dead timer mismatch            0     : Invalid Source Address

DD packet errors:
 0     : MTU option mismatch

LS REQ packet errors:
 0     : Bad request

LS UPD packet errors:
 0     : LSA checksum bad

Receive Grace LSA errors:
 0     : Number of invalid LSAs         0     : Number of policy failed LSAs
 0     : Number of wrong period LSAs
 

标签:AR1,AR2,GigabitEthernet0,ospf,基础,0.0,OSPF
来源: https://blog.csdn.net/z594934262/article/details/115440056

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有