华为运营商级路由器配置示例 | 配置BGP VPLS和LDP VPLS interworking示例
组网需求
如图1,PE1和SPE之间部署LDP方式VPLS,SPE、PE2、PE3之间部署BGP方式VPLS。为实现CE1、CE2和CE3设备之间的互通,需要在LDP方式VPLS和BGP方式VPLS之间的边缘节点SPE上部署混合VSI,在此VSI实例下创建LDP信令和BGP信令。
图1 配置BGP VPLS和LDP VPLS interworking示例
配置思路
在骨干网上配置路由协议实现互通,并配置MPLS基本能力。
在PE和SPE之间建立LSP隧道。
在PE和SPE上使能MPLS L2VPN。
在PE和SPE上使能BGP对等体交换VPLS信息的能力。
在SPE上配置混合VSI实例
将AC接口与VSI进行绑定。
操作步骤
1.配置各设备的IP地址。
# 配置CE1。
<HUAWEI> system-view
[~HUAWEI] sysname CE1
[*HUAWEI] commit
[~CE1] interface gigabitethernet 1/0/0.1
[*CE1-GigabitEthernet1/0/0.1] ip address 10.1.1.1 24
[*CE1-GigabitEthernet1/0/0.1] quit
[*CE1] commit
# 配置CE2。
<HUAWEI> system-view
[~HUAWEI] sysname CE2
[*HUAWEI] commit
[~CE2] interface gigabitethernet 1/0/0.1
[*CE2-GigabitEthernet1/0/0.1] ip address 10.1.1.2 24
[*CE2-GigabitEthernet1/0/0.1] quit
[*CE2] commit
# 配置CE3。
<HUAWEI> system-view
[~HUAWEI] sysname CE3
[*HUAWEI] commit
[~CE3] interface gigabitethernet 1/0/0.1
[*CE3-GigabitEthernet1/0/0.1] ip address 10.1.1.3 24
[*CE3-GigabitEthernet1/0/0.1] quit
[*CE3] commit
# 配置PE1。
<HUAWEI> system-view
[~HUAWEI] sysname PE1
[*HUAWEI] commit
[~PE1] interface loopback1
[*PE1-Loopback1] ip address 1.1.1.1 32
[*PE1-Loopback1] quit
[*PE1] interface gigabitethernet 2/0/0
[*PE1-GigabitEthernet2/0/0] ip address 10.10.1.1 24
[*PE1-GigabitEthernet2/0/0] quit
[*PE1] commit
# 配置SPE。
<HUAWEI> system-view
[~HUAWEI] sysname SPE
[*HUAWEI] commit
[~SPE] interface loopback1
[*SPE-Loopback1] ip address 2.2.2.2 32
[*SPE-Loopback1] quit
[*SPE] interface gigabitethernet 1/0/0
[*SPE-GigabitEthernet1/0/0] ip address 10.10.1.2 24
[*SPE-GigabitEthernet1/0/0] quit
[*SPE] interface gigabitethernet 2/0/0
[*SPE-GigabitEthernet2/0/0] ip address 10.20.1.1 24
[*SPE-GigabitEthernet2/0/0] quit
[*SPE] interface gigabitethernet 3/0/0
[*SPE-GigabitEthernet3/0/0] ip address 10.30.1.1 24
[*SPE-GigabitEthernet3/0/0] quit
[*SPE] commit
# 配置PE2。
<HUAWEI> system-view
[~HUAWEI] sysname PE2
[*HUAWEI] commit
[~PE2] interface loopback1
[*PE2-Loopback1] ip address 3.3.3.3 32
[*PE2-Loopback1] quit
[*PE2] interface gigabitethernet 2/0/0
[*PE2-GigabitEthernet2/0/0] ip address 10.20.1.2 24
[*PE2-GigabitEthernet2/0/0] quit
[*PE2] commit
# 配置PE3。
<HUAWEI> system-view
[~HUAWEI] sysname PE3
[*HUAWEI] commit
[~PE3] interface loopback1
[*PE3-Loopback1] ip address 4.4.4.4 32
[*PE3-Loopback1] quit
[*PE3] interface gigabitethernet 2/0/0
[*PE2-GigabitEthernet2/0/0] ip address 10.30.1.2 24
[*PE2-GigabitEthernet2/0/0] quit
[*PE2] commit
2.配置IGP,本示例使用OSPF。
# 配置PE1。
[~PE1] ospf 1
[*PE1-ospf-1] area 0.0.0.0
[*PE1-ospf-1-area-0.0.0.0] network 1.1.1.1 0.0.0.0
[*PE1-ospf-1-area-0.0.0.0] network 10.10.1.0 0.0.0.255
[*PE1-ospf-1-area-0.0.0.0] quit
[*PE1-ospf-1] quit
[*PE1] commit
# 配置SPE。
[~SPE] ospf 1
[*SPE-ospf-1] area 0.0.0.0
[*SPE-ospf-1-area-0.0.0.0] network 2.2.2.2 0.0.0.0
[*SPE-ospf-1-area-0.0.0.0] network 10.10.1.0 0.0.0.255
[*SPE-ospf-1-area-0.0.0.0] network 10.20.1.0 0.0.0.255
[*SPE-ospf-1-area-0.0.0.0] network 10.30.1.0 0.0.0.255
[*SPE-ospf-1-area-0.0.0.0] quit
[*SPE-ospf-1] quit
[*SPE] commit
# 配置PE2。
[~PE2] ospf 1
[*PE2-ospf-1] area 0.0.0.0
[*PE2-ospf-1-area-0.0.0.0] network 3.3.3.3 0.0.0.0
[*PE2-ospf-1-area-0.0.0.0] network 10.20.1.0 0.0.0.255
[*PE2-ospf-1-area-0.0.0.0] quit
[*PE2-ospf-1] quit
[*PE2] commit
# 配置PE3。
[~PE3] ospf 1
[*PE3-ospf-1] area 0.0.0.0
[*PE3-ospf-1-area-0.0.0.0] network 4.4.4.4 0.0.0.0
[*PE3-ospf-1-area-0.0.0.0] network 10.30.1.0 0.0.0.255
[*PE3-ospf-1-area-0.0.0.0] quit
[*PE3-ospf-1] quit
[*PE3] commit
3.使能MPLS,建立LSP隧道
# 配置PE1。
[~PE1] mpls lsr-id 1.1.1.1
[*PE1] mpls
[*PE1-mpls] quit
[*PE1] mpls ldp
[*PE1-mpls-ldp] quit
[*PE1] interface gigabitethernet 2/0/0
[*PE1-GigabitEthernet2/0/0] mpls
[*PE1-GigabitEthernet2/0/0] mpls ldp
[*PE1-GigabitEthernet2/0/0] quit
[*PE1] commit
# 配置SPE。
[~SPE] mpls lsr-id 2.2.2.2
[*SPE] mpls
[*SPE-mpls] quit
[*SPE] mpls ldp
[*SPE-mpls-ldp] quit
[*SPE] interface gigabitethernet 1/0/0
[*SPE-GigabitEthernet1/0/0] mpls
[*SPE-GigabitEthernet1/0/0] mpls ldp
[*SPE-GigabitEthernet1/0/0] quit
[*SPE] interface gigabitethernet 2/0/0
[*SPE-GigabitEthernet2/0/0] mpls
[*SPE-GigabitEthernet2/0/0] mpls ldp
[*SPE-GigabitEthernet2/0/0] quit
[*SPE] interface gigabitethernet 3/0/0
[*SPE-GigabitEthernet3/0/0] mpls
[*SPE-GigabitEthernet3/0/0] mpls ldp
[*SPE-GigabitEthernet3/0/0] quit
[*SPE] commit
# 配置PE2。
[~PE2] mpls lsr-id 3.3.3.3
[*PE2] mpls
[*PE2-mpls] quit
[*PE2] mpls ldp
[*PE2-mpls-ldp] quit
[*PE2] interface gigabitethernet 2/0/0
[*PE2-GigabitEthernet2/0/0] mpls
[*PE2-GigabitEthernet2/0/0] mpls ldp
[*PE2-GigabitEthernet2/0/0] quit
[*PE2] commit
# 配置PE3。
[~PE3] mpls lsr-id 4.4.4.4
[*PE3] mpls
[*PE3-mpls] quit
[*PE3] mpls ldp
[*PE3-mpls-ldp] quit
[*PE3] interface gigabitethernet 2/0/0
[*PE3-GigabitEthernet2/0/0] mpls
[*PE3-GigabitEthernet2/0/0] mpls ldp
[*PE3-GigabitEthernet2/0/0] quit
[*PE3] commit
4.在PE1和SPE上配置LDP方式VPLS,在SPE、PE2和PE3之间配置BGP方式VPLS
# 在PE1上配置LDP方式VPLS。
[~PE1] mpls ldp remote-peer 2.2.2.2
[*PE1-mpls-ldp-remote-2.2.2.2] remote-ip 2.2.2.2
[*PE1-mpls-ldp-remote-2.2.2.2] quit
[*PE1] mpls l2vpn
[*PE1-l2vpn] quit
[*PE1] vsi vsi1
[*PE1-vsi-vsi1] pwsignal ldp
[*PE1-vsi-vsi1-ldp] vsi-id 2
[*PE1-vsi-vsi1-ldp] peer 2.2.2.2
[*PE1-vsi-vsi1-ldp] quit
[*PE1-vsi-vsi1] quit
[*PE1] commit
# 在SPE上配置到PE1的LDP方式VPLS,到PE2和PE3的BGP方式VPLS。
[~SPE] mpls ldp remote-peer 1.1.1.1
[*SPE-mpls-ldp-remote-1.1.1.1] remote-ip 1.1.1.1
[*SPE-mpls-ldp-remote-1.1.1.1] quit
[*SPE] mpls l2vpn
[*SPE-l2vpn] quit
[*SPE] vsi vsi1
[*SPE-vsi-vsi1] pwsignal ldp
[*SPE-vsi-vsi1-ldp] vsi-id 2
[*SPE-vsi-vsi1-ldp] peer 1.1.1.1 upe
[*SPE-vsi-vsi1-ldp] quit
[*SPE-vsi-vsi1] quit
[~SPE] bgp 100
[*SPE-bgp] peer 3.3.3.3 as-number 100
[*SPE-bgp] peer 3.3.3.3 connect-interface loopback1
[*SPE-bgp] peer 4.4.4.4 as-number 100
[*SPE-bgp] peer 4.4.4.4 connect-interface loopback1
[*SPE-bgp] l2vpn-ad-family
[*SPE-bgp-af-l2vpn-ad] peer 3.3.3.3 enable
[*SPE-bgp-af-l2vpn-ad] peer 3.3.3.3 signaling vpls
[*SPE-bgp-af-l2vpn-ad] peer 4.4.4.4 enable
[*SPE-bgp-af-l2vpn-ad] peer 4.4.4.4 signaling vpls
[*SPE-bgp-af-l2vpn-ad] quit
[*SPE-bgp] quit
[*SPE] vsi vsi1
[*SPE-vsi-vsi1] pwsignal bgp
[*SPE-vsi-vsi1-bgp] route-distinguisher 100:1
[*SPE-vsi-vsi1-bgp] vpn-target 1:1 import-extcommunity
[*SPE-vsi-vsi1-bgp] vpn-target 1:1 export-extcommunity
[*SPE-vsi-vsi1-bgp] site 1 range 5 default-offset 0
[*SPE-vsi-vsi1-bgp] quit
[*SPE-vsi-vsi1] quit
[*SPE] commit
# 在PE2上配置BGP方式VPLS。
[~PE2] mpls l2vpn
[*PE2-l2vpn] quit
[~PE2] bgp 100
[*PE2-bgp] peer 2.2.2.2 as-number 100
[*PE2-bgp] peer 2.2.2.2 connect-interface loopback1
[*PE2-bgp] peer 4.4.4.4 as-number 100
[*PE2-bgp] peer 4.4.4.4 connect-interface loopback1
[*PE2-bgp] l2vpn-ad-family
[*PE2-bgp-af-l2vpn-ad] peer 2.2.2.2 enable
[*PE2-bgp-af-l2vpn-ad] peer 2.2.2.2 signaling vpls
[*PE2-bgp-af-l2vpn-ad] peer 4.4.4.4 enable
[*PE2-bgp-af-l2vpn-ad] peer 4.4.4.4 signaling vpls
[*PE2-bgp-af-l2vpn-ad] quit
[*PE2-bgp] quit
[*PE2] vsi vsi1 auto
[*PE2-vsi-vsi1] pwsignal bgp
[*PE2-vsi-vsi1-bgp] route-distinguisher 100:1
[*PE2-vsi-vsi1-bgp] vpn-target 1:1 import-extcommunity
[*PE2-vsi-vsi1-bgp] vpn-target 1:1 export-extcommunity
[*PE2-vsi-vsi1-bgp] site 2 range 5 default-offset 0
[*PE2-vsi-vsi1-bgp] quit
[*PE2-vsi-vsi1] quit
[*PE2] commit
# 在PE3上配置BGP方式VPLS。
[~PE3] mpls l2vpn
[*PE3-l2vpn] quit
[~PE3] bgp 100
[*PE3-bgp] peer 2.2.2.2 as-number 100
[*PE3-bgp] peer 2.2.2.2 connect-interface loopback1
[*PE3-bgp] peer 3.3.3.3 as-number 100
[*PE3-bgp] peer 3.3.3.3 connect-interface loopback1
[*PE3-bgp] l2vpn-ad-family
[*PE3-bgp-af-l2vpn-ad] peer 2.2.2.2 enable
[*PE3-bgp-af-l2vpn-ad] peer 2.2.2.2 signaling vpls
[*PE3-bgp-af-l2vpn-ad] peer 3.3.3.3 enable
[*PE3-bgp-af-l2vpn-ad] peer 3.3.3.3 signaling vpls
[*PE3-bgp-af-l2vpn-ad] quit
[*PE3-bgp] quit
[*PE3] vsi vsi1 auto
[*PE3-vsi-vsi1] pwsignal bgp
[*PE3-vsi-vsi1-bgp] route-distinguisher 100:1
[*PE3-vsi-vsi1-bgp] vpn-target 1:1 import-extcommunity
[*PE3-vsi-vsi1-bgp] vpn-target 1:1 export-extcommunity
[*PE3-vsi-vsi1-bgp] site 3 range 5 default-offset 0
[*PE3-vsi-vsi1-bgp] quit
[*PE3-vsi-vsi1] quit
[*PE3] commit
5.在PE上将VSI与AC接口进行绑定
# 在PE1上创建子接口,允许接收VLAN10的报文,绑定VSI。
[~PE1] interface gigabitethernet1/0/0.1
[*PE1-GigabitEthernet1/0/0.1] shutdown
[*PE1-GigabitEthernet1/0/0.1] vlan-type dot1q 10
[*PE1-GigabitEthernet1/0/0.1] l2 binding vsi vsi1
[*PE1-GigabitEthernet1/0/0.1] undo shutdown
[*PE1-GigabitEthernet1/0/0.1] quit
[*PE1] commit
# 在PE2上创建子接口,允许接收VLAN10的报文,绑定VSI。
[~PE2] interface gigabitethernet1/0/0.1
[*PE2-GigabitEthernet1/0/0.1] shutdown
[*PE2-GigabitEthernet1/0/0.1] vlan-type dot1q 10
[*PE2-GigabitEthernet1/0/0.1] l2 binding vsi vsi1
[*PE2-GigabitEthernet1/0/0.1] undo shutdown
[*PE2-GigabitEthernet1/0/0.1] quit
[*PE2] commit
# 在PE3上创建子接口,允许接收VLAN10的报文,绑定VSI。
[~PE3] interface gigabitethernet1/0/0.1
[*PE3-GigabitEthernet1/0/0.1] shutdown
[*PE3-GigabitEthernet1/0/0.1] vlan-type dot1q 10
[*PE3-GigabitEthernet1/0/0.1] l2 binding vsi vsi1
[*PE3-GigabitEthernet1/0/0.1] undo shutdown
[*PE3-GigabitEthernet1/0/0.1] quit
[*PE3] commit
6.配置CE允许VLAN 10的报文通过
# 配置CE1
[~CE1] interface gigabitethernet1/0/0.1
[*CE1-GigabitEthernet1/0/0.1] vlan-type dot1q 10
[*CE1-GigabitEthernet1/0/0.1] quit
[*CE1] commit
# 配置CE2
[~CE2] interface gigabitethernet1/0/0.1
[*CE2-GigabitEthernet1/0/0.1] vlan-type dot1q 10
[*CE2-GigabitEthernet1/0/0.1] quit
[*CE2] commit
# 配置CE3
[~CE3] interface gigabitethernet1/0/0.1
[*CE3-GigabitEthernet1/0/0.1] vlan-type dot1q 10
[*CE3-GigabitEthernet1/0/0.1] quit
[*CE3] commit
7.验证配置结果
完成上述配置后,执行display vpls connection命令,可以看到建立的VPLS状态为up。以SPE的配置为例:
[~SPE] display vpls connection
3 total connections,
connections: 3 up, 0 down, 1 ldp, 2 bgp, 0 bgpadVSI Name: vsi20 Signaling: ldp bgp
VsiID EncapType PeerAddr InLabel OutLabel VCState
2 vlan 1.1.1.1 32828 32828 up
SiteID RD PeerAddr InLabel OutLabel VCState
2 100:1 3.3.3.3 294930 294929 up
3 100:1 4.4.4.4 294931 294929 up
执行display vsi name vsi1 verbose命令,可以看到名字为bgp1的VSI建立了的PW,VSI状态为UP。以SPE的配置为例:
[~SPE] display vsi name vsi1 verbose***VSI Name : vsi1Administrator VSI : noIsolate Spoken : disableVSI Index : 1PW Signaling : ldp bgpMember Discovery Style : --Bridge-domain Mode : disablePW MAC Learn Style : unqualifyEncapsulation Type : vlanMTU : 1500Diffserv Mode : uniformService Class : --Color : --DomainId : 255Domain Name : Ignore AcState : disableP2P VSI : disableMulticast Fast Swicth : disable Create Time : 0 days, 1 hours, 59 minutes, 57 secondsVSI State : upResource Status : --VSI ID : 2*Peer Router ID : 1.1.1.1primary or secondary : primaryignore-standby-state : noVC Label : 32828Peer Type : dynamicSession : upTunnel ID : 0x0000000001004c4b42 Broadcast Tunnel ID : --Broad BackupTunnel ID : -- CKey : 1NKey : 3808428152Stp Enable : 0PwIndex : 1Control Word : disableBGP RD : 100:1SiteID/Range/Offset : 1/5/0Import vpn target : 100:1Export vpn target : 100:1Remote Label Block : 294928/5/0 294928/5/0 Local Label Block : 0/294928/5/0 **PW Information:*Peer Ip Address : 1.1.1.1PW State : upLocal VC Label : 32828Remote VC Label : 32828Remote Control Word : disablePW Type : labelTunnel ID : 0x0000000001004c4b42 Broadcast Tunnel ID : --Broad BackupTunnel ID : --Ckey : 1Nkey : 3808428152Main PW Token : 0x0Slave PW Token : 0x0Tnl Type : ldpOutInterface : Backup OutInterface : --Stp Enable : 0Mac Flapping : 0PW Last Up Time : 2014/09/23 07:45:31PW Total Up Time : 0 days, 1 hours, 54 minutes, 55 seconds*Peer Ip Address : 3.3.3.3PW State : upLocal VC Label : 294930Remote VC Label : 294929Remote Control Word : defaultPW Type : labelTunnel ID : 0x0000000001004c4b43 Broadcast Tunnel ID : --Broad BackupTunnel ID : --Ckey : 2Nkey : 3808428188Main PW Token : 0x0Slave PW Token : 0x0Tnl Type : ldpOutInterface : Backup OutInterface : --Stp Enable : 0Mac Flapping : 0PW Last Up Time : 2014/09/23 08:23:46PW Total Up Time : 0 days, 0 hours, 41 minutes, 44 seconds*Peer Ip Address : 4.4.4.4PW State : upLocal VC Label : 294931Remote VC Label : 294929Remote Control Word : defaultPW Type : labelTunnel ID : 0x0000000001004c4b44 Broadcast Tunnel ID : --Broad BackupTunnel ID : --Ckey : 3Nkey : 3808428190Main PW Token : 0x0Slave PW Token : 0x0Tnl Type : ldpOutInterface : Backup OutInterface : --Stp Enable : 0Mac Flapping : 0PW Last Up Time : 2014/09/23 08:59:00PW Total Up Time : 0 days, 0 hours, 6 minutes, 29 seconds
# CE之间能够相互Ping通,以CE1 Ping CE2为例。
[~CE1] ping 10.1.1.2PING 10.1.1.2: 56 data bytes, press CTRL_C to breakReply from 10.1.1.2: bytes=56 Sequence=1 ttl=255 time=90 msReply from 10.1.1.2: bytes=56 Sequence=2 ttl=255 time=77 msReply from 10.1.1.2: bytes=56 Sequence=3 ttl=255 time=34 msReply from 10.1.1.2: bytes=56 Sequence=4 ttl=255 time=46 msReply from 10.1.1.2: bytes=56 Sequence=5 ttl=255 time=94 ms--- 10.1.1.2 ping statistics ---5 packet(s) transmitted5 packet(s) received0.00% packet lossround-trip min/avg/max = 34/68/94 ms
华为运营商级路由器配置示例 | 配置BGP VPLS和LDP VPLS interworking示例相关推荐
- 华为运营商级路由器配置示例 | 合集
VPN VPLS配置 配置静态方式VPLS示例 华为运营商级路由器配置示例 | 配置静态方式VPLS示例_COCO_gsta的博客-CSDN博客 配置LDP方式VPLS示例 华为运营商级路由器配置示例 ...
- 华为运营商级路由器配置示例 | 配置VPLS Multi-homing示例
组网需求 在VPLS网络中运营商为了提供高可靠性的服务,往往会部署冗余链路,CE通过冗余链路接入一对PE.然而这种冗余链路在提供了链路保护的同时,也存在环路风险.为解决环路问题,可以提出通过在PE上部 ...
- 华为运营商级路由器配置示例 | 配置BGP方式VPLS示例
组网需求 如图1,两台设备PE1和PE2作为PE启动VPLS功能.CE1连接到PE1设备上,CE2连接到PE2上.CE1和CE2属于一个VPLS. 采用BGP作为VPLS信令建立PW,通过配置VPN ...
- 华为运营商级路由器配置示例 | 公网IPv4 over SRv6 TE Policy
组网需求 如图1所示:PE1.P和PE2属于同一自治系统,要求它们之间通过IS-IS协议达到IPv6网络互连的目的.PE1.P和PE2属于IS-IS进程1,都是Level-1设备.PE1与PE2之间部 ...
- 华为运营商级路由器配置示例 | 公网IPv6 over SRv6 TE Policy
组网需求 如图1所示:PE1.P和PE2属于同一自治系统,要求它们之间通过IS-IS协议达到IPv6网络互连的目的.PE1.P和PE2属于IS-IS进程1,都是Level-1设备.PE1与PE2之间部 ...
- 华为运营商级路由器配置示例 | IPv4静态路由
组网需求 路由器各接口及主机的IP地址和掩码如图1所示.要求采用静态路由,使图中任意两台主机之间都能互通. 图1 配置IPv4静态路由组网图 配置思路 首先配置各路由器各接口的IPv4地址,使网络互通 ...
- 华为运营商级路由器配置示例 | 配置HVPLS组网的VPLS PW Redundancy示例
组网需求 如图1所示,城域网络中接入层和汇聚层分别组成环网,各PE之间部署端到端的LDP LSP隧道.UPE.SPE和NPE设备构建VPLS网络,承载城域网络内的组播业务,如IPTV的业务传输.城域网 ...
- 华为运营商级路由器配置示例 | NQA for IPv4静态路由
组网需求 当网络比较简单,或者路由器不能通过动态路由协议建立到达目的网络的路由时,可以配置静态路由.但是,与动态路由协议不同,静态路由自身没有检测机制,当网络发生故障时,静态路由无法感知,需要由管理员 ...
- 华为运营商级路由器配置示例 | 公网IPv4 over SRv6 BE
组网需求 如图1所示:路由器PE1.P和PE2属于同一自治系统,要求它们之间通过IS-IS协议达到IPv6网络互连的目的.PE1.P和PE2属于IS-IS进程1,都是Level-1设备.PE1与PE2 ...
最新文章
- linux系统启动盘怎么制作工具,windows系统制作linux启动盘工具介绍
- sessionCreated一直调用
- 洛谷——P2083 找人
- 9月22日培训日记(上)
- ubuntu运行Faster R-CNN
- .net连接mysql数据_.net连接MYSQL数据库 转载
- 2264: sequence(KMP)
- 前端2018年12月9日 前端开发路上的小白心得--励志当个领路人
- 系统架构设计师面试java架构师 面试经验分享
- ant java 外部jar包_java – 在使用Ant的新jar文件构建中包括外部jar文件
- 【codevs1033】蚯蚓的游戏问题,费用流
- OpenGL(二)——OpenGL图形绘制
- 【Java】为什么java构造函数的构造器只能在第一行写this() 或者super() ?
- HDU——1272小希的迷宫(并查集+拓扑排序)
- 随手记_科研攻略_好的idea的产生
- mysql手册02_事务
- python圣经是哪本_我的圣经:17年前的那本《Python 2.1 宝典》
- mysqldump --set-gtid-purged=OFF
- html 颜色代码_HTML颜色(颜色代码)
- 读取和修改JPEG图片文件的头信息EXIF和JFIF