层次深入学习MAC IP ARP 以常用处理手段

1、MAC定义

MAC称为硬件地址,是网络中设备的唯一标识符,共计48 bit。 例如我的无线MAC:8C-A9-82-96-F7-66

在系统里的展现形式是由16进制组成的6组数字组合。例如开头位的8C 为 8__c 换成2进制位数为 4X2=8位, 8X6=48位。扩展内容:该地址是全球唯一的,没有重复的MAC地址,如果有重复的MAC地址出现在交换网络中,那是必定有环路,环路现象则会造成时通是不通或者根本不通。

2、局域网内PC通信(IP与MAC)

世界上有一种东西叫电脑,电脑上有LOL,CF,哈哈。IT世界是多么伟大能让你玩上一种叫游戏的东西。那么PC之间是如何通信的呢?最基础的是本身硬件的存在,其次更多是由MAC与IP来进行通信传输的。

举例:我们拥有一台交换机、2台PC、如何让这两台PC进行通信?那么很简单,PC配两个同一网段的地址

lap0: 192.168.1.1/24 lap1:192.168.1.2/24

1>拓扑 单独两台PC挂到同一交换机VLAN1

2>lap0与lap1互ping

3>lap0为什么能和lap1通信?

(1)两台lap在同一网段内 (2)在同一VLAN内 (3)PC端通过ARP协议解析到IP与MAC之间的关系。在lap0上已经过arp -a 查询到lap1 192.168.1.2 的MAC与IP映射关系,所以他们之间才能通信。那么反之lap1上也必然能学到lap0的MAC与IP地址。

3、ARP协议介绍

上面说的挺热闹,现在介绍下ARP,即普通但又非常重要的协议。ARP 英文全名为:Address resolution protocol ,地址解析协议,ARP为IP与MAC提供动态映射,过程自动完成。当PC发出通信请求时,根据协议规定,它的目的地址必然是48bit的MAC地址的。MAC并不能和IP直接去通信。那么就需我们的ARP协议来做相应的转换工作。如下摘自TCP/IP卷1仅供参考

如上在以太网内环境:

1>lap0要想和lap1进行通信,则需要把32位的IP地址转换为48位的MAC地址。

2>ARP协议属于广播网络,ARP会把自身的请求信息以广播形式广播到以网中。

3>lap1收到广播请求后,回复lap0自身的IP与MAC地址。双方都建立起对应关系

4、交换机MAC对应关系

除了上述ARP协议外,PC之间的通信是依托于2层交换机来进行通信的。另外,交换机每个端口本身都有一个MAC地址。当lap0 去ping lap1时,lap0的请求帧到达交换机后会对其进行一个记录,记录下MAC地址,再把该请求转发到lap1。这样一个来回的请求,就把MAC对应表关系建立起来了。二层交换机只记录MAC与端口对应关系,一般情况下2层交换机只是做高速交换,当然如果有特殊需求也可根据MAC做一系列的限制类、绑定类的操作。

MAC与端口对应关系:

5、网关下MAC、ARP信息

1>在接入交换机再上连一台核心,加入网关|192.168.1.254/24。

2>我们先来分析一下:

1、首先交换机之间互联,端口之间彼此学习相互之间的端口地址

2、lap0 与 lap1 ping请求包到达网关,核心交换机建立MAC地址表(动态)

3、与此同时,建立起ARP表项,因为网关是不同网段之间通信的接口

4、查看核心、核心交换机的MAC地址表。

核心学习到lap0与lap1 MAC地址,同时也学习到接入交换机的互联端口的MAC地址。接入交换机MAC地址表:MAC学习到两台PC的MAC,与此同时也学习到核心交换机板载MAC地址以及互联端口地址表。如下图:

核心交换机 show mad add

接入交换机show mac add

核心交换机show arp,含有IP列、超时时间、MAC地址、所属VLAN,这些信息对于我们排错来说特别有帮助。H3C、华为的ARP信息表与思科的其实是大同小异的,细微差别,大体内容不会差太多。

6、实践篇ARP欺骗问题处理

以太网环境,如果是DHCP获取地址那么OK,dhcp snooping会在安全上把关,不会有太多问题。如果是静太IP,则会经常遇到ARP攻击、ARP欺骗等头疼麻烦的问题。其实当我们了解了他的工作机制后,对这类问题排查起来会特别简单。

我遇到的情况比较简单,某一网段下的服务器,时通时不通。首先对网络结构进行排除,沟通后得知是服务单网卡并无网卡绑定、核心做HSRP接入双上行冗余。首先对环路进行排除、查看核心生成树状态正常、交换机CPU使用率正常、与服务器所在接入交换机互联端口广播包并无突发大流量的包,环路排除。其次在服务器下查看ARP表项,发现服务器网关ARP条目异常,MAC地址并不是网关的的MAC。

此为ARP欺骗,就是有PC中病毒,冒充网关不断的发广播包说:我是网关,你们把数据包都转发到我这里。这样就会有时断时通的情况。接下来我们就要揪出这台中毒的机器,

1>网关下show mac-add | in mac 看其从哪个互联端口过来并找到该端口下的接入交换机

2>找到该台接入交换机,继续查找具体到哪个端口 show mac-add | in mac

3>找到该台机器,断网、杀毒或者重半系统,并可以启用360的ARP防火墙,避免类似事件发生。

但最主要的还是杀毒。

4>如果遇到类似傻HUB的那种老的3COM交换机,则需要手工来排除了。

说这么多,其实就是ARP欺骗解决就是中毒机器定位。

7、总结

1>MAC定义作用

2>ARP 是MAC 与 IP 转换的一种协议

3>MAC地址在交换机下的学习

