Wireshark抓包分析交换机工作原理

实验名称

交换机工作原理

实验目的

1、熟悉Linux虚拟网络环境;

2、熟悉Linux中network namespace的基本操作;

3、熟悉Linux中虚拟以太网设备Tap和veth pair的基本操作;

4、熟悉Linux中Bridge设备的基本操作;

5、熟悉Linux中网络分析软件Wireshark的基本操作;

6、观察交换机(Bridge)的工作过程,分析并掌握交换机的工作原理;

7、观察交换机中交换表的变化,分析并掌握交换机的自学习功能和原理;

8、观察Wireshark截获的以太网数据帧,分析并理解以太网的帧格式。

实验要求

1、根据实验需要,搭建实验环境;建立或修改虚拟实验网络;

2、按照实验步骤,认真完成实验;采取截图、拍照等形式记录实验结果;

3、依据课本和课堂讲解,详细分析实验结果、验证理论知识;

4、认真完成实验报告,按时提交实验指导老师。

实验环境

1、操作系统:Linux操作系统,要求内核支持Tun模块、Vlan模块等,本实验在CentOS7操作系统中测试通过;

2、操作权限:部分操作需具有root权限;

3、应用软件:需安装命令行工具:tunctl、vconfig等;需安装编辑工具gedit或其它文本编辑工具;需安装网络分析软件Wireshark及其依赖软件;其它常用必备的应用软件;

4、实验网络拓扑:利用Linux命令或编辑执行脚本,构建虚拟实验网络拓扑如图所示:


5、搭建网络拓扑结构的脚本如下:

#!/bin/sh

#创建veth pair
ip link add tap1 type veth peer name tap1_peer
ip link add tap2 type veth peer name tap2_peer
ip link add tap3 type veth peer name tap3_peer
ip link add tap4 type veth peer name tap4_peer
#创建namespace
ip netns add ns1
ip netns add ns2
ip netns add ns3
ip netns add ns4
#把tap迁移到namespace
ip link set tap1 netns ns1
ip link set tap2 netns ns2
ip link set tap3 netns ns3
ip link set tap4 netns ns4
#创建Bridge
brctl addbr br1
#把相应tap添加到Bridge中
brctl addif br1 tap1_peer
brctl addif br1 tap2_peer
brctl addif br1 tap3_peer
brctl addif br1 tap4_peer
#配置相应tap的IP地址
ip netns exec ns1 ip addr add local 192.168.50.1/24 dev tap1
ip netns exec ns2 ip addr add local 192.168.50.2/24 dev tap2
ip netns exec ns3 ip addr add local 192.168.50.3/24 dev tap3
ip netns exec ns4 ip addr add local 192.168.50.4/24 dev tap4
#将Bridge及所有tap状态设置为up
ip link set br1 up
ip link set tap1_peer up
ip link set tap2_peer up
ip link set tap3_peer up
ip link set tap4_peer up
ip netns exec ns1 ip link set tap1 up
ip netns exec ns2 ip link set tap2 up
ip netns exec ns3 ip link set tap3 up
ip netns exec ns4 ip link set tap4 up

实验结果及分析

预备工作:

1、tun/tap模块验证

①使用modinfo tun命令验证是否安装了tun/tap模块。安装后的提示信息如下:

 

 如果没有安装tun模块,需要先安装tun模块。

②加载tun模块:首先使用 lsmod | grep tun 命令验证是否已经加载tun模块,如果没有显示信息,说明tun未加载,需要使用modprobe tun命令加载模块。

tun模块已经加载。

2、tunctl命令工具的安装

①图形界面安装

②命令行安装

首先,添加tunctl的yum源文件

[willy@localhost ~]$ vim /etc/yum.repos.d/nux-misc.repo

[nux-misc]
name=Nux Misc
baseurl=http://li.nux.ro/download/nux/misc/el7/x86_64/
enabled=0
gpgcheck=1
gpgkey=http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

