sql----join

sql的left join 命令详解
2007-05-18 10:31
给个通俗的解释吧.
例表a
aid adate
1 a1
2 a2
3 a3
表b
bid bdate
1 b1
2 b2
4 b4
两个表a,b相连接,要取出id相同的字段
select * from a inner join b on a.aid = b.bid这是仅取出匹配的数据.
此时的取出的是:
1 a1 b1
2 a2 b2
那么left join 指:
select * from a left join b on a.aid = b.bid
首先取出a表中所有数据,然后再加上与a,b匹配的的数据
此时的取出的是:
1 a1 b1
2 a2 b2
3 a3 空字符
同样的也有right join
指的是首先取出b表中所有数据,然后再加上与a,b匹配的的数据
此时的取出的是:
1 a1 b1
2 a2 b2
4 空字符 b4

LEFT JOIN 或 LEFT OUTER JOIN。
左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。

posted @ 2007-08-06 09:53 青蛙學堂 阅读(735) | 评论 (4)编辑 收藏

SNAP SHOT 01

复制是一种实现数据分布的方法,也就是说把一个系统中的数据通过网络分布到另外一个或者多个地理位置不同的系统中,以适应可伸缩组织的需要、减轻主服务器的工作负荷和提高数据的使用效率。

    Ora Oracle8针对数据分布式计算的需要,提供了一整套功能强大的数据库复制解决方案。 Oracle8的数据复制按功能可以分为三类:基本(简单)复制、高级复制和混合复制,而高级复制又可分为多主节点复制和可更新快照复制。在 《数据复制中的定时任务机制》 介绍了Oracle8中的定时复制的机制,本文将主要介绍一个 Oracle 快照复制的实际例子及其技术实现细节。

    一、业务需求
 
在一个实际的数据库应用中,如银行、税务等商业应用中通常都采用这样一种解决方案,在一个行政区域内,如一个省或者一个市,在不同的地理位置架设数台数据库服务器,这些不同地理位置的服务器具有同样的后台数据库。为了维护数据库系统的一致性,对于整个行政区域应用的代码表应该保持一致,如果不考虑数据复制,想维护同样的不冲突的代码表是很困难的。下面是一个实际的业务需求,我们用这里例子来说明 Oracle快照复制的应用。

    为了维护整个系统代码表的一致性,客户提出了这样的业务需求,对于系统的代码表采用统一维护,即在一台服务器上维护,如图1所示。在位置1(数据库Ora_db1,用户userA)上维护代码表,其他位置(数据库ora_db2,用户userB;ora_db3,用户userC和ora_db4,用户UserD)可以直接使用这些代码表,也就是说在位置1具有对代码表插入、删除和更新的能力,而在其他地方只能有查询的能力。

    二、应用设计针
 
对上述的需求,我们提出了这样一种解决方案,也就是采用 Oracle8的快照复制。具体业务实现方案设计如下:

    在位置1的数据库Ora_db1维护所有的代码表,在其余数据库建立相对于位置1的所有代码表的快照。为了维护快照的方便,在位置2、3和4创建一个单独的快照表空间和一个模式(schema),系统中的其他用户通过一个私有同义词来存取这些快照。这里私有同义词相对公共同义词要好,这是因为在位置1存在一个同样规范的系统,它的表是通过公共同义词来存取的。对于快照的刷新,采用 Oracle系统包DBMS-_REFRESH进行,并将该刷新过程的运行定时在每天早上2:00,这样可以减少网络流量。对于快照的刷新形式,由于对于代码表的维护不是很多而且代码表的数据量相对较少,所以在此选择了完全刷新,这样就避免了管理快照日志的麻烦。下面以一个节点2(ora_db2)为例来说明具体的技术实现细节。

    三、技术实现细节
 
