最新完整版PHP配置文件翻译

2

分类 : 编码知识 | 发表时间 01-07-2009

这个php的配置文件,在网上传播得比较多,或者说是一种版本乱传播,或者是多种版本在交互传播,因此有些不太准确,今天看到有网友新近翻译了一个全新的,很完整,收拾出来给大伙看看,虽然大多数配置php时,不用看这个翻译了,但有了这个也不多余,参考交流下。

=========================================================

[PHP]

;;;;;;;;;;;
; 警告 ;
;;;;;;;;;;;
; 此配置文件是对于新安装的PHP的默认设置.
; 默认情况下,PHP使用此配置文件安装
; 此配置针对开发目的,并且*不是*针对生产环境
; 基于一些安全方面的考虑,在你的网站上线之前,请考虑使用php.ini-recommended
; 以及在线文档 http://php.net/manual/en/security.php.

;;;;;;;;;;;;;;;;;;;
; 关于 php.ini ;
;;;;;;;;;;;;;;;;;;;
; 此文件控制了PHP行为的很多方面. 为了让PHP能够读取它
; 必须命名为 ‘php.ini’. PHP 在其当前工作目录,由PHPRC环境变量指定目录
; 以及由编译时指定的目录(按此顺序)查找此文件
; 在Windows环境下, 编译时目录是Windows目录.
; 在命令行模式下查找php.ini的目录可以被-c参数覆盖.
;
; 此文件的语法非常简单.
; 空行和由分号开始的行会被忽略(你可能已经猜到了).
; 段的开头(例如 [Foo]) 同样会被悄悄忽略
; 即使在将来他们可能会有其他作用.
;
; 使用以下语法来设定指令:
; directive = value
; 指令 = 值
; 指令名称是 *大小写敏感* – foo=bar 和 FOO=bar 是不同的.
;
; 值可以是字符串,数值,PHP常量 (例如 E_ALL 和 M_PI),
; INI 常量 (On, Off, True, False, Yes, No 和 None) 或者一个表达式
; (例如 E_ALL & ~E_NOTICE), 或者带引号的字串 ("foo").
;
; 在INI文件中的表达式只能使用逻辑运算和圆括号:
; | 逻辑或
; & 逻辑与
; ~ 逻辑非
; ! 取反
;
; 逻辑标志可以使用1,On,True或者Yes来打开.
; 也可以使用0, Off, False 或者 No来关闭.
;
; 在等号后面不写任何内容代表了一个空字符串
; 或者使用 None 关键词:
;
; foo = ; 将foo设置成一个空字串
; foo = none ; 将foo设置成一个空字串
; foo = "none" ; 将foo设置成字串 ‘none’
;
; 如果你在值中使用了常量, 并且这个常量属于一个动态加载的扩展模块
; (不论是PHP扩展还是Zend扩展),
; 那你只能在加载这些扩展 *之后* 使用这些常量.
;
;
;;;;;;;;;;;;;;;;;;;
; 关于这个文件 ;
;;;;;;;;;;;;;;;;;;;
; 在php.ini-dist 文件中所有的值都相当于内建的默认值
; (就是如果没有使用php.ini, 或者如果你删除了这些行,
; 就和内建的默认值一样).

;;;;;;;;;;;;;;;;;;;;
; 语言选项 ;
;;;;;;;;;;;;;;;;;;;;

; 打开在Apache下的PHP脚本语言引擎
engine = On

; 打开Zend Engine兼容模式(PHP 4.x)
zend.ze1_compatibility_mode = Off

; 允许 <? 标签. 否则,只有 <?php 和 <script> 标签被认为是PHP脚本.
; 注意: 尽可能避免在开发可重新发布的程序或者库的时候使用简略标签,或者在不受你控制的服务器下发布,
; 因为简略标签可能不被目标服务器支持.为了可移植性, 可重新发布的代码, 请不要使用简略标签
short_open_tag = On

; 使用ASP风格 <% %> 标签.
asp_tags = Off

; 浮点数中数值的有效位数(浮点数精度).
precision = 12

; 强制2000年兼容 (可能引起不兼容浏览器的问题)
y2k_compliance = On

; 输出缓冲允许在你发送了body内容之后发送header(包括 cookies)
; 代价是稍稍减缓了PHP输出层
; 你可以在运行时调用 output buffering 函数来打开此功能
; 你也可以将此指令设置为On来对所有文件打开输出缓冲
; 如果你想将这个缓冲区限制到特定大小 – 你可以使用最大的字节数来代替’On’,来作为这个指令的参数 (例如 output_buffering=4096).
output_buffering = Off

; 你可以将所有你脚本输出的内容重定向到指定函数.
; 例如, 如果你设置 output_handler 到 "mb_output_handler",
; 字符编码会被转换成为指定的编码..
; 设置任何的输出处理句柄会自动打开输出缓冲.
; 注意: 如果想编写可移植脚本就不要依赖此INI配置
; 取而代之的是, 明确的使用 ob_start() 来设置输出处理句柄.
; 使用此ini指令可能引起问题,除非你很清楚的理解脚本正在做什么.
; 注意: 你不能同时使用 "mb_output_handler" 和 "ob_iconv_handler"
; 并且你不能同时使用 "ob_gzhandler" 和 "zlib.output_compression".
; 注意: 如果使用zlib.output_handler指令开启zlib输出压缩, 该指令必须为空.
;output_handler =

; 使用zlib库对输出进行压缩
; 对此选项的有效值是 ‘off’, ‘on’, 或者字节数 (用来压缩的缓冲大小 , 默认是 4KB)
; 注意: 结果的chunk大小可能由于压缩对象的大小而不同.
; PHP输出块的大小一般压缩之后每个大小时几百个字节.
; 如果你希望藉由一个大块的堆大小来获取更好的性能, 需要额外的打开 output_buffering 选项.
; 注意: 你必须使用 zlib.output_handler 来替代标准的
; output_handler, 否则输出可能会有问题.
zlib.output_compression = Off
;zlib.output_compression_level = -1

; 这里激活 zlib.output_compression 之后,你无法再指定额外的输出处理.
; 这个设置和 output_handler 一样,但是处理顺序不同.
;zlib.output_handler =

; 立即刷新告知 PHP 让输出层在每次输出块之后立刻自动刷新.
; 这和每次调用print()或者echo()函数以及任何一种HTML块后调用flush()一样.
; 打开此选项会严重导致性能下降,一般只有用于调试情况下才建议打开.
implicit_flush = Off

; 如果反序列器找到一个可以作为示例的未定义类.未序列化的回调函数会被调用(使用未定义的类名作为参数),
; 如果特定的函数未被定义或者如果此函数没有包含/实现丢失的类,则会发生一个警告.
; 如果只有你真想要实现类似的回调函数,才设定此入口.
unserialize_callback_func=

; 当浮点和双精度被序列化后,浮点号后由 serialize_precision 指定存储精确度的有效位数.
; 默认值是当浮点数被反序列解码后,数值仍旧相同.
serialize_precision = 100

; 是否打开强制通过引用传递参数给函数
; 此方法被反对并且很有可能在未来版本的PHP/Zend中不再被支持.
; 被孤立的指定的方法是参数应该在函数被声明的时候按照引用传入.
; 你被鼓励来尝试上述方法并关闭此选项来确保你脚本在今后的新版本中仍旧可以正常工作 ( 每次你使用此特性的时候会受到一个警告
; 并且参数会传值而不是传引用).
allow_call_time_pass_reference = On

;
; 安全模式
;
safe_mode = Off

; 默认情况下,安全模式在打开文件时,使用UID来比对检测.
; 如果你只想使用GID做宽松的比对,
; 打开 safe_mode_gid.
safe_mode_gid = Off

; 当 safe_mode 被打开, 此目录下包含的文件和子文件夹的UID/GID 检测会被绕过.
; (目录必须在 include_path 中存在或者必须在包含时使用全路径)
safe_mode_include_dir =

; 当 safe_mode 被打开, 只有在 safe_mode_exec_dir 中定义的可执行文件能够通过exec函数组打开执行.
safe_mode_exec_dir =

; 设定某些的环境变量可能成为潜在的安全隐患.<
br />; 此指令包含一个逗号分隔的前导列表.
; 在安全模式中, 用户可能只能改变符合这里所给出前导字符的变量.
; 默认情况下,用户只能改变以PHP_开头的变量(例如. PHP_FOO=BAR).
;
; 注意: 如果此指令为空, PHP会允许用户修改任何环境变量!
safe_mode_allowed_env_vars = PHP_

; 此指令包含了一个用逗号分隔的环境变量列表, 用户无法通过 putenv() 函数来修改列表中的环境变量.
; 这些变量即便已经在 safe_mode_allowed_env_vars 所设定的列表中,也会被被保护不允许修改.
safe_mode_protected_env_vars = LD_LIBRARY_PATH

; 如果设置了open_basedir, 将会限制文件操作只能是此指令下的目录和子目录.
; 此指令对于每目录或者每虚拟主机配置文件最有意义. 此指令* 不会 *受安全模式开或者关的影响.
;open_basedir =

; 此指令允许你为了安全原因关闭指定的函数.
; 它接受以逗号分隔的函数名的列表.
; 此指令* 不会 *受安全模式开或者关的影响.
disable_functions =

; 此指令允许你由于安全原因关闭指定的类.
; 它接受以逗号分隔的类名的列表.
; 此指令* 不会 *受安全模式开或者关的影响.
disable_classes =

; 语法高亮模式的色彩. 任何在 <span style="color: ???????"> 中可接受的值都可以使用.
;highlight.string = #DD0000
;highlight.comment = #FF9900
;highlight.keyword = #007700
;highlight.bg = #FFFFFF
;highlight.default = #0000BB
;highlight.html = #000000

; 如果打开, 即便用户放弃了的请求也会被执行完成.
; 在执行可能被用户打断或者浏览器超时所中断的请求时打开此选项.
; ignore_user_abort = On

; 指定PHP使用的实际路径的缓冲. 对于PHP打开很多文件来处理很多文件操作的系统上,应该增加此值.
; realpath_cache_size=16k

; 对于给定文件或者目录的缓冲真实路径信息的缓冲保留秒数. 对于很少修改文件的系统可以考虑增加此值.
; realpath_cache_ttl=120

;
; 其他
;
; 考虑到PHP可能被其所安装的服务器上暴露的事实(例如. 被web服务器作为头部信息的签名).
; 任何情况下这虽然不是安全威胁, 仍有可能暴露在你的服务器上是否正在使用PHP.
expose_php = On

;;;;;;;;;;;;;;;;;;;
; 资源限制 ;
;;;;;;;;;;;;;;;;;;;