然后,用 yum repolist 加载yum源,使用yum --enablerepo=nux-misc install tunctl命令安装tunctl,需要使用root权限。使用su命令切换root权限。

3、wireshark安装

Wireshark是网络封包分析软件。

图形界面安装:

yum命令安装:

搭建网络拓扑结构并验证:

1、执行脚本文件,创建网络拓扑

2、验证网桥br1、ns1、ns2、ns3、ns4的接口状态:

(1)使用brctl show命令查看br1接口状态:

(2)使用ifconfig -a命令查看ns1、ns2、ns3、ns4的接口状态,ifconfig -a命令需要在ns内执行,用ip netns exec [namespace名]完成。

① ns1接口状态:

② ns2接口状态:

③ ns3接口状态:

④ ns4接口状态:

3、ARP缓存表的管理

①在ns1中执行arp -a命令查看ARP缓存表,由于ns1没有发过arp请求,所以缓存表为空。

②在ns1中ping ns2,在查看ARP缓存表,发现ns1缓存表多了一行ip地址与MAC地址的映射记录。

同样,ns2也会记录ns1的ip地址和MAC地址的映射。

③在ns中执行arp -d ip地址删除对应的arp记录。

4、在ns中启动wireshark抓包分析软件,监听ns中的网络接口。以ns1为例:

①执行ip netns exec ns1 wireshark &命令启动wireshark。

②在wireshark图形界面启动对tap网络接口的监听。

5、使用brctl showmacs br1命令查看交换机(即网桥br1)的表目。

上面的四个端口对应tap_peer所在端口。

Wireshark抓包分析交换机工作原理

1、在ns1中ping ns2的ip地址(192.168.50.2),如图:

2、查看wireshark在各个ns中的抓包情况

① ns1抓包情况:

② ns2抓包情况:

③ ns3抓包情况:

④ ns4抓包情况:

3、观察交换机表目变化情况

①ns1 ping ns2后尽快查看交换机表目的情况,如下:

②大约过5分钟后,再查看交换机表目,发现tap1和tap2的MAC地址消失了,表示交换机支持逆学习,也支持老化时间,一段时间后,交换机会自动清除最近未使用的MAC地址映射,为新的MAC地址映射腾出空间。

4、ns1 ping ns2过程分析

(1)首先ns1封装了MAC帧数据部分,tap1将数据部分加上MAC帧的首部封装成了ARP帧,从tap1端口发出,被wireshark软件抓取。

(2)然后,数据帧通过tap1_peer端口进入交换机(网桥),交换机发现表目中没有记录tap1的MAC地址,就将tap1的MAC地址记录下来,端口为1。(记录源地址)

(3)之后,交换机表目中也没有tap2的MAC地址,就需要向所有端口广播ARP请求。所以ns3、ns4的tap3和tap4也收到了广播帧,被wireshark抓取。但是tap3、tap4并不符合目的MAC地址,广播帧被丢弃。

(4)而ns2的tap2收到广播帧后,被wireshark抓取,且发现目的MAC就是自己,即响应该请求。由于ns2也不知道tap1的MAC地址,也需要发送广播帧,被wireshark抓取。之后用过tap2_peer端口进入交换机,交换机随即记录tap2的MAC地址,端口为2。

(5)交换机收到广播帧后,查找交换表目,发现tap1的MAC地址端口为1,就从端口1转发给tap1,不再进行广播,所以tap3、tap4并不会收到该响应帧,wireshark也抓取不到响应帧。

(6)tap1收到回应的ARP请求后,给予tap2回应,双方确认后各自的ip地址和对应的MAC地址后开始通信。

5、以ns1中的ARP协议的数据包为例,分析数据包封装的内容:

①前14字节:

②后28字节:

③根据MAC帧结构,数据部分后面应该还有4字节的帧校验序列(FCS),但是wireshark在抓取包后将这4字节的FCS去掉了,所以没有显示。

 

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值