除非特别说明,下面的SQL命令都是在数据库ora_db2的SYSETM用户下运行的。假设要复制的代码表有三个:dm_gy_rydm,dm_gy_jgdm和dm_gy_yhdm.

    1.在数据库2(ora_db2)上增加数据库1(ora_db1)的services name

    可以直接在tnsnames.ora文件中增加数据库1的services name,包括IP地址,SID以及端口号等。Services name 命名为ora_db1.world.

    2. 创建一个用于连接数据库1(ora_db1)的数据库连接(dblink)

    SQL> CREATE PUBLIC DATABASE LINK ora_db1.world CONNECT TO SYSTEM IDENTIFIED BY MANAGER USING 'ora_db1.world';

    出于安全考虑,可以采用一个私有数据连接。

    3. 创建一个名为Snapshot_ts的表空间来存放快照,并创建一个和该表空间有关的名为Snap的用户。

    SQL > CREATE TABLESPACE snapshot_ts DATAFILE 'c:\orant\dbfiles\prod\snapshot01.dbf' SIZE 30M DEFAULT STORAGE (INITIAL 30 K NEXT 15 K MINEXTENTS 1 MAXEXTENTS 100 PCTINCREASE 0)

    ONLINE PERMANENT;

    SQL > CREATE USER snap IDENTIFIED BY snap DEFAULT TABLESPACE snapshot_ts;

    SQL > GRANT CONNECT, RESOURCE TO snap;

    可以通过下面的SQL语句在ora_db1数据库以userA用户来粗略地估计表空间snapshot_ts的大小。

    SQL > SELECT SUM(bytes)

    FROM USER_SEGMENTS WHERE SEGMENT_NAME IN(' dm_gy_rydm','dm_gy_jgdm','dm_gy_yhdm');

    4. 运行下面的脚本文件snapsql.sql来生成创建ora_db1数据库上userA用户下代码表的快照脚本:

    /* Snapsql.sql */ spool c:\snap\create_snapshot.sql SELECT 'CREATE SNAPSHOT SNAP.' || TABLE_NAME || ' PCTFREE 10 PCTUSED 40 TABLESPACE snapshot_ts ' || ' STORAGE (INITIAL ' || INITIAL_EXTENT || ' NEXT ' || NEXT_EXTENT || ' PCTINCREASE 0 )' || ' AS SELECT * FROM userA.' || TABLE_NAME || '@ora_db1.world;' FROM USER_TABLES WHERE TABLE_NAME IN( (' dm_gy_rydm', 'dm_gy_jgdm', 'dm_gy_yhdm'); spool off

    注意上面这个生成所需表快照的脚本有一定的局限性,如果所需生成快照的表中含有类型为long的列,‘select *'在这里就不会起作用,上面的这个SQL脚本就不能自动建立生成所需快照的脚本,必须通过在select列表中显式地添加long型列名来创建表的快照。下面是一个例子,假如我们要创建快照依赖的表dm_gy_note中有一个列note类型为long,就需要单独写出如下的创建快照的脚本:

    CREATE SNAPSHOT snap.dm_gy_note PCTFREE 10 PCTUSED 40 TABLESPACE snapcost_ts STORAGE (INITIAL 40960 NEXT 57344 PCTINCREASE 0 ) AS SELECT dm, dmmc,note FROM userA.dm_gy_note@ora_db1.worl; SQL > @snapsql.sql

    5. 通过运行第4步创建的脚本文件create_snapshot.sql来创建所有的快照, 在脚本文件中包含下面这样的代码:

    CREATE SNAPSHOT snap. dm_gy_rydm PCTFREE 10 PCTUSED 40 TABLESPACE snapshot_ts STORAGE (INITIAL 163840 NEXT 57344 PCTINCREASE 0)

    AS SELECT * FROM userA. dm_gy_rydm @ora_db1.world;

    运行脚本文件create_snapshot.sql后,就在模式snap中创建了所需要的快照。下一步就是考虑该如何刷新快照。对于快照的刷新,可以通过一些桌面DBA工具来刷新快照也可以通过系统包dbms_snapshot.refresh来刷新一个快照:

    SQL > EXECUTE DBMS_SNAPSHOT.REFRESH('snap.dm_gy_rydm')

    6. 创建一个定时刷新过程来定时刷新快照:

    /*sp_snapshot_refresh.sql */ CREATE OR REPLACE PROCEDURE sp_snapshot_refresh IS BEGIN DBMS_REFRESH.MAKE ( NAME=>'tax_dmb_grp', LIST=>'snap. dm_gy_rydm, 'snap.dm_gy_jgdm', 'snap.dm_gy_yhdm', NEXT_DATE=>TRUNC (SYSDATE+1)+2/24, INTERVAL=>'(SYSDATE+1)', IMPLICIT_DESTROY=>FALSE, LAX=>TRUE); END; / SQL > EXECUTE sp_snapshot_refresh

    这样就创建了一个定时任务来每天早晨2:00定时刷新快照。运行下面的SQL语句就可以看到刚刚加入的这个任务。

    SQL > SELECT JOB, WHAT FROM DBA_JOBS;

    7. 在用户userB下创建快照的私有同义词:

    SQL > CREATE SYNONYM userB.dm_gy_rydm FOR snap.dm_gy_rydm;

    8. 以Snap用户向userB用户授与快照可以select的权限。

    SQL > GRANT SELECT ON dm_gy_rydm TO userB;

    同样的步骤在位置3(ora_db2)和位置4(ora_db3)建立位置1(ora_db1)的代码表快照和定时刷新任务。这样就可实现在位置1统一维护代码表,在位置2、3和4使用该代码表的目的。如下面的SQL语句,在位置2(ora_db2)用户UserB浏览在位置1(ora_db1)中的代码表。

    SQL > SELECT * FROM dm_gy_rydm;

    四、日常维护
 
无论任何时候只要出现网络连接问题,刷新就会失败。这些错误信息可以在alert log文件中找到。下面简单介绍一下对这种问题的处理办法:

    1. 首先在任务队列中找到刷新快照的的任务编号

    SQL > SELECT JOB,what FROM DBA_JOBS;

    2. 删除该任务

    SQL > EXECUTE DBMS_JOB.REMOVE (JOBNO);

    3. 删除快照组

    SQL > EXECUTE DBMS_REFRESH.DESTROY ('tax_dmb_grp');

    4. 重新创建快照组并且重新定时任务来定时刷新快照

    SQL > EXECUTE sp_snapshot_refresh

    五、快照监视

    快照可以通过下面的SQL语句来监视

    SQL > SELECT NAME,TO_CHAR(last_refresh,'DD-MON-YY HH:MM:SS')

    FROM DBA_SNAPSHOTS;

posted @ 2007-07-24 08:57 青蛙學堂 阅读(395) | 评论 (0)编辑 收藏

ROUTE----DHCP

路由器上的DHCP配置

51CTO技术论坛 » 思科技术 » 路由器上的DHCP配置        上一帖     下一帖    查看完整版本

页: [1]

jankie  2006-4-18 09:19

路由器上的DHCP配置

【IT168 专稿】某单位使用Cisco 3620作为IOS DHCP Server,它和内网相连的fastethernet0端口的IP地址为192.168.1.4,二层交换机采用两台Cisco 2950,三层交换机采用一台Cisco 3550。
在整个网络中有二个VLAN,为简化描述,假设每个VLAN都采用24位网络地址,其中VLAN1的IP地址为192.168.1.254,VLAN2的IP地址为192.168.2.254。在Cisco设备上实现IOS DHCP Server功能以使各

 

VLAN中的主机自动获得IP地址,如下图所示。[img]http://publish.it168.com/2005/0610/images/356661.jpg[/img] 配置DHCP地址池、附加信息以及租约期限
DHCP服务器的数据库被组织成一个树形结构,树根是用于动态分配的所有网络段的地址池,树枝是子网地址池,树叶是手工绑定给节点的地址。具体操作步骤如下:
首先登陆到Cisco 3640路由器上:
ghq>enable
Password  (输入路由器的特权口令)
ghq #config terminal (进入配置模式)
Enter configuration commands one per line. End with CNTL/Z.
ghq�config # ip dhcp pool global(配置一个根地址池,global是地址池的名称,你可以采用有意义的字符串来表示)
ghq dhcp-config #network 192.168.0.0 255.255.0.0(动态分配的地址段)
ghq�dhcp-config #domain-name ghq.com(为客户机配置域后缀)
ghq�dhcp-config #dns-server 192.168.1.1(为客户机配置DNS服务器)
ghq�dhcp-config #netbios-name-server 192.168.1.1(为客户机配置wins服务器)
ghq�dhcp-config #netbios-node-type h-node(为客户机配置h节点模式)
ghq�dhcp-config #lease 30 (地址租用期为30天)
ghq�dhcp-config #ip dhcp pool vlan1 (为VLAN1配置地址池,本池是global池的子池,将从global继承域后缀、DNS服务器、wins服务器等参数)
ghq�dhcp-config #network 192.168.1.0 255.255.255.0 (VLAN1动态分配192.168.1这个网段内可以被分配的地址,没有被排除的地址) 
ghq�dhcp-config#default-router 192.168.1.254 (为客户机配置默认的网关,即VLAN1的IP地址)
ghq�dhcp-config #ip dhcp pool vlan2 (为VLAN2配置地址池,本池是global池的子池,将从global继承域后缀、DNS服务器、wins服务器等可继承的参数)
ghq�dhcp-config#network 192.168.2.0 255.255.255.0
ghq�dhcp-config #default-router 192.168.2.254 设置不能用于动态分配的IP地址
在整个网络中,有些IP地址需要静态的指定给一些特定的设备,例如路由器的端口、DNS服务器、wins服务器以及VLAN的地址等。显然,这些静态IP地址是不能用于动态分配的,这就需要将它们排除掉。其步骤如下:
ghq�config #ip dhcp excluded-address 192.168.1.1 192.168.1.5 (IP地址

192.168.1.1至192.168.1.5不能用于动态分配)
ghq�config # ip dhcp excluded-address 192.168.1.254
(IP地址192.168.1.254固定为VLAN1的地址,不能用于动态分配)
ghq�config # ip dhcp excluded-address 192.168.2.254
(IP地址192.168.2.254固定为VLAN2的地址,不能用于动态分配)

jankie  2006-4-18 09:20

下册!!!!

设置DHCP数据库代理
DHCP数据库代理是用于存储DHCP绑定信息的一台主机,它可以是FTP、TFTP或者是RCP服务器。当然,如有必要,你可以配置多个DHCP数据库代理。同样,不配置DHCP数据库代理也是允许的,但这是以不能在DHCP数据库代理上存储地址冲突日志为代价的。如果我们不想配置数据库代理,只要取消掉地址冲突日志的记录功能即可,操作命令如下:
ghq�config # no ip dhcp conflict logging (取消地址冲突记录日志) 配置路由器的静态路由表
要使客户机能从用作DHCP Server的路由器中自动获得IP地址,首要条件就是各个VLAN中的客户机都能和路由器通信,因此首先就需要在路由器中设置一个路由以使路由器能和各个客户机通信。我们可以按如下设置 :
ghq�config #ip route 192.168.1.0 255.255.255.0 FastEthernet0 (FastEthernet0为路由器和内网相连的以太网接口,该命令的作用是在以太网接口和VLAN1 192.168.1.254间建立一条静态路由。)
ghq�config #ip route 192.168.2.0 255.255.255.0 FastEthernet0 (该命令在以太网接口和VLAN2 192.168.2.254间建立一条静态路由)
设置好之后,在配置模式中键入EXIT命令回到特权模式下,Ping一下VLAN1和VLAN2的IP地址�192.168.1.254和192.168.2.254 ,如果能够Ping通则表明配置正确,可以直接进入下一步的保存过程。配置路由器的静态路由表
要使客户机能从用作DHCP Server的路由器中自动获得IP地址,首要条件就是各个VLAN中的客户机都能和路由器通信,因此首先就需要在路由器中设置一个路由以使路由器能和各个客户机通信。我们可以按如下设置 :
ghq�config #ip route 192.168.1.0 255.255.255.0 FastEthernet0 (FastEthernet0为路由器和内网相连的以太网接口,该命令的作用是在以太网接口和VLAN1 192.168.1.254间建立一条静态路由。)
ghq�config #ip route 192.168.2.0 255.255.255.0 FastEthernet0 (该命令在以太网接口和VLAN2 192.168.2.254间建立一条静态路由)
设置好之后,在配置模式中键入EXIT命令回到特权模式下,Ping一下VLAN1和VLAN2的IP地址�192.168.1.254和192.168.2.254 ,如果能够Ping通则表明配置正确,可以直接进入下一步的保存过程。对所有直接连到客户机的二层访问端口开启Portfast功能
要使客户机正确获得IP地址,就需要将和客户机相连的交换机端口的Portfast功能打开(Cisco 2950)。这里需要特别注意的是,只能在连接一个单一客户机的二层端口上开启该功能,如果在一个连接到交换机或集线器的端口上开启该功就有可能引起广播风暴或“地址学习”问题。开启Portfast功能的步骤如下:
switch #configure terminal
switch �config #interface interface-id
switch �config-if #spanning-tree portfast (开启portfast功能)
switch�config-if  #end
经过以上规划与设置操作后,在路由器和交换机上的设置全部完成,剩下的工作只要在客户机上打开“自动获得IP地址”功能即可(如图2所示)。对于Windows 2000/2003 Server系统,还需要将“DHCP CLIENT”服务启用(如下图3所示),否则在Windows 2000/2003 Server中将不能自动得到IP地址。 [img]http://publish.it168.com/2005/0610/images/356986.jpg[/img]图二[img]http://publish.it168.com/2005/0610/images/356988.jpg[/img]图三
至此,通过启用Cisco路由器的DHCP Server功能与客户端DHCP的配合使用,使局域网VLAN中的主机自动获得IP地址,真正实现了DHCP服务全部功能。相比在服务器上用windows/Linux 操作系统实现的DHCP服务器,从稳定性和功能上看,路由器实现的DHCP服务器要优越得多。

bj007  2006-12-6 05:18

posted @ 2007-07-23 16:45 青蛙學堂 阅读(617) | 评论 (0)编辑 收藏

English website address

1、搜索网站:  http://www.google.com   http://www.yahoo.com 雅虎分类检索。wbw.com.cn版权所有,7348,严禁拷贝
2、汉英、英汉、英英、汉汉词典:wbw.com.cn版权所有,7348,严禁拷贝
  http://www.iciba.net/ 金山词霸网站,可以下载部分字典软件的共享版,英汉之间各种转换都有。词条数一般在百万以上。建议还是直接去买软件好,作为案头常备工具,还可随点随译。wbw.com.cn版权所有,7348,严禁拷贝
  http://sunrain.net/ 太阳雨汉英英汉词典,内容丰富,可以添加词汇,并有水平不错的论坛。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.m-w.com/ 韦氏大词典,英英,韦氏字典家族尽览。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.thesaurus.com/ wbw.com.cn版权所有,7348,严禁拷贝
http://www.dictionary.com 综合词典,同义词/反义词,分类,英英。wbw.com.cn版权所有,7348,严禁拷贝
  http://dico.isc.cnrs.fr/dico/en/search 同义词电子词典,英英。wbw.com.cn版权所有,7348,严禁拷贝
3、百科辞典wbw.com.cn版权所有,7348,严禁拷贝
  http://www.bartleby.com/reference/ 美国最大的免费在线参考网站。下有Columbia Encyclopedia, Roget's Thesauri, American Heritage Dictionary, Columbia History of English and American Literature等众多参考词典。更新快,内容丰富。英文。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.encycolpedia.com 在线简明哥伦比亚百科全书,有5万多词条。英文。wbw.com.cn版权所有,7348,严禁拷贝
  http://education.yahoo.com/reference/encyclopedia/index.html 在线简明牛津百科全书。英文。wbw.com.cn版权所有,7348,严禁拷贝
  http://s9.com/biography/search.html 人名词典,可通过名字、关键词或时间查询28,000位世界著名人物的简要介绍。英文。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.getty.edu/research/tools/vocabulary/tgn/index.html 地名大词典。英文。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.db66.com/index.shtm 新近开通的知识在线,号称网上最大中文知识库,有世界知识、中国文物、音乐、体育、历史等百科全书。需要注册。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.xingfusi.com/fxd/lookup.htm 六合一佛学大词典,每个词条都有详介及英语译法。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.al-islam.org/encyclopedia/index.html 英文伊斯兰教百科全书。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.carm.org/dictionary.htm 英文基督教神学词典。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.ask.com/ 最常用的提问网站,可以通过查询分类查找问题答案,也可上帖提问。wbw.com.cn版权所有,7348,严禁拷贝
4、翻译wbw.com.cn版权所有,7348,严禁拷贝
  http://www.bilinguist.com 汉英论坛,高手云集,可上贴提问,回答率高。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.chinatranslate.net 中国翻译网,号称全国最大的翻译专业网站。知识全面,但更新较慢。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.cn-trans.com/ 译者俱乐部,个人网站,其精选短文与翻译论坛尚可。更新慢。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.jbfeng.com 自由翻译者冯京葆的个人网站,包括翻译知识、译坛趣事等。更新慢。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.word2word.com/free.html 免费网上翻译服务wbw.com.cn版权所有,7348,严禁拷贝
www.worldLingo.com 免费网上翻译服wbw.com.cn版权所有,7348,严禁拷贝
5、语法、阅读、教学、写作wbw.com.cn版权所有,7348,严禁拷贝
  http://wfwok.topcool.net/grammar.htm 比较详尽的语法教程,包括练习,可下载。wbw.com.cn版权所有,7348,严禁拷贝
  http://home.njenet.net.cn/ewriting/w/ewriting.htm 东南大学研究生写作课程,只有7单元,对提高阅读和写作能力却很有帮助。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.edufind.com/english/grammar/subidx.cfm 英文在线教学网站的语法部分,120条。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.englishchina.com/ 英语中国,有丰富的站点链接,更新较慢。wbw.com.cn版权所有,7348,严禁拷贝
  http://webster.commnet.edu/writing/writing.htm 英文写作助手。多种国外资源链接。wbw.com.cn版权所有,7348,严禁拷贝
6、社区、听力、口语、演讲wbw.com.cn版权所有,7348,严禁拷贝
  http://www.crazyenglish.org 疯狂英语俱乐部。英语学习方法、教程、各种最新资料。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.hongen.com/eng/index.htm 洪恩在线。英语学习社区。外教讲座。wbw.com.cn版权所有,7348,严禁拷贝
  http://edu.china.com/zh_cn/elearn/second/test/index.html 提高英语听力的方法。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.tingli.com/ 听力网,众多时文,可下载收听,用REALPLAYER。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.listeningexpress.com/ 部分VOA、BBC、NCE的听力材料.wbw.com.cn版权所有,7348,严禁拷贝
  http://yyenglish.myrice.com/pages/data1.htm 羊羊的听力资料库,网况良好时请多多下载。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.un.org/av/ 联合国广播,需待网况良好时使用。wbw.com.cn版权所有,7348,严禁拷贝
  http://broadcast.yahoo.com雅虎广播站,多个频道。需相应网速。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.historychannel.com/speeches/ 美国历史频道演说集,需要REALPLAYER。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.americanrhetoric.com/speechbank.htm 强大的名人演说集(文本+录音)。可搜索。wbw.com.cn版权所有,7348,严禁拷贝
http://library.westmont.edu/bibinst/Search...惭萁擦废白试础?/a>wbw.com.cn版权所有,7348,严禁拷贝
  http://www.lunli.com/index.html 赛博风:在网络中听英语(EXCELLENT)wbw.com.cn版权所有,7348,严禁拷贝
  http://www.listeningexpress.com/ 英语听力特快wbw.com.cn版权所有,7348,严禁拷贝
7. 综合类wbw.com.cn版权所有,7348,严禁拷贝
  http://www.360abc.com/ 世博英语wbw.com.cn版权所有,7348,严禁拷贝
  http://www.icansay.com/ 英文锁定, 精彩我来说wbw.com.cn版权所有,7348,严禁拷贝
  http://language.chinadaily.com.cn/index.html chinadaily--Language Tipswbw.com.cn版权所有,7348,严禁拷贝
  http://groups.google.com/groups? ... .humor.funny.reruns 英语笑话NEWSGROUP,都是精品wbw.com.cn版权所有,7348,严禁拷贝
  http://english.chinaschool.net/main.html 天天英语wbw.com.cn版权所有,7348,严禁拷贝
  http://www.chineseworld.com/publish/37_9999.r/r.asp 世界日报-生活美语wbw.com.cn版权所有,7348,严禁拷贝
  http://www.iselong.com/ 万千英语族wbw.com.cn版权所有,7348,严禁拷贝
  http://www.englishww.com/ 旺旺英语wbw.com.cn版权所有,7348,严禁拷贝
  http://www.5ixx.com/ 51XX英语资料下载wbw.com.cn版权所有,7348,严禁拷贝
8. 英语考试wbw.com.cn版权所有,7348,严禁拷贝
  专门是针对各种英语考证TOFEL,GRE,GMAT,IELTS,ESLwww.51ielts.comwbw.com.cn版权所有,7348,严禁拷贝
  ESL 学习 http://www.eslweb.net/wbw.com.cn版权所有,7348,严禁拷贝
  DOWNDOWDOWN -很多可下载考试资料 http://www.downdowndown.netwbw.com.cn版权所有,7348,严禁拷贝
  寄托天下www.gter.netwbw.com.cn版权所有,7348,严禁拷贝
  托福上游 http://vip.6to23.com/toptoefl/wbw.com.cn版权所有,7348,严禁拷贝
  太傻 http://www.taisha.org/wbw.com.cn版权所有,7348,严禁拷贝
  Test Tutor http://www.testtutor.comwbw.com.cn版权所有,7348,严禁拷贝
  免费学习GRE的好网站(E)www.number2.comwbw.com.cn版权所有,7348,严禁拷贝
  TestMagic.com(E) http://www.testmagic.com/wbw.com.cn版权所有,7348,严禁拷贝
9. 英语电台 这类专门是提供各种优质英语电台wbw.com.cn版权所有,7348,严禁拷贝
  http://webcri.cri.com.cn:8000/news/expenew 中国国际广播电台英文页wbw.com.cn版权所有,7348,严禁拷贝
  http://210.77.152.231/dianbo.asp 中央人民广播电台第二套节目 阳光英语时段,包括〈大家说英语〉和〈初级美国英语〉 网上随时听!!!wbw.com.cn版权所有,7348,严禁拷贝
  http://www.cnradio.com 中央台第一套网络直播节目每晚 22:30 空中英语教室(一、三、五);美国英语教程 (二、四、六)。中央台第二套网络直播节目每天清晨 6:00 阳光英语!wbw.com.cn版权所有,7348,严禁拷贝
  http://www.shanghai-window.com/sbc/abc/teach/index.html 上海人民广播电台 英语教室wbw.com.cn版权所有,7348,严禁拷贝
  http://www.taichungnet.com.tw/home/live.ram 台湾台中生活资讯广播 每天清晨6:00---7:00 《大家说英语》《英语空中教室》wbw.com.cn版权所有,7348,严禁拷贝
  http://www.csbc.com.tw/menu8.htm 台湾正声广播公司 FM调频台Windows media Player 按时LIVE 收听 清晨:06:00--07:00 〈What's up What's new> http://www.china.com.cnwww.china.org.cn )中国互联网信息中心,由国新办合外文局领导。多语言网站。有中国知识、政府白皮书、中国文化产业报告等。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.ccnt.com.cn 中华文化信息网,由文化部领导,综合性强。英文部分属<中国文化艺术丛书>之英译本。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.chinavista.com/entravel/culture.php 介绍中国文化的双语网站,语言地道,内容丰富,包括各种菜谱等。但更新不快。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.chinapage.com/classic1.html 中国典籍,部分有英文版,特别是四书。wbw.com.cn版权所有,7348,严禁拷贝
12、国际 常用背景材料(外交、政治、经济、文化)wbw.com.cn版权所有,7348,严禁拷贝
  http://www.un.org 联合国。五种语言对照。包括新闻、发言、文件、活动等大量内容。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.unesco.org 联合国教科文组织。五种语言。材料丰富。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.europa.eu.int/index_en.htm 欧盟网站。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.oau-oua.org/ 非统组织。wbw.com.cn版权所有,7348,严禁拷贝
  http://education.yahoo.com/reference/factbook/ 雅虎的世界知识网站,综合性强。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.countryreports.org/ 介绍世界各国情况的英文网站,有地区论坛。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.ispa.org 国际演艺界协会。有世界艺术网站链接。wbw.com.cn版权所有,7348,严禁拷贝
  http://whitehouse.gov 美国白宫。了解美国政治必备。wbw.com.cn版权所有,7348,严禁拷贝
13、 主要媒体、英语杂志wbw.com.cn版权所有,7348,严禁拷贝
  http://www.peopledaily.com.cn 人民日报。多种语言。背景知识丰富。旗下多个热门论坛,包括英文论坛ChinaForum。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.xinhuanet.com/english 新华社。新闻量丰富,分类详尽。多种语言。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.chinadaily.com.cn 中国日报。国内最大英语新闻媒体。适合新闻搜索。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.cri.com.cn 中国国际广播电台。多种语言。内容丰富。文化内容多。下载方便。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.cctv.com.cn 央视国际网站。可提前一周下载节目预告。英语频道纪录片不错。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.scmp.com/ 香港南华早报。英文报纸,需注册。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.zaobao.com/bilingual/bilingual.html 新加坡《联合早报》汉英双语专辑,既有关于当代英语用法的讨论,也可了解亚洲人对于世界的若干观点。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.iht.com/frontpage.html 国际先驱论坛报。英文。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.worldpress.org/index.shtm 世界新闻综合评论。英文。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.nytimes.com 纽约时报。需要注册。英文。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.feer.com/ 远东经济评论。英文。wbw.com.cn版权所有,7348,严禁拷贝
  http://dsc.discovery.com/ 探索杂志。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.nationalgeographic.com/ 美国国家地理杂志。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.discover.com <发现>科学月刊。英文。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.aldaily.com 世界文化、艺术、出版界动态及丰富的评论与知识。强大链接。英文。wbw.com.cn版权所有,7348,严禁拷贝
  http://www.newyorker.com <纽约客>文化评论杂志

posted @ 2007-07-23 13:21 青蛙學堂 阅读(441) | 评论 (0)编辑 收藏

switch--trunck

Vlan中的Trunk技术在园区网中的应用

随着网络硬件性能的不断提高、成本的不断降低,目前新建立的校园网基本上都采用了性能先进的千兆网技术,其核心交换机采用三层交换机,它能很好地支持虚拟局域网(VLAN)技术,虚拟网络技术打破了地理环境的制约,在不改动网络物理连接的情况下可以任意将工作站在工作组或子网之间移动,工作站组成逻辑工作组或虚拟子网,提高信息系统的运作性能,均衡网络数据流量,合理利用硬件及信息资源。同时,利用虚拟网络技术,大大减轻了网络管理和维护工作的负担,降低网络维护费用。随着虚拟网络技术的应用,随之必然产生了在虚拟网间如何通讯的问题.

VLAN 概 述
VLAN是一个根据作用、计划组、应用等进行逻辑划分的交换式网络。与用户的物理位置没有关系。举个例子来说,几个终端可能被组成一个部分,可能包括工程师或财务人员。当终端的实际物理位置比较相近,可以组成一个局域网(LAN)。如果他们在不同的建筑物中,就可以通过VLAN将他们聚合在一起。同一个VLAN中的端口可以接受VLAN中的广播包。但别的VLAN中的端口却接受不到。  
VLAN提供以下一些特性  
1 简化了终端的删除、增加、改动  
当一个终端从物理上移动到一个新的位置,它的特征可以从网络管理工作站通过SNMP或用户界面菜单中重新定义。而对于仅在同一个VLAN中移动的终端来说,它会保持以前定义的特征。在不同VLAN中移动的终端来说,终端可以获得新的VLAN定义。  
2 控制通讯活动  
VLAN可以由相同或不同的交换机端口组成。广播信息被限制在VLAN中。这个特征限定了只在VLAN中的端口才有广播、多播通讯。管理域(management domain)是一个仅有单一管理者的多个VLAN的集合。  
3 工作组和网络安全  
将网络划分不同的域可以增加安全性。VLAN可以限制广播域的用户数。控制VLAN的大小和组成可以控制广播域的相应特性。  
TRUNK的介绍   

Trunk(干道)是一种封装技术,它是一条点到点的链路,主要功能就是仅通过一条链路就可以连接多个交换机从而扩展已配置的多个VLAN。还可以采用通过Trunk技术和上级交换机级连的方式来扩展端口的数量,可以达到近似堆叠的功能,节省了网络硬件的成本,从而扩展整个网络。
TRUNK承载的VLAN范围。缺省下是1~1005,可以修改,但必须有1个Trunk协议。使用Trunk时,相邻端口上的协议要一致。
Trunk工作过程

要传输多个VLAN的通信,需要用专门的协议封装或者加上标记(tag),以便接收设备能区分数据所属的VLAN。VLAN标识从逻辑上定义了,哪个数据包是它有多种协议,而我们最常用到的是基于:IEEE802.1Q和CISCO专用的协议:ISL。下面我简要的介绍一下这两种协议。
1.交换机间链路(ISL)是一种CISCO专用的协议,用于连接多个交换机。当数据在交换机之间传递时负责保持VLAN信息的协议。在一个ISL干道端口中,所有接收到的数据包被期望使用ISL头部封装,并且所有被传输和发送的包都带有一个ISL头。从一个ISL端口收到的本地帧(non-tagged)被丢弃。它只用在CISCO产品中。
2.IEEE802.1Q正式名称是虚拟桥接局域网标准,用在不同的产家生产的交换机之间。一个IEEE802.1Q干道端口同时支持加标签和未加标签的流量。一个802.1Q干道端口被指派了一个缺省的端口Vlan ID(PVID),并且所有的未加标签的流量在该端口的缺省PVID上传输。一个带有和外出端口的缺省PVID相等的Vlan ID的包发送时不被加标签。所有其他的流量发送是被加上Vlan标签的。
     在设置trunk后,trunk 链路不属于任何一个VLAN。trunk链路在交换机之间起着VLAN管道的作用,交换机会将该trunk以外并且和trunk中的端口处于一个vlan中的其它端口的负载自动分配到该trunk中的各个端口。因为同一个vlan中的端口之间会相互转发数据报,而位于trunk中的trunk端口被当作一个端口来看待,如果vlan中的其它非trunk端口的负载不分配到各个trunk端口,则有些数据报可能随机的发往trunk而导致帧顺序混乱。由于trunk口作为1个逻辑端口看待,因此在设置了trunk后,该trunk将自动加入到这些vlan中它的成员端口所属的vlan中,而其成员端口则自动从vlan中删除。
在中TRUNK线路上传输不同的VLAN的数据时,可使用有两种方法识别不同的VLAN的数据:帧过滤和帧标记。帧过滤法根据交换机的过滤表检查帧的详细信息。每一个交换机要维护复杂的过滤表,同时对通过主干的每一个帧进行详细检查,这会增加网络延迟时间。目前在VLAN中这种方法已经不使用了。现在使用的是帧标记法。数据帧在中继线上传输的时候,交换机在帧头的信息中加标记来指定相应的VLAN ID。当帧通过中继以后,去掉标记同时把帧交换到相应的VLAN端口。帧标记法被IEEE选定为标准化的中继机制。它至少有如下三种处理方法:

1) 静态干线配置
静态干线配置最容易理解。干线上每一个交换机都可由程序设定发送及接收使用特定干
线连接协议的帧。在这种设置下,端口通常专用于干线连接,而不能用于连接端节点,至少
不能连接那些不使用干线连接协议( trunking protocol)的端节点。当自动协商机制不能正常工作或不可用时,静态配置是非常有用的,其缺点是必须手工维护。
2) 干线功能通告
交换机可以周期性地发送通告帧,表明它们能够实现某种干线连接功能。例如,交换机
可以通告自己能够支持某种类型的帧标记V L A N,因此按这个交换机通告的帧格式向其发送帧是不会有错的。交换机的功能还止这些,它还可以通告它现在想为哪个V L A N提供干线连接服务。这类干线设置对于一个由端节点和干线混合组成的网段可能会很有用。
3) 干线自动协商
干线也能通过协商过程自动设置。在这种情况下,交换机周期性地发送指示帧,表明它
们希望转到干线连接模式。如果另一端的交换机收到并识别这些帧,并自动进行配置,那么
这两部交换机就会将这些端口设成干线连接模式。这种自动协商通常依赖于两部交换机(在同一网段上)之间已有的链路,并且与这条链路相连的端口要专用于干线连接,这与静态干线设置非常相似。