; 每个脚本最大执行秒数
max_execution_time = 30
; 每个脚本用来分析请求数据的最大时间
max_input_time = 60
; 最大输入变量的嵌套级别
;max_input_nesting_level = 64
; 每个脚本能够使用的最大内存数量 (128MB)
memory_limit = 128M

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 错误处理和记录 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; 错误报告时一个位. 对每一个数值取或可以得到最终的报告级别
; E_ALL – 所有错误和警告 (不包含 E_STRICT)
; E_ERROR – 致命的运行时错误
; E_RECOVERABLE_ERROR – 几乎致命的运行时错误
; E_WARNING – 运行时警告 (非致命错误)
; E_PARSE – 编译时语法错误
; E_NOTICE – 运行时提醒 (这些警告常常由你代码中的bug导致, 但是也有可能是有意的行为 (例如, 使用一个未初始化的变量并依赖于其会被自动初始化成为一个空字符串的事实)
; E_STRICT – 运行时提醒, 打开后PHP会给出针对你代码的最易移植和最好向后兼容性的建议
; E_CORE_ERROR – PHP初始化启动时的致命错误
; E_CORE_WARNING – 在PHP初始化时发生的警告 (非致命错误)
; E_COMPILE_ERROR – 致命的编译时错误
; E_COMPILE_WARNING – 编译时警告 (非致命)
; E_USER_ERROR – 用户产生的错误信息
; E_USER_WARNING – 用户产生的警告信息
; E_USER_NOTICE – 用户产生的提示信息
;
;例子:
;
; – 显示所有错误, 除了提示以及代码标准警告以外
;
;error_reporting = E_ALL & ~E_NOTICE
;
; – 显示所有错误,除了提示以外
;
;error_reporting = E_ALL & ~E_NOTICE | E_STRICT
;
; – 只显示错误
;
;error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
;
; – 显示出了提示以及代码标准警告之外的错误
;
error_reporting = E_ALL & ~E_NOTICE

; 打印输出错误 (作为输出的一部分). 对于生产环境的网站来说,
; 强烈建议你关闭此选项, 使用错误日志来替代 (详情参考下面内容).
; 在一个生产环境下的web站点打开display_errors可能泄漏安全信息给最终用户, 例如web服务器的文件路径,你数据库的结构或者其他信息.
;
; display_errors可用的值:
;
; Off – 不显示任何错误信息
; stderr – 将错误信息输出到STDERR (只有 CGI/CLI 格式下有效!)
;
;display_errors = "stderr"
;
; stdout (On) – 输出错误信息到STDOUT上
;
display_errors = On

; 即使 display_errors 打开后,PHP启动序列中发生的错误也不会显示.
; 强烈建议你保持 display_startup_errors 关闭状态, 除非在排错
display_startup_errors = Off

; 将错误输入到日志文件 (服务器指定的log,stderr或者error_log (以下指定))
; 和上面提到的一样, 强烈建议你在生产环境的web站点下使用错误日志来代替错误显示.
log_errors = Off

; 设定log_errors的最大长度. 在 error_log 关于源的信息也计算在内.
; 默认是1024, 设置为0可以不限制任何最大长度.
log_errors_max_len = 1024

; 不要记录重复的信息.必须出现在同样文件的相同行之中的才被认为是重复信息,除非 ignore_repeated_source 被设为 true.
ignore_repeated_errors = Off

; 当忽略重复消息时忽略消息的来源. 当此设置打开后,不再记录来自不同文件或者不同行的相同消息.
ignore_repeated_source = Off

; 如果此选项被设置为 Off, 那么内存泄漏不会被显示 (不论在stdout还是在日志中).
; 此项仅在debug编译模式下有效, 并且错误报告需要包含 E_WARNING
report_memleaks = On

;report_zend_debug = 0

; 在$php_errormsg中保存最后一次错误/警告消息 (逻辑值).
track_errors = Off

; 关闭在错误信息中所包含的HTML标签.
; 注意: 永远不要再生产环境中使用此特性.
;html_errors = Off

; 如果html_errors 设置为On, 则PHP产生可点击的错误信息,点击后会跳转到描述此错误或者引起此错误的函数具体信息的页面.
; 你可以从 http://www.php.net/docs.php 下载一份PHP手册的副本
; 并且将 docref_root指向你放置本地拷贝的以’/'开头的.
; 你同时必须指定文件文件的包含点的扩展名.
; 注意: 永远不要再生产环境中使用此特性.
;docref_root = "/phpmanual/"
;docref_ext = .html

; 在输出的错误信息前加上的字符串.
;error_prepend_string = "<font color=#ff0000>"

; 在输出的错误信息之后加上的字符串.
;error_append_string = "</font>"

; 将错误记录到指定文件.
;error_log = filename

; 将错误记录到 syslog (NT系统上的Event Log在Windows 95下不可用).
;error_log = syslog

;;;;;;;;;;;;;;;;;
; 文件处理 ;
;;;;;;;;;;;;;;;;;
;
; 注意 – track_vars 在PHP 4.0.3 中总是打开的

; 在PHP产生的URL中用来分隔参数的符号.
; 默认是 "&".
;arg_separator.output = "&amp;"

; PHP用来将URL分割输入到变量中的分隔符.
; 默认是 "&".
; 注意: 所有包含在指令内的字符都会被认为是分隔符!
;a
rg_separator.input = ";&"

; 此指令描述了PHP注册GET, POST, Cookie, 环境 和 内置变量的顺序 (各自使用G, P, C, E 和 S , 一般使用 EGPCS 或 GPC). 注册使用从左往右的顺序, 新的值会覆盖旧的值.
variables_order = "EGPCS"

; 是否将EGPCS变量注册成为全局变量.
; 如果你不希望由于用户数据而导致你脚本的全局变量变得凌乱,你需要关闭此选项
; 这个一般随着 track_vars 打开 – 在这种情况下你能够通过$HTTP_*_VARS[]存取所有的GPC变量.
;
; 你应该努力写好脚本这样就不必打开register_globals
; 如果代码不是经过详细的斟酌,那将变量作为全局使用可能很容易导致潜在的安全漏洞.
register_globals = Off

; 是否注册老形式的输入数组, HTTP_GET_VARS 和相关数组
; 如果你不使用他们,建议为了提高性能关闭他们.
register_long_arrays = On

; 此指令让PHP确认是否申明 argv&argc 变量 (这些变量会包含GET信息).
; 如果你不使用这些变量,为了提升性能应该关闭此选项.
register_argc_argv = On

; 当打开此项, SERVER 和 ENV 变量将在第一次被使用时而不是脚本一开始时创建(运行时)
; 如果这些变量在脚本中没有被使用过, 打开此项会增加一点性能.
; 为了使此指令有效,PHP指令 register_globals, register_long_arrays,
; 以及 register_argc_argv 必须被关闭.
auto_globals_jit = On

; PHP可以接受的最大的POST数据大小.
post_max_size = 8M

; Magic quotes
;

; 针对GET/POST/Cookie数据打开Magic quotes.
magic_quotes_gpc = On

; 针对实时产生的数据打开Magic quotes, 例如从SQL获取的数据, 从exec()返回的数据等等.
magic_quotes_runtime = Off

; 使用 Sybase 风格的 magic quotes (使用"来引导’替代\’).
magic_quotes_sybase = Off

; 在任何PHP文档之前或之后自动增加文件.
auto_prepend_file =
auto_append_file =

; 和 4.0b4一样, PHP 总是使用默认在头 Content-type: 的编码输出字符.
; 将其设置为空可以禁用发送字符集.
;
; PHP内建默认为text/html
default_mimetype = "text/html"
;default_charset = "iso-8859-1"

; 总是填充 $HTTP_RAW_POST_DATA 变量.
;always_populate_raw_post_data = On

;;;;;;;;;;;;;;;;;;;;;;;;;
; 路径和目录 ;
;;;;;;;;;;;;;;;;;;;;;;;;;

; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
;
; Windows: "\path1;\path2"
;include_path = ".;c:\php\includes"

; PHP页面的根路径, 只有非空时有效.
; 如果PHP没有使用FORCE_REDIRECT来编译, 如果你将php作为CGI运行在任何web服务器下(除了IIS)的话,你必须设置doc_root
; 针对安全问题查看文档. 一种替代方案是使用下面的cgi.force_redirect
doc_root =

; PHP使用/~username打开脚本的目录,非空时才有效.
user_dir =

; 可加载的扩展(模块)的目录位置.
extension_dir = "./"

; 是否启用 dl() 函数. dl() 函数无法正常的在多线程服务下运行, 例如IIS或者Zeus, 并在在这些服务软件下会自动禁用.
enable_dl = On

; 在绝大多数web服务器下,cgi.force_redirect 对于提供安全执行PHP作为CGI来说是很有必要的.
; 没有配置的情况下,PHP会默认打开此项.
; 你可以在这里关闭此项并且自己承担风险
; **你可以在IIS安全的关闭此项,事实上,你必须关闭此项.**
; cgi.force_redirect = 1

; 如果 cgi.nph 被打开,就会强制CGI在每个请求时发送Status: 200.
; cgi.nph = 1

; 如果cgi.force_redirect被打开,并且你没有在Apache或者Netscape(iPlanet) web服务器下运行,
; 你也许需要设置一个环境变量名让PHP来查找让其可以获取后继续执行. 设置此变量可能引起安全问题, 在设置之前请先了解可能引起的后果.
; cgi.redirect_status_env = ;

; cgi.fix_pathinfo 为CGI提供 *真实* PATH_INFO/PATH_TRANSLATED 支持.
; PHP的预处理行为是设置 PATH_TRANSLATED 到 SCRIPT_FILENAME, 并且不去猜测 PATH_INFO 是什么.
; 想获取关于 PATH_INFO 更多的信息, 查看 cgi 规范.
; 将此值设置为1会引起PHP CGI修正它的路径来符合规范.
; 设置为0会引起PHP类似前面的行为. 默认是1. 你应该修正你的脚本来使用 SCRIPT_FILENAME 而不是 PATH_TRANSLATED.
; cgi.fix_pathinfo=0

; 在IIS下的FastCGI (在基于 WINNT 的操作系统下) 支持莫让呼叫客户端的安全令牌的能力.
; 这使得IIS能够定义其下运行的安全上下文.
; 在Apache下的mod_fastcgi 目前不支持此特性 (03/17/2002)
; 如果运行在IIS下设置为1. 默认是0.
; fastcgi.impersonate = 1;

; 关闭通过 FastCGI 连接的日志
; fastcgi.logging = 0

; cgi.rfc2616_headers 配置选项告知 PHP 当发送HTTP响应代码时使用什么类型的头
; 如果设置为0,PHP发送被Apache支持的 Status: 头信息.
; 当设置为1, PHP会发送 RFC2616 兼容的头信息.
; 默认为0.
; cgi.rfc2616_headers = 0

;;;;;;;;;;;;;;;;
; 文件上传 ;
;;;;;;;;;;;;;;;;

; 是否允许HTTP文件上传.
file_uploads = On

; 对于HTTP上传文件的临时文件目录 (如果没有指定则会使用系统默认).
;upload_tmp_dir =

; 允许上传的最大文件大小.
upload_max_filesize = 2M

;;;;;;;;;;;;;;;;;;
; Fopen 包装 ;
;;;;;;;;;;;;;;;;;;

; 是否允许将URL作为文件 (例如 http:// 或者 ftp://) .
allow_url_fopen = On

; 是否允许 include/require 将URL作为文件 (例如 http:// 或者 ftp://) .
allow_url_include = Off

; 定义匿名ftp密码 (你的电子邮件地址)
;from="john@doe.com"

; 定义 User-Agent 字符串
; user_agent="PHP"

; 定义基于流的socket接口的超时时间 (秒)
default_socket_timeout = 60

; 如果你的脚本必须处理从 Macintosh 系统来的文件,
; 或者你运行在一台Mac并且需要从unix或者win32系统上处理文件,
; 设置此标志会引起PHP自动检测这些文件的EOL字符,这样fgets() 和 file() 就可以不用管文件的来源而直接处理了.
; auto_detect_line_endings = Off

;;;;;;;;;;;;;;;;;;;;;;
; 动态扩展 ;
;;;;;;;;;;;;;;;;;;;;;;
;
; 如果你希望扩展自动加载, 使用下列语法:
;
; extension=modulename.extension
;
; 例如,在Windows系统上:
;
; extension=msql.dll
;
; … 或者在 UNIX 下:
;
; extension=msql.so
;
; 注意: 这里应该只是模块的名字;
; 这里不需要模块的目录信息.
; 使用上面的 extension_dir 指令来指定扩展的位置.

; Windows Extensions
; 注意:已经内建了ODBC支持,所以不需要针对ODBC的dll.
; 注意:许多DLL文件位于 extensions/ (PHP 4) 或者 ext/ (PHP 5)目录中,和分割的PECL DLL下载在一起 (PHP 5).
; 确定设置了正确的 extension_dir 指令.

;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_exif.dll
;extension=php_fdf.dll
;extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_ifx.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_mbstring.dll
;extension=php_mcrypt.dll
;extension=php_mhash.dll
;extension=php_mime_magic.dll
;extension=php_ming.dll
;extension=php_msql.dll
;extension=php_mssql.dll
;extension=php_mysql.dll
;extension=php_mysqli.dll
;extension=php_oci8.dll
;extension=php_openssl.dll />;extension=php_pdo.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_oci8.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_soap.dll
;extension=php_sockets.dll
;extension=php_sqlite.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll
;extension=php_zip.dll

;;;;;;;;;;;;;;;;;;;
; 模块设置 ;
;;;;;;;;;;;;;;;;;;;

[Date]
; 定义date函数使用的默认时区
;date.timezone =

;date.default_latitude = 31.7667
;date.default_longitude = 35.2333

;date.sunrise_zenith = 90.583333
;date.sunset_zenith = 90.583333

[filter]
;filter.default = unsafe_raw
;filter.default_flags =

[iconv]
;iconv.input_encoding = ISO-8859-1
;iconv.internal_encoding = ISO-8859-1
;iconv.output_encoding = ISO-8859-1

[sqlite]
;sqlite.assoc_case = 0

[xmlrpc]
;xmlrpc_error_number = 0
;xmlrpc_errors = 0

[Pcre]
;PCRE 库反响追踪限制.
;pcre.backtrack_limit=100000

;PCRE 库递归限制.
;请注意如果你设置此项到一个很高的值, 你可能耗尽所有的可用的进程堆并且最终弄宕PHP(由于到达了操作系统强制的堆大小的限制).
;pcre.recursion_limit=100000

[Syslog]
; 是否定义不同的syslog变量 (例如. $LOG_PID,
; $LOG_CRON, 等等.). 关闭此选项对性能有益.
; 在运行时, 你可以调用 define_syslog_variables() 函数来定义这些变量.
define_syslog_variables = Off

[mail function]
; 针对Win32.
SMTP = localhost
smtp_port = 25

; 针对Win32.
;sendmail_from = me@example.com

; 针对Unix. 可以支持参数 (默认: "sendmail -t -i").
;sendmail_path =

; 强制额外的指定的参数被作为扩展参数传送给sendmail执行文件.
; 这些参数总是替代mail()函数的第五个参数值, 甚至是在安全模式内.
;mail.force_extra_parameters =

[SQL]
sql.safe_mode = Off

[ODBC]
;odbc.default_db = 目前无效
;odbc.default_user = 目前无效
;odbc.default_pw = 目前无效

; 允许或阻止持久连接.
odbc.allow_persistent = On

; 在重用前检查连接是否可用.
odbc.check_persistent = On

; 持久连接的最大数目. -1 意味着没有限制.
odbc.max_persistent = -1

; 最大连接数 (持久 + 非持久). -1 意味着没有限制.
odbc.max_links = -1

; 长字段处理. 返回变量的字节数. 0 意味着略过.
odbc.defaultlrl = 4096

; 二进制数据处理. 0 意味着略过, 1按照实际返回, 2 转换到字符.
; 查看 odbc_binmode 和 odbc_longreadlen 的文档来获取针对 uodbc.defaultlrl 和 uodbc.defaultbinmode的解释
odbc.defaultbinmode = 1

[MySQL]
; 允许或阻止持久连接.
mysql.allow_persistent = On

; 持久连接的最大数目. -1 意味着没有限制.
mysql.max_persistent = -1

; 最大连接数 (持久 + 非持久). -1 意味着没有限制.
mysql.max_links = -1

; mysql_connect()默认的端口号. 如果没有设置, mysql_connect() 会使用 $MYSQL_TCP_PORT
; 或者 位于/etc/services的 mysql-tcp 入口或者编译时定义的MYSQL_PORT 值(按照此顺序查找).
; Win32 只会查找MYSQL_PORT值.
mysql.default_port =

; 对于本地MySQL连接的默认socket名称. 如果为空, 则使用MySQL内建默认值.
mysql.default_socket =

; mysql_connect() 的默认host值(在安全模式中不会生效).
mysql.default_host =

; mysql_connect() 的默认user值(在安全模式中不会生效).
mysql.default_user =

; mysql_connect() 的默认password值(在安全模式中不会生效).
; 注意在此文件中保存密码一般来说是 *糟糕* 的主义.
; *任何* 使用PHP的用户可以执行 ‘echo get_cfg_var("mysql.default_password")
; 并且获取到此密码! 而且理所当然, 任何有对此文件读权限的用户都可以获取到此密码.
mysql.default_password =

; 连接超时的最大时间 (秒) , -1 意味着没有限制.
mysql.connect_timeout = 60

; 追踪模式. 当 trace_mode 被打开 (=On), table/index 扫描的警告和SQL错误会被显示出来.
mysql.trace_mode = Off

[MySQLi]

; 最大连接数. -1 意味着没有限制.
mysqli.max_links = -1

; mysqli_connect()默认的端口号. 如果没有设置, mysql_connect() 会使用 $MYSQL_TCP_PORT
; 或者 位于/etc/services的 mysql-tcp 入口或者编译时定义的MYSQL_PORT 值(按照此顺序查找).
; Win32 只会查找MYSQL_PORT值.
mysqli.default_port = 3306

; 对于本地MySQL连接的默认socket名称. 如果为空, 则使用MySQL内建默认值.
mysqli.default_socket =

; mysqli_connect() 的默认host值(在安全模式中不会生效).
mysqli.default_host =

; mysqli_connect() 的默认user值(在安全模式中不会生效).
mysqli.default_user =

; mysqli_connect() 的默认password值(在安全模式中不会生效).
; 注意在此文件中保存密码一般来说是 *糟糕* 的主义.
; *任何* 使用PHP的用户可以执行 ‘echo get_cfg_var("mysqli.default_password")
; 并且获取到此密码! 而且理所当然, 任何有对此文件读权限的用户都可以获取到此密码.
mysqli.default_pw =

; 允许或阻止持久连接.
mysqli.reconnect = Off

[mSQL]
; 允许或阻止持久连接.
msql.allow_persistent = On

; 持久连接的最大数目. -1 意味着没有限制.
msql.max_persistent = -1

; 最大连接数 (持久 + 非持久). -1 意味着没有限制.
msql.max_links = -1

[OCI8]
; 打开使用外部认证的授权连接 (OCI_SYSOPER, OCI_SYSDBA)
;oci8.privileged_connect = Off

; 连接: 每个进程的持久OCI8连接的最大数, -1 意味着没有限制.
;oci8.max_persistent = -1

; 连接: 一个进程允许保持一个空闲持久连接的最大秒数.
; -1意味着空闲持久连接会永远被保持.
;oci8.persistent_timeout = -1

; 连接: 当oci_pconnect() 检测一个连接是否有效时每次发起ping之间必须通过的秒数.
; 当设置为0后, 每个oci_pconnect() 会发起一个ping. Using -1 完全关闭ping.
;oci8.ping_interval = 60

; 调优: 此选项打开声明缓冲(statement cache), 并且指定缓冲多少声明. 使用0关闭声明缓冲.
;oci8.statement_cache_size = 20

; 调优: 打开声明预取(statement prefetch) 并且设置自动在声明执行后被取到行的数量.
;oci8.default_prefetch = 10

; 兼容性: 设置为On 意味着 oci_close() 不会关闭 oci_connect() 和 oci_new_connect() 的连接.
;oci8.old_oci_close_semantics = Off

[PostgresSQL]
; 允许或阻止持久连接.
pgsql.allow_persistent = On

; 总是在 pg_pconnect() 时检测断开的持久连接.
; 自动重置特性会引起一点开销.
pgsql.auto_reset_persistent = Off

; 持久连接的最大数目. -1 意味着没有限制.
pgsql.max_persistent = -1

; 最大连接数 (持久 + 非持久). -1 意味着没有限制.
pgsql.max_links = -1

; 是否忽略 PostgreSQL 后端通告消息.
; 通告消息记录会需要一点开销.
pgsql.ignore_notice = 0

; 是否记录 PostgreSQL 后端通告消息.
; 除非 pgsql.ignore_notice=0, 否则模块无法记录通告消息
pgsql.log_notice = 0

[Sybase]
; 允许或阻止持久连接.
sybase.allow_persistent = On

; 持久连接的最大数目. -1 意味着没有限制.
sybase.max_persistent = -1

>; 最大连接数 (持久 + 非持久). -1 意味着没有限制.
sybase.max_links = -1

;sybase.interface_file = "/usr/sybase/interfaces"

; 显示出的消息最小严重程度.
sybase.min_error_severity = 10

; 显示出的消息最小严重程度.
sybase.min_message_severity = 10

; 兼容老版本PHP 3.0的模式.
; 如果设为 on, 会引起 PHP 自动绑定结果记录的类型到Sybase的类型,而不是将他们全部按照字符串处理.
; 此兼容模式可能不会永久存在, 所以最好尝试在你代码中需要的地方作出必要的修改, 然后关闭此选项.
sybase.compatability_mode = Off

[Sybase-CT]
; 允许或阻止持久连接.
sybct.allow_persistent = On

; 持久连接的最大数目. -1 意味着没有限制.
sybct.max_persistent = -1

; 最大连接数 (持久 + 非持久). -1 意味着没有限制.
sybct.max_links = -1

; 显示出的错误最小严重程度.
sybct.min_server_severity = 10

; 显示出的消息最小严重程度.
sybct.min_client_severity = 10

[bcmath]
; 所有bcmath函数的小数位数
bcmath.scale = 0

[browscap]
;browscap = extra/browscap.ini

[Informix]
; 对于 ifx_connect() 的默认host (不会在安全模式被应用).
ifx.default_host =

; 对于 ifx_connect() 的默认user (不会在安全模式被应用).
ifx.default_user =

; 对于 ifx_connect() 的默认password (不会在安全模式被应用).
ifx.default_password =

; 允许或阻止持久连接.
ifx.allow_persistent = On

; 持久连接的最大数目. -1 意味着没有限制.
ifx.max_persistent = -1

; 最大连接数 (持久 + 非持久). -1 意味着没有限制.
ifx.max_links = -1

; 如果设为 on, select 声明返回 text 段的内容而不是它的id.
ifx.textasvarchar = 0

; 如果设为 on, select 声明返回 byte 段的内容而不是它的id.
ifx.byteasvarchar = 0

; 固定长度字符列的尾部空格会被截去. 可能对 Informix SE 用户有帮助.
ifx.charasvarchar = 0

; 如果设为 on, text 和 byte 段会被dump到一个文件而不是在内存中保留它们.
ifx.blobinfile = 0

; NULL会被作为一个空字符串返回, 除非被设为1. 如果设为1, NULL会被作为字符串’NULL’返回.
ifx.nullformat = 0

[Session]
; 用来存储/获取数据的处理方法.
session.save_handler = files

; 传送到save_handler的参数. 在使用文件的情况下, 这里是数据文件被保存的路径.
; 注意: Windows 用户必须改变此值来使用PHP的会话函数.
;
; 和在 4.0.1一样, 你可以定义如下路径:
;
; session.save_path = "N;/path"
;
; 这里的 N 是一个整数. 使用此参数会在目录内建立一个N层深度的子目录用来保存session文件,
; 而不是将所有session文件保存在同一个/path目录内.
; 这对你或当你的操作系统在一个目录内保存太多文件时出现问题很有帮助.
; 并且对于处理大量session的服务器提供更高的效率.
;
; 注意 1: PHP不会自动创建目录结构. 你可以使用在ext/session目录内的脚本来创建目录结构.
; 注意 2: 如果你选择使用子目录来保存session,请检查下面关于垃圾回收的配置段
;
; 文件存储模块默认使用600模式来创建文件,在使用中你可以改变此选项
;
; session.save_path = "N;MODE;/path"
;
; 这里的MODE由8进制来表示. 注意这里不会覆盖进程的umask.
;session.save_path = "/tmp"

; 是否使用cookie.
session.use_cookies = 1

;session.cookie_secure =

; 这个选项允许管理员去保护那些在URL中传送session id的用户免于被攻击
; 默认是 0.
; session.use_only_cookies = 1

; session的名称 (作为cookie名称来使用).
session.name = PHPSESSID

; 在请求开始的时候初始化session.
session.auto_start = 0

; cookie的生存秒数,或者如果为0就直到浏览器重启.
session.cookie_lifetime = 0

; cookie有效的路径.
session.cookie_path = /

; cookie有效的域名.
session.cookie_domain =

; 是否将httpOnly标志增加到cookie上, 增加后则cookie无法被浏览器的脚本语言(例如JavaScript)存取.
session.cookie_httponly =

; 用于序列化数据的处理器. php是标准的PHP序列化器.
session.serialize_handler = php

; 定义’垃圾回收’进程在每次session初始化时开始的比例.
; 比例由 gc_probability/gc_divisor来得出,
; 例如. 1/100 意味着在每次请求时有1%的机会启动’垃圾回收’进程.

session.gc_probability = 1
session.gc_divisor = 100

; 在经过以下秒数之后, 存储的数据会被认为是’垃圾’并且被垃圾回收进程清理掉.
session.gc_maxlifetime = 1440

; 注意: 如果你使用子目录选项来保存session文件
; (查看在上面的session.save_path), 那么垃圾回收就 *不会* 自动发生.
; 你需要通过一个shell脚本,cron或者其他方法来自行处理垃圾回收.
; 例如, 下面的脚本相当于将session.gc_maxlifetime设置为 1440 (1440 秒 = 24 分钟):
; cd /path/to/sessions; find -cmin +24 | xargs rm

; PHP 4.2 和更早版本有一个未公开的 特性/bug , 此特性允许你在全局初始化一个session变量,即便 register_globals 已经被关闭.
; 如果此特性被使用,PHP 4.3 和更早版本会警告你.
; 你可以关闭此特性并且隔离此警告. 这时候,如果打开bug_compat_42,那此警告只是被显示出来.

session.bug_compat_42 = 1
session.bug_compat_warn = 1

; 检查HTTP Referer来防止带有id的外部URL.
; HTTP_REFERER 必须包含从session来的这个字段才会被认为是合法的.
session.referer_check =

; 从此文件读取多少字节.
session.entropy_length = 0

; 在这里指定创建session id.
session.entropy_file =

;session.entropy_length = 16

;session.entropy_file = /dev/urandom

; 设置为 {nocache,private,public,} 来决定HTTP缓冲的类型
; 留空则防止发送 anti-caching 头.
session.cache_limiter = nocache

; 文档在n分钟之后过期.
session.cache_expire = 180

; trans sid 支持默认关闭.
; 使用 trans sid 可能让你的用户承担安全风险.
; 使用此项必须小心.
; – 用户也许通过email/irc/其他途径发送包含有效的session ID的URL给其他人.
; – 包含有效session ID的URL可能被存放在容易被公共存取的电脑上.
; – 用户可能通过在浏览器历史记录或者收藏夹里面的包含相同的session ID的URL来访问你的站点.
session.use_trans_sid = 0

; 选择hash方法
; 0: MD5 (128 bits)
; 1: SHA-1 (160 bits)
session.hash_function = 0

; 当转换二进制hash数据到可读形式时,每个字符保存时有几位.
;
; 4 bits: 0-9, a-f
; 5 bits: 0-9, a-v
; 6 bits: 0-9, a-z, A-Z, "-", ","
session.hash_bits_per_character = 4

; URL rewriter会在已经定义的一组HTML标签内查找URL.
; form/fieldset 是特殊字符; 如果你在这里包含他们, rewriter会增加一个包含信息的隐藏<input>字段否则就是在URL中附加信息.
; 如果你你想遵守XHTML, 删除form的入口.
; 注意 所有合法的入口都需要一个"="符号, 甚至是没有任何值的.
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="

[MSSQL]
; 允许或阻止持久连接.
mssql.allow_persistent = On

; 持久连接的最大数目. -1 意味着没有限制.
mssql.max_persistent = -1

; 最大连接数 (持久 + 非持久). -1 意味着没有限制.
mssql.max_links = -1

; 显示出的错误最

免费下载最新版SATA驱动

0

分类 : 技术文摘 | 发表时间 22-09-2008

硬件驱动担负着操作系统和硬件之间的“翻译”作用,重要性不言而喻;sata接口之前硬盘驱动,一般无须过多担心,当时硬盘驱动方面问题极为稀少。之后的sata接口、pata接口,包括scsi接口驱动,都需要特定安装驱动才能让硬盘工作正常。之前林网博客对scsi驱动方面,有过介绍:SCSI硬件千万注意安装SCSI卡驱动光纤通道的终结者——iSCSI技术,也介绍过一些安装sata驱动的技巧和方法:sata硬盘时AHCI驱动的安装方法解决Vista下安装SATA硬盘驱动全过程acer4310笔记本sata硬盘驱动的问题解决答疑免驱动安装SATA硬盘技巧如何制作集成SATA驱动的Windows安装盘Intel965芯片sony笔记本安装SATA驱动如何为vista安装SATA硬盘驱动。今天,提供更新版的sata驱动下载。

联想官网发布了SATA最新版的驱动Intel Matrix Storage Manager Driver,这个驱动的名字,在之前我维护DELL服务器时曾经遇到;这个最新版本号8.2.4.1005。对比之前的版本,主要是新增了对新机型,如W700/X301的支持,增强了设备的驱动功能。

很有意思的是上一版本驱动号8.2.0.1001联想美国官网并未发布,但是在升级日志里却看到了它的身影(同样是新增对新机型的支持,修复了系统在检查磁盘时冻死的问题)。

Intel Matrix Storage Manager Driver从7.8.0.1012版本开始,不再支持Windows 2000系统了,此次发布的新版驱动适应于XP和Vista 32位系统。

下载地址:

Http下载地址:http://download.boulder.ibm.com/ibmdl/pub/pc/pccbbs/mobiles/7zim06ww.exe

Ftp下载地址:ftp://ftp.software.ibm.com/pc/pccbbs/mobiles/7zim06ww.exe

有意思做安装光盘集成sata驱动的可以关注下这个驱动更新了。

通俗易懂的—路由和交换

0

分类 : 技术文摘 | 发表时间 13-06-2006

路由和交换是网络世界中两个重要的概念。传统的交换发生在网络的第二层,即数据链路层,而路由则发生在第三层,网络层。在新的网络中,路由的智能和交换的性能被有机的结合起来,三层交换机和多层交换机在园区网络中大量使用。本文将介绍一些路由和交换的基本概念,分为网络层次结构、交换、路由和全交换园区网络四个部分。
网络层次结构
网络参考模型的定义给出了清晰的功能层次划分。最常被提及的是ISO OSI参考模型和TCP/IP协议簇。
国际标准化组织定义的OSI参考模型将计算机网络按功能划分为七个层次,这就是我们常说的七层模型或七层结构。网络功能分层的直接好处是这些层次可以各司其职,由不同厂家开发的不同层次的软硬件设备可以配合使用。一个层次的设备更新或软件重写也不会影响到其它层次。TCP/IP协议体系中的各个层次和ISO的参考模型有大致的对应关系。
OSI中间一层,即第四层执行传输功能,它负责提供从一台计算机到另外一台计算机之间的可靠数据传输。传输层(Transport Layer)是承上启下的一层,在它的下面有三层,都是与数据传输相关的功能;上面也有三层,提供与网络应用相关的功能。
OSI下三层中。物理层(Physical Layer)负责实际的传送数据信号,数据链路层(Data Link Layer)负责网络内部的帧传输,而网络层(Network Layer)负责网络间的计算机寻址和数据传输。
OSI上三层中。应用层(Application Layer)是最高的层次,它负责提供用户*作的界面,因特网中常用的电子邮件服务,文件传输服务等都是这一层提供的。表示层(Presentation Layer)负责数据的表示,比如发送数据之前的加密,接收数据时的解密,中英文的翻译等等都是这一层提供的功能。会话层(Session Layer)负责建立和终止网络的数据传输,计算机名字转换成地址的工作也在这层完成。
传统意义上的交换是第二层的概念。数据链路层的功能是在网络内部传输帧。所谓”网络内部”是指这一层的传输不涉及网间的设备和网间寻址。通俗的理解,一个以太网内的传输,一条广域网专线上的传输都由数据链路层负责。所谓”帧”是指所传输的数据的结构,通常帧有帧头和帧尾,头中有源目二层地址,而帧尾中通常包含校验信息,头尾之间的内容即是用户的数据。
数据链路层涵盖的功能很多,所以又将它划分为两个子层, MAC(Media Access Control,介质访问控制)层和LLC(Logical Link Control,逻辑链路控制)层。常见的局域网和城域网的二层标准是IEEE的802协议。而在广域网中,HDLC(High-level Data Link Control,高级链路控制)、PPP(Point-to-Point Protocol,点对点协议)和Frame Relay(帧中继)等协议都有广泛的使用。
路由是第三层的概念。网络层在Internet中是最重要的,它的功能是端到端的传输,这里端到端的含义是无论两台计算机相距多远,中间相隔多少个网络,这一层保障它们可以互相通信。例如我们常用的PING命令就是一个网络层的命令,PING通了,就是指网络层的功能正常了。通常,网络层不保障通讯的可靠性,也就是说,虽然正常情况下数据可以到达目的地,但即便出现异常,网络层也不作任何更正和恢复的工作。
网络层常用的协议有IP、IPX、APPLETALK等等,其中IP协议更是Internet的基石。在TCP/IP协议体系中,第三层的其他辅助协议还包括ARP(地址解析) 、RARP(反向地址解析)、 ICMP(网际报文控制)和IGMP(组管理协议)等等。由于网络互连设备都具有路径选择功能,所以我们经常将 RIP、OSPF等路选协议也放在这一层讨论。
交换
谈到交换的问题,从广义上讲,任何数据的转发都可以称作交换。当然,现在我们指的是狭义上的交换,仅包括数据链路层的转发。做网络的人理解交换大多是从交换机开始的,电路交换机在通信网中已经使用了几十年了,做帧交换的设备,尤其是以太网交换机的大规模使用则是近几年的事情。
理解以太网交换机的作用还要从网桥的原理讲起。传统以太网是共享型的,如果网段上有四台计算机A、B 、C和D,那么A与B通信的同时,C和D只能是被动的收听。假如将缆段分开(即微化),A、B在一段上,C、D在另一段上,那么A和B通信的同时,C和D也可以通信,这样原有10M的带宽从理论上讲就变成20M了。同时,为了确保这两个网段可以互相通信,需要用桥将它们连接起来,桥是有两块网卡的计算机。
在整个网络刚刚启动时,桥对网络的拓朴一无所知。这时,假设A发送数据给B,因为网络是广播式的,所以桥也收到了,但桥不知到B在自己的左边还是右边,它就进行缺省的转发,即在另外一块网卡上发送这个信息。虽然做了一次无用的转发,但通过这个过程,桥学习到数据的发送者A在自己的左边。当网络上的每一台计算机都发送过数据之后,桥就是智能的了,它了解每一台计算机在哪一个网段上。当A再发送数据给B时,桥就不进行数据转发了,与此同时,C可以发送数据给D。
从上面的例子可以看出,桥可以减少网络冲突发生的几率,这就是我们使用桥的主要目的,称作减小冲突域。但桥并不能阻止广播,广播信息的隔绝要靠三层的连接设备,路由器。
按照缆段微化的思想,缆段越多,可用带宽就越高。极限情况是每一台计算机处在一个独立的缆段上,如果网络上有十台计算机,就需要一个十端口的桥将它们连接起来。但实现这样一个桥不太现实,软件转发的速度也跟不上,于是有了交换机,交换机就是将上述多端口的桥硬件或固件化,以达到更低的成本和更高的性能。
交换机的一个重要的功能是避免交换循环,这就涉及到了STP(Spanning Tree Protocol,分支树协议)。分支树协议的功能是避免数据帧在交换机构成的网络中循环传送。如下图所示,如果网络中有冗余链路的话,STP协议现选出根交换机(Route Bridge),然后确定每一台非根交换机到根交换机之间的路径,最后,将此路径上的所有链路置成转发(Forward)状态,其余的交换机之间的连接就是冗余链路,置为阻塞(Block)状态。
交换机的另外一个重要功能是VLAN(Virtual LAN,虚拟局域网)。VLAN的好处主要有三个:
*端口的分隔。即便在同一个交换机上,处于不同VLAN的端口也是不能通信的。这样一个物理的交换机可以当作多个逻辑的交换机使用。
*网络的安全。不同VLAN不能直接通信,杜绝了广播信息的不安全性。
*灵活的管理。更改用户所属的网络不必换端口和联线,只该软件配置就可以了。
VLAN可以按端口或MAC地址来划分。
有时,我们需要在交换机所构成的网络上保持VLAN的配置的一致性。这就需要交换机之间按照VTP(VLAN Trunk Protocol,VLAN骨干协议)交流VLAN信息。VTP协议只在骨干端口(Trunk Port),即交换机之间的端口,上运行。
路由
路由器是网络间的连接设备,它重要工作之一是路径选择。这个功能是路由器智能的核心,它是由管理员的配置和一系列的路由算法实现的。
路由算法有动静之分,静态路由是一种特殊的路由,它是由管理员手工设定的。手工配置所有的路由虽然可以使网络正常运转,但是也会带来一些局限性

教你如何调试思科路由器[学习]

0

分类 : 技术文摘 | 发表时间 10-06-2006

一、基本设置方式
一般来说,可以用5种方式来设置Cisco思科路由器:

1.Console口接终端或运行终端仿真软件的微机;

2.AUX口接MODEM,通过电话线与远方的终端或运行终端仿真软件的微机相连;

3.通过Ethernet上的TFTP服务器;

4.通过Ethernet上的TELNET程序;

5.通过Ethernet上的SNMP网管工作站。

但Cisco思科路由器的第一次设置必须通过第一种方式进行,一般用超级终端通过com口进行控制。此时终端的硬件设置如下:
波特率 :9600
数据位 :8
停止位 :1
奇偶校验: 无

二、命令操作
Cisco思科路由器所用的操作系统是IOS.共有以下几种状态:
1、router>
在router>提示符下,Cisco思科路由器处于用户命令状态,这时用户可以看Cisco思科路由器的连接状态,访问其它网络和主机,但不能看到和更改Cisco思科路由器的设置内容。此时输入?并回车,可以查看到在此状态下可以用的命令。(IOS允许你在任何时候用这种方式查看在某种状态下可以用的命令)。在敲入enable并回车后,按照系统提示输入密码,(在新的Cisco思科路由器第一次进行调试的时候不需要输入密码,直接回车即可)进入#提示符,就可以对Cisco思科路由器进行各种操作了。
2、router#
Cisco思科路由器进入特权命令状态router#后,不但可以执行所有的用户命令,还可以看到和更改Cisco思科路由器的设置内容。此时就可以对Cisco思科路由器的名字、密码等进行设置。
3、router(config)#
在router#提示符下键入configure terminal,出现提示符router(config)#,此时Cisco思科路由器处于全局设置状态,这时可以设置Cisco思科路由器的全局参数。
4、router(config-if)#;
router(config-line)#;
router(config-router)#;…
Cisco思科路由器处于局部设置状态,这时可以设置Cisco思科路由器某个局部的参数。
5、Cisco思科路由器处于RXBOOT状态,在开机后60秒内按ctrl-break可进入此状态,这时Cisco思科路由器不能完成正常的功能,只能进行软件升级和手工引导。在此状态下,可以进行口令恢复。

三、常用命令
1.帮助
在IOS操作中,无论任何状态和位置,都可以键入“?”得到系统的帮助。系统会显示此时可以使用的命令。
2.改变命令状态
任务命令
进入特权命令状态enable
退出特权命令状态disable
进入设置对话状态Setup
进入全局设置状态config terminal
退出全局设置状态End
进入端口设置状态interface type slot/number
进入子端口设置状态interface type number.subinterface [point-to-point | multipoint]
进入线路设置状态line type slot/number
进入路由设置状态router protocol
退出局部设置状态Exit
3.显示命令
任务命令
查看版本及引导信息show version
查看运行设置show running-config
查看开机设置show startup-config
显示端口信息show interface type slot/number
显示路由信息show ip router
4.拷贝命令
用于IOS及CONFIG的备份和升级
5.网络命令
任务命令
登录远程主机telnet hostname|IP address
网络侦测ping hostname|IP address
路由跟踪Trace hostname|IP address
6.基本设置命令
任务命令
全局设置config terminal
设置访问用户及密码username username password password
设置特权密码enable secret password
设置Cisco思科路由器名hostname name
设置静态路由ip route destination subnet-mask next-hop
启动IP路由ip routing
启动IPX路由Ipx routing
端口设置interface type slot/number
设置IP地址ip address address subnet-mask
设置IPX网络Ipx network network
激活端口no shutdown
物理线路设置line type number
启动登录进程login [local|tacacs server]
设置登录密码password password

四、总体设置
在router#特权命令状态下,可以用setup对Cisco思科路由器进行总体设计,利用这个设计过程可以省略手工设置的烦琐。但它还不能完全代替手工设置,一些特殊的设置还必须通过手工输入的方式完成。
进入设置对话过程后,Cisco思科路由器首先会显示一些提示信息:
— System Configuration Dialog —
At any point you may enter a question mark ‘?’ for help.
Use ctrl-c to abort configuration dialog at any prompt.
Default settings are in square brackets ‘[]‘.
这是告诉你在设置对话过程中的任何地方都可以键入“?”得到系统的帮助,按ctrl-c可以退出设置过程,缺省设置将显示在‘[]’中。然后Cisco思科路由器会问是否进入设置对话:
Would you like to enter the initial configuration dialog? [yes]:
如果按y或回车,Cisco思科路由器就会进入设置对话过程。首先你可以看到各端口当前的状况:
First, would you like to see the current interface summary? [yes]:
Any interface listed with OK? value “NO” does not have a valid configuration
InterfaceIP-AddressOK?MethodStatusProtocol
Ethernet0unassignedNOunsetupup
Serial0unassignedNOunsetupup
……………………………
然后,Cisco思科路由器就开始全局参数的设置:
Configuring global parameters:
1.设置Cisco思科路由器名:
Enter host name [Router]:
2.设置进入特权状态的密文(secret),此密文在设置以后不会以明文方式显示:
The enable secret is a one-way cryptographic secret used
instead of the enable password when it exists.
Enter enable secret: cisco
3.设置进入特权状态的密码(password),此密码只在没有密文时起作用,并且在设置以后会以明文方式显示:
The enable password is used when there is no enable secret
and when using older software and some boot images.
Enter enable password: pass
4.设置虚拟终端访问时的密码:
Enter virtual terminal password: cisco
5.询问是否要设置Cisco思科路由器支持的各种网络协议:
Configure SNMP Network Management? [yes]:
Configure DECnet? [no]:
Configure AppleTalk? [no]:
Configure IPX? [no]:
Configure IP? [yes]:
Configure IGRP routing? [yes]:
Configure RIP routing? [no]:
………
6.如果配置的是拨号访问服务器,系统还会设置异步口的参数:
Configure Async lines? [yes]:]
1)设置线路的最高速度:
Async line speed [9600]:
2)是否使用硬件流控:
Configure for HW flow control? [yes]:
3)是否设置modem:
Configure for modems? [yes/no]: yes
4)是否使用默认的modem命令:
Configure for default chat script? [yes]:
5)是否设置异步口的PPP参数:
Configure for Dial-in IP SLIP/PPP access? [no]: yes
6)是否使用动态IP地址:
Configure for Dynamic IP addresses? [yes]:
7)是否使用缺省IP地址:
Configure Default IP addresses? [no]: yes
是否使用TCP头压缩:
Configure for TCP Header Compression? [yes]:
9)是否在异步口上使用路由表更新:
Configure for routing updates on async links? [no]: y
10)是否设置异步口上的其它协议。接下来,系统会对每个接口进行参数的设置。
1.Configuring interface Ethernet0:
1)是否使用此接口:
Is this interface in use? [yes]:
2)是否设置此接口的IP参数:
Configure IP on this interface? [yes]:
3)设置接口的IP地址:
IP address for this interface: 192.168.162.2
4)设置接口的IP子网掩码:
Number of bits in subnet field [0]:
Class C network is 192.168.162.0, 0 subnet bits; mask is /24
在设置完所有接口的参数后,系统会把整个设置对话过程的结果显示出来:
The following configuration comm
and script was created:
hostname Router
enable secret 5 $1$W5Oh$p6J7tIgRMBOIKVXVG53Uh1
enable password pass
…………
请注意在enable secret后面显示的是乱码,而enable password后面显示的是设置的内容。就是说,secret密码的优先级比较高,在两个密码都设了的情况下,secret密码起作用。
显示结束后,系统会问是否使用这个设置:
Use this configuration? [yes/no]: yes
如果回答yes,系统就会把设置的结果存入Cisco思科路由器的NVRAM中,然后结束设置对话过程,使Cisco思科路由器开始正常的工作。
广域网协议设置
PPP
PPP(Point-to-Point Protocol)是SLIP(Serial Line IP protocol)的继承者,它提供了跨过同步和异步电路实现Cisco思科路由器到Cisco思科路由器(router-to-router)和主机到网络(host-to-network)的连接。
CHAP(Challenge Handshake Authentication Protocol)和PAP(Password Authentication Protocol) (PAP)通常被用于在PPP封装的串行线路上提供安全性认证。使用CHAP和PAP认证,每个Cisco思科路由器通过名字来识别,可以防止未经授权的访问。
任务命令
设置PPP封装encapsulation ppp1
设置认证方法ppp authentication {chap | chap pap | pap chap | pap} [if-needed] [list-name | default] [callin]
指定口令username name password secret
设置DCE端线路速度clockrate speed
举例
Cisco思科路由器Router1和Router2的S0口均封装PPP协议,采用CHAP做认证,在Router1中应建立一个用户,以对端Cisco思科路由器主机名作为用户名,即用户名应为router2。同时在Router2中应建立一个用户,以对端Cisco思科路由器主机名作为用户名,即用户名应为router1。所建的这两用户的password必须相同。
设置如下:
Router1:
hostname router1
username router2 password xxx
interface Serial0
ip address 192.200.10.1 255.255.255.0
clockrate 1000000
ppp authentication chap
!
Router2:
hostname router2
username router1 password xxx
interface Serial0
ip address 192.200.10.2 255.255.255.0
ppp authentication chap
!
ISDN
1.综合数字业务网(ISDN)
综合数字业务网(ISDN)由数字电话和数据传输服务两部分组成,一般由电话局提供这种服务。ISDN的基本速率接口(BRI)服务提供2个B信道和1个D信道(2B+D)。BRI的B信道速率为64Kbps,用于传输用户数据。D信道的速率为16Kbps,主要传输控制信号。在北美和日本,ISDN的主速率接口(PRI)提供23个B信道和1个D信道,总速率可达1.544Mbps,其中D信道速率为64Kbps。而在欧洲、澳大利亚等国家,ISDN的PRI提供30个B信道和1个64Kbps D信道,总速率可达2.048Mbps。我国电话局所提供ISDN PRI为30B+D。
2.基本命令
任务命令
设置ISDN交换类型isdn switch-type switch-type1
接口设置interface bri 0
设置PPP封装encapsulation ppp
设置协议地址与电话号码的映射dialer map protocol next-hop-address [name hostname] [broadcast] [dial-string]
启动PPP多连接ppp multilink
设置启动另一个B通道的阈值dialer load-threshold load
显示ISDN有关信息show isdn {active | history | memory | services | status [dsl | interface-type number] | timers}
注:1.交换机类型如下表,国内交换机一般为basic-net3。
按区域分关键字 交换机类型
Australia
basic-ts013 Australian TS013 switches
Europe
basic-1tr6 German 1TR6 ISDN switches
basic-nwnet3 Norway NET3 switches (phase 1)
basic-net3 NET3 ISDN switches (UK, Denmark, and other nations); covers the Euro-ISDN E-DSS1 signalling system
primary-net5 NET5 switches (UK and Europe)
vn2 French VN2 ISDN switches
vn3 French VN3 ISDN switches
Japan
ntt Japanese NTT ISDN switches
primary-ntt Japanese ISDN PRI switches
North America
basic-5ess AT&T basic rate switches
basic-dms100 NT DMS-100 basic rate switches
basic-ni1 National ISDN-1 switches
primary-4ess AT&T 4ESS switch type for the U.S. (ISDN PRI only)
primary-5ess AT&T 5ESS switch type for the U.S. (ISDN PRI only)
primary-dms100 NT DMS-100 switch type for the U.S. (ISDN PRI only)
New Zealand
basic-nznet3 New Zealand Net3 switches
3.ISDN实现DDR(dial-on-demand routing)实例:
设置如下:
Router1:
hostname router1
user router2 password cisco
!
isdn switch-type basic-net3
!
interface bri 0
ip address 192.200.10.1 255.255.255.0
encapsulation ppp
dialer map ip 192.200.10.2 name router2 572
dialer load-threshold 80
ppp multilink
dialer-group 1
ppp authentication chap

