一、OSPF介绍
OSPF优点:无环路、收敛快、扩展性好、支持认证
二、工作原理:
图中RTA、RTB、RTC每个路由器都会生成一个LSA, 通过LSA泛洪进行互相发送相互学习,形成LSDB (链路状态通告数据库),LSDB数据库中存了各路由器的LSA链路状态通告。然后每个路由器拿这个数据库通过SPF算举动进行计算(SPF最短路径树算法),跟据最短路径数型成路由表。
LSA链路状态通告,包含:RouterID、网络掩码信息(路由信息)、领居(谁跟我链在一起的)、网络类型、cost开销值 【领居、网络类型、cost形成拓扑】
Router-ID 是一个IPV4地址格式的唯一标识,每个RouterID 是唯一的,不能相同
RouterID:1、手动配置 2、自动选择(不手动配的话他会自动生产一个,先从环回接口、如果没有配环回接口,就从物理接口选择)
LSDB数据库: 存了各路由器的LSA链路状态通告。
三、OSPF建立邻居关系和邻接关系
OSPF报文类型有5种:
HELLO报文,
DD(Database Description)报文,
LSR(LSA Request)报文
LSU(LSA Update)报文
LSACK(Link State Acknowledgment)报文
第一过程:
HELLO报文, 作用打招呼,用来发现、建立和维持OSPF邻居关系, HELLOW报文是组播的型式发送 224.0.0.5,只有相邻的路由器启动了OSPF都会收到HELLOW报文。没问动OSPF的不会收到。
RTA使用HELLO发现相邻的RTB和RTC路由器是否开启OSPF,如果启动了会发送HELLO报文 并先会协商一些协议(RouterID 发送HELLO报文时间等)、建立连接、每隔10秒时间会相互发送一次HELLO报文维持连接,如要4倍的时间收不到相邻的HELLO报文,就默认为邻居不在线,会自动在路由表中把它删掉
第二过程:
DD(Database Description)报文 。 数据描述报文
通过HELLO报文形成邻居后,路由器使用DD报文来进行主从路由器的选举和数据库摘要信息的交互。
DD报文:包含LSA的头部信息,用来描述LSDB的摘要信息
根据RourtID大小来确认路由器的主从关系,图上RTB是主,RTA是从
前三个DD报文确定主从关系,互相交换大家所知道的路由
确证主从关系后,两路由器就形成邻居关系
第三过程:
确定邻居关系后,主路由会先发送一个LSR的请求报名给从路由器,从路由器就把LSU的报文发给主路由,主路由收到后就会向从路由发送一个LSACK确认报文进行确认。
反之从路由器也会发一个LSR的请求报名给主路由器,主路由器就把LSU的报名发给从路由器,从路由器收到后也会向主路由器发送一个LSACK确认报文进行确认。
两个主从的路由器只起到谁先请求的作用,不是说以哪个发的报文为准(谁说了算)。
LSR(LSA Request)报文, 用于向对方请求所需要的LSA
LSU(LSA Update)报文, 用于向对方发送其所需要的LSA
LSACK(Link State Acknowledgment)报文 ,用于向对方发送收到LSA的确认
LSACK报文确认完成后,两路由器间就会形成邻接关系。
四、OSPF配置
[RTA]ospf 1 router-id 1.1.1.1 #router id 在实际操作中为了严谨,必须要手动添加router-id。1指的是进程号
[RTA-ospf-1]area 0 #区域0 默认把路由器放到区域0里面
[RTA-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255 #宣告直连网段 反掩码
router-id可以全局配置,但优先级别较低。配置命 令: [R1]router id 11.11.11.11
反掩码计算:255.255.255.255减去当前掩码.。如:255.255.252.0 的反掩码是255.255.255.255 - 255.255.252.0=0.0.3.255
进程号:进程号是本地有效,若不同的路由器之间OSPF对接,两台路由器的OSPF进程号可以不同,这是不会有任何问题的,但是为了保证网络配置的规范性和标准化,建议还是采用相同的进程号。
配置案例1:
1)配置路由器名字和各路由器接口ip
R1:
[Huawei]sysname R1
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 192.168.10.1 24
[R1-GigabitEthernet0/0/0]int g 0/0/1
[R1-GigabitEthernet0/0/1]ip add 192.168.1.1 24
R2:
[Huawei]sysname R2
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip add 192.168.10.254
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ip add 192.168.20.1 24
R3:
[Huawei]sysname R3
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip add 192.168.20.254 24
[R3-GigabitEthernet0/0/0]int g0/0/1
[R3-GigabitEthernet0/0/1]ip add 192.168.2.1 24
2)配置环回接口
interface LoopBack0
R1:
[R1]interface LoopBack 0
[R1-LoopBack0]ip add 1.1.1.1 32
R2:
[R2]int LoopBack 0
[R2-LoopBack0]ip add 2.2.2.2 32
R3:
[R3]interface LoopBack 0
[R3-LoopBack0]ip add 3.3.3.3 32
3)配置ospf
配router-Id 和区域 并宣告直连网络
R1:
[R1]ospf 1 router-id 1.1.1.1 #创建ospf的进程 1和添加router-id
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255 #宣告直连网段
[R1-ospf-1-area-0.0.0.0]network 192.168.10.0 0.0.0.255 #宣告直连网段
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0 #宣告环回地址
R2:
[R2]ospf 1 router-id 2.2.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 192.168.10.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 192.168.20.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
R3:
[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 192.168.20.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
4)配置完后,PC1可以ping通PC2,同时也能ping通各路由的环回地址
常用命令:
查看OSPF协议相关运行参数 display ospf brief
查看OSPF邻居表 display ospf peer
查看LSDB表 display ospf lsdb
查看OSPF路由 display ospf routing
重启ospf进程 reset ospf process
五、邻居状态机
上图描述:
还没建立邻居关系,还没开启ospf状态 (初始化状态)
当开始ospf时,往外发hello报文寻找邻居关系时,状态为lnit
当两个路由器都 收到对方发的hello报文后,形成2-way状态,等同于邻居状态(2-Way状态是最终的邻居状态)
----------------------------------------------------------------------------------------
成为邻居关系后,大家都向外发DD报文选主从关系,变成ExStart状态
确定主从关系后,成为Exchange状态,各自发送目录信息
目录信息(DD)信息交互完后,变成Loading状态,大家相互发送LSR和LSU信息和LSACK信息
LSACK确认完后变成FULL状态。FULL状态是邻接关系的最高状态。
六、OSPF支持的网络类形
广播类型和点对点类形
缺省情况下,OSPF认为网线把两设备连接在一起的都是以太网的网络类形是广播类形。
两设备用串口线连接起来的是PPP类形的网络是点对点网络。
缺省情况下,OSPF认为帧中继NBMA、ATM的网络类型是P2MP
七、DR&BDR
DR可以减少广播型网络中的邻接关系的数量
如果大型网络中,每个路由器都建邻接关系太多,当某个路由信息发生变化时,同步时会产生大量的流量,占用带宽。
N*(N-1)/2,计算路由器建立邻居关系的数量,N指路由器。
如果4个路由器都需要建6个邻接关系。当路由器越多时建立的邻接关系太多。
任命DR(老大),BDR(老二),其它都是DRother(小弟),像上图
RTA和RTB是DRothers(小弟)他们不需要建立邻接关系,只需要建立邻居关系即可
RTC(BDR 老二)和RTD(DR老大)和小弟间形成邻接关系就行,这样可减少邻接关系数量
DR&BDR的选举
DR是基于端口的路由器优先级的值进行选举的。
端口优先级由0-255,1是默认值,数值越大越优先。但0特殊优先级,如果路由器优先级是0,它就不参于选举。
如果路由器端口优先级一样,就拿router-id进行比较
在OSPF中,如果一个网络己从端口或router-id优先级中选举出DR,如这个路由器端口优先级为100,后又添加了一个新的路由器,他的端口优先级为255,但也不能成为DR或DBR,只能当个小弟。
当DR(老大)路由器挂了,再由BDR(老二)当DR,BDRothers(小弟)中再根据端口或优先级再选举哪个可以成为BDR。
DR和BDR是基于路由器的端口去选举的,同一个路由器不同接口在不同网络中状态是不一样的(有的是DR,有的是BDR,有的是DRother)
上图中R8路由器的在上面的网络中EG/0/0/0接口是DR, 而在下面的网络接口E0/0/0就不是DR而是DRother
OSPF开销值
OSPF的开销计算公式为带宽参考值/带宽(接口带宽)、
可通过bandwidth-reference命令来设置带宽参考值
手动配置开销值(开销值1-65535)
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ospf cost 20
手动配置设置带宽参考值,(用得少,一般都直接设置开销值)
[R1]ospf
[R1-ospf-1]bandwidth-reference 100000
八、OSPF认证
认证有两种 方式:MD5和密文
华为ARG3系列路由器运行OSPF时,支持两种认证方式:区域认证和接口认证
命令:
[R1]int g0/0/0 [R1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 Ehong
OSPF认证实验1:
1)、配置路由器名字和各路由器接口ip
R1:
[Huawei]sysname R1
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 192.168.10.1 24
[R1-GigabitEthernet0/0/0]int g 0/0/1
[R1-GigabitEthernet0/0/1]ip add 192.168.1.1 24
R2:
[Huawei]sysname R2
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip add 192.168.10.254 ^
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ip add 192.168.20.1 24
R3:
[Huawei]sysname R3
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip add 192.168.20.254 24
[R3-GigabitEthernet0/0/0]int g0/0/1
[R3-GigabitEthernet0/0/1]ip add 192.168.2.1 24
2)配置环回接口
interface LoopBack0
R1:
[R1]interface LoopBack 0
[R1-LoopBack0]ip add 1.1.1.1 32
R2:
[R2]int LoopBack 0
[R2-LoopBack0]ip add 2.2.2.2 32
R3:
[R3]interface LoopBack 0
[R3-LoopBack0]ip add 3.3.3.3 32
3)配置ospf
配router-Id 和区域 并宣告直连网络
R1:
[R1]ospf 1 router-id 1.1.1.1 #创建ospf的进程 1和添加router-id
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255 #宣告直连网段
[R1-ospf-1-area-0.0.0.0]network 192.168.10.0 0.0.0.255 #宣告直连网段
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0 #宣告环回地址
R2:
[R2]ospf 1 router-id 2.2.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 192.168.10.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 192.168.20.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
R3:
[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 192.168.20.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
配置完后要进行测试保证网络是通的,如果PC1可以ping通PC2,同时也能ping通各路由的环回地址,那就对路由器接口进行加密认证
4)配置OSPF认证加密
R1
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 ehong
R2
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ospf authentication-mode md5 1 ehong
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ospf authentication-mode md5 1 ehong
R3
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ospf authentication-mode md5 1 ehong
配置完毕
九、OSPF区域(Area)
OSPF区域 每一个区域都维护一个独立的LSDB Area 0是骨干区域,其它区域都必须与此区域相连。
Area0:骨干区域·
Area1:子区域
Area2:子区域
1·区域边界路由器(ABR):用来连接Area0和其他区域的路由器
2·内部路由器:保存自己区域的链路状态信息
3·自治边界路由器(ASBR):用来连接ospf的AS与外部其他的路由器,也就是说连接不是ospf协议的路由器
实例1:OSPF多区域配置和综合实验:
1)先做基础配置(设备IP地址、环回地址)
R1: <Huawei>sys [Huawei]sysname R1 [R1-GigabitEthernet0/0/0]ip add 192.168.10.1 24 [R1-GigabitEthernet0/0/0]int g0/0/1 [R1-GigabitEthernet0/0/1]ip add 192.168.1.1 24 [R1-GigabitEthernet0/0/1]quit [R1]int LoopBack 0 [R1-LoopBack0]ip add 1.1.1.1 32 R2: <Huawei>sys [Huawei]sysname R2 [R2]int g0/0/0 [R2-GigabitEthernet0/0/0]ip add 192.168.10.254 24 [R2-GigabitEthernet0/0/0]int g0/0/1 [R2-GigabitEthernet0/0/1]ip add 192.168.20.1 24 [R2-GigabitEthernet0/0/1]int g0/0/2 [R2-GigabitEthernet0/0/2]ip add 192.168.50.1 [R2-GigabitEthernet0/0/2]int g0/0/3 [R2-GigabitEthernet0/0/3]ip add 192.168.60.1 24 [R2]int LoopBack 0 [R2-LoopBack0]ip add 2.2.2.2 32 R3: <Huawei>sys [Huawei]sysname R3 [R3]int g0/0/0 [R3-GigabitEthernet0/0/0]ip add 192.168.20.254 24 [R3-GigabitEthernet0/0/0]int g0/0/1 [R3-GigabitEthernet0/0/1]ip add 192.168.40.1 24 [R3-GigabitEthernet0/0/1]int g0/0/2 [R3-GigabitEthernet0/0/2]ip add 192.168.70.1 24 [R3-GigabitEthernet0/0/2]int g0/0/3 [R3-GigabitEthernet0/0/3]ip add 192.168.30.1 24 [R3]int LoopBack 0 [R3-LoopBack0]ip add 3.3.3.3 32 R4: <Huawei>sys [Huawei]sysname R4 [R4]int g0/0/0 [R4-GigabitEthernet0/0/0]ip add 192.168.30.254 24 R4-GigabitEthernet0/0/0]int g0/0/1 [R4-GigabitEthernet0/0/1]ip add 192.168.2.1 24 [R4]int LoopBack 0 [R4-LoopBack0]ip add 4.4.4.4 R5: <Huawei>sys [Huawei]sysname R5 [R5]int g0/0/0 [R5-GigabitEthernet0/0/0]ip add 192.168.70.254 24 [R5-GigabitEthernet0/0/0]int g0/0/1 [R5-GigabitEthernet0/0/1]ip add 192.168.60.254 24 [R5]int LoopBack 0 [R5-LoopBack0]ip add 5.5.5.5 32 R6: <Huawei>sys [Huawei]sysname R6 [R6]int g0/0/0 [R6-GigabitEthernet0/0/0]ip add 192.168.50.254 24 [R6-GigabitEthernet0/0/0]int g0/0/1 [R6-GigabitEthernet0/0/1]ip add 192.168.3.1 24 [R6-GigabitEthernet0/0/1]int g0/0/2 [R6-GigabitEthernet0/0/2]ip add 192.168.40.254 24 [R6]int LoopBack 0 [R6-LoopBack0]ip add 6.6.6.6 32
2)配置 OSPF划分area区域,并宣告直连网段
R6: [R6]ospf 1 router-id 6.6.6.6 [R6-ospf-1]area 0 [R6-ospf-1-area-0.0.0.0]network 192.168.50.0 0.0.0.255 [R6-ospf-1-area-0.0.0.0]network 192.168.40.0 0.0.0.255 [R6-ospf-1-area-0.0.0.0]network 192.168.3.0 0.0.0.255 [R6-ospf-1-area-0.0.0.0]network 6.6.6.6 0.0.0.0 R2: [R2]ospf 1 router-id 2.2.2.2 [R2-ospf-1]area 0 [R2-ospf-1-area-0.0.0.0]network 192.168.50.0 0.0.0.255 [R2-ospf-1-area-0.0.0.0]network 192.168.60.0 0.0.0.255 [R2-ospf-1-area-0.0.0.0]network 192.168.20.0 0.0.0.255 [R2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0 [R2]ospf [R2-ospf-1]area 1 [R2-ospf-1-area-0.0.0.1]network 192.168.10.0 0.0.0.255 R3: [R3]ospf 1 router-id 3.3.3.3 [R3-ospf-1]area 0 [R3-ospf-1-area-0.0.0.0] [R3-ospf-1-area-0.0.0.0]network 192.168.40.0 0.0.0.255 [R3-ospf-1-area-0.0.0.0]network 192.168.50.0 0.0.0.255 [R3-ospf-1-area-0.0.0.0]network 192.168.20.0 0.0.0.255 [R3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0 [R3]ospf [R3-ospf-1]area 2 [R3-ospf-1-area-0.0.0.2]network R5: [R5]ospf 1 router-id 5.5.5.5 [R5-ospf-1]area 0 [R5-ospf-1-area-0.0.0.0]network 192.168.70.0 0.0.0.255 [R5-ospf-1-area-0.0.0.0]network 192.168.60.0 0.0.0.255 [R5-ospf-1-area-0.0.0.0]network 5.5.5.5 0.0.0.0 R1: [R1]ospf 1 router-id 1.1.1.1 [R1-ospf-1]area 1 [R1-ospf-1-area-0.0.0.1]network 192.168.10.0 0.0.0.255 [R1-ospf-1-area-0.0.0.1]network 192.168.1.0 0.0.0.255 [R1-ospf-1-area-0.0.0.1]network 1.1.1.1 0.0.0.0 R4: [R4]ospf 1 router-id 4.4.4.4 [R4-ospf-1]area 2 [R4-ospf-1-area-0.0.0.2]network 192.168.30.0 0.0.0.255 [R4-ospf-1-area-0.0.0.2]network 192.168.2.0 0.0.0.255 [R4-ospf-1-area-0.0.0.2]network 4.4.4.4 0.0.0.0
配置完后通过ping命令,ping三个pc之前网是否己通
3)下面命 令可以看出R1中只和R2建立了领接关系
<R1>dis ospf peer OSPF Process 1 with Router ID 1.1.1.1 Neighbors Area 0.0.0.1 interface 192.168.10.1(GigabitEthernet0/0/0)'s neighbors Router ID: 2.2.2.2 Address: 192.168.10.254 State: Full Mode:Nbr is Master Priority: 1 DR: 192.168.10.254 BDR: 192.168.10.1 MTU: 0 Dead timer due in 34 sec Retrans timer interval: 5 Neighbor is up for 00:16:44 Authentication Sequence: [ 0 ]
4)下面命 令可以看出R4中只和R3建立了领接关系
[R4]dis ospf peer OSPF Process 1 with Router ID 4.4.4.4 Neighbors Area 0.0.0.2 interface 192.168.30.254(GigabitEthernet0/0/0)'s neighbors Router ID: 3.3.3.3 Address: 192.168.30.1 State: Full Mode:Nbr is Slave Priority: 1 DR: 192.168.30.1 BDR: 192.168.30.254 MTU: 0 Dead timer due in 36 sec Retrans timer interval: 5 Neighbor is up for 00:04:18 Authentication Sequence: [ 0 ]
5)从路由器 R2中看出,在area0都有 R3、R6和R5建立邻接关系,并且与area1中的R1也建立了邻接关系。但没有与area 2中的R4建立领接关系。
<R2>dis ospf peer OSPF Process 1 with Router ID 2.2.2.2 Neighbors Area 0.0.0.0 interface 192.168.20.1(GigabitEthernet0/0/1)'s neighbors Router ID: 3.3.3.3 Address: 192.168.20.254 State: Full Mode:Nbr is Master Priority: 1 DR: 192.168.20.1 BDR: 192.168.20.254 MTU: 0 Dead timer due in 38 sec Retrans timer interval: 5 Neighbor is up for 00:32:53 Authentication Sequence: [ 0 ] Neighbors Area 0.0.0.0 interface 192.168.50.1(GigabitEthernet0/0/2)'s neighbors Router ID: 6.6.6.6 Address: 192.168.50.254 State: Full Mode:Nbr is Master Priority: 1 DR: 192.168.50.254 BDR: 192.168.50.1 MTU: 0 Dead timer due in 31 sec Retrans timer interval: 5 Neighbor is up for 00:39:05 Authentication Sequence: [ 0 ] Neighbors Area 0.0.0.0 interface 192.168.60.1(GigabitEthernet0/0/3)'s neighbors Router ID: 5.5.5.5 Address: 192.168.60.254 State: Full Mode:Nbr is Master Priority: 1 DR: 192.168.60.254 BDR: 192.168.60.1 MTU: 0 Dead timer due in 40 sec Retrans timer interval: 5 Neighbor is up for 00:26:08 Authentication Sequence: [ 0 ] Neighbors Area 0.0.0.1 interface 192.168 Router ID: 1.1.1.1 Address: 192.168.10. 1 State: Full Mode:Nbr is Slave Priority: 1 DR: 192.168.10.254 BDR: 192.168.10.1 MTU: 0 Dead timer due in 30 sec Retrans timer interval: 5 Neighbor is up for 00:19:00 Authentication Sequence: [ 0 ]
sum-net
ABR,如果自己相连的某个区域的lsdb中存在某条sum-net lsa,并且该sum-net lsa的advrouter不是自己的router-id时,就会将这条sum-net lsa的advrouter修改为自己的router-id,并重新计算自己到达这条sum-net lsa的cost值,然后将之泛洪到与自己相连的其他区域中。
在ospf协议中
<R2>dis ospf lsdb OSPF Process 1 with Router ID 2.2.2.2 Link State Database Area: 0.0.0.0 Type LinkState ID AdvRouter Age Len Sequence Metric Router 2.2.2.2 2.2.2.2 271 72 80000010 1 Router 6.6.6.6 6.6.6.6 422 72 80000011 1 Router 5.5.5.5 5.5.5.5 268 60 8000000A 1 Router 3.3.3.3 3.3.3.3 1767 72 8000000F 1 Network 192.168.20.1 2.2.2.2 674 32 80000003 0 Network 192.168.50.254 6.6.6.6 1049 32 80000003 0 Network 192.168.70.1 3.3.3.3 440 32 80000003 0 Network 192.168.40.254 6.6.6.6 697 32 80000003 0 Network 192.168.60.254 5.5.5.5 268 32 80000003 0 Sum-Net 192.168.10.0 2.2.2.2 849 28 80000002 1 Sum-Net 192.168.30.0 3.3.3.3 1751 28 80000001 1 Sum-Net 4.4.4.4 3.3.3.3 792 28 80000001 1 Sum-Net 192.168.2.0 3.3.3.3 812 28 80000001 2 Sum-Net 1.1.1.1 2.2.2.2 1540 28 80000001 1 Sum-Net 192.168.1.0 2.2.2.2 1630 28 80000001 2