EtherChannel Cisco 端口聚合详解
冗余连接及其实现
无论什么设备都无法保障运行的绝对稳定性,即使再优秀的产品也无法保证24×7不间断的工作。除去设备或模块损坏、传输线路中断等硬件故障原因以外,还可能由于网络流量过载、任务负荷过大而导致核心交换机瘫痪。因此,若欲保障网络的稳定性,保证重要服务不被中断,就必须采取必要的应对措施。通常情况下,这种措施就是冗余连接,即在核心交换机与骨干交换机之间,以及交换机与服务器之间创建多个连接。
1. EtherChannel
EtherChannel也叫聚合端口(Aggregate port AP)和Port Trunking(多干路冗余连接)技术,将交换机上的多个端口在物理上连接起来,在逻辑上捆绑在一起,形成一个拥有较大带宽的端口,组成一个干路,既可以增加交换机之间,以及交换机与服务器之间的连接带宽,实现均衡负载,又可提供冗余连接。当所有端口都正常工作时,绑定的带宽为所有端口带宽之和。当某个端口宕掉后,其他端口仍能维持正常连接。Cisco的EtherChannel有两个级别,即Fast EtherChannel和Giga Etherchannel,最大带宽分别为400Mbps和4Gbps。
2. Spanning Tree
Spanning Tree实现冗余连接的工作方式是Stand By。在交换机之间创建两条链路,由于交换机之间存在两条链路时会导致拓扑环,因此,借助于Spanning Tree技术使得除了一条链路工作外,其余链路实际上是处于待机(Stand By)状态,这显然影响传输的效率
聚合端口它可将多物理连接当作一个单一的逻辑连接来处理,它允许两个交换器之间通过多个端口并行连接同时传输数据以提供更高的带宽、更大的吞吐量和可恢复性的技术,并且实现成员端口上的流量平衡.(流量平衡具体有3种方法:根据源MAC地址,目的MAC地址或源IP地址/目的IP地址)
一般来说,两个普通交换器连接的最大带宽取决于媒介的连接速度(100BAST-TX双绞线为200M),而使用Trunk技术可以将4个200M的端口捆绑后成为一个高达800M的连接。这一技术的优点是以较低的成本通过捆绑多端口提高带宽,而其增加的开销只是连接用的普通五类网线和多占用的端口,它可以有效地提高子网的上行速度,从而消除网络访问中的瓶颈。另外Trunk还具有自动带宽平衡,即容错功能:即使Trunk只有一个连接存在时,仍然会工作,这无形中增加了系统的可靠性。
etherchannel特性在switch到switch、switch到router、主机(服务器)到switch或router之间提供冗余的、高速的连接,简单说就是将两个设备间多条FE或GE物理链路捆在一起组成一条设备间逻辑链路,从而达到增加带宽,提供冗余的目的。
端口聚合的注意事项:
1.AP成员端口的端口速率必须一致
2.AP成员端口必须属于同一个VLAN
3.AP成员端口使用的传输介质应相同
4.缺少情况下创建的AP是二层AP
5.二层端口只能加入二层AP,三层端口只能加入三层AP
6.AP不能设置端口安全功能
7.当配置layer 2端口作etherchannel时只要在成员端口配置模式下用channel-group n命令指定该端口要加入的channel-group组,这时switch会自动创建port-channel接口,而当配置layer 3端口作etherchannel时,还需现在全局配置模式下用 interface port-channel n 命令手工创建port-channel接口。
8.一个端口加入AP,端口的属性将被AP的属性所取代
9.一个端口从AP中删除,则端口的属性将恢复为其加入AP前的属性
10.当一个端口加入AP后,不能在该端口上进行任何配置,直到该端口退出AP
1. 创建EtherChannel
创建EtherChannel的具体操作步骤如下。
步骤1:进入全局配置模式.
Switch#configure terminal
步骤2:选择欲配置为EtherChannel的物理端口.PAgP EtherChannel(端口聚合协议)CISCO私有,每组最多支持8条
链路汇聚.LACP EtherChannel(链路聚合控制协议)IEEE802.3ad定义,每组最多支持16条链路汇聚(但只有
8条工作,其余备份)
Switch(config)#interface interface-id
步骤3:将所有端口指定为同一VLAN内的静态访问端口或者配置为Trunk.如果配置为静态端口,只能指定至
一个VLAN,VLAN取值范围为1-4094.
Switch(config-if)#switchport mode {access | trunk }
Switch(config-if)#switchport access vlan vlan-id
步骤4:将端口指定至EtherChannel组,并指定PAgP或LACP模式.EtherChannel端口组的取值范围为1-48.
Switch(config-if)#channel-gropu port_channel_number mode { {auto[non-silent] |
desirable[non-silent] | on} | {active | passive}}
对于使用PAGP的四种模式
Auto:当侦测到PAgP设备时(将只启用PAgP)将端口置于被动协商状态,可以对接收到的PAgP作出响应,但是,
不能主动发送PAgP包进行协商。
Desirable:无条件启用PAgP。将端口置于主动协商状态,通过发送PAgP包,主动与其他端口进行协商。
On:不协商(不用PAgP协议,强制开启).将端口强行指定(加入)至EtherChannel。只有两个on模式端口组连接
时EtherChannel才可用。
non-silent:参数主要用于检测链路是否单向失败.默认条例下被设置为auto或desirable参数并参加通道协商
的接口不用周期性接收到对方的PAgP帧,也可以参加PAgP的计算.(如果链路是单向通信的情况
下,本端发出PAgP帧,链路(本端)却无法接收对方的数据,但此端口(本端口)也参与了
Etherchannel通信).加入non-silent参数后(非安静模式),本端会要求周期性的接收到对端
的PAgP帧后再使端口参加EtherChannel的通信,如果没有接收到对端的PAgP帧则会通知STP把
此端口为down的状态,导致端口无法参加Etherchannel和STP的计算.
如果交换机连接到有PAgP能力的伙伴,可以将端口配置为non silent(非安静模式)运行。如果没有为auto或desirable模式指定non-silent关键字,默认为silent。安静模式设置被用于连接到文件服务器或包分析仪(无PAgP能力的伙伴,即单向通信.因为文件服务器或包分析仪不会产生PAgP帧)。该设置允许PAgP将端口添加至Channel组,并使用端口进行传输.
对于使用LACP的两种模式
active:当侦测到LACP设备时(将只启用LAC),激活端口的主动协商状态,通过发送LACP包,与其他端口进行主动协商。
passive:当侦测到LACP设备时(将只启用LACP),将端口置于被动协商状态,可以对接收到的LACP作出响应,但是,不能主动发送LACP包进行协商。
采用PAgP协议时(所以无ON模式),以下几种模式可以构建EtherChannel:
一个端口为desirable模式,另一个端口为desirable或auto模式。
一个端口为auto模式,另一个端口为desirable模式。
采用LACP协议时,以下几种模式可以构建EtherChannel:
一个端口为active模式,另一个端口为active或passive模式。
一个端口为active模式,另一个端口为passive模式。
2. 配置EtherChannel负载均衡
EtherChannel还具有负载分担和线路备份的作用。
http://www.visualland.net.cn/view.php?cid=1729&protocol=EtherChannel&title=1. EtherChannel basics 负载均衡FLASH动画.
所谓负载分担:是指当交换机之间或交换机与服务器之间在进行通信时,EtherChannel的所有链路将同时参与数据的传输,从而使所有的传输任务都能在极短的时间内完成,线路占用的时间更短,网络传输的效率更高。
etherchannel在作数据转发时,是基于数据包的源或目的MAC地址随机选择etherchannel中的一条物理link进行数据转发的。我们可以通过全局配置命令port-channel load-balance选择是根据源MAC地址还是根据目的MAC地址进行数据转发来实现负载平衡。
例如:当有两台switch,它们之间有几条link互联作etherchannel,switchA一端连接一台server,switchB一端连接多台clientPC,这时swithA一端的数据流是同一源MAC地址的数据包通过etherchannel转发向不同目的MAC地址。这时,为了充分利用etherchannel中的所有的物理link,在swithA一端就应该配置为基于数据包的目的MAC地址方式.而switchB一端的数据流是不同源MAC地址的数据包通过etherchannel转发向同目的MAC地址。在swithB一端就应该配置为基于数据包的源MAC地址方式。
所谓线路备份:是指当部分EtherChannel链路出现故障时,并不会导致连接的中断,其他链路将能够不受影响地正常工作,从而增强了网络的稳定性和安全性。我们可以通过接口配置命令 pagp port-priority 改变优先级设定哪条物理link主用,哪条备用,一旦主用物理link上产生阻塞,备用link立即启用
具体操作步骤如下。
步骤1:进入全局配置模式.
Switch#configure terminal
步骤2:配置Etherchannel负载均衡
Switch(config)#port-channel load-balance {dst-mac | src-mac | src-dst-ip | src-dst-mac
| dst-ip | src-ip }
dst-mac:根据输入报文的目的MAC地址进行流量分配。在AP各链路中,目的MAC地址相同的报文被送到相
同的端口,目的MAC不同的报文分配到不同的端口。
src-mac:根据输入报文的源MAC地址进行流量分配。在AP各链路中,来自不同MAC地址的报文分配到不
同的端口,来自相同的MAC地址的报文使用相同的端口。
src-dst-ip:根据源IP与目的IP进行流量分配。不同的源IP——目的IP对的流量通过不同的端口转发,同
一源IP——目的IP对通过相同的链路转发。在三层条件下,建议采用此流量平衡的方式。
src-dst-mac:根据源MAC与目的MAC进行流量分配。不同的源MAC——目的MAC对的流量通过不同的端口转
发,同一源MAC——目的MAC对通过相同的链路转发。
dst-ip:根据输入报文的目的IP地址进行流量分配。在AP各链路中,目的IP地址相同的报文被送到相同的端
口,目的IP不同的报文分配到不同的端口。
src-ip:根据输入报文的源IP地址进行流量分配。在AP各链路中,来自不同IP地址的报文分配到不同的端
口,来自相同的IP地址的报文使用相同的端口。
步骤3:校验配置
Switch#show etherchannel load-balance
3. 从EtherChannel中移除端口
从EtherChannel中移除端口的具体操作步骤如下。
步骤1:进入全局配置模式.
Switch#configure terminal
步骤2:指定欲配置的物理端口.
Switch(config)#interface interface-id
步骤3:从EtherChannel中移除端口
Switch(config-if)no channel-group
4. 移除整个EtherChannel端口
移除EtherChannel的具体操作步骤如下。
步骤1:进入全局配置模式.
Switch#configure terminal
步骤2:移除Channel端口
Switch(config)#no interface port-channel port_channel_number
其他一些命令
创建以太通道组:
(config)#interface port-channel EtherChannel_number
定义以太通道组的聚合协议
(config-if)#channel-protocol { pagp | lacp }
查看通道接口配置信息:
#show running-config interface port-channel port-channel_interface_number
查看接口配置信息:
#show running-config interface **
查看配置后的通道信息:
#show etherchannel ** port-channel
核实PAGP和LACP
#show interface *** etherchannel
查看EtherChannel配置情况
#show eherchannel summary
Po1(SU) //SU表示EtherChannl正常.(S-Layer2,U-in use) Fa0/1(P) Fa0/2(P) //P表示Fa0/1和Fa0/2都加入了EthernetChannel,并正常运行.(P-in port-channel)
通常
Switch(config)#hostname SW2
SW2 (config)#int fa0/23-24
SW2(config-if-range)#switchport trunk encapsulation dot1q
SW2(config-if-range)#switchport trunk allowed vlan2
SW2(config-if-range)#channel-group 1 mod on
SW2(config-if-range)#exit
port-channel可以设成trunk!!!常用
要想做trunk则必须封装成dot1Q! 否则会提示信息
具体配置:
Switch# configure terminal
Switch(config)# interface range fastethernet0/4 -5
Switch(config-if-range)# switchport mode access
Switch(config-if-range)# switchport access vlan 10
Switch(config-if-range)# channel-group 5 mode desirable|auto|on
Switch(config-if-range)# end
以上配置将F0/4、F0/5端口加入channel-group 5,作etherchannel的端口可以为access端口也可为trunk端口(中继端口)。
在将两个swith间的link作etherchannel与两个swith间的link作trunk有一点相似的地方就是:
1.配置trunk时两端的端口有几种模式:trunk、auto、desirable,
2.配置etherchannel时两端的端口有desirable|auto|on(使用PAGP)或active|passive(使用LACP)几种模式.
所不同的是trunk端口间协商是使用DTP(dynamic trunking protocol);而etherchannel端口间协商是使用PAGP(Port Aggregation Protocol,cisco专有)或LACP (Link Aggregation Control Protocol,802.3AD )
注意:在技术领域中把TRUNK翻译为中文是"主干,干线,中继线,长途线",不过一般不翻译,直接用原文.而且这个词在不同场合也有不同的解释:
1、在网络的分层结构和宽带的合理分配方面,TRUNK被解释为“端口汇聚”,是带宽扩展和链路备份的一个重要途径。TRUNK把多个物理端口捆绑在一起当作一个逻辑端口使用,可以把多组端口的宽带叠加起来使用。TRUNK技术可以实现TRUNK内部多条链路互为备份的功能,即当一条链路出现故障时,不影响其他链路的工作,同时多链路之间还能实现流量均衡,就像我们熟悉的打印机池和MODEM池一样。
2、在电信网络的语音级的线路中,Trunk指“主干网络、电话干线”,即两个交换局或交换机之间的连接电路或信道,它能够在两端之间进行转接,并提供必要的信令和终端设备。
3、 但是在最普遍的路由与交换领域,VLAN的端口聚合也有的叫TRUNK,不过大多数都叫TRUNKING ,如CISCO公司。所谓的TRUNKING是用来在不同的交换机之间进行连接,以保证在跨越多个交换机上建立的同一个VLAN的成员能够相互通讯。其中交换机之间互联用的端口就称为TRUNK端口。与一般的交换机的级联不同,TRUNKING是基于OSI第二层.如果你在2个交换机上分别划分了多个VLAN(VLAN也是基于Layer2的),那么分别在两个交换机上的VLAN10和VLAN20的各自的成员如果要互通,就需要在A交换机上设为VLAN10的端口中取一个和交换机B上设为VLAN10的某个端口作级联连接。VLAN20也是这样。那么如果交换机上划了10个VLAN就需要分别连10条线作级联,端口效率就太低了。当交换机支持TRUNKING的时候,事情就简单了,只需要2个交换机之间有一条级联线,并将对应的端口设置为Trunk,这条线路就可以承载交换机上所有VLAN的信息。这样的话,就算交换机上设了上百个个VLAN也只用1个端口就解决了。
如果是不同台的交换机上相同id的vlan要相互通信,那么可以通过共享的trunk端口就可以实现,如果是同一台上不同id的vlan/不同台不同id的vlan它们之间要相互通信,需要通过第三方的路由来实现;vlan的划分有两个需要注意的地方:一是划分了几个不同的vlan组,都有不同的vlan id号;分配到vlan 组里面的交换机端口也有port id.比如端口1,2,3,4划分到vlan10,5,6,7,8划分到vlan20,我可以把1,3,4的端口的port id设置为10,而把2端口的 port id设置为20;把5,6,7端口的port id设置为20,而把8端口的port id设置为10.这样的话,vlan10中的1,3,4端口能够和vlan20中8端口相互通信;而vlan10中的2端口能够和vlan20中的5,6,7端口相互通信;虽然vlan id不同,但是port id相同,就能通信,同样vlan id相同,port id不同的端口之间却不能相互访问,比如vlan10中的2端口就不能和1,3,4端口通信。
配置EtherChannel
以太通道捆绑几个以太端口为一个独立的逻辑链路。如4006交换机,你可以捆绑在4006任何模块上最多8个兼容的具有相同速率的端口。每个以太通道具有一个port-channel端口号。要捆绑一个以太通道时,会产生一个逻辑port-channel端口,逻辑端口下的配置可影响与之捆绑的物理端口,但物理端口下的配置不能影响逻辑端口的配置。
1) 三层以太通道(逻辑port-channe)的配置
Switch# configure terminal
Switch(config)# interface port-channel 1 // 创建一个逻辑端口
Switch(config-if)# ip address 172.32.52.10 255.255.255.0
Switch(config-if)# end
Switch# configure terminal
Switch(config)# interface range fastethernet 5/4 – 5 (注意: 空格是必需的)
Switch(config-if)# no switchport // 改变该端口为三层接口
Switch(config-if)# no ip address // 确认接口没有配置IP地址
Switch(config-if)# channel-group 1 mode desirable
Switch(config-if)# end
附: Switch(config-if)# channel-group port_channel_number mode {auto | desirable | on} // 将该物理端口加入一个以太通道中,并确定PagP模式。
3) 二层以太通道配置
Switch# configure terminal
Switch(config)# interface range fastethernet 5/6 - 7 (注意: 空格是必需的)
Switch(config-if-range)# channel-group 2 mode desirable
Switch(config-if-range)# end
Switch# show running-config interface port-channel 2
Building configuration...
Current configuration:
!
interface Port-channel2
switchport access vlan 10
switchport mode access
end
Switch#
? 如何作端口聚合
如果要配置二台6509之间的Trunk联接,首先将二6509用千兆光纤相联好,然后分别配置二相联端口的trunk,可以是只用一双光纤,或用二对光纤做port channel,配置如下:
一双光纤相联时,分别在二台65上进行以下的配置:
interface GigabitEthernet1/1
no ip address
switchport
switchport trunk encapsulation dot1q
switchport trunk native vlan 1
二对光纤相联时,必须要做port channel,分别在二台65上进行以下的配置:
interface port-channe1
no ip address
switchport
switchport trunk encapsulation dot1q
switchport trunk native vlan 1
!
interface GigabitEthernet1/1
no ip address
duplex full
speed 1000
switchport mode trunk
switchport trunk encapsulation dot1q
switchport trunk native vlan 1
channel-group 1 mode on
!
interface GigabitEthernet1/2
no ip address
duplex full
speed 1000
switchport mode trunk
switchport trunk encapsulation dot1q
switchport trunk native vlan 1
channel-group 1 mode on
*将以太通道内的所有端口指定到同一个VLAN,或者将其都配置为trunk端口;
*如果将以太通道配置为trunk,在以太通道内所有的端口上配置相同的trunk模式。在以太通道内的各端口上配置不同的trunk模式会引起意想不到的结果;
*在trunking以太通道内,通道内所有端口上支持的VLAN的范围相同。如果各个端口支持的VLAN范围不相同,即使设为Auto或者Desirable模式,端口也不会形成以太通道;
*不要将以太通道内的端口置为动态VLAN端口,这会严重影响交换机的性能;
*GARP,GVRP或者QOS配置不同的端口不会形成以太通道;
*如果在端口上配置了对广播的限制,将广播限制配作以通道内所有端口百分比为单位的限制。如果使用“包每秒”形式的广播限制,则在超过广播限制的1秒钟内,单播数据包可能丢失;
*启动了安全策略的端口不能形成以太通道,对于以太通道内的端口,不能启动端口上的安全功能;
*如果以太通道内的端口被IGMP组播过滤使用,则必须将PAG和LACP中的以太通道模式设置为OFF。不能使用其他的模式;
*配置为交换端口分析器(SPAN,switchde port analyzer)目的的端口不能形成以太通道;
*如果其中任何一个端口的协议过滤设置不同,就无法形成以太通道;
*每个以太通道最多能能包含8个配置兼容的以太接口;
*同一个以太通道内的所有接口的速率和双工模式要求相同;
*启动以太通道内的所有接口。如果你关闭了以太通道内的一个接口,它会被作为链路状态故障处理,其上通信会转移到以太通道内剩余的接口上;
*STP端口开销值不同的接口只要配置兼容就能形成以太通道。在端口上配置不同的STP端口开销本身不会导致接口由于不兼容而无法形成以太通道。但是,在一个以太通道内的所有接口上,最好将STP端口开销配置为一样;
除了以上列举的限制,还有一个需要关注的问题就是你允许那些端口用于以太通道的配置。
2、将要合并的相邻的端口置为trun模式
3、设定相连的两台交换机的端口的工作方式(即物理特性)相同。
4、开启以太网通道
交换机1:
Router>en
Router#vlan d
Router(vlan)#vl 2
VLAN 2 added:
Name: VLAN0002
Router(config)#interface range f0/1 - 2
Router(config-if-range)#switchport mode trunk[l1]
Router(config)#interface range f0/1 – 2
Router(config-if-range)#switchport access vlan 2
[l2]Router(config-if-range)#duplex full[l3]
Duplex will not be set until speed is set to non-auto value
Duplex will not be set until speed is set to non-auto value
Router(config-if-range)#speed 100[l4]
*Mar 1 00:07:06.315: %DTP-5-TRUNKPORTON: Port Fa0/1-2 has become dot
*Mar 1 00:07:06.579: %LINEPROTO-5-UPDOWN: Line protocol on Interface
nged state to up
Router(config)#interface range f0/1 - 2
Router(config-if-range)#channel-group 1 mode on[l5]
Creating a port-channel interface Port-channel1
Router#show etherchannel 1 summary
Flags: D - down P - in port-channel
I - stand-alone s - suspended
R - Layer3 S - Layer2
U - in use
Group Port-channel Ports
-----+------------+-------------------------
1 Po1(SU) Fa0/1(P) Fa0/2(P)
EtherChannel Cisco 端口聚合详解的更多相关文章
- cisco常用命令详解
cisco常用命令详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常用命令用法展示 1.命令行模式的来回切换 yinzhengjie>enable #从用户模式切换到 ...
- SSH远程登录和端口转发详解
SSH远程登录和端口转发详解 介绍 SSH 是创建在应用层和传输层基础上的安全协议,为计算机上的 Shell(壳层)提供安全的传输和使用环境. SSH 只是协议,有多种实现方式,本文基于其开源实 ...
- 完成端口(CompletionPort)详解
手把手叫你玩转网络编程系列之三 完成端口(Completion Port)详解 ...
- 完成端口IOCP详解
修改自: http://blog.csdn.net/piggyxp/article/details/6922277 ps: 原作者很厉害了, 把一个iocp模型讲解的这么形象,不过在实践过程中发现一些 ...
- hadoop ssh 端口-ssh-copy-id详解
ssh-copy-id详解 http://www.blogdaren.com/post-1815.html 服务器时常需要配置无密码的登录方式,最一般的设置方式如下: 使用ssh-keygen和ssh ...
- windows网络模型之完成端口(CompletionPort)详解 (转)
转载自:https://blog.csdn.net/piggyxp/article/details/6922277 目录: 1. 完成端口的优点 2. 完成端口程序的运行演示 3. 完成端口的相关概念 ...
- (转载)完成端口(CompletionPort)详解 - 手把手教你玩转网络编程系列之三
转自:http://blog.csdn.net/piggyxp/article/details/6922277 前 言 本系列里完成端口的代码在两年前就已经写好了,但是由于许久没有写东西了,不知该如何 ...
- SSH端口转发详解及实例
一.SSH端口转发简介 SSH会自动加密和解密所有SSH客户端与服务端之间的网络数据.但是,SSH还能够将其他TCP端口的网络数据通SSH链接来转发,并且自动提供了相应的加密及解密服务.这一过程也被叫 ...
- SSH端口转发详解及实例-转载
作者:珂儿吖 出处:http://www.cnblogs.com/keerya/ 目录 1.1 SSH端口转发的两大功能 实验一:实现SSH端口转发——本地转发 实验二.实现SSH端口转发——远程转发 ...
随机推荐
- C Runtime Library来历, API, MFC, ATL关系
首先说明,我google了半天,想找到英文的关于这个资料,但是实在找不到,只好转载国人的讨论. CRT原先是指Microsoft开发的C Runtime Library,用于操作系统的开发及运行.后来 ...
- 在VS中生成后拷贝文件
环境:win7_64旗舰版,VS2013 工作项目中,一般会使用第三方库,当修改并重新编译第三方库后,需要将DLL文件拷贝到工作项目下的生成目录中,每次手动拷贝比较繁琐,VS提供自定义生成事件,允许我 ...
- Android makefile 组织结构
下面是main.mk文件包含关系,本文档主要说明的就是这些文件里到底做了什么.(这个文件被根目录下的makefile文件包含) 一. main.mk BUILD_SYSTEM=build/co ...
- android中分割线的实现
一种是在线性布局中天家虚线的图片 一种是在3.0以后实现的 在UI中配置 android:layout_width="match_parent&quo ...
- 如何在VBS脚本中显示“选择文件对话框”或“选择目录对话框”
.选择文件[XP操作系统,不能用于Win2000或98],使用“UserAccounts.CommonDialog”对象向用户显示一个标准的“文件打开”对话框 Set objDialog = Crea ...
- Unity3d之将terrain转化成mesh
Unity3d中,terrain还是比较耗的,DrawCall数也比较多,为了优化性能,可能需要将terrain转化成mesh. 现提供一工具,思路是根据terrain高度图生成mesh等,可参考: ...
- php文件去重复,二维数组筛选
http://www.porter.com/fr/fr/product/648162|Sneakershttp://www.porter.com/fr/fr/product/642115|Bootsh ...
- 初次使用IntelliJ IDEA 2016.2
换电脑的还有一个目的就是我准备采用新的IDE了 之前一直用的是myeclipse,但是现在准备尝试idea 这边做个记录,idea的破解参考下面这个网址:http://blog.csdn.net/u0 ...
- js 数组切换图片
<html> <head> <meta charset="utf-8" /> <title></title> <s ...
- hdu_2110_Crisis of HDU(母函数)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2110 题意:给你N个价值和数目,求方案数,很裸的母函数. #include<cstdio> ...