![简单交换机WEB设置_第1页](http://file4.renrendoc.com/view12/M02/2E/07/wKhkGWbGEzCAdc11AAGr03TKMlo894.jpg)
![简单交换机WEB设置_第2页](http://file4.renrendoc.com/view12/M02/2E/07/wKhkGWbGEzCAdc11AAGr03TKMlo8942.jpg)
![简单交换机WEB设置_第3页](http://file4.renrendoc.com/view12/M02/2E/07/wKhkGWbGEzCAdc11AAGr03TKMlo8943.jpg)
![简单交换机WEB设置_第4页](http://file4.renrendoc.com/view12/M02/2E/07/wKhkGWbGEzCAdc11AAGr03TKMlo8944.jpg)
![简单交换机WEB设置_第5页](http://file4.renrendoc.com/view12/M02/2E/07/wKhkGWbGEzCAdc11AAGr03TKMlo8945.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
TELNET远程管理交换机配置组网需求:1.PC通过telnet登陆交换机并对其进行管理;2.分别应用帐号+密码方式、仅密码方式以及radius认证方式;3.只允许/24网段的地址的PCTELNET访问。组网图:作为telnet登陆主机的PC与SwitchA之间通过局域网互连(也可以直连),PC可以ping通SwitchA。配置步骤:H3CS3100-SIS5100系列交换机TELNET配置流程账号+密码方式登陆1.配置TELNET登陆的ip地址<SwitchA>system-view[SwitchA]vlan2[SwitchA-vlan2]portEthernet1/0/1[SwitchA-vlan2]quit[SwitchA]management-vlan2[SwitchA]interfacevlan2[SwitchA-Vlan-interface2]ipaddress242.进入用户界面视图
[SwitchA]user-interfacevty043.配置本地或远端用户名+口令认证方式
[SwitchA-ui-vty0-4]authentication-modescheme4.配置登陆用户的级别为最高级别3(缺省为级别1)
[SwitchA-ui-vty0-4]userprivilegelevel35.添加TELNET管理的用户,用户类型为”telnet”,用户名为”huawei”,密码为”admin”
[SwitchA]local-userhuawei
[SwitchA-luser-huawei]service-typetelnetlevel3
[SwitchA-luser-huawei]passwordsimpleadmin仅密码方式登陆1.配置TELNET登陆的ip地址(与上面账号+密码登陆方式相同)2.进入用户界面视图
[SwitchA]user-interfacevty043.设置认证方式为密码验证方式
[SwitchA-ui-vty0-4]authentication-modepassword4.设置登陆验证的password为明文密码”huawei”
[SwitchA-ui-vty0-4]setauthenticationpasswordsimplehuawei5.配置登陆用户的级别为最高级别3(缺省为级别1)
[SwitchA-ui-vty0-4]userprivilegelevel3TELNETRADIUS验证方式配置1.配置TELNET登陆的ip地址(与上面账号+密码登陆方式相同)2.进入用户界面视图
[SwitchA]user-interfacevty043.配置远端用户名和口令认证
[SwitchA-ui-vty0-4]authentication-modescheme4.配置RADIUS认证方案,名为”cams”
[SwitchA]radiusschemecams5.配置RADIUS认证服务器地址1
[SwitchA-radius-cams]primaryauthentication118126.配置交换机与认证服务器的验证口令为”huawei”
[SwitchA-radius-cams]keyauthenticationhuawei7.送往RADIUS的报文不带域名
[SwitchA-radius-cams]user-name-formatwithout-domain8.创建(进入)一个域,名为”huawei”
[SwitchA]domainhuawei9.在域”huawei”中引用名为”cams”的认证方案
[SwitchA-isp-huawei]radius-schemecams10.将域”huawei”配置为缺省域
[SwitchA]domaindefaultenableHuaweiTELNET访问控制配置1.配置访问控制规则只允许/24网段登录
[SwitchA]aclnumber2000
[SwitchA-acl-basic-2000]ruledenysourceany
[SwitchA-acl-basic-2000]rulepermitsource552.配置只允许符合ACL2000的IP地址登录交换机[SwitchA]user-interfacevty04
[SwitchA-ui-vty0-4]acl2000inbound3.补充说明:TELNET访问控制配置是在以上三种验证方式配置完成的基础上进行的配置;TELNET登陆主机与交换机不是直连的情况下需要配置默认路由Web管理的配置组网需求:PC通过IE浏览器对SwitchA进行管理。组网图:作为Web登陆主机的PC与SwitchA之间通过局域网互连(也可以直连),PC可以ping通SwitchA。配置步骤:H3CS3100-SI-SIS5100系列交换机Web配置流程1.确认WEB管理文件已经在交换机flash中<SwitchA>dir7(*)-rw-801220Apr02200000:02:15hw-http3.1.5-0042.web2.配置Web登陆的ip地址<SwitchA>system-view[SwitchA]vlan2[SwitchA-vlan2]portEthernet1/0/1[SwitchA-vlan2]quit[SwitchA]management-vlan2[SwitchA]interfacevlan2[SwitchA-Vlan-interface2]ipaddress243.添加WEB管理的用户,用户类型为”telnet”,用户名为”huawei”,密码为”admin”
[SwitchA]local-userhuawei
[SwitchA-luser-huawei]service-typetelnetlevel3
[SwitchA-luser-huawei]passwordsimpleadminH3CS3600S5600系列交换机Web配置流程1.确认WEB管理文件已经在交换机flash中<SwitchA>dir7(*)-rw-801220Apr02200000:02:15hw-http3.1.5-0042.web2.配置Web登陆的ip地址<SwitchA>system-view[SwitchA]vlan2[SwitchA-vlan2]portEthernet1/0/1[SwitchA-vlan2]quit[SwitchA]interfacevlan2[SwitchA-Vlan-interface2]ipaddress243.添加WEB管理的用户,用户类型为”telnet”,用户名为”huawei”,密码为”admin”
[SwitchA]local-userhuawei
[SwitchA-luser-huawei]service-typetelnetlevel3
[SwitchA-luser-huawei]passwordsimpleadmin4.补充说明:如果想通过WEB方式管理交换机,必须首先将一个用于支持WEB管理的文件(可以从网站上下载相应的交换机软件版本时得到,其扩展名为”web”或者”zip”)载入交换机的flash中,该文件需要与交换机当前使用的软件版本相配套;Web登陆主机与交换机不是直连情况下需要配置默认路由;登陆的时候在IE浏览器中输入即可进入Web登陆页面。Web管理的配置组网需求:PC通过IE浏览器对SwitchA进行管理。组网图:作为Web登陆主机的PC与SwitchA之间通过局域网互连(也可以直连),PC可以ping通SwitchA。配置步骤:H3CS3100-SI-SIS5100系列交换机Web配置流程1.确认WEB管理文件已经在交换机flash中<SwitchA>dir7(*)-rw-801220Apr02200000:02:15hw-http3.1.5-0042.web2.配置Web登陆的ip地址<SwitchA>system-view[SwitchA]vlan2[SwitchA-vlan2]portEthernet1/0/1[SwitchA-vlan2]quit[SwitchA]management-vlan2[SwitchA]interfacevlan2[SwitchA-Vlan-interface2]ipaddress243.添加WEB管理的用户,用户类型为”telnet”,用户名为”huawei”,密码为”admin”
[SwitchA]local-userhuawei
[SwitchA-luser-huawei]service-typetelnetlevel3
[SwitchA-luser-huawei]passwordsimpleadminH3CS3600S5600系列交换机Web配置流程1.确认WEB管理文件已经在交换机flash中<SwitchA>dir7(*)-rw-801220Apr02200000:02:15hw-http3.1.5-0042.web2.配置Web登陆的ip地址<SwitchA>system-view[SwitchA]vlan2[SwitchA-vlan2]portEthernet1/0/1[SwitchA-vlan2]quit[SwitchA]interfacevlan2[SwitchA-Vlan-interface2]ipaddress243.添加WEB管理的用户,用户类型为”telnet”,用户名为”huawei”,密码为”admin”
[SwitchA]local-userhuawei
[SwitchA-luser-huawei]service-typetelnetlevel3
[SwitchA-luser-huawei]passwordsimpleadmin4.补充说明:如果想通过WEB方式管理交换机,必须首先将一个用于支持WEB管理的文件(可以从网站上下载相应的交换机软件版本时得到,其扩展名为”web”或者”zip”)载入交换机的flash中,该文件需要与交换机当前使用的软件版本相配套;Web登陆主机与交换机不是直连情况下需要配置默认路由;登陆的时候在IE浏览器中输入即可进入Web登陆页面。附录资料:从XML生成可与Ajax共同使用的JSON时下,非常流行使用JavaScript代码为数据驱动的Web应用程序添加互动性。若能将数据编码成JavaScriptObjectNotation(JSON)的格式,您就可以更轻松地通过JavaScript语言使用它。通过本文,发掘使用XSLTV2从XML数据生成JSON的几种不同方法。几年前,许多开发人员很看好XML、XSLT、ExtensibleHTML(XHTML)和其他一些基于标记的语言。现在,AsynchronousJavaScriptandXML(AJAX)成了新的热点,人们又将目光转向了使用JavaScript代码的数据驱动的富Internet应用程序。但是开发人员是否已经消除了XML和这一新技术之间的鸿沟呢?当然,您可以在Web客户机中使用XML解析器来读取数据,但这种做法会带来两个问题。第一,出于安全方面的原因,XML数据只能从与此页面相同的那个域中读取。这虽然不是什么大的限制因素,但它的确会引起部署方面的问题,还会阻碍DHTML小部件的创建。第二,读取和解析XML会非常慢。另一种做法是让服务器执行XML的解析工作,方法是设置服务器,使之向浏览器发送以JavaScript代码或时下流行的JavaScriptObjectNotation(JSON)编码的数据。本文将展示如下三种使用XSLTV2语言和SaxonXSLTV2处理器从XML数据生成JSON的技巧:简单编码通过函数调用加载数据编码对象JSON简介要学习如何将数据编码成JSON(它只是JavaScript的一个子集),最好的方法是从数据开始。清单1显示了书籍列表的一个示例XML数据集。清单1.基本的图形化图书馆<?xmlversion="1.0"encoding="UTF-8"?><books><bookid="1"><title>CodeGenerationinAction</title><author><first>Jack</first><last>Herrington</last></author><publisher>Manning</publisher></book><bookid="2"><title>PHPHacks</title><author><first>Jack</first><last>Herrington</last></author><publisher>O'Reilly</publisher></book><bookid="3"><title>PodcastingHacks</title><author><first>Jack</first><last>Herrington</last></author><publisher>O'Reilly</publisher></book></books>这个数据集很简单,只包含三本书,每本书都具有惟一的ID、书名、作者姓名及出版商的名字。(没错,我只选择了我自己的书作为数据集,但能怨我吗?这些书实在是不可多得的节日和生日礼物。)清单2显示了这些数据在JSON中的效果。清单2.JSON中的示例数据集[{id:1,title:'CodeGenerationinAction',first:'Jack',last:'Herrington',publisher:'Manning'},...]方括号([])表明这是一个数组。大括号({})则表明这是一个散列表,该散列表由一组名称和值对组成。在本例中,我创建了一个散列表的数组——用来存储这类结构式数据的一种常见方法。另外一点值得注意的是字符串是通过单引号或双引号被编码的。所以,如果我想用单引号编码O'Reilly,我就必须使用反斜杠对它进行转义:'O\'Reilly'。这让我编写的这个XSLT样式表更为有趣了一些。我并未在本例中放上任何日期,但您也可以通过如下两种方法来编码日期。第一种方法是将日期作为字符串,该字符串必须在后面被解析。第二种方法是将日期作为一个对象,比如:publishdate:newDate(2006,6,16,17,45,0)这段代码将publishdate的值设置为6/16/20065:45:00p.m.。简单编码接下来我将陆续介绍JSON编码的几种技巧。第一种也是其中最简单的一种,此样式表如清单3所示。清单3.simple.xsl样式表<?xmlversion="1.0"encoding="UTF-8"?><xsl:stylesheetxmlns:xsl="/1999/XSL/Transform"version="2.0"xmlns:js=""><xsl:outputmethod="text"/><xsl:functionname="js:escape"><xsl:paramname="text"/><xsl:value-ofselect='replace($text,"'","\\'")'/></xsl:function><xsl:templatematch="/">varg_books=[<xsl:for-eachselect="books/book"><xsl:iftest="position()>1">,</xsl:if>{id:<xsl:value-ofselect="@id"/>,name:'<xsl:value-ofselect="js:escape(title)"/>',first:'<xsl:value-ofselect="js:escape(author/first)"/>',last:'<xsl:value-ofselect="js:escape(author/last)"/>',publisher:'<xsl:value-ofselect="js:escape(publisher)"/>'}</xsl:for-each>];</xsl:template></xsl:stylesheet>要理解此样式表,不妨先来看一下清单4所示的输出。清单4.simple.xsl的输出varg_books=[{id:1,name:'CodeGenerationinAction',first:'Jack',last:'Herrington',publisher:'Manning'},{id:2,name:'PHPHacks',first:'Jack',last:'Herrington',publisher:'O\'Reilly'},{id:3,name:'PodcastingHacks',first:'Jack',last:'Herrington',publisher:'O\'Reilly'}];这里,我将名为g_books的变量设置为一个包含三个散列表的数组,每个散列表包含关于该书的信息。再回过头来看看清单3,您会发现第一个模板匹配"/"路径,它也是首先应用到输入数据集的模板,该模板使用for-each循环来遍历每本书。之后,它使用<value-of>标记来将文本从该数据输出到JavaScript输出代码。对于字符串,我使用名为js:escape()的定制函数,它在模板之前定义。该函数使用一个正则表达式将一个单引号标记更改为带有反斜杠的单引号标记。最后一个重要的元素是<xsl:output>标记,它告知处理器要输出的是文本而不是XML。要检验此过程是否可以正常工作,我加入了一个simple.html文件,该文件引用我在simple.js保存的XSL样式表的输出。这个HTML文件如清单5所示。清单5.simple.html文件<html><head><title>SimpleJSloader</title><scriptsrc="simple.js"></script></head><body><script>document.write("Found"+g_books.length+"books");</script></body></html>.html文件使用<script>标记简单地加载已编码了的JavaScript代码。之后,第二个<script>标记将数组的长度写出到浏览器页面,如图1所示。图1.simple.html的输出好了!数据文件包含三本书,相应的JavaScript文件也包含三本书。它真的可以工作!通过函数加载上述第一个示例很简单,而且在大多数情况下可以发挥其作用,但它存在一些问题。第一个问题是对于数据何时被加载没有任何提示。如果数据是像页面那样被静态加载的,这不成问题。但是如果页面动态创建了一个<script>标记来按需加载数据,那么就很有必要知道<script>标记是何时完成的。实现此功能的最好的方法是让编码了的数据调用一个JavaScript函数,而不是只设置数据。这个概念很重要,所以我将花一些时间来介绍一下为什么您必须要通过动态生成的<script>标记来加载数据。页面加载后,从服务器获得数据是Web2.0的核心功能。一种方法是使用AJAX机制通过到服务器的调用来加载XML。然而,出于安全性的原因,AJAX机制只限于从单一域获取数据。这在大多数情况下都没有问题,但有时,您可能需要JavaScript代码运行在他人的页面上(例如,GoogleMaps)。在这种情况下从服务器获得数据的惟一方法是通过动态加载<script>标记。获悉<script>标记何时加载的最好的方法是让<script>标记返回的脚本调用函数而不是简单地加载数据。清单6显示了在函数调用中编码的数据。清单6.Function1.jsAddBooks([{id:1,name:'CodeGenerationinAction',first:'Jack',last:'Herrington',publisher:'Manning'},{id:2,name:'PHPHacks',first:'Jack',last:'Herrington',publisher:'O\'Reilly'},{id:3,name:'PodcastingHacks',first:'Jack',last:'Herrington',publisher:'O\'Reilly'}]);清单7给出了相应的.html文件。清单7.Function1.html<html><head><title>Function1JSloader</title><script>varg_books=[];functionAddBooks(books){g_books=books;}</script><scriptsrc="function1.js"></script><scriptsrc="drawbooks.js"></script></head><body><script>drawbooks(g_books);</script></body></html>稍后将详细介绍drawbooks函数。这里重要的是了解一下页面如何定义AddBooks函数,该函数随后会由function1.js文件中的脚本调用。该AddBooks函数负责处理数据。而且被调用的AddBooks函数会向页面指示<script>标记被正确加载,并已加载完成。要创建function1.js文件,我只对样式表稍微做了一点修改,如清单8所示。清单8.function1.xsl样式表<xsl:templatematch="/">AddBooks([<xsl:for-eachselect="books/book"><xsl:iftest="position()>1">,</xsl:if>{id:<xsl:value-ofselect="@id"/>,name:'<xsl:value-ofselect="js:escape(title)"/>',first:'<xsl:value-ofselect="js:escape(author/first)"/>',last:'<xsl:value-ofselect="js:escape(author/last)"/>',publisher:'<xsl:value-ofselect="js:escape(publisher)"/>'}</xsl:for-each>]);</xsl:template>这里,我调用了一个函数,而不是简单地设置一个变量。这就是我所做的惟一更改。回到页面,我使用了drawbooks函数来构建书的表格,这样我就能够确认数据被正确编码和正确显示。此函数是在drawbooks.js内定义的,如清单9所示。清单9.Drawbooks.jsfunctiondrawbooks(books){varelTable=document.createElement('table');for(varbinbooks){varelTR=elTable.insertRow(-1);varelTD1=elTR.insertCell(-1);elTD1.appendChild(document.createTextNode(books[b].id));varelTD2=elTR.insertCell(-1);elTD2.appendChild(document.createTextNode(books[b].name));varelTD3=elTR.insertCell(-1);elTD3.appendChild(document.createTextNode(books[b].first));varelTD4=elTR.insertCell(-1);elTD4.appendChild(document.createTextNode(books[b].last));varelTD5=elTR.insertCell(-1);elTD5.appendChild(document.createTextNode(books[b].publisher));}document.body.appendChild(elTable);}这个简单函数创建了一个表格节点,然后循环访问书的列表并为每本书创建一行,为每个数据元素分配一个单元格。此页面上的代码的结果如图2所示。图2.function1.html的结果现在我就可以查看一下此页面的输出并确认来自原始.xml文件的一切均已被正确转换成JavaScript代码,且数据被发送到AddData函数并被正确添加到页面。细化函数调用技术我很喜欢函数调用这一技术,但我并不赞同将所有图书数据都放入一个块中。另一种方式是为每条记录采用一个调用,如清单10所示。清单10.Function2.jsAddBook({id:1,name:'CodeGenerationinAction',first:'Jack',last:'Herrington',publisher:'Manning'});AddBook({id:2,name:'PHPHacks',first:'Jack',last:'Herrington',publisher:'O\'Reilly'});...对.html页面只需做少许修改,如清单11所示。清单11.Function2.html...<script>varg_books=[];functionAddBook(book){g_books.push(book);}</script>...这里更改了XSLT,以使函数调用驻留在for-each循环体内。清单12显示了更新后的样式表。清单12.function2.xsl...<xsl:templatematch="/"><xsl:for-eachselect="books/book">AddBook({id:<xsl:value-ofselect="@id"/>,name:'<xsl:value-ofselect="js:escape(title)"/>',first:'<xsl:value-ofselect="js:escape(author/first)"/>',last:'<xsl:value-ofselect="js:escape(author/last)"/>',publisher:'<xsl:value-ofselect="js:escape(publisher)"/>'});</xsl:for-each></xsl:template>...对这个给定示例来说,这种更改看起来有些随意。但如果原始的XML数据集有多种数据类型,要为每种类型分配一个单独的函数调用会使XSL和页面上的JavaScript代码更为简单、更易于维护。编码对象对小的页面来讲,使用JavaScript函数没有问题。但对于大型项目,就需要使用JavaScript语言的一些面向对象特性。是的,JavaScript语言可以处理对象而且可以处理得很好。清单13显示了如何创建带有数据的对象。清单13.Object1.jsg_books.push(newBook({id:1,name:'CodeGenerationinAction',first:'Jack',last:'Herrington',publisher:'Manning'}));g_books.push(newBook({id:2,name:'PHPHacks',first:'Jack',last:'Herrington',publisher:'O\'Reilly'}));在本例中,我只简单地向名为g_books的数组添加了Book对象。JavaScript的对象创建与Java™、C#或C++编程语言的对象创建十分相似。都是一个new操作符后跟一个类名。参数放到随后的括号内。在本例中,我传入了一个带值的单一散列表,并将其分割成单独的一些参数。创建此对象的代码如清单14所示。清单14.Object1.xsl<xsl:templatematch="/"><xsl:for-eachselect="books/book">g_books.push(newBook({id:<xsl:value-ofselect="@id"/>,name:'<xsl:value-ofselect="js:escape(title)"/>',first:'<xsl:value-ofselect="js:escape(author/first)"/>',last:'<xsl:value-ofselect="js:escape(author/last)"/>',publisher:'<xsl:value-ofselect="js:escape(publisher)"/>'}));</xsl:for-each></xsl:template>此页面内最值得注意的是定义Book类的那部分代码。清单15显示了该页面。清单15.object1.html...<script>varg_books=[];functionBook(data){for(vardindata){this[d]=data[d];}}</script>...Book类的构造函数循环访问散列表的所有数据。对于每个键,会在对象上创建一个具有对象名称和数据的实例变量。不需要对drawbooks函数做任何修改,因为对象都有与原始的散列表相同的键和值。JavaScript语言并不区分访问的是散列表内的命名值还是对象上的命名值。当然,Book类应该有像set和get这样的访问程序。清单16显示了我是如何对JavaScript数据进行编码的。清单16.Object2.jsvarb1=newBook();b1.setId(1);b1.setTitle('CodeGenerationinAction');b1.setFirst('Jack');b1.setLast('Herrington');b1.setPublisher('Manning');g_books.push(b1);varb2=newBook();b2.setId(2);b2.setTitle('PHPHacks');...没错,这有些大同小异。它也是先创建一个对象,设置其值,然后将它添加到数组,等等。首先,我对样式表做了一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年咖啡连锁经营合作协议书
- 2022年北京市初三一模物理试题汇编:电功率2
- 会计资格考试试题材料题库及答案
- 2025年仪器仪表及文化、办公用机械项目项目风险识别与评估综合报告
- 2025年益阳货运从业资格证怎么考
- 2025年天津货物运输从业资格考试答题技巧
- 2025年益阳货运上岗证模拟考试0题
- 2025年丽水道路运输从业人员资格考试内容有哪些
- 消化系统疾病病人诊查 腹痛的临床表现
- 拆笔画学地理激兴趣提效率
- 激素性白内障的健康宣教
- 全册(教学设计)-苏教版劳动六年级下册
- 尺寸链的计算表格
- 2023年江苏省南京市市场监督管理局所属事业单位招聘5人(共500题含答案解析)笔试历年难、易错考点试题含答案附详解
- (全)建筑施工安全风险辨识分级管控指南
- 品管圈基本知识
- 物业项目保洁服务质量保证及安全保障措施(标书专用)参考借鉴范本
- 湘美版美术(二年级下册)课程纲要教学计划
- 防止电力生产事故的-二十五项重点要求2023版
- 氯诺昔康针剂在围术期镇痛与其它市场应用(代表培训完整版)
- 《大学生创新创业基础教程》全册配套教案
评论
0/150
提交评论