Trunk的优点:

1、可以在不同的交换机之间连接多个VLAN,可以将VLAN扩展到整个网络中。
2、Trunk可以捆绑任何相关的端口,也可以随时取消设置,这样提供了很高的灵活性。

3、Trunk可以提供负载均衡能力以及系统容错。由于Trunk实时平衡各个交换机端口和服务器接口的流量,一旦某个端口出现故障,它会自动把故障端口从Trunk组中撤消,进而重新分配各个Trunk端口的流量,从而实现系统容错。


实例应用

V L A N交换机的主要特点是能够在单个交换机内部或多个交换机之间支持多个独立的V L A N。对于多个V L A N交换机来说,一条干线就是两个交换机之间的连接,它在两个或两个以上的V L A N之间传输数据流。这与两个普通网桥之间的一条链路不同,因为每个交换机必须确定它所收到的帧属于哪个V L A N。虽然这增加了某种复杂性,但同时也带来了很大的灵活性。



本例解释了如何在3550交换机和2950交换机之间的一条链路上创建承载不同交换机之间VLAN通信的ISL TRUNK。 在Catalyst3550交换机和Catalyst2950交换机这间配置一条Trunk线路相联,在这个应用中我划分了4个VLAN,其中有3个动手配置的VLAN并对它们命名分别为:A2、A3、A4。其中VLAN1采用默认的配置。并对2950和3550交换机的各端口分配到适当的VLAN中。
下面以3550交换机为例,简要的介绍以下重要的配置。
创建VLAN如下:
3550switch#vlan database
3550switch(vlan)#vlan 2 name A2
3550switch(vlan)#vlan 3 name A3
3550switch(vlan)#vlan 4 name A4
把各个端口分配到适当的VLAN中:
3550switch(config)#interface range fastEthernet 0/5 – 8
3550swutcg(config-if)#switchport access vlan 2    (5 至 8 端口放入VLAN2中)
3550switch(config)#interface range fastEthernet 0/9 – 11
3550swutcg(config-if)#switchport access vlan 3   (9 至 11 端口放入VLAN3中)

