扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:论坛管理 来源:zdnet安全频道 2009年1月5日
关键字: MPLS
验证在OSPF的网络环境下,MPLS动态流量工程和BGP4的EBGP和IBGP。
1.本实验验证四个技术点:
a. 路由协议OSPF的运行
b. MPLS的动态流量工程机制
c. BGP4的EBGP和IBGP
d. 承载10万条BGP路由表能力
2. 实验环境:
实验环境如图:
三台骨干的路由器为Area 0的骨干路由器
R5为STUB Area 1、R6为Total NSSA Area 2
三台骨干的路由器运行流量工程
3. 实验方法:
在如图环境中首先通过一系列命令确认MPLS TE隧道的建立、然后在R5上通过Trace命令分别跟踪R4上不同的端口Lo0和FE0端口。会产生不同的效果、到Lo0会从R2直接通过到达R4、到 FE0端口会从R3再到R2到达R4。产生明显的流量工程效果、并能显示出MPLS的标记效果。
在如图环境中通过一系列命令确认OSPF的邻居关系、数据库等是否正常、包括NSSA和STUB域是否正常。
在如图环境中通过一系列命令确认BGP的邻居关系、查看TCP链接、及路由是否正确学到。
4. 配置命令:
mpls traffic-eng tunnels
no mpls traffic-eng auto-bw timers frequency 0
tag-switching tdp router-id Loopback0
!
!
!
!
interface Loopback0
ip address 10.10.10.1 255.255.255.255
no ip directed-broadcast
!
interface Tunnel1
ip unnumbered Loopback0
no ip directed-broadcast
tunnel source Loopback0
tunnel destination 10.10.20.2
tunnel mode mpls traffic-eng
tunnel mpls traffic-eng priority 7 7
tunnel mpls traffic-eng bandwidth 200
tunnel mpls traffic-eng path-option 1 dynamic
!
interface Tunnel2
ip unnumbered Loopback0
no ip directed-broadcast
tunnel source Loopback0
tunnel destination 10.10.20.2
tunnel mode mpls traffic-eng
tunnel mpls traffic-eng priority 7 7
tunnel mpls traffic-eng bandwidth 300
tunnel mpls traffic-eng path-option 1 dynamic
!
interface Multilink1
ip address 10.10.12.1 255.255.255.0
no ip directed-broadcast
mpls traffic-eng tunnels
tag-switching ip
ppp multilink
multilink-group 1
ip rsvp bandwidth 300 300
router ospf 1
router-id 10.10.10.1
log-adjacency-changes
nsf
area 1 stub
passive-interface Loopback0
network 10.10.10.0 0.0.0.255 area 0
network 10.10.11.0 0.0.0.255 area 0
network 10.10.12.0 0.0.0.255 area 0
network 10.10.13.0 0.0.0.255 area 0
network 10.10.15.0 0.0.0.255 area 1
mpls traffic-eng router-id Loopback0
mpls traffic-eng area 0
!
router rip
version 2
network 100.0.0.0
network 222.222.222.0
!
router bgp 100
no synchronization
bgp log-neighbor-changes
neighbor 10.10.20.2 remote-as 100
neighbor 10.10.20.2 update-source Loopback0
neighbor 10.10.30.3 remote-as 100
neighbor 10.10.30.3 update-source Loopback0
no auto-summary
!
ip classless
ip route 10.10.24.44 255.255.255.255 Tunnel2
ip route 10.10.40.4 255.255.255.255 Tunnel1
!
!
logging 10.10.3.99
access-list 101 permit ip 100.100.100.0 0.0.0.255 200.200.200.0 0.0.0.255
route-map MPLStunnel permit 10
match interface FastEthernet2/0/0
set interface Tunnel2
!
route-map MPLStunnel permit 20
match interface FastEthernet2/0/1
set interface Tunnel1
!
5. 确认:
1. OSPF 流量工程:
R1#sh ip rou
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
Gateway of last resort is not set
222.222.222.0/24 is variably subnetted, 2 subnets, 2 masks
C 222.222.222.2/32 is directly connected, Serial4/1/3
C 222.222.222.0/24 is directly connected, Serial4/1/3
100.0.0.0/24 is subnetted, 2 subnets
C 100.100.100.0 is directly connected, FastEthernet10/0/0
C 100.100.110.0 is directly connected, FastEthernet10/0/1
10.0.0.0/8 is variably subnetted, 19 subnets, 2 masks
O 10.10.3.0/24 [110/2] via 10.10.13.3, 00:02:25, POS4/0/0
C 10.10.11.0/24 is directly connected, FastEthernet2/0/0
C 10.10.10.1/32 is directly connected, Loopback0
C 10.10.12.0/24 is directly connected, Multilink1
C 10.10.13.0/24 is directly connected, POS4/0/0
C 10.10.12.2/32 is directly connected, Multilink1
C 10.10.15.0/24 is directly connected, FastEthernet2/0/1
--More-- O IA 10.10.22.0/24 [110/3] via 10.10.13.3, 00:02:26, POS4/0/0
O 10.10.20.2/32 [110/3] via 10.10.13.3, 00:02:26, POS4/0/0
O 10.10.23.0/24 [110/2] via 10.10.13.3, 00:02:26, POS4/0/0
O 10.10.24.0/24 [110/3] via 10.10.13.3, 00:02:26, POS4/0/0
O IA 10.10.26.0/24 [110/18] via 10.10.13.3, 00:02:26, POS4/0/0
O 10.10.30.3/32 [110/2] via 10.10.13.3, 00:02:26, POS4/0/0
O 10.10.33.0/24 [110/2] via 10.10.13.3, 00:02:26, POS4/0/0
S 10.10.40.4/32 is directly connected, Tunnel1
S 10.10.24.44/32 is directly connected, Tunnel2
O 10.10.50.5/32 [110/2] via 10.10.15.5, 00:04:51, FastEthernet2/0/1
O E2 10.10.99.0/24 [110/20] via 10.10.13.3, 00:02:26, POS4/0/0
O 10.10.100.0/24 [110/3] via 10.10.13.3, 00:02:27, POS4/0/0
R1# sh mpls tr
R1# sh mpls traffic-eng tu
Name: R1_t1 (Tunnel1) Destination: 10.10.20.2
Status:
Admin: up Oper: up Path: valid Signalling: connected
path option 1, type dynamic (Basis for Setup, path weight 21)
Config Parameters:
Bandwidth: 200 kbps (Global) Priority: 7 7 Affinity: 0x0/0xFFFF
Metric Type: TE (default)
AutoRoute: disabled LockDown: disabled Loadshare: 200 bw-based
auto-bw: disabled
InLabel : -
OutLabel : Multilink1, implicit-null
RSVP Signalling Info:
Src 10.10.10.1, Dst 10.10.20.2, Tun_Id 1, Tun_Instance 262
RSVP Path Info:
My Address: 10.10.10.1
Explicit Route: 10.10.12.2 10.10.20.2
Record Route: NONE
Tspec: ave rate=200 kbits, burst=1000 bytes, peak rate=200 kbits
RSVP Resv Info:
--More-- Record Route: NONE
Fspec: ave rate=200 kbits, burst=1000 bytes, peak rate=Inf
History:
Tunnel:
Time since created: 2 hours, 10 minutes
Time since path change: 2 minutes, 49 seconds
Current LSP:
Uptime: 2 minutes, 49 seconds
Prior LSP:
ID: path option 1 [257]
Removal Trigger: path verification failed
Name: R1_t2 (Tunnel2) Destination: 10.10.20.2
Status:
Admin: up Oper: up Path: valid Signalling: connected
path option 1, type dynamic (Basis for Setup, path weight 2)
Config Parameters:
Bandwidth: 300 kbps (Global) Priority: 7 7 Affinity: 0x0/0xFFFF
Metric Type: TE (default)
AutoRoute: disabled LockDown: disabled Loadshare: 300 bw-based
auto-bw: disabled
--More--
InLabel : -
OutLabel : POS4/0/0, 25
RSVP Signalling Info:
Src 10.10.10.1, Dst 10.10.20.2, Tun_Id 2, Tun_Instance 283
RSVP Path Info:
My Address: 10.10.10.1
Explicit Route: 10.10.13.3 10.10.23.3 10.10.23.2 10.10.20.2
Record Route: NONE
Tspec: ave rate=300 kbits, burst=1000 bytes, peak rate=300 kbits
RSVP Resv Info:
Record Route: NONE
Fspec: ave rate=300 kbits, burst=1000 bytes, peak rate=Inf
History:
Tunnel:
Time since created: 2 hours, 10 minutes
Time since path change: 5 minutes, 15 seconds
Current LSP:
Uptime: 5 minutes, 15 seconds
Prior LSP:
ID: path option 1 [282]
Removal Trigger: path error
R1# sh ip bgp ip injter mp mpls f
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
16 Untagged 222.222.222.2/32 0 Se4/1/3 point2point
17 Untagged 10.10.12.2/32 0 Mu1 point2point
18 Pop tag 10.10.33.0/24 0 PO4/0/0 point2point
19 Pop tag 10.10.23.0/24 0 PO4/0/0 point2point
20 22 10.10.24.0/24 0 PO4/0/0 point2point
21 Pop tag 10.10.3.0/24 203 PO4/0/0 point2point
22 21 10.10.20.2/32 0 PO4/0/0 point2point
23 Pop tag 10.10.30.3/32 0 PO4/0/0 point2point
24 Untagged[T] 10.10.40.4/32 0 Tu1 point2point
25 19 10.10.100.0/24 0 PO4/0/0 point2point
26 24 10.10.22.0/24 0 PO4/0/0 point2point
27 23 10.10.26.0/24 0 PO4/0/0 point2point
28 30 10.10.99.0/24 0 PO4/0/0 point2point
29 Untagged[T] 10.10.24.44/32 0 Tu2 point2point
30 Untagged 10.10.50.5/32 0 Fa2/0/1 10.10.15.5
[T] Forwarding through a TSP tunnel.
View additional tagging info with the 'detail' option
R1#telnet 10.10.50.5
Trying 10.10.50.5 ... Open
User Access Verification
Password:
R5-3640#trace 10.10.40.4
Type escape sequence to abort.
Tracing the route to 10.10.40.4
1 10.10.15.1 [MPLS: Label 24 Exp 0] 4 msec 0 msec 0 msec
2 10.10.12.2 4 msec 0 msec 0 msec
3 10.10.24.44 4 msec 0 msec *
R5-3640#trace 10.10.40.4 24.44
Type escape sequence to abort.
Tracing the route to 10.10.24.44
1 10.10.15.1 [MPLS: Label 20 Exp 0] 0 msec 0 msec 4 msec
2 10.10.13.3 [MPLS: Label 22 Exp 0] 0 msec 0 msec 4 msec
3 10.10.23.2 0 msec 0 msec 4 msec
4 10.10.24.44 0 msec 0 msec *
R5-3640#sh ip rou
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route
Gateway of last resort is 10.10.15.1 to network 0.0.0.0
10.0.0.0/8 is variably subnetted, 16 subnets, 2 masks
O IA 10.10.3.0/24 [110/3] via 10.10.15.1, 00:07:55, FastEthernet0/0
O IA 10.10.11.0/24 [110/2] via 10.10.15.1, 00:07:55, FastEthernet0/0
O IA 10.10.10.1/32 [110/2] via 10.10.15.1, 00:07:55, FastEthernet0/0
O IA 10.10.12.0/24 [110/22] via 10.10.15.1, 00:07:55, FastEthernet0/0
O IA 10.10.13.0/24 [110/2] via 10.10.15.1, 00:07:55, FastEthernet0/0
C 10.10.15.0/24 is directly connected, FastEthernet0/0
O IA 10.10.22.0/24 [110/4] via 10.10.15.1, 00:07:55, FastEthernet0/0
O IA 10.10.20.2/32 [110/4] via 10.10.15.1, 00:07:55, FastEthernet0/0
O IA 10.10.23.0/24 [110/3] via 10.10.15.1, 00:07:55, FastEthernet0/0
O IA 10.10.24.0/24 [110/4] via 10.10.15.1, 00:07:55, FastEthernet0/0
O IA 10.10.26.0/24 [110/19] via 10.10.15.1, 00:07:55, FastEthernet0/0
O IA 10.10.30.3/32 [110/3] via 10.10.15.1, 00:07:55, FastEthernet0/0
O IA 10.10.33.0/24 [110/3] via 10.10.15.1, 00:07:56, FastEthernet0/0
O IA 10.10.40.4/32 [110/5] via 10.10.15.1, 00:07:56, FastEthernet0/0
C 10.10.50.0/24 is directly connected, Loopback0
O IA 10.10.100.0/24 [110/4] via 10.10.15.1, 00:07:56, FastEthernet0/0
O*IA 0.0.0.0/0 [110/2] via 10.10.15.1, 00:07:56, FastEthernet0/0
2. OSPF:
R5-3640#sh ip rou
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route
Gateway of last resort is 10.10.15.1 to network 0.0.0.0
10.0.0.0/8 is variably subnetted, 16 subnets, 2 masks
O IA 10.10.3.0/24 [110/3] via 10.10.15.1, 00:07:55, FastEthernet0/0
O IA 10.10.11.0/24 [110/2] via 10.10.15.1, 00:07:55, FastEthernet0/0
O IA 10.10.10.1/32 [110/2] via 10.10.15.1, 00:07:55, FastEthernet0/0
O IA 10.10.12.0/24 [110/22] via 10.10.15.1, 00:07:55, FastEthernet0/0
O IA 10.10.13.0/24 [110/2] via 10.10.15.1, 00:07:55, FastEthernet0/0
C 10.10.15.0/24 is directly connected, FastEthernet0/0
O IA 10.10.22.0/24 [110/4] via 10.10.15.1, 00:07:55, FastEthernet0/0
O IA 10.10.20.2/32 [110/4] via 10.10.15.1, 00:07:55, FastEthernet0/0
O IA 10.10.23.0/24 [110/3] via 10.10.15.1, 00:07:55, FastEthernet0/0
O IA 10.10.24.0/24 [110/4] via 10.10.15.1, 00:07:55, FastEthernet0/0
O IA 10.10.26.0/24 [110/19] via 10.10.15.1, 00:07:55, FastEthernet0/0
O IA 10.10.30.3/32 [110/3] via 10.10.15.1, 00:07:55, FastEthernet0/0
O IA 10.10.33.0/24 [110/3] via 10.10.15.1, 00:07:56, FastEthernet0/0
O IA 10.10.40.4/32 [110/5] via 10.10.15.1, 00:07:56, FastEthernet0/0
C 10.10.50.0/24 is directly connected, Loopback0
O IA 10.10.100.0/24 [110/4] via 10.10.15.1, 00:07:56, FastEthernet0/0
O*IA 0.0.0.0/0 [110/2] via 10.10.15.1, 00:07:56, FastEthernet0/0
R5-3640#sh ip pos ospf da
OSPF Router with ID (10.10.50.5) (Process ID 1)
Router Link States (Area 1)
Link ID ADV Router Age Seq# Checksum Link count
10.10.10.1 10.10.10.1 500 0x80000010 0x8D0D 1
10.10.50.5 10.10.50.5 504 0x80000011 0x7F62 2
Net Link States (Area 1)
Link ID ADV Router Age Seq# Checksum
10.10.15.5 10.10.50.5 504 0x80000001 0xC697
Summary Net Link States (Area 1)
Link ID ADV Router Age Seq# Checksum
0.0.0.0 10.10.10.1 501 0x8000000D 0xA270
10.10.3.0 10.10.10.1 775 0x80000001 0xA85E
10.10.10.1 10.10.10.1 501 0x80000007 0x3BBE
10.10.11.0 10.10.10.1 501 0x80000007 0x3ABF
10.10.12.0 10.10.10.1 501 0x80000007 0xF7EC
10.10.13.0 10.10.10.1 501 0x80000007 0x24D3
10.10.20.2 10.10.10.1 501 0x80000004 0xDC13
10.10.22.0 10.10.10.1 502 0x80000006 0xD617
10.10.23.0 10.10.10.1 502 0x80000009 0xBB2F
10.10.24.0 10.10.10.1 502 0x80000004 0xC429
10.10.26.0 10.10.10.1 502 0x80000004 0x4597
10.10.30.3 10.10.10.1 502 0x80000007 0x548E
10.10.33.0 10.10.10.1 502 0x80000007 0x5191
10.10.40.4 10.10.10.1 502 0x80000004 0xF5E2
10.10.100.0 10.10.10.1 502 0x80000007 0x7727
R5-3640# exit
[Connection to 10.10.50.5 closed by foreign host]
R1#sh ip rou
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
Gateway of last resort is not set
222.222.222.0/24 is variably subnetted, 2 subnets, 2 masks
C 222.222.222.2/32 is directly connected, Serial4/1/3
C 222.222.222.0/24 is directly connected, Serial4/1/3
100.0.0.0/24 is subnetted, 2 subnets
C 100.100.100.0 is directly connected, FastEthernet10/0/0
C 100.100.110.0 is directly connected, FastEthernet10/0/1
10.0.0.0/8 is variably subnetted, 19 subnets, 2 masks
O 10.10.3.0/24 [110/2] via 10.10.13.3, 00:05:57, POS4/0/0
C 10.10.11.0/24 is directly connected, FastEthernet2/0/0
C 10.10.10.1/32 is directly connected, Loopback0
C 10.10.12.0/24 is directly connected, Multilink1
C 10.10.13.0/24 is directly connected, POS4/0/0
C 10.10.12.2/32 is directly connected, Multilink1
C 10.10.15.0/24 is directly connected, FastEthernet2/0/1
--More-- O IA 10.10.22.0/24 [110/3] via 10.10.13.3, 00:05:58, POS4/0/0
O 10.10.20.2/32 [110/3] via 10.10.13.3, 00:05:58, POS4/0/0
O 10.10.23.0/24 [110/2] via 10.10.13.3, 00:05:58, POS4/0/0
O 10.10.24.0/24 [110/3] via 10.10.13.3, 00:05:58, POS4/0/0
O IA 10.10.26.0/24 [110/18] via 10.10.13.3, 00:05:58, POS4/0/0
O 10.10.30.3/32 [110/2] via 10.10.13.3, 00:05:58, POS4/0/0
O 10.10.33.0/24 [110/2] via 10.10.13.3, 00:05:58, POS4/0/0
S 10.10.40.4/32 is directly connected, Tunnel1
S 10.10.24.44/32 is directly connected, Tunnel2
O 10.10.50.5/32 [110/2] via 10.10.15.5, 00:08:23, FastEthernet2/0/1
O E2 10.10.99.0/24 [110/20] via 10.10.13.3, 00:05:58, POS4/0/0
O 10.10.100.0/24 [110/3] via 10.10.13.3, 00:05:59, POS4/0/0
R1#sh ip ospf nei
Neighbor ID Pri State Dead Time Address Interface
10.10.20.2 0 FULL/ - 00:00:36 10.10.12.2 Multilink1
10.10.30.3 0 FULL/ - 00:00:39 10.10.13.3 POS4/0/0
10.10.50.5 1 FULL/DR 00:00:38 10.10.15.5 FastEthernet2/0/1
R1#sh ip ospf inter
Multilink1 is up, line protocol is up
Internet Address 10.10.12.1/24, Area 0
Process ID 1, Router ID 10.10.10.1, Network Type POINT_TO_POINT, Cost: 21
Transmit Delay is 1 sec, State POINT_TO_POINT,
Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
Hello due in 00:00:03
Index 5/5, flood queue length 0
Next 0x0(0)/0x0(0)
Last flood scan length is 1, maximum is 14
Last flood scan time is 0 msec, maximum is 0 msec
Neighbor Count is 1, Adjacent neighbor count is 1
3. EBGP/IBGP
R2#sh ip bgp sum
BGP router identifier 10.10.20.2, local AS number 100
BGP table version is 100001, main routing table version 100001
100000 network entries and 100000 paths using 14500000 bytes of memory
1 BGP path attribute entries using 56 bytes of memory
1 BGP AS-PATH entries using 24 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP activity 100000/476 prefixes, 100000/0 paths, scan interval 60 secs
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.10.10.1 4 100 37 4948 100001 0 0 00:15:11 0
10.10.30.3 4 100 32 2502 100001 0 0 00:28:55 0
150.150.150.2 4 400 179 59 100001 0 0 00:27:30 100000
R2#10.10.10.1
Trying 10.10.10.1 ...
% Connection refused by remote host
R2#10.10.10.1
Trying 10.10.10.1 ...
% Connection refused by remote host
R3#sh ip bgp sum
BGP router identifier 10.10.30.3, local AS number 100
BGP table version is 1, main routing table version 1
100000 network entries and 100000 paths using 14500000 bytes of memory
1 BGP path attribute entries using 56 bytes of memory
1 BGP AS-PATH entries using 24 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP activity 100000/390 prefixes, 100000/0 paths, scan interval 60 secs
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.10.10.1 4 100 35 36 1 0 0 00:15:41 0
10.10.20.2 4 100 2503 33 1 0 0 00:29:15 100000
R3#exit
[Connection to 10.10.30.3 closed by foreign host]
R1#sh ip bgp sum
BGP router identifier 10.10.10.1, local AS number 100
BGP table version is 1, main routing table version 1
100000 network entries and 100000 paths using 14500000 bytes of memory
1 BGP path attribute entries using 56 bytes of memory
1 BGP AS-PATH entries using 24 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP activity 100000/112 prefixes, 100000/0 paths, scan interval 60 secs
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.10.20.2 4 100 2459 19 1 0 0 00:15:43 100000
10.10.30.3 4 100 19 19 1 0 0 00:15:53 0
R1#
6. 结果:
拥有OSPF 的NSSA、STUB、等功能
拥有EBGP、IBGP的功能
拥有基于OSPF的流量工程
拥有承载10万条BGP路由表能力
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。