草庐IT

交换机的工作原理以及搭建局域网划分VLAN

Sure云小硕 2024-02-23 原文

  • 😘作者简介:一名99年运维岗位员工。
  • 👊宣言:人生就是B(birth)和D(death)之间的C(choise),做好每一个选择。
  • 🙏创作不易,动动小手给个点赞加关注吧,有什么意见评论区告诉我,一起学习。

文章目录

前言

准备阶段

1.安装包下载

网盘连接

小程序分享

软件汉化

交换机的工作原理

搭建局域网

四台主机一个局域网通信为例

1.添加主机和交换机

 2.连接线缆

 3.配置IP

 4.测试通信

划分虚拟局域网(VLAN)

点击交换机选择CLI命令行模式

进入特权模式

进入配置模式

创建局域网

 进入接口模式

 将端口加入局域网

返回到特权模式使用命令查看vlan信息

将3和4号接口使用一样的放法加入到vlan 20局域网中

 使用ping来测试隔离成功

总结


前言

        上篇文章了解了OSI以及TCP/IP结构,这篇文章将分享网络中的交换机的工作原理以及怎么搭建一个局域网,划分虚拟局域网实现主机之间的访问隔离,因为在工作中我们不可能买多个交换机来实现主机之间的访问隔离,所以需要划分VLAN虚拟局域网来实现。


准备阶段

        首先准备搭建局域网的工具,为了节省学习成本,在这里使用一个工具来做实验。

        使用Cisco Packet Tracer Student工具来搭建我们的局域网,接下来我来介绍该软件的安装以及提供给大家安装包。

1.安装包下载

网盘连接

链接:https://pan.baidu.com/s/1a4LBao2ZWgyFvCF4EckvBw?pwd=sure
提取码:sure

小程序分享