3550switch(config)#interface range fastEthernet 0/12 – 15
3550swutcg(config-if)#switchport access vlan 4     (11 至 15 端口放入VLAN4中)

应该注意,interface range fastEthernet X/X –X 是应用在Cisco IOS 软件12.1以上的版本,如果你使用的是CiscoIOS软件12.1以前的发布的版本的话,应该用命令:switchport access vlan vlanID ,把端口加入VLAN。
在特权模式下使用命令:show vlan 来检查是否将端口分配给正确的VLAN。
VLAN Name                             Status    Ports
---- -------------------------------- --------- ——————————————
1    default                          active    Fa0/2, Fa0/4, Fa0/16, Fa0/17
                                                Fa0/18, Fa0/19, Fa0/20,
  Fa0/22, Fa0/23, Fa0/24,
                                                 Gi0/1            Gi0/2
2    A2                               active    Fa0/5, Fa0/6, Fa0/7, Fa0/8
3    A3                               active    Fa0/9, Fa0/10, Fa0/11
4    A4                               active    Fa0/12, Fa0/13, Fa0/14, Fa0/15
1002 fddi-default                     active
1003 token-ring-default               active
1004 fddinet-default                  active
1005 trnet-default                    active

可以看出其它的端口全默认在VLAN1中。
在这个应用中,我把3550的fastE 0/2和2950的fastE 0/1端口分别设配为TRUNK口,并在每一个端口都采用ISL干道封装:
3550switch(config)#interfasce fa0/2
3550switch(config-if)#switchport mode trunk
3550switch(config-if)#switchport trunk encapsulation isl
需要注意的是,trunk 端口缺省情况下会传送所有的VLAN的通信。
要查看trunk端口的信息和允许的VLAN
可以使用命令:show interfas interface-id switchport。
Name: Fa0/1
Switchport: Enabled
Administrative Mode: trunk
Operational Mode: trunk
Administrative Trunking Encapsulation: dot1q
Operational Trunking Encapsulation: dot1q
Negotiation of Trunking: On
Access Mode VLAN: 1 (default)
Trunking Native Mode VLAN: 1 (default)
Trunking VLANs Enabled: ALL
Pruning VLANs Enabled: 2-1001

Protected: false
Unknown unicast blocked: disabled
Unknown multicast blocked: disabled
Voice VLAN: none (Inactive)
Appliance trust: none
要限制trunk传送的VLAN,从允许的VLAN 列表中去除某些VLAN。
可以使用接口配置命令:
3550switch(config-if)#switchport trunk allowed vlan remove vlan-list

对于2950的设置和上面的3500交换机的配置一样,在这就不再赘述。而只把端口3至6分配到VLAN2中,7至10分配到VLAN3中,11至13分配到VLAN4中,其它端口在默认的VLAN1中。重要的是在2950交换机封装TRUNK的协议要相同。

如果在这个例子中,在Catalyst3550交换机的VLAN2中有一主机hostA其IP地址设置为:192.168.0.2/24,在Catalyst2950交换机的VLAN2中也有一主机hostB其IP地址设置为:192.168.0.6/24。如果在2950的交换机的hostA PING对方hostB的话,可以看到,交换机2950用标识为VLAN2的ISL头封装数据帧,并通过trunk 链路发送到3550的交换机中。而3550接收到其数据帧的话,首先除去ISL头,然后封装自已的信息,从重复2950的过程并转发给2950。但是如果在这两台交换机之中,这两个工作站分别在不同的VLAN之中,则相互PING对方的话,是不通的。从而说明,不同交换机之间的工作站通过TRUNK相连接,只有这些工作站在同一个VLAN之中才可以相互通信,而不同VLAN中的工作站是不能通过TRUNK来通信的。


总结
Trunk 是在两台交换机之间的一条点到点的链路,每台交换机的相应端口称为干道端口。一条干道可以传输多个VLAN 的数据流,并允许用户将VLAN的范围从一台交换机扩展到另一台交换机。对于TRUNK端口来说,其上允许通过的VLAN范围体现的是一种能力,与系统中是否存在对应的VLAN实体没有关系。
如果没有TRUNK链路,就需要配置多条接入链路,来支持交换机之间的多个VLAN。这是人个既不节约,扩展性也差的解决方案。在园区网内交换机互联时,TRUNK绝对是必需的。
   

posted @ 2007-07-19 09:37 青蛙學堂 阅读(1049) | 评论 (0)编辑 收藏

switch命令大全

     摘要: switch命令大全 1.switch(config)# hostname hostname 在基于CLI的交换机上设置主机名/系统名: switch(enable) set system name name-string 2.在基于IOS的交换机上设置登录口令: switch(config)# enable password level 1 password 在基于CLI的...  阅读全文