dialer-list 1 protocol ip permit
!
Router2:
hostname router2
user router1 password cisco
!
isdn switch-type basic-net3
!
interface bri 0
ip address 192.200.10.2 255.255.255.0
encapsulation ppp
dialer map ip 192.200.10.1 name router1 571
dialer load-threshold 80
ppp multilink
dialer-group 1
ppp authentication chap

dialer-list 1 protocol ip permit
!
CiscoCisco思科路由器同时支持回拨功能,我们将Cisco思科路由器Router1作为Callback Server,Router2作为Callback Client。
与回拨相关命令:
任务命令
映射协议地址和电话号码,并在接口上使用在全局模式下定义的PPP回拨的映射类别。dialer map protocol address name hostname class classname dial-string
设置接口支持PPP回拨ppp callback accept
在全局模式下为PPP回拨设置映射类别map-class dialer classname
通过查找注册在dialer map里的主机名来决定回拨. dialer callback-server [username]
设置接口要求PPP回拨ppp callback request
设置如下:
Router1:
hostname router1
user router2 password cisco
!
isdn switch-type basic-net3
!
interface bri 0
ip address 192.200.10.1 255.255.255.0
encapsulation ppp
dialer map ip 192.200.10.2 name router2 class s3 572
dialer load-threshold 80
ppp callback accept
ppp multilink
dialer-group 1
ppp authentication chap

