实验目的
实验介绍和内容
1、实验介绍
以太网是一种基于 CSMA/CD( Carrier Sense Multiple Access/Collision Detection)的共享通讯介质的数据网络通讯技术。当主机数目较多时会导致冲突严重、广播泛滥、性能显著下降甚至造成网络不可用等问题。通过交换机实现 LAN 互连虽然可以解决冲突严重的问题,但仍然不能隔离广播报文和提升网络质量。在这种情况下出现了 VLAN 技术,这种技术可以把一个 LAN 划分成多个逻辑的 VLAN,每个VLAN 是一个广播域,VLAN 内的主机间通信就和在一个LAN 内一样,而VLAN 间则不能直接互通,这样,广播报文就被限制在一个 VLAN 内。
本实验通过配置华为交换机设备,了解并熟悉 VLAN 技术的相关配置。
2、实验背景
某公司根据业务需求,需要对其二层网络进行VLAN 划分。 同时,VLAN 10 为特殊 VLAN,为了保证信息安全,只有某些特殊的 PC 才可以通过 VLAN 10 进行网络访问。
如实验拓扑图所示,可以在 S1 和 S2 交换机上配置基于接口划分 VLAN,把业务相同的用户连接的接口划分到同一 VLAN。同时,可以在 S2 上配置基于 MAC 地址划分VLAN,绑定特殊 PC 的 MAC 地址。
3、实验组网