posted @ 2007-07-19 08:15 青蛙學堂 阅读(355) | 评论 (0)编辑 收藏

cisco-command

CISCO交换机配置命令大全2006-2-28 14:33:00

1.在基于IOS的交换机上设置主机名/系统名:
switch(config)# hostname hostname
在基于CLI的交换机上设置主机名/系统名:
switch(enable) set system name name-string

2.在基于IOS的交换机上设置登录口令:
switch(config)# enable password level 1 password
在基于CLI的交换机上设置登录口令:
switch(enable) set password
switch(enable) set enalbepass

3.在基于IOS的交换机上设置远程访问:
switch(config)# interface vlan 1
switch(config-if)# ip address ip-address netmask
switch(config-if)# ip default-gateway ip-address
在基于CLI的交换机上设置远程访问:
switch(enable) set interface sc0 ip-address netmask broadcast-address
switch(enable) set interface sc0 vlan
switch(enable) set ip route default gateway

4.在基于IOS的交换机上启用和浏览CDP信息:
switch(config-if)# cdp enable
switch(config-if)# no cdp enable
为了查看Cisco邻接设备的CDP通告信息:
switch# show cdp interface [type modle/port]
switch# show cdp neighbors [type module/port] [detail]
在基于CLI的交换机上启用和浏览CDP信息:
switch(enable) set cdp {enable|disable} module/port
为了查看Cisco邻接设备的CDP通告信息:
switch(enable) show cdp neighbors[module/port] [vlan|duplex|capabilities|detail]

5.基于IOS的交换机的端口描述:
switch(config-if)# description description-string
基于CLI的交换机的端口描述:
switch(enable)set port name module/number description-string

6.在基于IOS的交换机上设置端口速度:
switch(config-if)# speed{10|100|auto}
在基于CLI的交换机上设置端口速度:
switch(enable) set port speed moudle/number {10|100|auto}
switch(enable) set port speed moudle/number {4|16|auto}

7.在基于IOS的交换机上设置以太网的链路模式:
switch(config-if)# duplex {auto|full|half}
在基于CLI的交换机上设置以太网的链路模式:
switch(enable) set port duplex module/number {full|half}

8.在基于IOS的交换机上配置静态VLAN:
switch# vlan database
switch(vlan)# vlan vlan-num name vla

switch(vlan)# exit
switch# configure teriminal
switch(config)# interface interface module/number
switch(config-if)# switchport mode access
switch(config-if)# switchport access vlan vlan-num
switch(config-if)# end
在基于CLI的交换机上配置静态VLAN:
switch(enable) set vlan vlan-num [name name]
switch(enable) set vlan vlan-num mod-num/port-list

9. 在基于IOS的交换机上配置VLAN中继线:
switch(config)# interface interface mod/port
switch(config-if)# switchport mode trunk
switch(config-if)# switchport trunk encapsulation {isl|dotlq}
switch(config-if)# switchport trunk allowed vlan remove vlan-list
switch(config-if)# switchport trunk allowed vlan add vlan-list
在基于CLI的交换机上配置VLAN中继线:
switch(enable) set trunk module/port [on|off|desirable|auto|nonegotiate]
Vlan-range [isl|dotlq|dotl0|lane|negotiate]

10.在基于IOS的交换机上配置VTP管理域:
switch# vlan database
switch(vlan)# vtp domain domain-name
在基于CLI的交换机上配置VTP管理域:
switch(enable) set vtp [domain domain-name]

11.在基于IOS的交换机上配置VTP 模式:
switch# vlan database
switch(vlan)# vtp domain domain-name
switch(vlan)# vtp {sever|cilent|transparent}
switch(vlan)# vtp password password
在基于CLI的交换机上配置VTP 模式:
switch(enable) set vtp [domain domain-name] [mode{ sever|cilent|transparent }][password password]

12. 在基于IOS的交换机上配置VTP版本:
switch# vlan database
switch(vlan)# vtp v2-mode
在基于CLI的交换机上配置VTP版本:
switch(enable) set vtp v2 enable

13. 在基于IOS的交换机上启动VTP剪裁:
switch# vlan database
switch(vlan)# vtp pruning
在基于CL I 的交换机上启动VTP剪裁:
switch(enable) set vtp pruning enable

14.在基于IOS的交换机上配置以太信道:
switch(config-if)# port group group-number [distribution {source|destination}]
在基于CLI的交换机上配置以太信道:
switch(enable) set port channel moudle/port-range mode{on|off|desirable|auto}

15.在基于IOS的交换机上调整根路径成本:
switch(config-if)# spanning-tree [vlan vlan-list] cost cost
在基于CLI的交换机上调整根路径成本:

switch(enable) set spantree portcost moudle/port cost
switch(enable) set spantree portvlancost moudle/port [cost cost][vlan-list]

16.在基于IOS的交换机上调整端口ID:
switch(config-if)# spanning-tree[vlan vlan-list]port-priority port-priority
在基于CLI的交换机上调整端口ID:
switch(enable) set spantree portpri {mldule/port}priority
switch(enable) set spantree portvlanpri {module/port}priority [vlans]