4>网关下的ARP信息及相关表项了解

5>实践篇,ARP欺骗排查

小白,该篇博客如果想理解透彻还需要多多模拟以及实践,加深理解程度,知识无非就是一个从明白到糊TU再到明白,往返几次彻底明白牢记。我们坚位基础知识非常特别非常重要的内容!!!!!!!!

大神,还请多提意见!!

时间: 2024-09-29 11:03:40

层次深入学习MAC IP ARP 以常用处理手段的相关文章

[转] 用协议分析工具学习TCP/IP

一.前言 目前,网络的速度发展非常快,学习网络的人也越来越多,稍有网络常识的人都知道TCP/IP协议是网络的基础,是Internet的语言,可以说没有TCP/IP协议就没有互联网的今天.目前号称搞网的人非常多,许多人就是从一把夹线钳,一个测线器联网开始接触网络的,如果只是联网玩玩,知道几个Ping之类的命令就行了,如果想在网络上有更多的发展不管是黑道还是红道,必须要把TCP/IP协议搞的非常明白. 学习过TCP/IP协议的人多有一种感觉,这东西太抽象了,没有什么数据实例,看完不久就忘了.本文将介

IP,ARP,RIP和BGP协议

IP,ARP,RIP和BGP协议 前言 今天还是接着学习计算机网络方面的内容,争取在开学之前先把计算机网络的内容过一遍,JAVA学过一点,但是不精通,能看懂一些简单的代码,仅此而已,大三就只有三门课,数据库,网络,JAVA,好好学,别放弃,最近腰疼的厉害,可能是那天找女朋友的原因,爬山去了,累了个半死,回来就腰疼了.唉,身体跟不上了,身体是革命的本钱,保护好自己的身体,说不定将来买苹果的时候用到了呢... 网络层是实现互联网的最重要的一层.正是网络层面上,各个局域网根据IP协议相互连接,最终构成

网络学习:交换机里的常用命令

1.显示mac地址表 show mac-address-table 显示存储在当前交换机中的MAC地址表,这里面记录了交换机目前学习到的所有主机MAC地址与交换机端口的映射关系,二层数据正是通过查找这种映射关系来进行数据传送的. 这里的的MAC地址有两种类型,一种是STATIC即静态的(交换机自身端口或硬件接口的地址), 另一种是DYNAMIC即动态的学习到的地址(所连接的终端设备的MAC地址). 应用管道符号进行筛选查询 show mac-address-table | include Mac

低层次“努力学习”和学习的本质

?什么是"低层次努力"? ?你把握住学习的本质了吗? ?你享受学习过程吗? 声明:本文部分引自 你这么努力,为何还如此焦虑? 1.什么是"低层次努力"? 低层次的努力,其实就是看起来很努力,一般是本身对某个事物没什么想法(方法),但又急于达到目标,所做的一系列费力不讨好.自欺欺人的无用功,是一种假性学习. 那什么是真正的努力呢?引用知乎回答 ------------------------------------------------------引用开始-----

CABasicAnimation学习Demo 包括了一些常用的动画效果

个人写的一些例子: // // ViewController.m // CABasicAnimationDemo // // Created by haotian on 14-6-13. // Copyright (c) 2014年 Baseus. All rights reserved. // #import "ViewController.h" @interface ViewController () @end @implementation ViewController @syn

Cocos2D学习笔记(1)- 常用的类

1.坐标系 >屏幕坐标系(UIKit):原点在左上角! >OpenGl坐标系:原点在屏幕的左下角! 2.游戏设计:Director--Scene--Layer--Sprite. >CCDirector:导演类,相当于是游戏策划,负责整个游戏的布局和运行规则的制定. >CCScene:场景类,每个场景可以是一个界面或一个关卡. >CCLayer:图层类,为了方便游戏界面的渲染管理. >CCSprite:精灵类, 小结:一个导演类(CCDirector)可以指挥多个场景类(

SecureCRT学习之道:SecureCRT常用快捷键设置与字体设置方法

常用快捷键: 全屏View->Full Screen 快捷键 Alt + Enter 菜单View 快捷键 Alt + V 打开新的终端 快捷键 Alt + B 字体设置: options->global options->general->Default session-> Edit Defalut Settings 网上有人建议用fixedsys,这个字体虽然不是最美丽的,但在终端上也是一个不错选择,大家都可以接受. 选择它,主要是因为它大小固定,在所有地方显示,效果都一

SecureCRT学习之道:SecureCRT 常用技巧

快捷键: 1. ctrl + a :  移动光标到行首 2. ctrl + e :移动光标到行尾 3. ctrl + d :删除光标之后的一个字符 4. ctrl + w : 删除行首到当前光标所在位置的所有字符 5. crtl + k : 删除当前光标到行尾的所有字符 6. alt + b : 打开快速启动栏 7. alt + 1/2/3... : 在多个不同的session标签之间切换 鼠标复制: options -> global options ->  Terminal  钩上Copy

[Shell&Mac&Environment variables]自己常用的Mac(或者说Linux)Shell命令小结,含Mac使用zsh shell的环境变量的有关配置方法

今天在使用tomcat的配置的时候,我用的mac,要是用到一些命令去配置tomcat. 问题来了: 我每次要去启动tomcat服务特别麻烦,因为我要先进入tomcat所在的文件目录,或者不进入使用~/,但是因为我把tomcat放到了一个比较“深“的文件夹里,所以命令显得又丑又长. 问题解决方案: 1.使用环境变量(修改.bashrc的方法) a.先查看自己的Mac目前正在用的是什么shell echo $SHELL 返回结果类似如下图 这里我是zsh,,也许你是bash,不过没关系,配置环境变量