安装过程就不做演示了,和平常的软件安装一样除了安装路径选择外(安装目录要记得,等会汉化要用的,其他都默认下一步就好了。

软件汉化

        该软件的安装包是英文的,压缩包内有汉化工具,但是汉化工具只汉化部分内容,没有汉化的部分不影响我们的使用,接下来分享汉化过程。

压缩文件后

有个Chinese.ptl这个是 汉化包,复制汉化包

 将汉化包复制到安装目录下的languages文件夹里面(注意是languages文件夹里面)。

 打开软件点击Options---Preferences

 点击Chinese.ptl,然后点击Change Language切换语言,关闭重启软件即可。

准备好软件之后,开始学习今天的内容。


交换机的工作原理

  1. 交换机根据收到数据帧中的源MAC地址建立该地址同交换机端口的映射,并将其写入MAC地址表中。
  2. 交换机将数据帧中的目的MAC地址同已建立的MAC地址表进行比较,以决定由哪个端口进行转发。
  3. 如数据帧中的目的MAC地址不在MAC地址表中,则向所有端口转发。这一过程称为泛洪(flood)。
  4. 广播帧和组播帧向所有的端口转发。
  5. 学习---广播---转发---更新----过滤

  1. 学习:第一个信息过来,交换机没有这四台主机地址,首先进行学习的动作,学习发送者的地址和端口。
  2. 广播:刚学了A,交换机不知道B,C,D,进行广播,除原端口外,想所有端口扩散信息,进行寻址,如上图所示。
  3. 转发:找到指定的端口,然后学到对应的MAC地址,再一次发送的时候,会进行单播通信,单一发送信息到指定的端口。
  4. 更新:这个地址如果在300秒内没有通信,将被擦掉,如果300秒内通信了,将重新计时。
  5. 如上图所示,PCA放信息是要给PCC的,所以找到PCC的MAC地址后,交换机会学习PCC的MAC地址到MAC地址表中记录下来。

 如上图所示,当交换机记录了四台电脑的MAC地址后,就可以准确的将信息传送到对应的主机,其他主机不做任何反应。


搭建局域网

通过Cisco Packte Tracert软件,组件一个局域网,利用到上面我们准备的软件。

四台主机一个局域网通信为例

步骤如下:

  1. 添加主机和交换机
  2. 连接线缆
  3. 配置IP
  4. 测试通信
  5. 查看MAC地址表: show mac-address-table

1.添加主机和交换机

点击如下图所示,将主机或者服务器拖拽到空白区域。

在如下如所示位置拖拽交换机到空白屏幕中 。

 2.连接线缆

在如图位置选择线缆,右栏中的闪电符号是自由线缆,会自动适配设备。

 依次点击主机---交换机,主机---交换机......连接主机和交换机。刚安装的软件可能不显示接口号,可以通过点击OPtions---Preferences勾选Always Show Port Labels就可以显示接口了。

 3.配置IP

点击任一主机选择Desktop---IPconfigration配置主机IP

 只需要配合IP和掩码(掩码会自动生成),依次配置四台主机IP。

 4.测试通信

点击任一一台主机选择Desktop---CommandPrompt使用ping命令测试与其他主机的通信。

 出现以下提示则通信成功,分别测试与另外三台主机的通信。

 5.查看MAC地址表: show mac-address-table

通过点击交换机的CLI然后回车出现switch>,输入show mac-address-table命令查看MAC地址表。

 可以看到MAC表信息。在这里可以看到刚刚通信的主机的MAC地址以及连接的接口。

 到这里我们的局域网就搭建完成了。


划分虚拟局域网(VLAN)

生产环境,交换网络是互联互通的,因为人员只能的关系,需要隔离,这里我将四台主机隔离成两组。

使用刚刚搭建的局域网来进行虚拟局域网的划分。

点击交换机选择CLI命令行模式

和刚刚查看MAC地址表一样的位置,点击CLI先回车几下直到出现Switch>提示符开始输入命令,注意这里只识别英文输入法,请切换英文输入法输入命令。

进入特权模式

enable:进入特权模式

进入配置模式

config    t:进入配置模式(config)#        注意提示符的变化。

创建局域网

vlan    10:创建局域网10

vlan    20:创建局域网20

局域网的号可以是0---1024,0和1已经被占用的使用可以用的局域网号是2——1024,这里我用10和20来做示例,因为要分为两组,使用这里创建两个局域网。

 进入接口模式

int    f0/1:进入0/1接口。

int:interface

f:fastethernet

interface   fastethernet0/1  命令和int   f/0/1命令是一样的效果。

 将端口加入局域网

sw  ac   vl   10       将端口加入到vlan10

sw:switch

ac:access

vl 10:vlan 10

sw  ac   vl   10和switch  acess  vlan 10一样的效果

 接下来一次进行这三个命令,切换到其他接口将其加入到指定局域网。

这里我把2号接口和1号接口都加入到了vlan10局域网中了。

返回到特权模式使用命令查看vlan信息

在当前模式下用exit退回一直退回到特权模式(Switch#标识符是特权模式)

使用show   valn命令查看vlan信息。

在Switch(config-if)#模式下只能配置vlan不能够查看vlan。

 上图可以看到vlan 10的成员接口有Fa0/1,和Fa0/2,并且可以发现默认所有接口都是在vlan 1局域网中的,1号局域网是默认被占用的。

将3和4号接口使用一样的放法加入到vlan 20局域网中

enable           //进入特权模式

config   t           //进入配置模式

int   f0/3

sw ac vl 20    //将3号接口加入到vlan 20局域网中

int  f0/4

sw   ac   vl 20   //将4号接口加入到vlan 20局域网中

注意必须要进入配置模式才能够进入接口操作。

 使用ping来测试隔离成功

下面在1号主机分别ping另外三台主机,测试是否隔离成功。

         上图所示ping2号接口的主机成功。

         上图所示ping3号和4号接口主机超时,不能通信了,隔离成功,这就是划分局域网的好处可以隔离不同部门之间的联系,不同部门不可以互相访问主机。


总结

        通过本篇文章,了解到交换机的工作原理,学习搭建局域网,并且通过划分虚拟局域网解决在工作环境中不同部门直接主机隔离问题。


我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=ngqsqvnd8k5l

有关交换机的工作原理以及搭建局域网划分VLAN的更多相关文章

  1. ruby-on-rails - 由于 "wkhtmltopdf",PDFKIT 显然无法正常工作 - 2

    我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-

  2. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

  3. ruby - 什么是填充的 Base64 编码字符串以及如何在 ruby​​ 中生成它们? - 2

    我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%

  4. ruby - 无法让 RSpec 工作—— 'require' : cannot load such file - 2

    我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳

  5. ruby-on-rails - rspec should have_select ('cars' , :options => ['volvo' , 'saab' ] 不工作 - 2

    关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion在首页我有:汽车:VolvoSaabMercedesAudistatic_pages_spec.rb中的测试代码:it"shouldhavetherightselect"dovisithome_pathit{shouldhave_select('cars',:options=>['volvo','saab','mercedes','audi'])}end响应是rspec./spec/request

  6. ruby-on-rails - s3_direct_upload 在生产服务器中不工作 - 2

    在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo

  7. ruby - JetBrains RubyMine 3.2.4 调试器不工作 - 2

    使用Ruby1.9.2运行IDE提示说需要gemruby​​-debug-base19x并提供安装它。但是,在尝试安装它时会显示消息Failedtoinstallgems.Followinggemswerenotinstalled:C:/ProgramFiles(x86)/JetBrains/RubyMine3.2.4/rb/gems/ruby-debug-base19x-0.11.30.pre2.gem:Errorinstallingruby-debug-base19x-0.11.30.pre2.gem:The'linecache19'nativegemrequiresinstall

  8. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  9. ruby - `rescue $!` 是如何工作的? - 2

    我知道全局变量$!包含最新的异常对象,但我对下面的语法感到困惑。谁能帮助我理解以下语法?rescue$! 最佳答案 此构造可防止异常停止您的程序并使堆栈跟踪冒泡。它还会将该异常作为值返回,这很有用。a=get_me_datarescue$!在此行之后,a将保存请求的数据或异常。然后您可以分析该异常并采取相应措施。defget_me_dataraise'Nodataforyou'enda=get_me_datarescue$!puts"Executioncarrieson"pa#>>Executioncarrieson#>>#更现实的

  10. 阿里云国际版免费试用:如何注册以及注意事项 - 2

    作为新的阿里云用户,您可以50免费试用多种优惠,价值高达1,700美元(或8,500美元)。这将让您了解和体验阿里云平台上提供的一系列产品和服务。如果您以个人身份注册免费试用,您将获得价值1,700美元的优惠。但是,如果您是注册公司,您可以选择企业免费试用,提交基本信息通过企业实名注册验证,即可开始价值$8,500的免费试用!本教程介绍了如何设置您的帐户并使用您的免费试用版。​关于免费试用在我们开始此试用之前,您还必须遵守以下条款和条件才能访问您的免费试用:只有在一年内创建的账户才有资格获得阿里云免费试用。通过此免费试用优惠,用户可以免费试用免费试用活动页面上列出的每种产品一次。如果您有多个帐

随机推荐