map-class dialer s3
dialer callback-server username
dialer-list 1 protocol ip permit
!
Router2:
hostname router2
user router1 password cisco
!
isdn switch-type basic-net3
!
interface bri 0
ip address 192.200.10.2 255.255.255.0
encapsulation ppp
dialer map ip 192.200.10.1 name router1 571
dialer load-threshold 80
ppp callback request
ppp multilink
dialer-group 1
ppp authentication chap

dialer-list 1 protocol ip permit
!
相关调试命令:
debug dialer
debug isdn event
debug isdn q921
debug isdn q931
debug ppp authentication
debug ppp error
debug ppp negotiation
debug ppp packet
show dialer
show isdn status
举例:
执行debug dialer命令观察router2呼叫router1,router1回拨router2的过程.
router1#debug dialer
router2#ping 192.200.10.1
router1#
00:03:50: %LINK-3-UPDOWN: Interface BRI0:1, changed state to up
00:03:50: BRI0:1PP callback Callback server starting to router2 572
00:03:50: BRI0:1: disconnecting call
00:03:50: %LINK-3-UPDOWN: Interface BRI0:1, changed state to down
00:03:50: BRI0:1: disconnecting call
00:03:50: BRI0:1: disconnecting call
00:03:51: %LINK-3-UPDOWN: Interface BRI0:2, changed state to up
00:03:52: callback to router2 already started
00:03:52: BRI0:2: disconnecting call
00:03:52: %LINK-3-UPDOWN: Interface BRI0:2, changed state to down
00:03:52: BRI0:2: disconnecting call
00:03:52: BRI0:2: disconnecting call
00:04:05: : Callback timer expired
00:04:05: BRI0:beginning callback to router2 572
00:04:05: BRI0: Attempting to dial 572
00:04:05: Freeing callback to router2 572
00:04:05: %LINK-3-UPDOWN: Interface BRI0:1, changed state to up
00:04:05: BRI0:1: No callback negotiated
00:04
:05: %LINK-3-UPDOWN: Interface Virtual-Access1, changed state to up
00:04:05: dialer Protocol up for Vi1
00:04:06: %LINEPROTO-5-UPDOWN: Line protocol on Interface BRI0:1, changed state
to up
00:04:06: %LINEPROTO-5-UPDOWN: Line protocol on Interface Virtual-Access1, chang
ed state to up
00:04:11: %ISDN-6-CONNECT: Interface BRI0:1 is now connected to 572
#router1
4.ISDN访问首都在线263网实例:
本地局部网地址为10.0.0.0/24,属于保留地址,通过NAT地址翻译功能,局域网用户可以通过ISDN上263网访问Internet。263的ISDN电话号码为2633,用户为263,口令为263,所涉及的命令如下表:
任务命令
指定接口通过PPP/IPCP地址协商获得IP地址ip address negotiated
指定内部和外部端口ip nat {inside | outside}
使用ppp/pap作认证ppp authentication pap callin
指定接口属于拨号组1dialer-group 1
定义拨号组1允许所有IP协议dialer-list 1 protocol ip permit
设定拨号,号码为2633dialer string 2633
设定登录263的用户名和口令ppp pap sent-username 263 password 263
设定默认路由ip route 0.0.0.0 0.0.0.0 bri 0
设定符合访问列表2的所有源地址被翻译为bri 0所拥有的地址ip nat inside source list 2 interface bri 0 overload
设定访问列表2,允许所有协议access-list 2 permit any
具体配置如下:
hostname Cisco2503
!
isdn switch-type basic-net3
!
ip subnet-zero
no ip domain-lookup
ip routing
!
interface Ethernet 0
ip address 10.0.0.1 255.255.255.0
ip nat inside
no shutdown
!
interface Serial 0
shutdown
no description
no ip address
!
interface Serial 1
shutdown
no description
no ip address
!
interface bri 0
ip address negotiated
ip nat outside
encapsulation ppp
ppp authentication pap callin
ppp multilink
dialer-group 1
dialer hold-queue 10
dialer string 2633
dialer idle-timeout 120
ppp pap sent-username 263 password 263
no cdp enable
no ip split-horizon
no shutdown
!
ip classless
!
! Static Routes
!
ip route 0.0.0.0 0.0.0.0 bri 0
!
! Access Control List 2
!
access-list 2 permit any
!
dialer-list 1 protocol ip permit
!
! Dynamic NAT
!
ip nat inside source list 2 interface bri 0 overload
snmp-server community public ro
!
line console 0
exec-timeout 0 0
!
line vty 0 4
!
end

路由协议配置
RIP协议
RIP(Routing information Protocol)是应用较早、使用较普遍的内部网关协议(Interior Gateway Protocol,简称IGP),适用于小型同类网络,是典型的距离向量(distance-vector)协议。文档见RFC1058、RFC1723。
RIP通过广播UDP报文来交换路由信息,每30秒发送一次路由信息更新。RIP提供跳跃计数(hop count)作为尺度来衡量路由距离,跳跃计数是一个包到达目标所必须经过的Cisco思科路由器的数目。如果到相同目标有二个不等速或不同带宽的Cisco思科路由器,但跳跃计数相同,则RIP认为两个路由是等距离的。RIP最多支持的跳数为15,即在源和目的网间所要经过的最多Cisco思科路由器的数目为15,跳数16表示不可达。
1.有关命令
任务命令
指定使用RIP协议router rip
指定RIP版本version {1|2}1
指定与该Cisco思科路由器相连的网络network network
注:1.Cisco的RIP版本2支持验证、密钥管理、路由汇总、无类域间路由(CIDR)和变长子网掩码(VLSMs)
2.举例
Router1:
router rip
version 2
network 192.200.10.0
network 192.20.10.0

相关调试命令:
show ip protocol
show ip route
IGRP协议
IGRP (Interior Gateway Routing Protocol)是一种动态距离向量路由协议,它由Cisco公司八十年代中期设计。使用组合用户配置尺度,包括延迟、带宽、可靠性和负载。
缺省情况下,IGRP每90秒发送一次路由更新广播,在3个更新周期内(即270秒),没有从路由中的第一个Cisco思科路由器接收到更新,则宣布路由不可访问。在7个更新周期即630秒后,Cisco IOS 软件从路由表中清除路由。
1.有关命令
任务命令
指定使用igrp协议router igrp autonomous-system1
指定与该Cisco思科路由器相连的网络network network
指定与该Cisco思科路由器相邻的节点地址neighbor ip-address
注:1、autonomous-system可以随意建立,并非实际意义上的autonomous-system,但运行IGRP的Cisco思科路由器要想交换路由更新信息其autonomous-system需相同。
2.举例
Router1:
router igrp 200
network 192.200.10.0
network 192.20.10.0
!
虚拟局域网(VLAN)
当前在我们构造企业网络时所采用的主干网络技术一般都是基于交换和虚拟网络的。交换技术将共享介质改为独占介质,大大提高网络速度。虚拟网络技术打破了地理环境的制约,在不改动网络物理连接的情况下可以任意将工作站在工作组或子网之间移动,工作站组成逻辑工作组或虚拟子网,提高信息系统的运作性能,均衡网络数据流量,合理利用硬件及信息资源。同时,利用虚拟网络技术,大大减轻了网络管理和维护工作的负担,降低网络维护费用。随着虚拟网络技术的应用,随之必然产生了在虚拟网间如何通讯的问题.
交换机间链路(ISL)协议
ISL(Interior Switching Link)协议用于实现交换机间的VLAN中继。它是一个信息包标记协议,在支持ISL接口上发送的帧由一个标准以太网帧及相关的VLAN信息组成。如下图所示,在支持ISL的接口上可以传送来自不同VLAN的数据。
虚拟局域网(VLAN)路由实例
3.1. 例一:
设备选用Catalyst5500交换机1台,安装WS-X5530-E3管理引擎,多块WS-X5225R及WS-X5302路由交换模块,WS-X5302被直接插入交换机,通过二个通道与系统背板上的VLAN 相连,从用户角度看认为它是1个1接口的模块,此接口支持ISL。在交换机内划有3个虚拟网,分别名为default、qbw、rgw,通过WS-X5302实现虚拟网间路由。
以下加重下横线部分,如set system name 5500C为需设置的命令。
设置如下:
Catalyst 5500配置:
begin
set password $1$FMFQ$HfZR5DUszVHIRhrz4h6V70
set enablepass $1$FMFQ$HfZR5DUszVHIRhrz4h6V70
set prompt Console>
set length 24 default
set logout 20
set banner motd ^C^C
!
#system
set system baud 9600
set system modem disable
set system name 5500C
set system location
set system contact
!
#ip
set interface sc0 1 10.230.4.240 255.255.255.0 10.230.4.255
set interface sc0 up
set interface sl0 0.0.0.0 0.0.0.0
set interface sl0 up
set arp agingtime 1200
set ip redirect enable
set ip unreachable enable
set ip fragmentation enable
set ip route 0.0.0.0 10.230.4.15 1
set ip alias default 0.0.0.0
!
#Command alias
!
#vtp
set vtp domain hne
set vtp mode server
set vtp v2 disable
set vtp pruning disable
set vtp pruneeligible 2-1000
clear vtp pruneeligible 1001-1005
set vlan 1 name default type ethernet mtu 1500 said 100001 state active
set vlan 777 name rgw type ethernet mtu 1500 said 100777 state active
set vlan 888 name qbw type ethernet mtu 1500 said 100888 state active
set vlan 1002 name fddi-default type fddi mtu 1500 said 101002 state active
set vlan 1004 name fddinet-default type fddinet mtu 1500 said 101004 state active bridge 0×0 stp ieee
set vlan 1005 name trnet-default type trbrf mtu 1500 said 101005 state active bridge 0×0 stp ibm
set vlan 1003 name token-ring-default type trcrf mtu 1500 said 101003 state active parent 0 ring 0×0 mode srb aremaxhop 7 stemaxhop 7
!
#set boot command
set boot config-register 0×102
set boot system flash bootflash:cat5000-sup3
.4-3-1a.bin
!
#module 1 : 2-port 1000BaseLX Supervisor
set module name 1
set vlan 1 1/1-2
set port enable 1/1-2
!
#module 2 : empty
!
#module 3 : 24-port 10/100BaseTX Ethernet
set module name 3
set module enable 3
set vlan 1 3/1-22
set vlan 777 3/23
set vlan 888 3/24
set trunk 3/1 on isl 1-1005
#module 4 empty
!
#module 5 empty
!
#module 6 : 1-port Route Switch
set module name 6
set port level 6/1 normal
set port trap 6/1 disable
set port name 6/1
set cdp enable 6/1
set cdp interval 6/1 60
set trunk 6/1 on isl 1-1005
!
#module 7 : 24-port 10/100BaseTX Ethernet
set module name 7
set module enable 7
set vlan 1 7/1-22
set vlan 888 7/23-24
set trunk 7/1 on isl 1-1005
set trunk 7/2 on isl 1-1005
!
#module 8 empty
!
#module 9 empty
!
#module 10 : 12-port 100BaseFX MM Ethernet
set module name 10
set module enable 10
set vlan 1 10/1-12
set port channel 10/1-4 off
set port channel 10/5-8 off
set port channel 10/9-12 off
set port channel 10/1-2 on
set port channel 10/3-4 on
set port channel 10/5-6 on
set port channel 10/7-8 on
set port channel 10/9-10 on
set port channel 10/11-12 on
#module 11 empty
!
#module 12 empty
!
#module 13 empty
!
#switch port analyzer
!set span 1 1/1 both inpkts disable
set span disable
!
#cam
set cam agingtime 1-2,777,888,1003,1005 300
end
5500C> (enable)
WS-X5302路由模块设置:
Router#wri t
Building configuration…
Current configuration:
!
version 11.2
no service password-encryption
no service udp-small-servers
no service tcp-small-servers
!
hostname Router
!
enable secret 5 $1$w1kK$AJK69fGOD7BqKhKcSNBf6.
!
ip subnet-zero
!
interface Vlan1
ip address 10.230.2.56 255.255.255.0
!
interface Vlan777
ip address 10.230.3.56 255.255.255.0
!
interface Vlan888
ip address 10.230.4.56 255.255.255.0
!
no ip classless
!
line con 0
line aux 0
line vty 0 4
password router
login
!
end
Router#
3.1. 例二:
交换设备仍选用Catalyst5500交换机1台,安装WS-X5530-E3管理引擎,多块WS-X5225R在交换机内划有3个虚拟网,分别名为default、qbw、rgw,通过Cisco3640Cisco思科路由器实现虚拟网间路由。交换机设置与例一类似。
Cisco思科路由器Cisco3640,配有一块NM-1FE-TX模块,此模块带有一个快速以太网接口可以支持ISL。Cisco3640快速以太网接口与交换机上的某一支持ISL的端口实现连接,如交换机第3槽第1个接口(3/1口)。
Router#wri t
Building configuration…
Current configuration:
!
version 11.2
no service password-encryption
no service udp-small-servers
no service tcp-small-servers
!
hostname Router
!
enable secret 5 $1$w1kK$AJK69fGOD7BqKhKcSNBf6.
!
ip subnet-zero
!
interface FastEthernet1/0
!
interface FastEthernet1/0.1
encapsulation isl 1
ip address 10.230.2.56 255.255.255.0
!
interface FastEthernet1/0.2
encapsulation isl 777
ip address 10.230.3.56 255.255.255.0
!
interface FastEthernet1/0.3
encapsulation isl 888
ip address 10.230.4.56 255.255.255.0
!
no ip classless
!
line con 0
line aux 0
line vty 0 4
password router
login
!
end
Router#