17. 在基于IOS的交换机上修改STP时钟:
switch(config)# spanning-tree [vlan vlan-list] hello-time seconds
switch(config)# spanning-tree [vlan vlan-list] forward-time seconds
` switch(config)# spanning-tree [vlan vlan-list] max-age seconds
在基于CLI的交换机上修改STP时钟:
switch(enable) set spantree hello interval[vlan]
switch(enable) set spantree fwddelay delay [vlan]
switch(enable) set spantree maxage agingtiame[vlan]

18. 在基于IOS的交换机端口上启用或禁用Port Fast 特征:
switch(config-if)#spanning-tree portfast
在基于CLI的交换机端口上启用或禁用Port Fast 特征:
switch(enable) set spantree portfast {module/port}{enable|disable}

19. 在基于IOS的交换机端口上启用或禁用UplinkFast 特征:
switch(config)# spanning-tree uplinkfast [max-update-rate pkts-per-second]
在基于CLI的交换机端口上启用或禁用UplinkFast 特征:
switch(enable) set spantree uplinkfast {enable|disable}[rate update-rate] [all-protocols off|on]

20. 为了将交换机配置成一个集群的命令交换机,首先要给管理接口分配一个IP地址,然后使用下列命令: switch(config)# cluster enable cluster-name

21. 为了从一条中继链路上删除VLAN,可使用下列命令:
switch(enable) clear trunk module/port vlan-range

22. 用show vtp domain 显示管理域的VTP参数.

23. 用show vtp statistics显示管理域的VTP参数.

24. 在Catalyst交换机上定义TrBRF的命令如下:
switch(enable) set vlan vlan-name [name name] type trbrf bridge bridge-num[stp {ieee|ibm}]

25. 在Catalyst交换机上定义TrCRF的命令如下:
switch (enable) set vlan vlan-num [name name] type trcrf
{ring hex-ring-num|decring decimal-ring-num} parent vlan-num

26. 在创建好TrBRF VLAN之后,就可以给它分配交换机端口.对于以太网交换,可以采用如下命令给VLAN分配端口:
switch(enable) set vlan vlan-num mod-num/port-num

27. 命令show spantree显示一个交换机端口的STP状态.

28. 配置一个ELAN的LES和BUS,可以使用下列命令:
ATM (config)# interface atm number.subint multioint
ATM(config-subif)# lane serber-bus ethernet elan-name

29. 配置LECS:
ATM(config)# lane database database-name
ATM(lane-config-databade)# name elan1-name server-atm-address les1-nsap-address
ATM(lane-config-databade)# name elan2-name server-atm-address les2-nsap-address
ATM(lane-config-databade)# name …

30. 创建完数据库后,必须在主接口上启动LECS.命令如下:
ATM(config)# interface atm number
ATM(config-if)# lane config database database-name
ATM(config-if)# lane config auto-config-atm-address

31. 将每个LEC配置到一个不同的ATM子接口上.命令如下:
ATM(config)# interface atm number.subint multipoint
ATM(config)# lane client ethernet vlan-num elan-num

32. 用show lane server 显示LES的状态.

33. 用show lane bus显示bus的状态.

34. 用show lane database显示LECS数据库可内容.

35. 用show lane client显示LEC的状态.

36. 用show module显示已安装的模块列表.

37. 用物理接口建立与VLAN的连接:
router# configure terminal
router(config)# interface media module/port
router(config-if)# description description-string
router(config-if)# ip address ip-addr subnet-mask
router(config-if)# no shutdown

38. 用中继链路来建立与VLAN的连接:
router(config)# interface module/port.subinterface
router(config-ig)# encapsulation[isl|dotlq] vlan-number
router(config-if)# ip address ip-address subnet-mask

39. 用LANE 来建立与VLAN的连接:
router(config)# interface atm module/port
router(config-if)# no ip address
router(config-if)# atm pvc 1 0 5 qsaal
router(config-if)# atm pvc 2 0 16 ilni
router(config-if)# interface atm module/port.subinterface multipoint
router(config-if)# ip address ip-address subnet-mask
router(config-if)# lane client ethernet elan-num
router(config-if)# interface atm module/port.subinterface multipoint
router(config-if)# ip address ip-address subnet-name
router(config-if)# lane client ethernet elan-name
router(config-if)# …

40. 为了在路由处理器上进行动态路由配置,可以用下列IOS命令来进行:
router(config)# ip routing
router(config)# router ip-routing-protocol
router(config-router)# network ip-network-number
router(config-router)# network ip-network-number

41. 配置默认路由:
switch(enable) set ip route default gateway

42. 为一个路由处理器分配VLANID,可在接口模式下使用下列命令:
router(config)# interface interface number
router(config-if)# mls rp vlan-id vlan-id-num

43. 在路由处理器启用MLSP:
router(config)# mls rp ip

44. 为了把一个外置的路由处理器接口和交换机安置在同一个VTP域中:
router(config)# interface interface number
router(config-if)# mls rp vtp-domain domain-name

45. 查看指定的VTP域的信息:
router# show mls rp vtp-domain vtp domain name

46. 要确定RSM或路由器上的管理接口,可以在接口模式下输入下列命令:
router(config-if)#mls rp management-interface

47. 要检验MLS-RP的配置情况:
router# show mls rp

48. 检验特定接口上的MLS配置:
router# show mls rp interface interface number

49. 为了在MLS-SE上设置流掩码而又不想在任一个路由处理器接口上设置访问列表:
set mls flow [destination|destination-source|full]

50. 为使MLS和输入访问列表可以兼容,可以在全局模式下使用下列命令:
router(config)# mls rp ip input-acl

51. 当某个交换机的第3层交换失效时,可在交换机的特权模式下输入下列命令:
switch(enable) set mls enable

52. 若想改变老化时间的值,可在特权模式下输入以下命令:
switch(enable) set mls agingtime agingtime

53. 设置快速老化:
switch(enable) set mls agingtime fast fastagingtime pkt_threshold

54. 确定那些MLS-RP和MLS-SE参与了MLS,可先显示交换机引用列表中的内容再确定:
switch(enable) show mls include

55. 显示MLS高速缓存记录:
switch(enable) show mls entry

56. 用命令show in arp显示ARP高速缓存区的内容。

57. 要把路由器配置为HSRP备份组的成员,可以在接口配置模式下使用下面的命令:
router(config-if)# standby group-number ip ip-address

58. 为了使一个路由器重新恢复转发路由器的角色,在接口配置模式下:
router(config-if)# standy group-number preempt

59. 访问时间和保持时间参数是可配置的:
router(config-if)# standy group-number timers hellotime holdtime

60. 配置HSRP跟踪:
router(config-if)# standy group-number track type-number interface-priority

61. 要显示HSRP路由器的状态:
router# show standby type-number group brief

62. 用命令show ip igmp确定当选的查询器。

63. 启动IP组播路由选择:
router(config)# ip muticast-routing

64. 启动接口上的PIM:
dalllasr1>(config-if)# ip pim {dense-mode|sparse-mode|sparse-dense-mode}

65. 启动稀疏-稠密模式下的PIM:
router# ip multicast-routing
router# interface type number
router# ip pim sparse-dense-mode

66. 核实PIM的配置:
dallasr1># show ip pim interface[type number] [count]

67. 显示PIM邻居:
dallasr1># show ip neighbor type number

68. 为了配置RP的地址,命令如下:
dallasr1># ip pim rp-address ip-address [group-access-list-number][override]

69. 选择一个默认的RP:
dallasr1># ip pim rp-address
通告RP和它所服务的组范围:
dallasr1># ip pim send-rp-announce type number scope ttl group-list access-list-number
为管理范围组通告RP的地址:
dallasr1># ip pim send-rp-announce ethernet0 scope 16 group-list1
dallasr1># access-list 1 permit 266.0.0.0 0.255.255.255
设定一个RP映像代理:
dallasr1># ip pim send-rp-discovery scope ttl
核实组到RP的映像:
dallasr1># show ip pim rp mapping
dallasr1># show ip pim rp [group-name|group-address] [mapping]

70. 在路由器接口上用命令ip multicast ttl-threshold ttl-value设定TTL阀值:
dallasr1>(config-if)# ip multicast ttl-threshold ttl-value

71. 用show ip pim neighbor显示PIM邻居表。

72. 显示组播通信路由表中的各条记录:
dallasr1>show ip mroute [group-name|group-address][scoure][summary][count][active kbps]

73. 要记录一个路由器接受和发送的全部IP组播包:
dallasr1> #debug ip mpacket [detail] [access-list][group]

74. 要在CISCO路由器上配置CGMP:
dallasr1>(config-if)# ip cgmp

75.配置一个组播路由器,使之加入某一个特定的组播组:
dallasr1>(config-if)# ip igmp join-group group-address

76. 关闭 CGMP:
dallasr1>(config-if)# no ip cgmp

77. 启动交换机上的CGMP:
dallasr1>(enable) set cgmp enable

78. 核实Catalyst交换机上CGMP的配置情况:
catalystla1>(enable) show config
set prompt catalystla1>
set interface sc0 192.168.1.1 255.255.255.0
set cgmp enable

79. CGMP离开的设置:
Dallas_SW(enable) set cgmp leave

80. 在Cisco设备上修改控制端口密码:
R1(config)# line console 0
R1(config-line)# login
R1(config-line)# password Lisbon
R1(config)# enable password Lilbao
R1(config)# login local
R1(config)# username student password cisco

81. 在Cisco设备上设置控制台及vty端口的会话超时:
R1(config)# line console 0
R1(config-line)# exec-timeout 5 10
R1(config)# line vty 0 4
R1(config-line)# exec-timeout 5 2

82. 在Cisco设备上设定特权级:
R1(config)# privilege configure level 3 username
R1(config)# privilege configure level 3 copy run start
R1(config)# privilege configure level 3 ping
R1(config)# privilege configure level 3 show run
R1(config)# enable secret level 3 cisco

83. 使用命令privilege 可定义在该特权级下使用的命令:
router(config)# privilege mode level level command

84. 设定用户特权级:
router(config)# enable secret level 3 dallas
router(config)# enable secret san-fran
router(config)# username student password cisco

85. 标志设置与显示:
R1(config)# banner motd ‘unauthorized access will be prosecuted!’

86. 设置vty访问:
R1(config)# access-list 1 permit 192.168.2.5
R1(config)# line vty 0 4
R1(config)# access-class 1 in

87. 配置HTTP访问:
Router3(config)# access-list 1 permit 192.168.10.7
Router3(config)# ip http sever
Router3(config)# ip http access-class 1
Router3(config)# ip http authentication local
Router3(config)# username student password cisco

88. 要启用HTTP访问,请键入以下命令:
switch(config)# ip http sever

89. 在基于set命令的交换机上用setCL1启动和核实端口安全:
switch(enable) set port security mod_num/port_num…enable mac address
switch(enable) show port mod_num/port_num
在基于CiscoIOS命令的交换机上启动和核实端口安全:
switch(config-if)# port secure [mac-mac-count maximum-MAC-count]
switch# show mac-address-table security [type module/port]

90. 用命令access-list在标准通信量过滤表中创建一条记录:
Router(config)# access-list access-list-number {permit|deny} source-address [source-address]

91. 用命令access-list在扩展通信量过滤表中创建一条记录:
Router(config)# access-list access-list-number {permit|deny{protocol|protocol-keyword}}{source source-wildcard|any}{destination destination-wildcard|any}[protocol-specific options][log]

92. 对于带内路由更新,配置路由更新的最基本的命令格式是:
R1(config-router)#distribute-list access-list-number|name in [type number]

93. 对于带外路由更新,配置路由更新的最基本的命令格式是:
R1(config-router)#distribute-list access-list-number|name out [interface-name] routing-process| autonomous-system-number

94. set snmp命令选项:
set snmp community {read-only|ready-write|read-write-all}[community_string]

95. set snmp trap 命令格式如下:
set snmp trap {enable|disable}
[all|moudle|classis|bridge|repeater| auth|vtp|ippermit|vmps|config|entity|stpx]
set snmp trap rvcr_addr rcvr_community

96. 启用SNMP chassis 陷阱:
Console>(enable) set snmp trap enable chassis

97. 启用所有SNMP chassis 陷阱:
Console>(enable) set snmp trap enable

…………以下由about于2002年12月6日增加…………
98. 禁用SNMP chassis 陷阱:
Console>(enable) set snmp trap disable chassis

99. 给SNMP陷阱接收表加一条记录:
Console>(enable) set snmp trap 192.122.173.42 public

100. show snmp 输出结果。

101. 命令set snmp rmon enable 的输出结果。

102. 显示SPAN信息:
Consile> show span




一些华为路由器命令:

删除设备配置
reset saved-configuration

重启
reboot

看当前配置文件
display current-configuration

改设备名
sysname

保存配置
save

进入特权模式
sysview
华为只有2层模式 不像cisco enale之后还要conf t

定义acl
acl nubmere XXXX(3000以上)进入以后
rule permit/deny IP/TCP/UDP等 source XXX.XXX.XXX.XXX XXX.XXX.XXX.XXX(反向)
destination XXX.XXX.XXX.XXX XXX.XXX.XXX.XXX(反向) eq
注意 华为默认没有deny any any

防火墙上端口加载ACL
[Quidway-Ethernet0/0]firewall packet-filter 3000 inbound

防火墙上新增加用户
local-user XXX(用户名) password simple XXX(密码)
local-user XXX service-type ppp

删除某条命令
undo(类似与cisco的no)

静态路由
ip route-static 0.0.0.0 0.0.0.0 XXX.XXX.XXX.XXX

对vpdn用户设置acl的接口
inte***ce Virtual-Template1

查看路由表
display ip routing-table

设定telnet密码
user-inte***ce vty 0 4
user privilege level 3
set authentication password simple XXX

启动/关闭
启动 un shut
关闭 shut

动态nat设置
acl number 3000
rule 0 permit ip source XXX.XXX.XXX.XXX
rule 1 permit ip source XXX.XXX.XXX.XXX
rule 2 permit ip source XXX.XXX.XXX.XXX
inte***ce Ethernet1/0
des cription ====To-Internet(WAN)====
ip address XXX.XXX.XXX.XXX XXX.XXX.XXX.XXX
nat outbound 3000
ipsec policy policy1
利用acl来做 符合acl的IP地址可以出去(注意 此处的ACL隐含了deny any any)不符合的IP地址不可以出去

创建vlan
[shzb-crsw-s6506-1]vlan 100
华为vlan不支持name
将port放入vlan
创建了vlan后 进入vlan模式
[shzb-crsw-s6506-1-vlan100]port GigabitEthernet 1/0/1 to GigabitEthernet 1/0/8
表示从G1/0/1 到1/0/8放入VLAN 100

创建trunk
inte***ce GigabitEthernet1/0/1
duplex full
speed 1000
* port link-type trunk
* port trunk permit vlan all
port link-aggregation group 1
带*号的是创建trunk链路的语句

vlan地址指定
inte***ce Vlan-inte***ce2
des cription server
ip address XXX.XXX.XXX.XXX XXX.XXX.XXX.XXX
vrrp vrid 2 virtual-ip XXX.XXX.XXX.XXX
vrrp vrid 2 priority 120
vrrp vrid 2 preempt-mode timer delay 10
其中vrrp语句指定vrrp 类似与hsrp
使用vrrp要注意的是华为不支持pvst
只能一台完全是主,一台完全是备份
在主vrrp设备上要指定
stp instance 0 root primary
stp TC-protection enable
stp enable
在从vrrp设备上要指定
stp instance 0 root secondary
stp TC-protection enable
stp enable

交换机下面绑acl
首先进入接口模式,输入qos命令
[shzb-crsw-s6506-1-GigabitEthernet1/0/1]qos
在输入如下命令
[shzb-crsw-s6506-1-qoss-GigabitEthernet1/0/1]packet-filter inbound ip-group 3000
华为交换机只能指定inbound方向

启用ospf
[shzb-crsw-s6506-1]ospf 100
[shzb-crsw-s6506-1-ospf-100]area 0
[shzb-crsw-s6506-1-ospf-100-area-0.0.0.0]network XXX.XXX.XXX.XXX XXX.XXX.XXX.XXX
配置ospf重发布
[shzb-crsw-s6506-1-ospf-100-area-0.0.0.0]quit
[shzb-crsw-s6506-1-ospf-100]import-route static

建立link-group(类似与cisco的channel-group)

link-aggregation group 1 mode manual
然后进入接口
port link-aggregation group 1

启用VRRP之前必须输入
vrrp ping-enable
使得客户能ping网关


路由器的配置命令都差不多,随便学什么,都差不多,中间只有很小的区别.

posted @ 2007-07-18 08:30 青蛙學堂 阅读(892) | 评论 (0)编辑 收藏

vlan-dhcp

3550配置DHCP中继代理工程实例 (DHCP跨网段分配IP地址)

普通的DHCP 的IP地址分配应该都没有什么问题,这里从 net130摘抄了这位兄弟的详细配置,大家可以参考。
3550配置DHCP中继代理工程实例

(原创)3550配置DHCP中继代理工程实例
作者:usr001
3550配置dhcp,网络上多有讨论,但大都存在错漏,按照网上介绍的配置一句“IP HELPER-ADDRESS DHCP服务器地址”后,工程当中发现客户机不能从DHCP服务器获取IP地址,本人最近也刚好配置了3550作为DHCP服务器中继代理,最初也曾困惑很久,后来在网上查找资料及在论坛上寻求众人帮助,终于在工程当中测试通过,为避免大家在工程当中遇到此类情况左调右调,特将配置过程写出来,给大家作为参考。

网络环境:一台3550EMI交换机,划分三个vlan,vlan2 为服务器所在网络,命名为server,IP地址段为192.168.2.0,子网掩码:255.255.255.0,网关:192.168.2.1,域服务器为windows 2000 advance server,同时兼作DHCP服务器,DNS服务器,IP地址为192.168.2.10,vlan3为客户机1所在网络,IP地址段为192.168.3.0,子网掩码:255.255.255.0,网关:192.168.3.1命名为work01,vlan4 为客户机2所在网络,命名为work02,IP地址段为192.168.4.0,子网掩码:255.255.255.0,网关:192.168.4.1.
3550上端口1-8划到VLAN 2,端口9-16划分到VLAN 3,端口17-24划分到VLAN 4.

配置命令及步骤如下:

第一步:创建VLAN:
Switch>Vlan Database
Switch(Vlan)>Vlan 2 Name server
Switch(Vlan)>Vlan 3 Name work01
Switch(vlan)>Vlan 4 Name work02

第二步:启用DHCP中继代理:
/*关键一步,若缺少以下两条命令,在VLAN中使用“IP HELPER-ADDRESS DHCP服务器地址”指定DHCP服务器,客户机仍然不能获得IP地址*/
Switch>Enable
Switch#Config t
Switch(Config)Service Dhcp
Switch(Config)Ip Dhcp Relay Information Option

第三步:设置VLAN IP地址:
Switch(Config)>Int Vlan 2
Switch(Config-vlan)Ip Address 192.168.2.1 255.255.255.0
Switch(Config-vlan)No Shut
Switch(Config-vlan)>Int Vlan 3
Switch(Config-vlan)Ip Address 192.168.3.1 255.255.255.0
Switch(Config-vlan)No Shut
Switch(Config-vlan)>Int Vlan 4
Switch(Config-vlan)Ip Address 192.168.4.1 255.255.255.0
Switch(Config-vlan)No Shut
Switch(Config-vlan)Exit
/*注意:由于此时没有将端口分配置到VLAN2,3,4,所以各VLAN会DOWN掉,待将端口分配到各VLAN后,VLAN会起来*/

第四步:设置端口全局参数
Switch(Config)Interface Range Fa 0/1 - 24
Switch(Config-if-range)Switchport Mode Access
Switch(Config-if-range)Spanning-tree Portfast

第五步:将端口添加到VLAN2,3,4中
/*将端口1-8添加到VLAN 2*/
Switch(Config)Interface Range Fa 0/1 - 8
Switch(Config-if-range)Switchport Access Vlan 2

/*将端口9-16添加到VLAN 3*/
Switch(Config)Interface Range Fa 0/9 - 16
Switch(Config-if-range)Switchport Access Vlan 3

/*将端口17-24添加到VLAN 4*/
Switch(Config)Interface Range Fa 0/17 - 24
Switch(Config-if-range)Switchport Access Vlan 4
Switch(Config-if-range)Exit

/*经过这一步后,各VLAN会起来*/

第六步:在VLAN3和4中设定DHCP服务器地址
/*VLAN 2中不须指定DHCP服务器地址*/
Switch(Config)Int Vlan 3
Switch(Config-vlan)Ip Helper-address 192.168.2.10
Switch(Config)Int Vlan 4
Switch(Config-vlan)Ip Helper-address 192.168.2.10

第七步:启用路由
/*路由启用后,各VLAN间主机可互相访问,若需进一步控制访问权限,则需应用到访问控制列表*/
Switch(Config)Ip Routing

第八步:结束并保存配置
Switch(Config-vlan)End
Switch#Copy Run Start
 

posted @ 2007-07-17 08:23 青蛙學堂 阅读(984) | 评论 (13)编辑 收藏

DELPHI超级Internet控件集--INDY

你有没有用DELPHI开发Internet程序?是不是常常会烦恼FastNet组件为什么没有源代码?有很多问题,不看源代码,真不知道是什么问题。是不是也觉得FastNet组件支持的网络协议还不够多?现在不用烦恼了,有一套功能很丰富、使用很方便、开放源代码的免费INTERNET控件集可以解决你的烦恼。这套控件集就是INDY了。

  什么是INDY?它有什么功能
?怎么用?就让我慢慢道来。
  INDY的全名是Internet Direct(也叫Winshoes),它是一套开放源代码的Internet控件集,它支持大部分流行的Internet协议,包括TCP、UDP、DNS、ICMP、FINGER、FTP、GOPHER、HTTP、POP3、SMTP、TELNET、WHOIS等,支持BASE64、MD2、MD4、MD5等编解码,提供INTERNET流行协议的客户端和服务器控件。INDY控件集的客户端和服务器控件都有完整、详细的源代码例程和帮助文件,用户可以根据这些例子,简单方便快速的建造各种服务器程序,例如WEB服务器、TELNET服务器、IRC服务器、TCP、UDP服务器等,而这些服务器都是支持多线程的。用户也可以很简单的编写出各种客户端程序,例如EMAIL、FINGER、FTP、PING、TELNET等。著名的OICQ使用的协议是UDP,有了INDY你可以使用UDP服务器和UDP客户端写出一个和OICQ较劲的东东来。

  INDY是完全基于SOCKET阻塞工作模式(后面讨论)的开发库,现在已经支持BORLAND DELPHI、C++ BUIDER和最新的Kylix(LINUX里的DELPHI)等开发平台。目前,INDY的最新正式发行版本是8.0版,最新BETA版本是8.1版。INDY8.0支持DELPHI 4、DELPHI 5、C++BUIDER 4、C++BUIDER 5、Kylix等版本。Kylix已经把INDY作为标准组件打包到发行包里了。而且据说DELPHI 6.0将会把INDY作为它的INTERNET基本组件,由此可见INDY的强悍实力。

  看了怎么多吸引人的特性,是不是迫不及待的想得到它了?不用急,你可以随时到INDY的主页上下载一份免费的源代码来安装,INDY的网址是(http://www.nevrona.com/Indy/),主页上会公布最新的INDY消息,发表更新的源代码和相关文档。如果在开发过程中遇到什么问题,可以通过访问BORLAND公司的新闻组(news://newsgroups.borland.com)里面的borland.public.delphi.internet.winsock和borland.public.cppbuilder.internet两个主题来获得免费的技术支持。INDY小组会及时回答在新闻组里提出的关于INDY的问题。你也可以把使用INDY的心得技巧、发现的BUG,发表到新闻组里,为INDY的发展作出一份贡献。

  INDY的安装很简单,现在INDY的网站正式提供WINDOWS版本的安装程序供下载,支持Kylix的版本则包含在BORLAND公司的Kylix发行包里,不过由于BORLAND修改了一些文件的原因,导致INDY的例程都不能编译成功,所以INDY网站提供了针对Kylix修改的例程文件下载。下载了安装程序后,执行安装程序(请先把你的开发平台程序关掉),设置好安装路径(图一),选择好你的开发平台的种类(DELPHI或C++BUIDER)和版本(图二),就可以了。等安装完成,打开你的开发平台程序,就可以在控件栏里发现新加的三个栏目:INDY SERVERS、INDY CLIENTS、INDY MISC(图三)。分别是INDY的服务器类、客户端类、杂项控件。而安装了INDY的目录里,包含有INDY的控件文件和控件源代码以及例程。你还可以在网站上下载它的帮助文件,帮助文件里包括各个控件的详细说明,是应用好INDY的必备手册。

  安装好INDY后,可以开始尝试INDY的新鲜好味道了。INDY提供的丰富例程就是绝好的教材。先编译几个例程,看看INDY的强大功能吧。要想熟练的使用好INDY,就得多多学习这些例程和参考帮助文件。

  熟悉WINSOCK编程的读者一定会觉得奇怪吧,为什么INDY是是完全基于SOCKET阻塞工作模式的呢?异步模式(非阻塞模式)是WINSOCK的一大特点,为什么不用呢?

  其实,之所以大多数WINDOWS下的INTERNET程序都使用异步模式,这和WINSOCK的历史有关。当WINSOCK被移植到WINDOWS的时候,当时的WINDOWS操作系统还是WINDOWS 3.1,而WINDOWS 3.1是不支持多线程的,不象UNIX下可以使用FORK来运行多进程。在WINDOWS 3.1下,如果使用阻塞模式,在通讯时会锁定用户界面使程序没有响应,为了避免这种情况,WINSOCK就引入异步模式这个新特性。而使用异步模式来编制INTERNET程序也就成了WINDOWS程序员的经典教条。但是,随着新的WINDOWS操作系统的出现,如WINDOWS 95、NT、98、ME、2000等,这些操作系统开始支持多线程。异步模式这个教条仍然深入人心,使很多程序员会下意识的拒绝使用阻塞模式。

  事实上,UNIX下的SOCKET只支持阻塞模式(现在UNXI的SOCKET有了一些新的非阻塞特性,不过绝大多数应用仍然使用阻塞模式)。阻塞模式具有以下几个比异步模式优越的特点:

  编程更简单,可以把所有处理SOCKET的代码放在一起,顺序执行,而不用分散在不同的事件处理代码段里。

  更容易移植到UNIX,使用INDY的DELPHI程序,可以不做太多(甚至不做)修改,就可以把WINDOWS的DELPHI源代码拿到LINUX下,用Kylix来编译成LINUX下的网络程序。

  更容易在多线程程序里使用,由于阻塞模式的代码可以放在一起,可以很方便的把这些代码包裹在线程里面来使用,而不象异步模式,需要针对不同的事件,设置不同的处理代码。

  为了兼顾简单可靠和高效,INDY是基于阻塞模式工作的。阻塞模式需要等待任务完成才返回,这样,当主线程里调用阻塞任务运行时,程序不能处理用户界面的消息。INDY提供了一个控件TidAntiFreeze来解决这个问题。只要在你的程序里,简单的填加一个TidAntiFreeze控件到任何地方(随便往FORM上放),不需要写任何代码(最多把超时时间改一下),就可以很好的解决用户界面不响应的问题。

  下面有两段示范代码,可以看出INDY控件的程序代码和其他使用异步模式的Internet控件的程序代码相比,是多么的简洁:

代码一:INDY控件的程序代码(IndyClient代表INDY控件的一般形式)

with IndyClient do begin

Connect;

Try

// 在这里写入你的处理代码

finally

Disconnect;

end;

end;

代码二:其他控件的程序代码(SocketComponent代表一般的Internet控件)

procedure TFormMain.TestOnClick(Sender: TComponent);

begin

with SocketComponent do begin

Connect; try

while not Connected do begin

if IsError then begin

Abort;

end;

Application.ProcessMessages;

OutData := 'Data To send';

while length(OutData) > 0 do begin

Application.ProcessMessages;

end;

finally Disconnect; end;

end;

end;

procedure TFormMain.OnConnectError;

begin

IsError := True;

end;

procedure TFormMain.OnRead;

var

i: Integer;

begin

i := SocketComponent.Send(OutData);

OutData := Copy(OutData, i + 1, MaxInt);

end;

关于INDY的简单介绍就到这里了,感兴趣的朋友就去下载一个用吧,你一定会喜欢上它的。

posted @ 2007-04-13 11:06 青蛙學堂 阅读(1027) | 评论 (0)编辑 收藏

用delphi写excel文件

用delphi写excel文件
2007-03-18 21:12

1.引用:      Excel2000, OleServer,Comobj, StdCtrls

2.声明变量:     ExcelApplication,Sheet1:Variant;(全局的或局部的).

3.创建及写入:  

try
     ExcelApplication:=CreateOleObject('Excel.Application');
except
     Showmessage('Sorry,你可能?FONT COLOR="#000000">]有安裝Excel');
     abort;
end;
ExcelApplication.Visible:=true;
ExcelApplication.Workbooks.Add(xlWBatWorkSheet);
Sheet1:=ExcelApplication.Workbooks[1].Worksheets['sheet1'];
Sheet1.Name:='Delphi控制Excel Chart';
Sheet1.Cells.item[1,1]:='姓名';     //第1行,第1列

4.使用图表

var Cell1,Cell2,Cell3,Cell4,Range1,Range2:Variant;

//向工作表中添加內嵌圖表﹐Add方法中的四個參數分別表示與儲存格A1的左邊距﹑頂部邊距﹑以及圖表的寬度and高度﹔
Sheet1.ChartObjects.add(10, 60, 500, 280);
sheet1.ChartObjects[1].Activate; //激活當前圖表
sheet1.ChartObjects[1].Chart.charttype:=xl3DColumnClustered; //指定圖表類型﹕立體叢集直條圖
sheet1.ChartObjects[1].Chart.seriescollection.ADD[Range2];     //建立新數例
sheet1.ChartObjects[1].Chart.seriescollection[1].values:=Range2; //指定新數例值
sheet1.ChartObjects[1].Chart.seriesCollection[1].hasdatalabels:=True; //顯示圖表中數列的資料標簽﹔
sheet1.ChartObjects[1].Chart.Axes[xlValue].MinimumScale:=100;//設定數值座標軸的最小刻度值﹔
sheet1.ChartObjects[1].Chart.Axes[xlValue].MaximumScale:=200;//設定數值座標軸的最大刻度值﹔
sheet1.ChartObjects[1].Chart.Axes[xlValue].MajorUnit:=10; //設定數值座標的主要單位﹔
sheet1.ChartObjects[1].Chart.Axes[xlValue].MinorUnit:=10; //設定數值座標的次要單位﹔
sheet1.ChartObjects[1].Chart.Axes[xlCategory].HasTitle:=True;
sheet1.ChartObjects[1].Chart.Axes[xlCategory].AxisTitle.Text:='星期';     //類別座標軸標簽。
sheet1.ChartObjects[1].Chart.Axes[xlCategory].CategoryNames:=Range1;
sheet1.ChartObjects[1].Chart.HasLegend:=false;//不顯示圖例
sheet1.ChartObjects[1].Chart.ChartArea.Fill.Visible:=true; //圖表區域填滿
sheet1.ChartObjects[1].Chart.ChartArea.Fill.ForeColor.SchemeColor:= 28;     //前景色彩﹔
sheet1.ChartObjects[1].Chart.ChartArea.Fill.BackColor.SchemeColor:= 42;     //背景色彩﹔
sheet1.ChartObjects[1].Chart.Rotation :=44; // 以度為單位傳回或設定立體圖表檢視的旋轉值﹔
sheet1.ChartObjects[1].Chart.walls.Interior.ColorIndex:=28;
//如果指定圖表的座標軸為直角﹐并與圖表的轉角或仰角無關﹐則為True,僅適用于立體折線圖﹐直條圖與橫條圖﹔
sheet1.ChartObjects[1].Chart.RightAngleAxes := True;
sheet1.ChartObjects[1].Chart.ChartGroups(1).VaryByCategories:=true;//對每個資料標號指定不同的色彩或圖樣.

////////////////////////////////////////////////////////////////////////////////////////////////////

以下是完整文档

unit Unit1;

interface

uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs

, Excel2000, OleServer,Comobj, StdCtrls;

type
    TForm1 = class(TForm)
      Button1: TButton;
      procedure Button1Click(Sender: TObject);
    private
    { Private declarations }
    //==================================
    ExcelApplication,Sheet1:Variant;
    public
      { Public declarations }
    end;

var
    Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var Cell1,Cell2,Cell3,Cell4,Range1,Range2:Variant;
begin
try
    ExcelApplication:=CreateOleObject('Excel.Application');
except
    Showmessage('Sorry,你可能?FONT COLOR="#000000">]有安裝Excel');
    abort;
end;
ExcelApplication.Visible:=true;
ExcelApplication.Workbooks.Add(xlWBatWorkSheet);
Sheet1:=ExcelApplication.Workbooks[1].Worksheets['sheet1'];
Sheet1.Name:='Delphi控制Excel Chart';
Sheet1.Cells.item[1,1]:='Excel Chart -范例';
Sheet1.Cells.item[2,1]:='星期';         //第二行,第1列
Sheet1.Cells.item[2,2]:='星期一';
Sheet1.Cells.item[2,3]:='星期二';
Sheet1.Cells.item[2,4]:='星期三';       //我要知道sheet的所有属性
Sheet1.Cells.item[2,5]:='星期四';
Sheet1.Cells.item[2,6]:='星期五-';
Sheet1.Cells.item[2,7]:='星期六';
Sheet1.Cells.item[2,8]:='星期日';
Sheet1.Cells.item[3,1]:='銷售量';
Sheet1.Cells.item[3,2]:=115;
Sheet1.Cells.item[3,3]:=112;
Sheet1.Cells.item[3,4]:=156;
Sheet1.Cells.item[3,5]:=148;
Sheet1.Cells.item[3,6]:=132;
Sheet1.Cells.item[3,7]:=196;
Sheet1.Cells.item[3,8]:=162;
Cell1:=Sheet1.Cells.item[2,2];
Cell2:=Sheet1.Cells.item[2,8];
Cell3:=Sheet1.Cells.item[3,2];
Cell4:=Sheet1.Cells.item[3,8];
Range1:=sheet1.Range[cell1,cell2]; //設定Chart類別座標軸的取值范圍
Range2:=sheet1.Range[cell3,cell4]; //設定Chart數值座標軸的取值范圍
Range1.Borders.Color:=27;
Range2.Borders.Color:=6;
//向工作表中添加內嵌圖表﹐Add方法中的四個參數分別表示與儲存格A1的左邊距﹑頂部邊距﹑以及圖表的寬度and高度﹔
Sheet1.ChartObjects.add(10, 60, 500, 280);
sheet1.ChartObjects[1].Activate; //激活當前圖表
sheet1.ChartObjects[1].Chart.charttype:=xl3DColumnClustered; //指定圖表類型﹕立體叢集直條圖
sheet1.ChartObjects[1].Chart.seriescollection.ADD[Range2];    //建立新數例
sheet1.ChartObjects[1].Chart.seriescollection[1].values:=Range2; //指定新數例值
sheet1.ChartObjects[1].Chart.seriesCollection[1].hasdatalabels:=True; //顯示圖表中數列的資料標簽﹔
sheet1.ChartObjects[1].Chart.Axes[xlValue].MinimumScale:=100;//設定數值座標軸的最小刻度值﹔
sheet1.ChartObjects[1].Chart.Axes[xlValue].MaximumScale:=200;//設定數值座標軸的最大刻度值﹔
sheet1.ChartObjects[1].Chart.Axes[xlValue].MajorUnit:=10; //設定數值座標的主要單位﹔
sheet1.ChartObjects[1].Chart.Axes[xlValue].MinorUnit:=10; //設定數值座標的次要單位﹔
sheet1.ChartObjects[1].Chart.Axes[xlCategory].HasTitle:=True;
sheet1.ChartObjects[1].Chart.Axes[xlCategory].AxisTitle.Text:='星期';    //類別座標軸標簽。
sheet1.ChartObjects[1].Chart.Axes[xlCategory].CategoryNames:=Range1;
sheet1.ChartObjects[1].Chart.HasLegend:=false;//不顯示圖例
sheet1.ChartObjects[1].Chart.ChartArea.Fill.Visible:=true; //圖表區域填滿
sheet1.ChartObjects[1].Chart.ChartArea.Fill.ForeColor.SchemeColor:= 28;    //前景色彩﹔
sheet1.ChartObjects[1].Chart.ChartArea.Fill.BackColor.SchemeColor:= 42;    //背景色彩﹔
sheet1.ChartObjects[1].Chart.Rotation :=44; // 以度為單位傳回或設定立體圖表檢視的旋轉值﹔
sheet1.ChartObjects[1].Chart.walls.Interior.ColorIndex:=28;
//如果指定圖表的座標軸為直角﹐并與圖表的轉角或仰角無關﹐則為True,僅適用于立體折線圖﹐直條圖與橫條圖﹔
sheet1.ChartObjects[1].Chart.RightAngleAxes := True;
sheet1.ChartObjects[1].Chart.ChartGroups(1).VaryByCategories:=true;//對每個資料標號指定不同的色彩或圖樣.
end;


posted @ 2007-03-20 10:29 青蛙學堂 阅读(3669) | 评论 (0)编辑 收藏

仅列出标题
共43页: First 21 22 23 24 25 26 27 28 29 Last 
<2006年2月>
2930311234
567891011
12131415161718
19202122232425
2627281234
567891011

导航

统计

常用链接

留言簿(8)

随笔分类

随笔档案

收藏夹

青蛙学堂

最新评论

阅读排行榜

评论排行榜