实验步骤
1.实验任务配置
1.1 配置思路
1)创建 VLAN
2)配置交换机基于接口划分 VLAN
3)配置交换机基于 MAC 地址划分 VLAN
1.2 配置步骤
1)配置设备 IP 地址
| pc号 | IP地址 |
|---|---|
| pc1 | 192.168.1.1/24 |
| pc2 | 192.168.1.2/24 |
| pc3 | 192.168.1.3/24 |
| pc4 | 192.168.1.4/24 |
2)创建 VLAN
# 在交换机 S1 和 S2 上创建 VLAN 2、 3、 10
[S1]vlan batch 2 to 3 10
Info: This operation may take a few seconds. Please wait for a moment...done.
VLAN 2、 3、 10 创建成功。
vlan vlan-id命令用来创建VLAN并进入VLAN视图,如果VLAN已存在,直接进入该VLAN的视图。
vlan batch { vlan-id1 [ to vlan-id2 ] }命令用来指定批量创建VLAN。
[S2]vlan batch 2 to 3 10
3)配置基于接口划分 VLAN
# 配置交换机 S1 和 S2 连接终端的接口为 Access 接口, 并将接口划入对应的 VLAN
[S1]interface GigabitEthernet0/0/1
[S1-GigabitEthernet0/0/1]port link-type access
port link-type { access | hybrid | trunk }命令用来配置接口的链路类型。 可以配置接口的类型为Access、 Trunk或Hybrid。
[S1-GigabitEthernet0/0/1]port default vlan 2
port default vlan vlan-id命令用来配置接口的缺省VLAN并同时加入这个VLAN。
[S1-GigabitEthernet0/0/1]quit
[S1]interface GigabitEthernet0/0/2
[S1-GigabitEthernet0/0/2]port link-type access
[S1-GigabitEthernet0/0/2]port default vlan 3
[S1-GigabitEthernet0/0/2]quit
[S2]interface GigabitEthernet0/0/1
[S2-GigabitEthernet0/0/1]port link-type access
[S2-GigabitEthernet0/0/1]port default vlan 3
[S2-GigabitEthernet0/0/1]quit
# 配置交换机 S1 和 S2 的互联接口为 Trunk 接口, 并仅允许 VLAN 2、 3 通过
[S1]interface GigabitEthernet0/0/3
[S1-GigabitEthernet0/0/3]port link-type trunk
[S1-GigabitEthernet0/0/3]port trunk allow-pass vlan 2 3
port trunk allow-pass vlan命令用来配置Trunk类型接口加入的VLAN。
[S1-GigabitEthernet0/0/3]undo port trunk allow-pass vlan 1
undo port trunk allow-pass vlan命令用来删除Trunk类型接口加入的VLAN。
VLAN 1默认就在允许通过列表中, 若无实际业务用途, 出于安全考虑,一般要将它删除。
[S2]interface GigabitEthernet0/0/3
[S2-GigabitEthernet0/0/3]port link-type trunk
[S2-GigabitEthernet0/0/3]port trunk allow-pass vlan 2 3
[S2-GigabitEthernet0/0/3]undo port trunk allow-pass vlan 1
4)配置基于 MAC 地址划分 VLAN
如实验组网图所示,PC4模拟特殊业务 PC,假设该 PC 的 MAC 地址为: a008-6fe1-0c46。 希望该 PC 可以通过 S2 的 GigabitEthernet0/0/4、GigabitEthernet0/0/6 任意一个端口接入网络,并且通过 VLAN 10 进行数据传递。
# 配置交换机 S2,让 PC 的 MAC 地址与 VLAN 10 关联
基于MAC划分VLAN指将MAC地址与VLAN关联,按照报文的源MAC地址来定义VLAN成员,将指定报文添加该VLAN的Tag后发送。用户在变换物理位置时,不需要重新划分VLAN,提高了终端用户的安全性和接入的灵活性。
[S2] vlan 10
[S2-vlan10] mac-vlan mac-address a008-6fe1-0c46
mac-vlan mac-address命令用来配置MAC地址与VLAN关联。
# 配置交换机 S2 的 GigabitEthernet0/0/4、 GigabitEthernet0/0/5、 GigabitEthernet0/0/6接口为Hybrid 接口,并允许基于 MAC 地址划分的 VLAN 通过当前 Hybrid 接口。
在Access口和Trunk口上,只有基于MAC划分的VLAN和PVID相同时,才可以正常使用。所以基于MAC地址划分VLAN推荐在Hybrid口上配置, 可以接收多个VLAN不带标签通过。
[S2]interface GigabitEthernet0/0/4
[S2-GigabitEthernet0/0/4]port link-type hybrid
[S2-GigabitEthernet0/0/4]port hybrid untagged vlan 10
port hybrid untagged vlan命令用来配置Hybrid类型接口加入的VLAN,这些VLAN的帧以Untagged方式通过接口。
[S2-GigabitEthernet0/0/4]quit
[S2]interface GigabitEthernet0/0/5
[S2-GigabitEthernet0/0/5]port link-type hybrid
[S2-GigabitEthernet0/0/5]port hybrid untagged vlan 10
[S2-GigabitEthernet0/0/5]quit
[S2]interface GigabitEthernet0/0/6
[S2-GigabitEthernet0/0/6]port link-type hybrid
[S2-GigabitEthernet0/0/6]port hybrid untagged vlan 10
[S2-GigabitEthernet0/0/6]quit
# 配置交换机 S1 和 S2 的互联接口允许 VLAN 10 通过
交换机互联接口需要保证多个VLAN带标签通过,因此可以配置为Trunk接口。
[S1]interface GigabitEthernet0/0/3
[S1-GigabitEthernet0/0/3]port trunk allow-pass vlan 10
[S1-GigabitEthernet0/0/3]quit
[S2]interface GigabitEthernet0/0/3
[S2-GigabitEthernet0/0/3]port trunk allow-pass vlan 10
[S2-GigabitEthernet0/0/3]quit
# 配置交换机 S2, 使能 GE0/0/4、 GE0/0/5、 GE0/0/6接口基于 MAC 地址划分 VLAN 功能,
若想使通过接口的报文按照基于MAC地址划分的VLAN转发,必须使用使能接口的MAC VLAN功能。
[S2]interface GigabitEthernet0/0/4
[S2-GigabitEthernet0/0/1]mac-vlan enable
mac-vlan enable命令用来使能接口的MAC VLAN功能。
[S2-GigabitEthernet0/0/4]quit
[S2]interface GigabitEthernet0/0/5
[S2-GigabitEthernet0/0/5]mac-vlan enable
[S2-GigabitEthernet0/0/5]quit
[S2]interface GigabitEthernet0/0/6
[S2-GigabitEthernet0/0/6]mac-vlan enable
[S2-GigabitEthernet0/0/6]quit
5)查看配置信息
# 查看交换机的 VLAN 信息
[S1]display vlan
display vlan命令用来查看VLAN的相关信息。
display vlan verbose命令用来查看指定VLAN的详细信息,包括VLAN ID、类型、描述信息、状态、统计开关状态、包含的接口以及这些接口的加入方式等。
# 查看交换机的 MAC-VLAN 信息
[S2]display mac-vlan vlan 10
---------------------------------------------------------------------------------
MAC Address MASK VLAN Priority
---------------------------------------------------------------------------------
00e0-fc1c-47a7 ffff-ffff-ffff 10 0
Total MAC VLAN address count: 1
display mac-vlan命令用来查看基于MAC地址划分VLAN的配置信息。
1.3 结果验证
检测设备连通性,验证 VLAN 配置结果
1)在 PC2上执行 Ping 命令,使得 PC2 可以 Ping 通PC3。
2)在 PC1上执行 Ping 命令,使得 PC1与谁都无法 Ping 通。
3)在 PC4上执行 Ping 命令, 目的为 PC1, 并在 S1 和 S2 互联链路上抓包,使得 PC1无法 Ping 通PC4,但是可以抓到带 VLAN 10 标签的数据帧。
4) 在 S1 和 S2 上通过 display mac-address verbose, 查看交换机的 MAC 地址表。
我有一个在Linux服务器上运行的ruby脚本。它不使用rails或任何东西。它基本上是一个命令行ruby脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg
我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm
之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m
注意:本文主要掌握DCN自研无线产品的基本配置方法和注意事项,能够进行一般的项目实施、调试与运维AP基本配置命令AP登录用户名和密码均为:adminAP默认IP地址为:192.168.1.10AP默认情况下DHCP开启AP静态地址配置:setmanagementstatic-ip192.168.10.1AP开启/关闭DHCP功能:setmanagementdhcp-statusup/downAP设置默认网关:setstatic-ip-routegeteway192.168.10.254查看AP基本信息:getsystemgetmanagementgetmanaged-apgetrouteAP配
1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模
我是ruby的新手,正在配置IRB。我喜欢pretty-print(需要'pp'),但总是输入pp来漂亮地打印它似乎很麻烦。我想做的是默认情况下让它漂亮地打印出来,所以如果我有一个var,比如说,'myvar',然后键入myvar,它会自动调用pretty_inspect而不是常规检查。我从哪里开始?理想情况下,我将能够向我的.irbrc文件添加一个自动调用的方法。有什么想法吗?谢谢! 最佳答案 irb中默认pretty-print对象正是hirb被迫去做。Theseposts解释hirb如何将几乎所有内容转换为ascii表。虽
我想在IRB中浏览文件系统并让提示更改以反射(reflect)当前工作目录,但我不知道如何在每个命令后进行提示更新。最终,我想在日常工作中更多地使用IRB,让bash溜走。我在我的.irbrc中试过这个:require'fileutils'includeFileUtilsIRB.conf[:PROMPT][:CUSTOM]={:PROMPT_N=>"\e[1m:\e[m",:PROMPT_I=>"\e[1m#{pwd}>\e[m",:PROMPT_S=>"FOO",:PROMPT_C=>"\e[1m#{pwd}>\e[m",:RETURN=>""}IRB.conf[:PROMPT_MO
我正在使用Ruby/Mechanize编写一个“自动填写表格”应用程序。它几乎可以工作。我可以使用精彩CharlesWeb代理以查看服务器和我的Firefox浏览器之间的交换。现在我想使用Charles查看服务器和我的应用程序之间的交换。Charles在端口8888上代理。假设服务器位于https://my.host.com。.一件不起作用的事情是:@agent||=Mechanize.newdo|agent|agent.set_proxy("my.host.com",8888)end这会导致Net::HTTP::Persistent::Error:...lib/net/http/pe
如果特定语言环境中缺少翻译,如何配置i18n以使用en语言环境翻译?当前已插入翻译缺失消息。我正在使用RoR3.1。 最佳答案 找到相似的question这里是答案:#application.rb#railswillfallbacktoconfig.i18n.default_localetranslationconfig.i18n.fallbacks=true#railswillfallbacktoen,nomatterwhatissetasconfig.i18n.default_localeconfig.i18n.fallback
对于我正在编写的Rails3应用程序,我正在考虑从本地文件系统上的XML、YAML或JSON文件中读取一些配置数据。重点是:我应该把这些文件放在哪里?Rails应用程序中是否有用于存储此类内容的默认位置?附带说明一下,我的应用程序部署在Heroku上。 最佳答案 我经常做的是:如果文件是通用配置文件:我在目录/config中创建一个YAML文件,每个环境有一个上层key如果我为每个环境(大项目)创建一个文件:我为每个环境创建一个YAML并将它们存储在/config/environments/然后我在加载YAML的地方创建了一个初始化