安全性管理
对Cisco思科路由器的安全性管理主要包括:建立口令以保护访问Cisco思科路由器的安全,使用正确的访问表以管理通过Cisco思科路由器的可接受数据流等。
1、口令管理
下面显示了设置控制从终端进行访问的口令的命令。
命令 操作效果
Line console 0 为控制台终端建立一个口令
Line vty 0 4 telnet连接建立一个口令
Enable-password 为特权exec模式建立一个口令
Enable-secret 使用MD5加密方法建立密码口令
Service password-encryption 保护口令,避免其通过idsplay命令
将口令显示出来
2、报文过滤
cisco的防火墙功能主要是通过报文的过滤实现的。
它可以实现对多种数据流的控制,如限制流入、以及流出等。通过对访问列表的编写,我们可以实现对特定网络或主机的数据流限制。
Accsess-list 的编号有特定的范围:
IP standard access list
IP extended access list
Extended 48-bit MAC address access list
Protocol type-code access list
48-bit MAC address access list
例如我们可以定义如下的访问表来实现允许任何主机到主机160..10.2.101的报文:
Accsess-list 101 permit ip any host 160.10.2.101
而下面的语句允许使用客户源端口(小于1024的端口留给服务器用)方式的主机发往160.10.2.100的udp报文通过,且报文的目的端口必须为dns端口(53)。其中gt为great than。
Accsess-list 101 permit udp any gt 1023 host 160.10.2.100 eq 53
建立好访问列表以后,要想让它进行报文过滤,必须将它应用到端口上。在进入要控制的端口后,用如下的命令应用此访问表:
router(config-if)#ip access-group 101 in
其中的in表示对向里(针对此端口来说)的数据进行过滤。要注意的是,一个端口只能有一个向里和向外的列表,如果有几个,则只有第一个起作用。
参考:
CiscoCisco思科路由器口令恢复
当CiscoCisco思科路由器的口令被错误修改或忘记时,可以按如下步骤进行操作:
1.开机时按使进入ROM监控状态
2.按o 命令读取配置寄存器的原始值
> o
3.作如下设置,使忽略NVRAM引导
>o/r0x**4*Cisco2500系列命令
rommon 1 >confreg 0x**4*Cisco2600、1600系列命令
一般正常值为0×2102
4.重新启动Cisco思科路由器
>I
rommon 2 >reset
5.在“Setup”模式,对所有问题回答No
6.进入特权模式
Router>enable
7.下载NVRAM
Router>configure memory
8.恢复原始配置寄存器值并激活所有端口
“hostname”#configure terminal
“hostname”(config)#config-register 0x“value”
“hostname”(config)#interface xx
“hostname”(config)#no shutdown
9.查询并记录丢失的口令
“hostname”#show configuration (show startup-config)
10.修改口令
“hostname”#configure terminal
“hostname”(config)line console 0
“hostname”(config-line)#login
“hostname”(config-line)#password xxxxxxxxx
“hostname”(config-line)#
“hostname”(config-line)#write memory(copy running-config startup-config)

2、IP地址分配
地址类网络主机网络地址范围标准二进制掩码
AN.H.H.H1-1261111 1111 0000 0000 0000 0000 0000 0000
BN.N.H.H128-1911111 1111 1111 1111 0000 0000 0000 0000
CN.N.N.H192-2231111 1111 1111 1111 1111 1111 0000 0000
子网位个数子网掩码子网数主机数
B类地址
2255.255.192.0216382
3255.255.224.068198
4255.255.240.0144894
5255.255.248.0302846
6255.255.252.0621822
7255.255.254.0126518
8255.255.255.0254254
9255.255.255.128518126
10255.255.255.192182262
11255.255.255.224284630
12255.255.255.240489414
13255.255.255.24881986
14255.255.255.252163822
C类地址
2255.255.255.192262
3255.255.255.224630
4255.255.255.2401414
5255.255.255.248306
6255.255.255.252622

Cisco思科路由器
最简单的网络可以想象成单线的总线,各个计算机可以通过向总线发送分组以互相通信。但随着网络中的计算机数目增长,这就很不可行了,会产生许多问题:
1、带宽资源耗尽。
2、每台计算机都浪费许多时间处理无关的广播数据。
3、网络变得无法管理,任何错误都可能导致整个网络瘫痪。
4、每台计算机都可以监听到其

IP网络设计系列讲座(四):局域网设计

0

分类 : 技术文摘 | 发表时间 01-05-2006

这是IP网络设计系列讲座的最后一部分。本讲将讨论园区局域网设计中遇到的一些问题。以太网交换机优越于传统的集线器环境的好处将首先介绍一下。应用虚拟局域网的动机已经同规划和配置虚拟局域网遇到的问题一起进行了研究。本文还将讨论确保园区网络设计具有可伸缩性和弹性的一些技术。本文还将讨论生成树协议以及如何在大型交换的网络中优化这个协议。最后,在本文的结论部分将涉及到与推出IP电话有关的设计问题。

  以太网交换的好处

  传统的共享的以太网是一种基带介质。这就意味着在任何一个时间只能有一个站点能够向这个介质发送数据。多个信号不能像在宽带网介质中那样成为多路复用的信号。在一个共享的以太网集线器,各个站点通过监听一对儿接收的线路来检查是否有其它站点在发送数据,用这种方法来解决访问冲突问题。以太网交换的应用取代了共享的以太网,从而产生了如下改善的运行功能:

  专用的冲突域

  交换机的每一个端口都在自己的冲突域中,因此,一个站点通过一台交换机的端口连接到这个局域网,而不是通过一个集线器的端口。这样,这个站点就不需要在发送数据之前通过监听是否有冲突来竞争接入到线路的权限。这将提高局域网的有效带宽。

  通信过滤和转发

  一台交换机像一个多口网桥一样工作,并且通过监听实况通信来了解每一个站点的MAC地址的位置。对于交换机交换的每一帧,交换机仅把通信转发到目的地MAC地址所在的端口。这台交换机据说要过滤所有其它端口的帧。这将显著减少局域网中不必要的通信,提高带宽的利用率。然而,广播帧将涌向所有的端口,这样,一个交换机据说要创建多个冲突域,但是,所有的端口仍在同一个广播域中。这通常是一种理想工作方式,因为广播时必要的,通常是局域网中的一种有效的通信手段。这与广域网有些不同。微软的Windows就使用严重依赖广播的NetBios。另一个例子是地址解析协议(ARP)。根据地址解析协议,一个地址解析协议广播必须要达到IP子网的每一个站点以便把一个目的地的IP地址解析为MAC地址。

  全双工传输

  传统共享的以太网以半双工的模式工作。换句话说,各个站点不能同时发送和接收数据。由于以太网基带的性质,只有一个站点能够访问这个介质并且在任何一个时间发送数据。一个共享的以太网介质上的各个站点通过监听冲突来解决通信冲突。全双工传输意味着所有的站点都能够同时发送和接收数据。在以太网中,这并不是通过监视冲突来实现的。如果这个站点附加到自己专用的交换机端口,它只是合法地关闭了冲突检测功能。这就意味着在冲突域只有两个站点:这个站点本身和这台交换机的端口。然后,每个站点都可以相互收发数据,而不必监听冲突。这种方式称作点对点的以太网。同许多网络词汇一样,全双工一直被滥用而且有些说法是不真实的。交换机厂商之间的市场营销大战促使这些厂商声称全双工作业能够使数据吞吐量提高一倍。全双工作业确实能够显著改善数据吞吐量,但是,还不能说把数据吞吐量提高了一倍,因为同一个站点不可能以线速的速度同时发送和接收应用程序的通信。

  理解客户机-服务器通信流

  当实施一个交换的局域网设计时,获得对客户机-服务器通信流的详细了解大概是一项最大的挑战。一个网络正在进行重新设计,要把一个共享的局域网环境转变为一个交换的局域网,以满足日益增长的带宽需求。在这种情况下,有可能收集到详细的大量有关通信状况的信息。在一个全新的网络,在网络推出之前收集这些信息是不容易的。然而,没有严格数量的通信状况分析,对通信状况进行合理的质量分析也是应该达到的。获得下列信息的合理的预测是非常重要的:什么用户在与什么服务器进行通话,通话的时间有多长,现在消耗的带宽是多少,将来消耗的带宽是多少?所有的客户机和服务器的物理位置和逻辑位置是什么。换句话说,要清楚地了解每个应用程序的客户机与服务器之间数据通道。服务器之间的通信水平是什么?再次说明一下,这与了解整个网络的全部主要通信流的需求是一致的。如果不充分理解这些通信流,介绍局域网交换机的作用也是很有限的。举一个极端的例子,假设一台服务器在远方并且必须通过一个56K的广域网线路访问这台服务器。在这种情况下,一台局域网交换机将不能显著提高性能,因为瓶颈是在广域网而不是在局域网。

  高速内核

  一些专有的方法与802.3ad标准的存在允许把多个连接集成为一个逻辑的高速连接。两台交换机之间的多个物理连接必须被当作一个逻辑连接对待,否则,生成树将封锁多余的连接。这种功能可以用来提供核心交换机之间的高速连接并且向高带宽服务器提供高速连接。即使在应用万兆以太网之前,就存在最多把8个以太网端口集成在一起提供高速园区干线的功能。

  虚拟局域网的概念

  广播封闭

  一台交换机中的每一个端口代表一个单独的冲突域。然而,一台交换机的全部端口都在同一个广播域。园区局域网中的任何一个站点发出的任何广播都必须经过完全是交换网络的那个局域网中的每一个站点的处理。在局域网环境中,每一台设备中的CPU的中断所引起的问题比这个广播消耗的带宽还要严重。虚拟局域网为在交换的网络中创建多个广播域提供了一种机制。一个特定站点发出的一个广播将只发送给同一个虚拟局域网中站点。需要一台路由器实现虚拟局域网中的通信,就像用一台路由器实现物理局域网之间的通信一样。这个问题是很容易理解的,因为一个虚拟局域网与一个IP子网是同义词。在一个交换的环境中,如果两个站点在同一个虚拟局域网中,它们一定是在同一个IP子网中。

  安全

  通过过滤广播,虚拟局域网提供了一般与路由子网的安全水平相同的安全功能。考虑一下插入到一个交换机端口的网络分析器的情况。如果这个端口分配给一个特定的虚拟局域网,那么,这个网络分析器仅检测与那个虚拟局域网有关的广播,而不检查整个局域网。可以在路由器上设置安全政策,就像在传统的局域网网段上一样管理虚拟局域网之间的通信。

  IP地址计划

  IP地址计划也许还部分规定了虚拟局域网策略。例如,如果一个26位子网掩码用于局域网子网,那么,每个子网的最多主机数量是60个。这就意味着整个局域网不能与超过60个的主机保持“持平”。如果在一个交换的局域网中有大量的主机,虚拟局域网的创建必须是每个虚拟局域网最多有60台主机。

  灵活型

  虚拟局域网正在向把一个路由网络的智能与交换网络的灵活性结合在一起的方向发展。例如,在一个特定的虚拟局域网中的用户在移动到园区内不同物理位置之后仍能够保留在那里虚拟局域网中。所有这一切需要在相关的交换机设置中做一些修改。这不需要改变硬件或者重新铺设电缆。虚拟局域网能够扩展到使用虚拟局域网集群协议的多台交换机。这将进
一步提高灵活性。一般来说,虚拟局域网在使用3层处理的局域网环境中帮助简化了移动、增加和改变等管理功能。

  虚拟局域网规划

  当规划在一个大型园区局域网中部署虚拟局域网的时候,有许多问题需要考虑。部署虚拟局域网的数量必须与每个虚拟局域网应该支持的主机数量一起确定。虚拟局域网的架构和这个虚拟局域网数据吞吐量覆盖园区的范围是另一个重要的设计问题。

  虚拟局域网的范围

  虚拟局域网对于配线柜来说应该是本地的。例如,一栋大楼的每一层代表一个不同的虚拟局域网,而不管用户的工作职能是什么。这就意味着广播是在本的封闭的。这个缺点是发到另一个配线柜(里面可能配置服务器)的通信必须使用路由器。企业在服务器群等集中的地方共享资源的趋势在日益增长。日益突出的基于网络的计算和共享的办公室应用程序进一步推动了这种趋势的发展。随着大多数资源集中起来,客户机与服务器之间的通信可能在任何情况下都能得到路由,除非这个局域网是一个不适合广播的大型IP子网。这个基本原理已经使所谓的“本地”虚拟局域网成为了一种流行的设计理念。这种替代的方法将允许虚拟局域网扩展整个局域网或者园区,以确保客户机至服务器的通信产生最少的路由延迟。在工程、市场营销和法律等各个工作组都实现相对自动化的情况下,这也许是可行的。现代的服务器平台将支持多个共享的应用程序,这些共享的应用程序可能会影响所谓的“端对端”的虚拟局域网。3层交换技术的改进也减少了与路由和3层处理有关的延迟。部署本地虚拟局域网的一个更诱人的理由是它能阻止广播在整个园区干线上传播。

  虚拟局域网的数量

  不要仅仅为了建立虚拟局域网而建立虚拟局域网。网络设计师应该清楚建立虚拟局域网将带来的好处。记住这些好处,使用的虚拟局域网的数量就可以确定了。这个决定不能离开IP地址计划单独做出。在IP地址计划中,局域网子网的数量通常与使用的虚拟局域网的数量相关联的。根据这个机构的人员编制结构,把一群人用同一个虚拟局域网中的通用工作职能组合在一起也许是可能的,也许是不可能的。

  每个虚拟局域网的用户数量

  有一个每个虚拟局域网最多用户数量的预测是一种很好的做法。这种预测没有必要与整个企业保持一致。例如,虚拟局域网封闭使用高带宽的用户,或者广播密集型应用程序应该有较少的用户。这个IP地址计划也将对每个子网的主机数量提出限制,从而限制每个虚拟局域网的主机数量。

  优化生成树域

  802.1d生成树协议在桥接或者交换的网络中是必要的,以便允许冗余的交换机之间的连接,同时防止广播环路(loops)。生成树协议可能减缓融合这种情况将提出协议挑战。这些挑战应该在设计阶段加以解决。

  大多数交换机厂商都提供一些专有的方法加快生成树的融合。例如,思科的“PortFast”功能把没有连接到另一台交换机的一个端口的发送延迟定时器设置为零。这就防止了PC在启动之后出现连接问题,因为PC端口进入发送状态比较缓慢。这是一项很有用的功能,因为只在连接到另一台交换机的端口需要生成树协议。

  然而,还有一种新的标注化的增强功能的协议RSTP(快速生成树协议)。正如这个协议的名称所说的那样,这个协议将解决与802.1d协议有关的融合问题。RSTP是一个以802.1w的形式制定的标准。这个协议增加了计算并且获得了有关网络的更多的结构信息。这个协议与作为维持生计机制的BPDU(桥接协议数据单元)一起使用使其本地融合时间达到了6秒,而在802.1d协议中,这个时间需要50秒。802.1w协议向下兼容802.1d协议并且推荐在现代局域网中应用。


  根网桥启动这个生成树协议BPDU信息。这个信息每2秒钟向整个网络传播一次。这是根网桥应该位于接近网络干线的中心点位置的原因之一。这样将保证所有的下行交换机在接收和处理BPDU信息时出现同样的延迟,从而提高生成树协议计算机的稳定性。根交换机上的所有的端口为了生成树协议都处在发送状态,并且一般要比其它交换机用有更高的处理工作量。这就意味着那台交换机应该是网络上功能更强大的交换机之一。显然,根交换机应该认真挑选。生成树协议根据最低的桥ID选择一台根交换机。由于所有的参数都是默认值,选择具有最低的MAC地址ID的交换机变成了一种很偶然的事情。然而,通过降低指定根设备的桥优先等级,这种根选择是允许有偏差的。这样做是合理的,不仅是由于上述理由,而且还因为这样可以阻止新安装的交换机由于其MAC ID低于当前的根交换机而启动根选择的竞争。

  具有生成树功能的一个端口在进入发送状态之前必须要经过封锁、监听和学习阶段。这是在生成树的缓慢融合的中心,但是,对于确保不会产生环路的布局是很必要的。所有主要的交换机厂商都有以安全的方式加快生成树融合的专有方法。例如,生成树协议能够根据每个端口的情况关闭,以便直接移动这个端口到发送状态。这将会防止在启动之后出现工作站DHCP请求超时等故障,因为那时端口还没有进入发送状态。每次关闭生成树都应该特别注意,这个时候千万不要关闭可能连接到其它交换机的端口。

  在设计阶段必须解决的最后一个问题是在一个虚拟局域网环境中如何处理生成树。在整个园区可以使用建立一个生成树域。替代的方法是在每一个虚拟局域网中建立一个单独的生成树实例。这意味着每一个虚拟局域网可能有一个不同的(或者完全相同的)根交换机。重要的是清楚随后的安装工作和相应地做出计划。例如,拥有多个生成树域,阻止一台交换机成为整个虚拟局域网的根也许是谨慎的措施。如果那台交换机出现故障,这会减少通信的中断。有多个生成树域的好处是,它们很小,因此能够更快地融合起来,允许为每一个虚拟局域网优化选择根交换机。另一方面,一个单独的生成树可减少BPTU通信以及交换机必须处理的生成树的数量。同以前一样,在做出任何决策时前,了解你的环境是一个重要的问题。

  IP电话

  随着IP电话的出现,有许多要解决的设计问题。由于性能和安全的原因,这种语音通信应该在自己的虚拟局域网中实施。因此,一个新的IP子网必须增加IP电话的任务。理想的是这种IP地址应该很容易分辨,例如10.99.99.0/24,以便使排除故障和管理更方便。

  IP电话服务器的数量和位置必须要确定下来。服务器的容量必须要根据其能够支持的注册电话用户数量以及在繁忙时间能够支持的电话数量来进行评估。这种评估再加上预算分析有助于决定服务器的位置是采取集中的模式还是分布式模式。

  电源可以通过多种方式提供,如通过每个电话机的单独的电源部分、一个电源接插板、或者使用支持线内供电的以太网交换机。最后一种方法一般被认为是最可靠的和最省钱的。然而,在处理IP电话的问题时,你永远不要忘记标准化的问题。如果IP电话机来自不同的厂商,其厂商的数量比以太网交换机的厂
商还多,线内供电能起作用吗?虽然有很多标准,但是,这些标准并不总是滴水不漏的。因此,惟一的方法是通过实际测试确切地了解这个情况。

  服务质量总是语音通信的问题。局域网的带宽通常是很充足的,因此,阻塞管理通常不能保证特殊的配置。来自IP电话的通信一般标记为“IP优先等级5”和“802.1q COS 5”。这个分类和标记能够在本地交换机设置。许多IP电话预先标记这种通信。如果是这种情况,交换机应该设置为来自IP电话的“可信赖”数据包(也就是说,不是重新标记的)。来自PC的数据包一般应该标记为“优先等级0”,以防止数据帧在路由器广域网接口上以高优先等级队列发送。

  翻译:东缘

IP网络设计系列讲座(三):广域网设计

0

分类 : 技术文摘 | 发表时间 01-05-2006

广域网(WAN)对于企业的网络拥有成本是一个最大的单项开支。因此,强调得最多的和最重要的是有一个权衡性价比的区域。本文将探讨各种替代的方法。这些方法在选择和设计WAN基础设施的时候是必须要进行评估的。不同的拓扑的和技术的选择将从它们与基本的WAN设计目标的关系的角度进行讨论。包括同步串行线路、帧中继和ATM在内的传统的技术替代方法将同DSL和MPLS等更高级的技术一起讨论。

  同步串行线路

  清晰频道租赁线路是地理上分散的站点之间相互连接的最简单和最传统的方式,然而也是最昂贵的方式。同步租赁线路的主要优势在于其技术的简单性。这就意味着这种技术的安装和排除故障仅需要较少的专业知识,从而减少了技术支持的费用。点对点的串行连接的特点是需要的费用最少,因此提高了有效的数据吞吐量并且消除了额外的延迟和抖动的因素。

  充足带宽的串行连接的特点是具有极好的服务质量。在串行连接上造成信号延迟和抖动的主要原因是路由器上的队列和数据包串行化。当一个小数据包等待一个大数据包在这个连接上发送的时候可能会出现串行化延迟。这种类型的延迟最有可能发生在低速连接上。然而,带宽预算总是有上限的,并且总有更省钱的方法减少在串行连接上的延迟和抖动。高级的队列技术把大型数据包分割为小数据包,并且给小数据包更高的优先等级,从而保证在串行连接上的延迟分布的更统一。

  这对于数据包语音、视频和多媒体等对延迟非常敏感的实时应用是非常重要的。串行租赁线路最大的缺点是成本太高。因此,这个行业的许多部门都把串行租赁线路看作是不能有效地使用价格昂贵的带宽。这种情况促使人们从串行租赁线路技术向诸如帧中继或者用于更高带宽需求的ATM信元中继等包交换技术转移。

  帧中继

  帧中继协议是在客户的路由器或者帧中继接入设备(FRAD)之间运行的。本地帧中继交换机一般属于服务提供商。永久虚拟电路(PVC)用于站点之间的连接。永久虚拟电路之所以称作“永久”是因为端点总是与一个租赁线路时相同的。使用“虚拟”这个词是因为在运营商的网络上的整个线路中没有一个专用的物理连接。例如,不需要运营商编排其交换机来保证信号传输,从站点A进入帧中继网络的通信将在站点B退出这个运营商的网络。

  因此,在最基本的水平上,这看起来好像与使用一条租赁线路把站点A与站点B连接起来是一样的。不过,还有许多基本的和相当大的区别。帧中继实际上是通过一种包交换的技术收取传统的基本费用。事实是,整个线路上没有一个专用的物理电路使运营商能够提供一个灵活的带宽,向用户证明这种连接是节省费用的。

  一项帧中继服务需要为每一个永久虚拟电路购买一个承诺信息速率(CIR)。CIR是运营商担保的端对端的带宽。用户还可以购买额外的突发速率(Burst Rate)。突发速率是所有的永久虚拟电路都支持的最大速度的通信速率。显然,最大突发速率是用户接入帧中继服务提供商的线路的物理速度。然而,运营商不能保证通信将以超过CIR的速度传输。一旦超过了这个速率,所有随后的数据包都将在帧中继文件头上打上“DE”(符合丢弃条件)的标签。这将在本地帧中继交换机上完成。

  如果在帧中继网络的一个节点检测到阻塞的情况,有“DE”标记的数据包将被首先放弃。在检测到拥塞之后,帧中继交换机将向信息源发送一个后向拥塞通知(BECN)信息。如果发送这个信息的路由器或者FRAD有足够的智能来处理这个信息,那么,它就能够把发送的速率降低到CIR速率。因此,用户可以选择CIR速率或者最大突发速率,以便获得能够充分支持其应用需求的最划算的带宽。

  使用TCP协议的应用程序对于放弃的数据包更有弹性,因此同不太可靠的基于UDP的应用程序相比性能受到的影响要小一些。对于语音应用程序来说,被放弃的数据包超过一定的比例将影响语音的质量。当以超过CIR的速率进行语音通信时,还有一个需要注意的问题。除了在拥塞时放弃有“DE”标记的数据包之外,帧中继交换机还可能以较低的优先等级缓存这些数据包。这意味着这种通信将会达到目的地,但是,会有很大的延迟或者抖动,对于语音质量或者任何实时重放都会产生严重的影响。

  避免以超过CIR速率的速度运行实时通信程序应该被当作一项一般的原则。这是非常恰当的,因为帧中继服务会需要某些带宽的保证,不能保证出现任何延迟。因此,对于实时的和非实时的通信使用不同的永久虚拟电路是非常必要的。帧中继网络能够以节省成本的方式提供恢复能力。可以使用一些CIR速率低于主要的永久虚拟电路的备份的永久虚拟电路。这种备份的永久虚拟电路位于通向本地帧中继交换机的不同的电缆线中,因为不仅仅在理论上保证这种恢复能力是很重要的。

  异步传输模式

  异步传输模式(ATM)一种综合性技术,旨在把带宽的一致性和传统的清晰频道TDM技术有关的延迟与包交换技术的灵活性结合在一起。ATM的较高层使用专用网络接口(PNNI)支持交换式虚电路(SVC)的动态重新路由。ATM还适应突发通信状况。小的、固定的53个字节的信元可减少在WAN中出现的延迟或者抖动的变化。虽然ATM中使用的许多原则与帧中继相似,但是,交换较小的固定长度的信元以及ATM协议中固有的服务质量的特点使ATM更适合用于由不同成分组成的和实时的应用程序。

  ATM资源和服务质量参数

  用户能够受益于与帧中继相同的带宽的灵活性。使用ATM,用户可以从服务提供商那里购买可持续信元速率(SCR)和峰值信元速率(PCR)。这与帧中继中使用的CIR和EIR相同。因此,同使用帧中继一样,用户对于接入速度有一定的控制权,并且可以根据应用的需求调整接入速度。

  除了与信元速率有关的通信参数之外,ATM还采用了服务质量参数。这些参数可在用户网络接口提出申请,旨在为各种对延迟敏感的和对丢失数据包敏感的应用程序提供更好的服务。

  信元丢失率(CLR):这是整个连接中数据吞吐量中信元总数与放弃的信元数量的比例。CLR是一个参数,对于那些对丢失数据包非常敏感的应用程序可以把CLR设置为最大值,例如基于UDP数据的应用程序等。

  信元延迟变化(CDV):CDV是在特定时间间隔中整个ATM连接中延迟的平均变化。对于语音和视频等不能容忍大量延迟变化的应用程序,可以向ATM网络申请CDV的最大值。

  信元传送延迟(CTD):CTD是总的端对端的延迟或者在整个ATM连接中的延迟。对于那些对时间敏感的语音或者数据应用程序,可以设置这个值。

  ATM还支持与在ATM网络上分配带宽有关的许多不同类别的服务。ATM论坛具体指出了四种服务类型:

  固定比特率(CBR):这种类型的服务可保证在ATM永久虚拟电路上的固定比特率。固定比特率是高质量的语音和视频传输的先决条件。这是公共ATM网络中价格最昂贵的一种服务,因为服务提供商必须在永久虚拟电路上分配充足的带宽以满足规定的需求。固定比特率相当于从服务提供商那里
购买的SCR值。如果通信以超过SCR速率的速度在永久虚拟电路上传输,信元在ATM网络拥塞时可能会被放弃。ATM文件头中的信元丢弃优先级(CLP)字节能够确定在这种情况下放弃什么通信。

  可变比特率(VBR):采用这种服务,比特率能够根据网络状况变化。当网络完全没有拥塞的时候,在整个永久虚拟电路上可以达到预先设置的最大PCR值。当然,这是不能保证。在特定的时间段,平均数据吞吐量可以在ATM接入设备和交换机之间进行协商。短时间内可以保证的最大比特率也可以协商。VBR类服务适用于对时间不太敏感的突发性数据应用。VBR还有一个标准的定义“VBR-NRT”,NRT的含义是非实时通信。VBR-NRT主要用于传输数据。在实时通信方面,最近批准了“VBR-RT”。VBR-RT被认为是在ATM网络上发送语音、视频和其它对延迟敏感的通信的最有效的方法。这是因为人们一直认为语音和视频在本质上不是固定速率的,尽管它们对延迟和抖动很敏感。视频协议仅发送增量帧,语音电话在统计学上大约有30%的时间是沉默的。我想,这取决于你与谁讲话!

  可用比特率(ABR):ABR是可变比特率的一种具体类型。反馈回路是在ATM交换机和路由器之间实现的(或者正在访问这个网络的任何ATM适配器)。这种适配器需要一种特定的比特率,但是,将接受目前网络应用允许的比特率。如果这个交换机提供的比特率低于要求的比特率,经过一段时间当网络利用率不足的时候,交换机将提高比特率。同样,如果原来申请的比特率获得了交换机的批准,如果网络的使用率增长,交换机以后可能会降低比特率。虽然ABR看起来比较复杂,但是,ABR比CBR或者VBR类的服务都要便宜,因为ABR对于分配的带宽只有有限的保证。

  未指定比特率(UBR):使用UBR绝对没有任何比特率的保证。接入设备发送的全部信元可能被网络丢弃,或者可能成功地发送到目的地。实际达到的数据吞吐量完全取决于网络状况。因此,人们经常把UBR比作“等待起飞”。

  ATM适配层(AAL)准备在ATM网络上传输的信元。在发送端,可变长度数据包要被分割为固定长度的信元,然后在接收方重新组合起来。ATM适配层的这种特殊功能被称作“分段和重组”(SAR)。不同的AAL协议用来支持优化传输有不同要求和不同字符的通信。

  从比特率、面向连接的协议&无连接协议性质和时间特点方面看,五种不同的AAL协议在这些方面有不同的特点。最常用的ATM适配层封装是AAL1和AAL5。AAL1是一种面向连接的协议,提供固定的比特率。通过在信息源和目的地之间实施端对端的定时连接可以实现固定延迟。这种固定比特率和固定延迟对于语音和视频等对延迟敏感的应用程序来说是非常理想的。AAL5是用于数据传输的最常用的ATM适配层协议。AAL5是面向连接的协议,并且提供一种可变比特率。这种用于ATM永久虚拟电路的AAL协议可以在路由器和ATM交换机上选择和设置。

  不同的AAL协议能够在不同的永久虚拟电路上运行。因此,一种特定的永久虚拟电路能够用于语音和视频通信,另一种永久虚拟电路能过专门用于数据传输。支持不同类型AAL协议的能力使ATM成为一种合适的协议,可支持具有不同特点和网络需求的应用。除了能够提出申请的固有的延迟参数之外,ATM传输配置文件还能够按照其它的方式量身定制,以保证支持具有不同传输要求的通信类型。

  一些评论家支持使用信元丢弃优先级字节为语音和视频等对延迟比较敏感的应用提供更高的优先等级。如果传输速率大于SCR或者检测到网络拥塞时,网络将丢弃有CLP字节信息的通信。在网络入口设置这项功能的惟一好处是能够让用户控制信元得到的CLP设置。例如,如果这项设置决定给对延迟敏感的UDP语音通信做CLP标记,以便放弃而不是延迟这种通信,那么,无论网络状况如何,这种通信都会被打上CLP标记。这就意味着其他用户能够以你的损失为代价让通信通过运营商的网络。

  ATM一般用于超过T-1/E-1的WAN速度,并且最多可用于每秒155MB的多种同步光纤网络(SONET)。因此,它是一种边缘市场的东西,适用于高带宽需求和具有严格的服务质量标准的网络。

  数字用户线路

  数字用户线路(DSL)是一种接入技术体系。DSL在有限的距离内使用高传输频率和高级的调制技术在传统的和老式铜线上提供高带宽。

  不对称数字用户线(ADSL)是DSL最常见的应用。ADSL旨在与连接到中央办公室的本地环路中的普通电话业务(POTS)共存,其方法是使用更高的频率用于数据传输,使用老式公共交换电话网(PSTN)使用的4kHz频率以下的频段接收数据。因此,本地环路连接中不需要做任何改变。住宅单元或者小型分支办公室安装一台调制解调器,再安装一个把语音和数据分开的分频器就可以了。DSL连接以中央办公室的数字用户线路接入复用器(DSLAM)为终点。DSLAM能够让服务提供商把语音通信转接到PSTN网络,把数据通信转接到互联网。

  ADSL支持的最大下行速度为每秒1.5MB,最大上行速度为每秒640KB。由于远程办公室和住宅的带宽需求通常都是下行的需求比较大,因此,这样的比例是更有效率的。由于本地环路的信号衰减,ADSL路由器或者调制解调器与中央办公室之间的距离应该不超过1.8万英尺。DSL家族中的其它变体还包括对称DSL,提供的上行和下行速度都是大约每秒1.1MB,最大距离限制是1.2万英尺。

  甚高速数字用户线(VDSL)能够提供双向更多的带宽,但是,传输的距离较短。因此,VDSL从来没有成为一个标准。

  成为国际电信联盟(ITU)标准的是全球对称高速DSL(G.SHDSL)。这个标准提供了多种速率(双向速度在每秒192K至2.3MB之间),传输距离比目前应用的DSL技术大约长30%。

  总之,DSL为分支办公室、小办公室/家庭办公室(SOHO)提供一种效率高和省钱的接入技术。通过互联网可以为总部和其它办公室建立速度合理的连接。DSL还可以用于备份的目的,在许多方面还可以取代ISDN作为一种能够提供更高带宽和更节省的远程接入技术。DSL的一个明显的局限性是,由于它使用互联网连接远程站点,除了从服务提供商那里购买服务级协议(SLA)之外,服务质量是不能保证的。

  多协议标签交换(MPLS)

  在传统的3层转发中,随着数据包在网络上传输,每一台路由器都从3层文件头提取转发信息。数据包经过的每一台路由器都要重复实施这种文件头分析。

  在MPLS网络中,数据包是根据标签进行转发的。通过接口可以达到的每一个IP网络都要分配一个独特的标签。入网标签和出网标签之间要建立一个映射。这个映射保存在标签转发信息库(LFIB)表格中。每一个节点检查这个入网标签,做一次表格检查,把入网标签交换成出网标签,然后把数据包转发到出网接口。这种表格的应用允许MPLS网络建立一个整个网络的标签交换通道(LSP)。

  图1显示MPLS文件头的细节。它位于3层(IP)文件头和2层文件头之间。MPLS文件头的试验位(EXP-bits)和TTL(生存时间)字段可以从IP文件头复制。S字节表示在这个数据包中是否存在一个以上的MPLS标签。

  图1:MPLS标签文件头  


  MPLS网络中的路由器之间使用一个协议为IP网络分配标签,并且与其它路由器交换标签信息。目前最常用的协议是标签分配协议(LDP端口号是646)。这个协议以TCP协议为基础,在MPLS标签交换路由器(LSR)上运行。

  LSR的概念经常用来说明MPLS设备。LSR运行一种路由协议,因此具有3层的智能。然而,一旦LSP建立起来,MPLS设备在转发通信的时候仅执行检查标签的工作。因此,他们把路由的智能与交换的速度结合在一起了。图2介绍了一个MPLS网络执行的基本操作。

  图2:标签交换概要  

  MPLS提供了一种节省成本的方法,让运营商在一个共享的网络基础设施上销售带宽,而不是使用专用的基于TDM的租赁线路销售带宽。TDM提供的高质量的服务可以通过使用高优先等级的标签标记来实现。实验字段用于这个目的,并且通常从进入网络的数据包的IP优先字段复制。例如,VoIP数据包通常标记为高优先等级的5,这与MPLS核心网络的试验值5是相对应的。不同的客户在同一家服务提供商的网络上进行的网络通信是通过使用MPLS虚拟专用网(VPN)分隔开来的。然而,需要指出的是,与IPSec VPN不同,MPLS VPN作为一个标准不提供加密功能。MPLS被认为是帧中继和ATM最新的增强功能。所有这三种技术都提供了访问共享的服务提供商的基础设施,但是,MPLS通过使所有的核心设备都熟悉IP为网络注入了更多的智能。

  翻译:东缘

IIS突然不解析asp文件的处理步骤

0

分类 : 网站技术 | 发表时间 20-04-2006

原文出处:http://www.iisfaq.com/Default.aspx?tabid=3094
整理翻译:ajou

1.如果WEB站点目录下有Global.asa文件,改此文件文件名为Global.old.重启WEB服务,在记事本中写如下代码(原文中无代码,实际最简单的那种asp源码就行,译者注).文件另存为Test.asp于WEB根目录下.
如果asp文件能正常执行,问题就出在Global.asa上,如果依然不行,请转到第二步.
参阅如下微软知识库有关Global.asa文件出错的更多信息.

Q288245 PRB: Global.asa Does Not Fire from Personal Web Server on Windows 98
Q265275 FP2000: Global.asa Does Not Run in FrontPage Web
Q173742 FIX: Global.asa Is Not Executed If Restricting Web Access

2.将web站点的应用程序保护级别设置为”低”,重启IISAdmin服务.如果asp文件如此能正常执行,说明问题出在IWAM用户上,请跳到第三步继续.如果没有正常执行,请在管理工具中检查组件服务确保能看到IIS Packages,确保组件服务没有失败后,确认本地用户组中有如下用户存在:
NT AUTHORITY\Authenticated Users
NT AUTHORITY\INTERACTIVE
关于更多组件服务出错的信息,请参考入下知识文章:
Q301919 PRB: Cannot Expand ‘My Computer’ in Component Services MMC Snap-In
3.如果通过第二步asp文件能正常执行,将站点的应用程序保护级别设回”中”或”高”,将IWAM用户添加到本地管理员用户组中,如果通过这步,asp文件能正常执行,说明IWAM用户的访问许可权限就存在问题,请跳到第四步,如果asp文件还没正常执行,请在命令提示符中执行Synciwam.vbs 工具.
方法:打开命令提示符窗口敲入如下命令:
C:\Inetpub\adminscripts>cscript synciwam.vbs.
关于IWAM用户(设置不正确)导致asp文件不能正常执行,请参考入下知识库.
Q308622 HOW TO: Perform Administration Tasks in IIS from a Command Prompt
Q297989 PRB: Configured Identity Is Incorrect for IWAM Account
Q255770 PRB: Logon Failure: Unknown User Name or Bad Password When You Run Out-of-Process Webs
Q236007 Domain Controller Demotion Causes Out-of-Process Applications to Fail

4.解决IWAM用户许可权限的问题,请使用windows 2000的第三方产品:Regmon 和 Filemon.请在http://www.sysinternals.com中下载这些工具.
当你执行asp页面请求时运行这些工具, Dllhost.exe 进程在Regmon 中查找”ACCDENIED” (在Filemon中查找”FAILURE”).
注意:在IE进程出现”操作失败”时不要紧张,这只是普通现象.~~
关于IIS功能正常运作所需的最小条件,请参阅知识库:
Q271071 Minimum NTFS Permissions Required for IIS 5.0 to Work
在看到Dllhost.exe 进程”操作失败”的错误信息后,用Regedit32工具修改注册表里任何必须的NTFS许可权限(好像是病句,,汗…)

5.在装完IIS5.0后,从WEB 服务器控制台或其他网络上的工作站浏览asp或html文件,WEB服务可能返回如下错误信息:
HTTP 500 内部服务器错误.
默认的web服务可能处于运行状态,如果运行netstat -an 你可能注意到WEB服务器正监听TCP80端口,即HTTP的默认端口.
注意:如果在使用IE5.0(或以上版本,译者注),你可能屏蔽了IE高级选项中的显示友好HTTP错误信息选项,更多信息:请参考微软知识库:
Q218155 Description of Hypertext Transport Protocol Error Messages
下面的几条可能出现在装有IIS5.0机器的事件日志中:


Application Log: COM+ error with Event ID 4099
System Log: W3SVC error with Event ID 59
System Log: W3SVC warning with Event ID 36.
Iis5.log 文件(WINNT目录下)可能包含下面错误信息:
0x8004e00f=COM+ was unable to talk to the Microsoft Distributed Transaction Coordinator
你正试图打开com+管理者使用的组件服务,MMC停止响应.
原因
IIS5.0依赖与COM+,COM+依赖于Distributed Transaction Coordinator (DTC) 服务运行,DTC检查版本的机制(包括在windows 2000以前的SQL SERVER版本)不能识别Windows2000所用的版本属性,结果SQL SERVER的DTC安装程序移除了WINDOWS 2000安装的DTC服务,更多请查阅微软知识库:
Q249310 BUG: Installing SQL Server on Windows 2000 Uninstalls DTC Service
解决
如下步骤解决这个问题:
a.验证Dtcsetup.exe (默认在c:\Winnt\System32 下)是否为1999.9.3422.24 或以后版本号
b.运行Dtcsetup.exe 安装DTC服务
c.开始DTC服务
d.控制面板中,双击”添加删除程序”
e.选”添加删除Windows组件”,移除IIS5.0再重新安装.

现状
微软已经确认在SQL Server versions 6.5 和 7.0 and MSDE 1.0中这会是个问题
详细请参见文章:
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q257267

6.最后一招:依照下面步骤自己创建IIS Packages
a.浏览组件服务删除下列包
a.IIS In-Process Applications
b.IIS Out-of-Process Pooled Applications
c.IIS Utilities
b.打开命令提示符,转到文件夹%windir%\system32\inetsrv,执行命令:
rundll32 wamreg.dll, CreateIISPackage
注意:CreateIISPackage是大小写敏感的,确人输入正确.
c.重新打开组件服务,你将看到IIS COM+应用已经重新创建了.
d.从命令提示符中运行IISRESTART再测试之前没有正确执行的任何asp文件.

Eclipse使用入门

0

分类 : 编码知识 | 发表时间 17-04-2006

目前Java开发领域的各种集成开发环境(IDE)呈现出百花齐放的局面,从Borland的JBuilder,到IBM的Visual Age for Java、WebSphere Studio,Oracle的JDeveloper,Sun的 Forte for Java,WebGain的Visual Cafe,TogetherSoft的Together,还有开放源代码的Eclipse、NetBeans 等,种类10种有余。这么多种类的IDE繁荣了Java开发工具家族,但是也为开发人员的选择提出了难题。这些IDE的开发环境有着较大的差别,在一种开发环境下开发的项目不能很方便地移植到另一种开发环境,这就要求更为谨慎地选择适合项目目标的开发工具。 
  
  在目前所有的IDE中,Eclipse可以说是最有发展前途的产品之一。Eclipse最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。IBM提供了最初的Eclipse代码基础,包括Platform、JDT和PDE。目前由IBM牵头,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、Rational Software、Red Hat及Sybase,最近Oracle也计划加入到Eclipse联盟中。 
  
  基本概念
  在学习使用Eclipse之前,有必要对关于这个项目的名词做一些解释。 
  
  Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,每一个项目由一个项目管理委员会监督,并由它的项目章程管理。每一个项目由其自身的子项目组成,并且使用 Common Public License(CPL)版本1.0许可协议。 
  
  Eclipse工具项目为不同的工具建造者提供一个焦点,以保证为Eclipse Platform创建最好的工具。Eclipse工具项目的任务是为Eclipse Platform培育广泛的工具的创建。工具项目提供单一的联系点以调和开放源代码工具建造者,从而使得覆盖和重复最小化,并保证共享的最大化和共同组件的创建,促进不同类型工具的无缝互操作。工具项目由工具开发者委员会和工具项目的项目管理委员会提议、选择和开发的子项目组成。 
  
  Eclipse技术项目的任务是为开放源代码开发者、研究者、学院和教育者提供新的管道,以参与将来Eclipse的演化。它按照研究、培育和教育三个项目流来组织,研究项目在Eclipse相关领域诸如编程语言、工具和开发环境方面进行探索和研究;培育项目是小型的、未正式结构化的项目,为Eclipse软件基础添加新的能力;教育项目聚焦于教育材料的开发、教学帮助和课件。 
  
  Eclipse Platform是一个开放的可扩展的IDE。Eclipse Platform提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具你无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。 
  
  Eclipse SDK(软件开发者包)是3个Eclipse项目的子项目(Platform、JDT、PDE)所生产的组件合并,它们可以一次下载。这些部分在一起提供了一个具有丰富特性的开发环境,允许开发者有效地建造可以无缝集成到Eclipse Platform中的工具。Eclipse SDK由Eclipse项目生产的工具和来自其它开放源代码的第三方软件组合而成。Eclipse项目生产的软件以 CPL发布,第三方组件有各自自身的许可协议。 
  
  下载、安装Eclipse
  知道了这些关于Eclipse项目的信息,我们可以下载、安装一个Eclipse。Eclipse SDK就是我们要下载的,其中包括了开发Java应用的所有内容和Eclipse项目的所有成果。 
  
  进入Eclipse项目的主页http://www.eclipse.org,点击Downloads,进入下载页。Eclipse最新的版本是2.0.2版,但是2.0.2版的多国语言翻译包还没有出来,所以我们可以使用一个稍早一点的版本2.0.1。点击2.0.1进入其下载页,这个页面有很多下载连接,包括Eclipse SDK在很多平台上的版本,这里我们只需要下载eclipse-SDK-2.0.1-win32.zip和NLS-SDK-2.0.1-Translations.zip两个文件就可以了,另外还有一个 eclipse-examples-2.0.1-win32.zip文件,是学习《Java开发用户指南》所需要的。将这3个文件解压缩到相同的目录,如D:\eclipse。 
  
  在运行Eclipse之前首先应该安装好JDK(Sun 的JDK或IBM的JDK都可以,应该安装1.3以上版本,推荐使用1.4以上版本,因为只有使用1.4以上版本的JDK才可以享受到新增的HotSwap功能对于调试带来的方便),设置好环境变量JAVA_HOME、CLASSPATH和PATH。 
  
  为D:\eclipse下的eclipse.exe在桌面上建立一个快捷方式。双击快捷方式启动Eclipse。Eclipse也可以以命令行方式启动,在命令行上指定使用的JVM和保存数据的workspace,例如: 
  
  D:\eclipse\eclipse.exe-vmD:\WebSphere\AppServer\java
  \bin\javaw.exe -data 
  D:\WORK\workspace
   
  其中,D:\WORK\workspace是保存项目文件的位置。 
  
  可以选择帮助→帮助内容进入Eclipse的帮助系统。有了Eclipse的多国语言翻译包,所有的选单和联机帮助都已经翻译成了中文,使用起来非常方便。
  
  下面我们编写一个HellWorld程序,步骤如下: 
  
  1.选择文件→新建→项目; 
  
  2.项目类别选Java; 
  
  3.项目列表选Java项目; 
  
  4.点击“下一步”; 
  
  5.输入项目名称,例如:HelloProject; 
  
  6.点击“完成”; 
  
  7.在工具条里点击“创建Java类”的按钮(带有一个C标记)见图1;


8.在名称域输入HelloWorld; 
  
  9.点击public static void main(String[] args) 的复选框,让Eclipse创建main方法(见图2); 


  10.点击“完成”; 
  
  11.一个Java编辑窗口将打开,在main方法中输入System.out.println(“Hello World”)行; 
  
  12.使用Ctrl-s保存,这将自动编译 HelloWorld.java; 
  
  13.点击工具条里的“运行”按钮; 
  
  14.选择“Java应用程序”,然后选“新建”; 
  
  15.输入项目名称Hello-Project和main类名 HelloWorld; 
  
  16.点击“运行”; 
  
  17.这时候,将会打开一个控制台窗口,一句 “Hello World”将会显示在里面(见图3)。


  Eclipse有一个增量编译器,每次保存一个Java文件时它就自动进行编译。这个特性被称做“自动构建”。如果不需要这个功能,可以在窗口→首选项→工作台→对资源修改执行自动构建,关闭这个特性。随后工具条中会出现“全部构建”的按钮。类似的选项也会出现在相关的选单中。 
  
  创建CVS资源库
  现在我们知道如何创建一个项目了,下一步是与某个版本服务器建立连接,将项目发布到版本服务器中。目前开源软件都是使用CVS来做版本管理,因此我们也使用CVS来举例。Eclipse SDK已经包括了支持CVS的插件,要想使用其它的版本管理软件,例如VSS,可以从Eclipse的网站上下载
相关的插件。创建一个CVS资源库位置的步骤如下: 
  
  1.打开CVS资源库开发透视图(窗口→打开透视图→其它→CVS资源库开发)。 
  
  2.在CVS资源库视图里点右键,新建→资源库位置,见图4。 


  3.在添加CVS资源库对话框中输入CVS Server 的详细信息。 
  
  4.点击“完成”。 
  
  5.一旦配置好CVS资源库,就可以把项目输入资源库了。转到Java透视图,在项目名称上点右键,选择小组→共享项目。 
  
  6.选择刚才添加的资源库。 
  
  7.点击“完成”。 
  
  8.在同步窗口中的项目上点右键,选提交。 
  
  9.输入为提交加入的注释,如图5。 


  10.点击“确定”,则项目被发布到CVS资源库中。
  
  11.将项目共享到资源库中后,可以使用“与资源库同步”功能来发布代码,并且赶上别人对资源库中代码所做的修改。在项目上点右键,小组→与资源库同步。 
  
  下载、安装应用服务器JBoss
  为了做服务器端的开发,还需要一个应用服务器,并且把应用服务器与Eclipse集成起来。Eclipse可以与多种应用服务器共同工作,包括WebLogic、WebSphere、JRun、Orion/Oracle9iAS、JBoss、JOnAS、Resin等。下面以目前流行的开放源代码应用服务器JBoss来举例。首先要下载并安装好JBoss,我使用的是JBoss 3.0.3,安装在D:\jboss-3.0.3目录。为了把JBoss与Eclipse相集成,还需要下载相关的插件,下载位置是http://www.genuitec.com/products_easie.htm、http://www.genuitec.com/products/EASIEJBoss1.0.6.zip。在http://www.genuitec.com/products/Eclipse_JBoss.pdf还有一个安装的指导。退出Eclipse,将刚才下载的文件解压缩到D:\eclipse下,重新启动Eclipse。 
  
  新安装的插件需要激活才能使用,选择窗口→定制透视图,将“其它”中的EASIE JBoss项选中。 
  
  然后配置这个插件,选择窗口→首选

ps:不知道是否结束,转发自:中国it实验室

认识无线路由器与无线AP的区别

0

分类 : 美文美景 | 发表时间 11-04-2006

摆脱线缆的羁绊,手捧一杯香醇的咖啡在家中的任何角落都可以无拘无束和网友谈天说地──这就是无线的魅力!在无线网络迅猛发展的今天,无线局域网(Wireless Local-Area Network,简称WLAN)已经成为许多SOHO家庭网络生活的首选。虽然现在无线网络普及的速度很快,但无线网络毕竟是个新鲜事物,因此很多网友对 无线网络产品存在很多困惑。

今天我们从功能、应用、组网和成本四个方面为大家区分无线路由器和无线AP.

当前的无线AP可以分为两类:单纯型AP和扩展型AP.

单纯型AP的功能相对来比较简单缺少路由功能,只能相当无线集线器;对于此类无线AP,还没有发现可以互连的产品!!而扩展型AP也就是市场上的无线路由器,由于它功能比较全面,大多数扩展型AP不但具有路由交换功能还有DHCP、网络防火墙等功能。

现在市场上的无线AP大多属于扩展型AP,对于扩展型AP来说,它们在短距离范围内是可以相互联的;如果大家需要传输的距离比较远,那么就需要无线网桥和专门的天线等设备!!其实无线网桥也是无线AP的一种。

首先从功能上区分

无线AP:AP为Access Point简称,一般翻译为“无线访问节点”,它主要是提供无线工作站对有线局域网和从有线局域网对无线工作站的访问,在访问接入点覆盖范围内的无线工作站可以通过它进行相互通信。通俗的讲,无线AP是无线网和有线网之间沟通的桥梁。由于无线AP的覆盖范围是一个向外扩散的圆形区域,因此,应当尽量把无线AP放置在无线网络的中心位置,而且各无线客户端与无线AP的直线距离最好不要超过30米,以避免因通讯信号衰减过多而导致通信失败。

无线路由器:无线路由器是单纯型AP与宽带路由器的一种结合体;它借助于路由器功能,可实现家庭无线网络中的Internet连接共享,实现ADSL和小区宽带的无线共享接入 ,另外,无线路由器可以把通过它进行无线和有线连接的终端都分配到一个子网,这样子网内的各种设备交换数据就非常方便。

可以这样说:

无线路由器就是AP、路由功能和交换机的集合体,支持有线无线组成同一子网,直接接上MODEM.

无线AP相当于一个无线交换机,接在有线交换机或路由器上,为跟它连接的无线网卡从路由器那里分得IP.

然后从应用上区分

独立的AP在那些需要大量AP来进行大面积覆盖的公司使用得比较多,所有AP通过以太网连接起来并连到独立的无线局域网防火墙。

无线路由器在SOHO的环境中使用得比较多,在这种环境下,一个AP就足够了。这样的话,整合了宽带接入路由器和AP的无线路由器就提供了单个机器的解决方案,它比起两个分开的机器的方案要容易管理和便宜一些。无线路由器一般包括了网络地址转换(NAT)协议,以支持无线局域网用户的网络连接共享——这是SOHO环境中很好用的一个功能。它们也可能有基本的防火墙或者信息包过滤器来防止端口扫描软件和其他针对宽带连接的攻击。最后,大多数无线路由器包括一个四个端口的以太网转换器,可以连接几台有线的PC.这对于管理路由器或者把一台打印机连上局域网来说非常方便。

然后从组网拓扑图上分析

AP不能直接跟ADSL MODEM相连,所以在使用时必须再添加一台交换机或者集线器:

使用上面的拓扑架构时,AP和无线路由的用法是一样的。不过,大部分无线路由器由于具有宽带拨号的能力,因此可以直接跟ADSL MODEM连接进行宽带共享:

最后从成本上来分析

802.11B的无线AP和无线路由器的价钱相差不多, 一般无线路由器会贵100元左右;802.11G则要看具体情况而言,根据品牌和附加功能的不同两者价格会有几百元不等的差距,不过便宜的产品差价也是100多元。

结论:

现在你知道你需要的是无线AP,还是无线路由器了吧!

最精辟的回帖

0

分类 : 业界动态 | 发表时间 09-04-2006

看了你的贴不由得精神为之一振,自觉七经八脉为之一畅,七窍倒也开了六巧半,自古英雄出少年,楼主年纪轻轻,就有经天纬地之才,定国安邦之智.楼主的帖子,就好比黑暗中刺裂夜空的闪电,又好比撕开乌云的阳光.
说得好啊!我在XX社区打滚这么多年,所谓阅人无数,就算没有见过猪走路,也总明白猪肉是啥味道的。一看到楼主的气势,我就觉得楼主同在社区里灌水的那帮小混混有着本质的差别!那忧郁的语调,那熟悉的签名,还有字里行间高屋建瓴的辞藻。没用的,楼主,就算你怎么换马甲都是没有用的,你的亿万拥戴者早已经把你认出来了,你一定就是传说中的最强ID。自从社区改版之后,我就已经心灰意冷,对社区也没抱什么希望了,传说已经幻灭,神话已经终结,留在社区还有什么意思?没想到,没想到,今天可以再睹楼主的风范,我激动得忍不住就在屏幕前流下了眼泪。是啊,只要在楼主的带领下,社区就有希望了。我的内心再一次沸腾了,我胸腔里的血再一次燃烧了。楼主的几句话虽然简单,却概括扼要,一语道出了我们苦想多年仍不可解的几个重大问题的根本。楼主就好比社区的明灯,楼主就好比社区的方向,楼主就好比社区的栋梁。有楼主在,社区的明天必将更好!
大师的话真如“大音希声扫阴翳”,犹如“拨开云雾见青天”,使我等网民看到了希望,看到了未来!晴天霹雳、醍醐灌顶或许不足以形容大师文章的万一;巫山行云、长江流水更难以比拟大师的文才!黄钟大吕,振聋发聩!你烛照天下,明见万里;雨露苍生,泽被万方!透过你深邃的文字,我仿佛看到了你鹰视狼顾、龙行虎步的伟岸英姿;仿佛看到了你手执如椽大笔、写天下文章的智慧神态;仿佛看见了你按剑四顾、指点江山的英武气概!
逐字逐句地看完这个帖子以后,我的心久久不能平静,震撼啊!为什么会有如此好的帖子!我纵横网络BBS多年,自以为再也不会有任何帖子能打动我,没想到今天看到了如此精妙绝伦的这样一篇帖子!楼主,是你让我深深地理解了“人外有人,天外有天”这句话。谢谢侬!在看完这帖子以后,我没有立即回复,因为我生怕我庸俗不堪的回复会玷污了这网上少有的帖子。但是我还是回复了,因为觉得如果不能在如此精彩的帖子后面留下自己的网名,那我死也不会瞑目的!能够在如此精彩的帖子后面留下自己的网名是多么骄傲的一件事啊!楼主,请原谅我的自私!我知道无论用多么华丽的辞藻来形容楼主您帖子的精彩程度都是不够的,都是虚伪的,所以我只想说一句:您的帖子太好看了!我愿意一辈子看下去!这篇帖子构思新颖,题材独具匠心,段落清晰,情节诡异,跌宕起伏,主线分明,引人入胜,平淡中显示出不凡的文学功底,可谓是字字珠玑,句句经典,是我辈应当学习之典范。正所谓:“一马奔腾,射雕引弓,天地都在我心中!”楼主真不愧为无厘界新一代的开山怪!本来我已经对这个社区失望了,觉得这个社区没有前途了,心里充满了悲哀。但是看了你的这个帖子,又让我对社区产生了希望。是你让我的心里重新燃起希望之火,是你让我的心死灰复燃,是你拯救了我一颗拔凉拔凉的心!本来我决定不在社区回任何帖子了,但是看了你的帖子,我告诉自己这个帖子是一定要回的!这是百年难得一见的好贴啊!苍天有眼啊,让我在有生之年得以观得如此精彩绝伦的帖子!



好帖

很好帖

确实好帖

少见的好帖

真 **** 好帖

难得一见的好帖

千年等一回的好帖

好得不能再好的好帖

惊天地且泣鬼神的好帖

让人阅毕击掌三叹的好帖

让人佩服得五体投地的好帖

让人奔走相告曰须阅读的好帖

让斑竹看后决定加精固顶的好帖

让人看后在各论坛纷纷转贴的好帖

让人看后连成人网站都没兴趣的好帖

让人看完后就要往上顶往死里顶的好帖

让人不间断地在各种场合重复引用的好帖

让人一见面就问你看过某某好帖没有的好帖

让人半夜上厕所都要打开电脑再看一遍的好帖

让个读过后都下载在硬盘里详细研究欣赏的好帖

让人走路吃饭睡觉干什么事连做梦都梦到它的好帖

让人翻译成36种不同外语流传国内外世界各地的好帖

让人纷纷唱道过年过节不送礼要送就送某某帖子的好帖

让国家领导人命令将该帖刻在纯金版上当国礼送人的好帖

让网络上纷纷冒出该帖的真人版卡通版搞笑版成人版的好帖

让人在公共厕所里不再乱涂乱化而是纷纷对它引经据典的好帖

让某位想成名的少女向媒体说她与该帖作者发生过性关系的好帖

让人根据它写成小说又被不同导演拍成48个不同版本的电影的好帖

让某名导演跟据此帖改拍的电影在奥斯卡上一连拿了11个奖项的好帖

让人大代表们看完后联名要求根据该帖的内容对宪法做适当修改的好帖

让人为了谁是它的原始作者纷纷地闹上法院打官司要争得它的版权的好帖

让各大学府纷纷邀请该帖作者去就如何发表优秀网络文学为题目演讲的好帖

让人为了该帖而成立了各种学会来研究并为不同的理解争得眼红脖子粗的好帖

让美国警察于今后逮捕人说你有权保持沉默还有权阅读某某帖子要不要啊的好帖

让本拉登躲在山洞里还命令他手下冒着被美军发现的危险去上网下载来阅读的好帖

让萨达姆被捕时被发现他随身携带的除了一把手枪之外还有的就是它的复印件的好帖

让比尔盖茨在懂事会上发给与会者人手一份该帖命令仔细阅读后才讨论其他事宜的好帖

让诺贝儿奖理事会破天荒地因该帖的出现而开会讨论一直决定今后设立最佳帖子奖的好帖

让联合国安理会决定将它译成宇宙语由中国神州六号升空后不断播放看有没有外星人的好帖

让人看完后ie锁死连瑞星诺顿都没法修复只好格式化硬盘重装启动后主页显示的还是它的好帖真是好帖子啊
阁下  字迹工整,
    文笔极佳,
    才思敏捷,
    过目不忘,
    十年寒窗,
    博学多才,
    见多识广,
    才高八斗,
    学富五车,
    文武双全,
    雄韬伟略,
    谈吐不凡,
    谈笑风声,
    高谈阔论,
    眉飞色舞,
    运筹帷幄,
    言简意赅,
    完美无缺,
    一针见血,
    远见卓识,
    义正词严,
    一气呵成,
    大显神通,
    出口成章,
    出类拔萃,
    出神入化,
    万古流芳,
    一本正经,
    一箭双雕,
    长篇大论,
    功德无量,
    力排众议,
    力挽狂澜,
    气贯长虹,
    气势磅礴,
    气吞山河,
    坚韧不拔,
    身体力行,
 
   空前绝后,
    视死如归,
    英姿焕发,
    奉公守法,
    艰苦奋斗,
    忠贞不渝,
    舍己为人,
    大公无私,
    一尘不染,
    一鸣惊人,
    叱诧风云,
    排山倒海,
    惊涛骇浪,
    雷霆万钧,
    惊心动魄,
    横扫千军,
    惊天动地,
    见缝插针,
    无孔不入,
    千篇一律,
    口诛笔伐,
    文从字顺,
    十全十美,
    无懈可击,
    无与伦比,
    励精图治,
    壮志凌云,
    高瞻远瞩,
    忍辱负重,
    盖世无双,
    龙飞凤舞,
    一丝不苟,
    身兼数职,
    日理万机,
    明察秋毫,
    英明果断,
    分身有术,
    孜孜不倦,
    吾等楷模
    …………
    在下对你的景仰之情有如滔滔长江之水,
    连绵不绝
    ……
    又如黄河泛滥,
    一发不可收拾
    ……
    嘿嘿
    惊天地!
    泣鬼神!
    感人肺腑!
    感人落泪!
    i 服了 u!
    长江后浪退前浪,
    灌水英雄代代出
    ……
    
    好贴。。。
    又见好帖。。。
    
    又见不是一般的好贴。。。
    
    好贴不是别的。。。
    
    好贴就是好贴。。。
    
    好是好贴的好。。。
    
    贴是好贴的帖。。。
    
    好贴不是别的。。。
    
    好贴就是好贴。。。
    
    曾经有人问我。。。楼猪的帖子算不算好贴。。。我没有回答。。。因为我想起了一位传说中的大师—古龙先生的一段话:“。。。天涯远不远?。。。天涯其实一点也不远。。。因为人已经在天涯。。。天涯还远吗。。。”
    
    好帖啊。。。
    难得一见的好贴。。。
    楼猪的文章简直是惊天地。。。泣鬼神。。。
    图文并茂。。。嬉笑怒骂。。。
    指点系词。。。激扬文字。。。
    带给我们的仅仅是视觉上的感受吗。。。
    
    大错特错。。。
    楼猪的文章带给我们的是心灵深处的震撼。。。
    楼猪的文章是宣言书。。。楼猪的文章是宣传队。。。楼猪的文章是播种机。。。楼猪的文章带来的是读者的欣喜和系词的繁荣。。
      
我对楼猪的景仰犹如滔滔江水。。。绵绵不绝。。。又如黄河泛滥。。。一发。。。而不可收拾。。。楼主的文笔实在用笔墨难以形容。。。熄了灯。。。打着赤脚。。。将整个人都倦在大班椅里。。。喝着清茶看那一个个帖子在mop之间时隐时现。。。

      
记得一位高人说。。。好帖子与垃圾帖的区别在于。。。好帖子越看越暖。。。而垃圾帖。。。越看越寒。。。我呢。。。一开始就和普通人一样。。。不相信真有一种帖子可以让人学会忘记烦恼和所有不开心的事情。。。所以。。。我选择看垃圾帖。。。选择垃圾帖的人。。。一般都比较冷静。。觉得冥冥中一直在等楼猪写这个帖子。。。我以为。。。楼猪的帖子写出来。。。就应该是一部传世之作。。。到现在我才发现。。。什么事情都是可以变的。。。惟独不变的是楼猪的精彩原创。。。就好像我一直以为自己文笔不错。。。忽然看到楼猪帖子。。。才发现我输了。。。因为在我读楼猪的帖子的时候。。。我忘记烦恼和所有不开心的事情。。。整个人好象沐浴在4月杭州温暖的春风中。。我决定以后只会看好帖子。。。那种让人越看越暖的好帖子。。。那种让人忘记烦恼和所有不开心的事情的好帖子。。。换句话说。。。我以后只看楼猪的帖子。。。
    
    苍天之下,厚土之上,竟有如此奇人异士、文人墨客!讥讽于谈笑间,笑骂于无形中,层次之高,境界之深,非我等所能匹及,偶像啊!!!仿高人此文,照作一篇,以表仰慕之情。。。
    在逐行逐句地看完此帖后,我的心久久不能压抑的喜悦,震动了整个生命!怎会有如此精妙绝伦的好贴?偶潜水网络bbs多年,自以为贴在人外,何肖评说,岂可
    
    妄动情谊呼!未曾想到今日竟有如此好贴现于眼前,激动啊!
    楼猪,是你让偶幼小的心灵再次深深的领悟了何谓造旨之高深、文笔之挥洒。。谢谢you!
    在看完这帖子以后,我立即动手回复,因为我生怕迟到的回复不能使更多的人领悟你的圣明,以至使这等网上少有的好贴就此轮沉,我担不起这样的罪名!更加重要的是,能在如此重要、精辟而又生动的贴子后,留上自己的网名,这对我的生命,以及我的家庭,乃至我所处的社会中是多么荣耀的一件事啊,请您高贵而又宽容的心,能够原谅我的这点小小私心!
    此贴构思巧妙,视角独到,手法新颖。字字斟酌,句句精美,情节曲折,而又始终不离中心思想,引人入胜,淡淡的言语中,显示人生之大道理,充分体现了您
    
    深厚的文化底韵与丰富的社会经验,真可谓讽刺之经典,骂人之绝学,这正是我辈苦学闷读追求的至高境界啊!
    就艺术的角度而言,这篇帖子已然为经典之作,但它的意义却远远大于经典本身。正所谓:“骂而无形,讥于无影,笑骂之中显真功!”楼主真不愧为讽刺界新一代的开山长毛鼻祖!
    本来我已经对这个系词社区绝望了,觉得这个社区不可能再有明天了,心里充满了伤感。但是今日所见you的这个帖子,又重新让偶看到了八卦的希望。是you让我的心里重新燃起希望的火花,是you让偶的心又重新跳动起来,是you拯救了偶一颗哇凉哇凉的心,并挽救了一个无知的灵魂!
    本来偶已决定不会在系词回任何帖子了,但是今日拜读you之高作,偶告诉自己如此经典之贴是一定要回的!这是千百年来版友翘首以待的好贴啊!苍天开眼啊,让偶在对社区心灰意冷之时得以观得如此精彩绝伦的好贴!
    楼猪,you是系词的希望啊,you要担起系词兴旺之大任啊!
    偶一定会追随你左右,偶坚定此贴必然会起到抛砖引玉的作用,更坚信在偶有生之年必然会有更多象楼猪一样的猪来八卦畅所欲言、发表高见,不管明天会是如何,今夜梦中,偶会笑容灿烂,因为,偶终于知道了,此番人世,得此一贴,无憾矣!
    
    在逐字逐句地看完这个帖子以后,我的心久久不能平静,震撼啊!为什么会有如此好的帖子?!我纵横网络bbs多年,自以为
再也不会有任何帖子能打动我,没想到今天看到了如此精妙绝伦的这样一篇帖子。
    楼主,是你让我深深地理解了‘人外有人,天外有天’这句话。谢谢侬!
    在看完这帖子以后,我没有立即回复,因为我生怕我庸俗不堪的回复会玷污了这网上少有的帖子。但是我还是回复了,因为觉得如果不能在如此精彩的帖子后面留下自己的网名,那我死也不会瞑目的!能够在如此精彩的帖子后面留下自己的网名是多么骄傲的一件事啊!楼主,请原谅我的自私!
    我知道无论用多么华丽的辞藻来形容楼主您帖子的精彩程度都是不够的,都是虚伪的,所以我只想说一句:您的帖子太好看了!我愿意一辈子的看下去!
    这篇帖子构思新颖,题材独具匠心,段落清晰,情节诡异,跌宕起伏,主线分明,引人入胜,平淡中显示出不凡的文学功底,可谓是字字珠玑,句句经典,是我辈应当学习之典范。
    本来我已经对这个社区失望了,觉得这个社区没有前途了,心里充满了悲哀。但是看了你的这个帖子,又让我对社区产生了希望。是你让我的心里重新燃起希望之火,是你让我的心死灰复燃,是你拯救了我一颗拨凉拨凉的心!
    本来我决定不会在社区回任何帖子了,但是看了你的帖子,我告诉自己这个帖子是一定要回的!这是百年难得一见的好贴啊!苍天有眼啊,让我在优生之年得以观得如此精彩绝伦的帖子

无觅相关文章插件,快速提升流量