1 交换机
1.1 基本的架构图
1.2 交换机的工作原理
以太网MAC地址 用来识别一个以太网上的某个单独的设备或一组设备 以太网帧格式 1)主机A会将一个源MAC地址为自己,目标MAC地址为主机B的数据帧发送给交换机。 2)交换机收到此数据帧后,首先将数据帧中的源MAC地址和对应的接口(接口为1) 记录到MAC地址表中。 3)然后交换机会检查自己的MAC地址表中是否有数据帧中的目的MAC地址的信息,如果有,则从MAC地址表中记录的接口发送出去,如果没有,则会将此数据帧从非接收接口的所有接口发送出去(也就是除了1接口)。 4)这时,局域网的所有主机都会收到此数据帧,但是只有主机B收到此数据帧时会响应这个广播,并回应一个数据帧,此数据帧中包括主机B的MAC地址。如果没有主机相应这个广播,则会继续向下一个交换机或路由器传播。 5)当交换机收到主机B回应的数据帧后,也会记录数据帧中的源MAC地址(也就是主机B的MAC地址),这时,再当主机A和主机B通信时,交换机根据MAC地址表中的记录,实现单播了。 总的来说: 当A要和B通信时,会发送一个数据帧(自己的MAC地址和B的MAC地址,即源地址和目的地址); A将这个数据帧发给交换机,交换机知道了A的MAC地址,并记录到MAC表中,但是交换机不知道B的MAC地址是谁; 这个时候就需要给主机B和主机C广播,主机B接收到数据之后,看到是自己的,这个时候就会给交换机一个回应; 交换机收到B的回应之后,把主机B的MAC地址记录到MAC表中,主机A和主机下次再进行通信,实现单播传播。
1.3 交换机以太网接口的工作模式
单工
- 两个数据站之间只能沿单一方向传输数据
半双工 - 两个数据站之间可以双向数据传输,但不能同时进行
全双工 - 两个数据站之间可双向且同时进行数据传输
交换机以太网接口速率
- 接口连接时进行协商 (低速率为准)
- 协商失败则无法正常通信
配置前的连接
- Console电缆
- 物理连接
计算机COM口 交换机/路由器Console口 - 软件连接
超级终端 其他软件
1.4 交换机使用命令行进行配置管理
- 用户视图:基本操作,查看基本信息
- 系统视图:进阶操作,配置静态路由,动态路由:rip,ospf,BGP
- 接口模式:配置ip地址等操作
用户视图模式切换至系统视图模式[Huawei]
<Huawei>system-view
<Huawei>sys
退回用户视图
ctrl+z
[Huawei] quit
1、历史命令查询
[Huawei] display history-command
2、配置主机名
<Huawei> system-view
[Huawei] sysname Router1
3、状态信息查询
<Huawei> display version ####查看VRP版本
<Huawei> display users ####查看用户终端信息
4、进入接口模式并查看信息
<Huawei> sys
[Huawei]int e0/0/1
[Huawei-GigabitEthernet0/0/1]dis this ####查看当前视图下的配置信息
5、配置文件管理命令
[Huawei]display saved-configuration ###查看设备保存的信息
[Huawei]display current-configuration ###查看设备当前配置的信息
<SW1>save ###保存配置
<Huawei>reset saved-configuration ###擦除存储设备中的配置文件(初始化)
<Huawei>compare configuration ###比较当前配置信息与存储设备中的保存文件是否一致
6、关闭华为的信息提示中心
[Huawei]undo info-center enable
或者
<Huawei>undo terminal monitor
7、永不超时
[Huawei]user-interface console 0
[Huawei-ui-console0]idle-timeout 0 0
8、配置双工及速率命令
<Huawei>sys
[Huawei]int g0/0/1
[SW1-Ethernet0/0/1]undo negotiation auto ###关闭自动协商
[SW1-Ethernet0/0/1]speed 100 ###调至速率100M
[SW1-Ethernet0/0/1]duplex full ###调至全双工模式, 解释:full:Full-Duplex(全双工模式) half:Half-Duplex(半双工模式)
9、保存配置
<Huawei>save
CRT一种远程连接设备 交换机在北京 工位在南京 CRT通过网络可以远程和真实交换机相连 10、设置远程登录密码
[Huawei]user-interface vty 0 4 #0是初始值,4是结束值。表示可同时打开5个会话进入交换机去配置命令
[Huawei-ui-vty0-4]authentication-mode password
[Huawei-ui-vty0-4]set authentication password simple 222
[Huawei-ui-vty0-4]user privilege level 3
[Huawei-ui-vty0-4]dis this
用SecureCRT链接eNSP ●双击打开某台设备有【视图】和【配置】,打开【配置】—窗口配置:串口号:2000 ###这个是端口号 ●打开SecureCRT 点击【链接】—【Protocol】Telnet----【Hostname】127.0.0.1----【Prot】2000 ●当前终端被打开—断开【disconnect】----会话【session options】-----强制每次一个字符模式【Force charater at atime mode】—保存【OK】 ●右击当前终端—链接【reconnect】
2 IP数据报格式
TCP/IP协议定义了一个在因特网上传输的包,称为IP数据报(IP Datagram)。这是一个与硬件无关的虚拟包,由首部和数据两部分组成,其格式如图所示。首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。首部中的源地址和目的地址都是IP协议地址
IP数据包格式(分为20字节的固定部分,表示每个ip数据包必须包含的部分,和40字节的可变长部分)
-
版本号(4bit):指IP协议版本。并且通信双方使用的版本必须一致,目前广泛使用的IP协议版本号为4(即IPv4,表示为0100(用来确定是IPv4还是IPv6) -
首部长度:IP数据包的包头长度,首部长度占4位,最常用的首部长度就是20字节(即首部长度为0101)(数据包不包括数据的长度) -
优先级与服务类型(8):该字段用于表示数据包的优先级和服务类型。通过在数据包中划分一定的优先级,用于实现 QoS(服务质量)的要求。 -
总长度(16):总长度指首部和数据之和的长度,单位为字节。总长度字段为16位,因此数据报的最大长度为2^16-1=65535字节。 -
标识符(16):该字段用于表示IP数据包的标识符。当IP对上层数据进行分片时,它将给所有的分片分配一组编号,然后将这些编号放入标识符字段中,保证分片不会被错误地重组。标识符字段用于标志一个数据包,以便接收节点可以重组被分片的数据包 -
标志:标志(flag)占3位,但目前只有2位有意义。 1)标志字段中的最低位记为MF(More Fragment)。MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个。 2)标志字段中间的一位记为DF(Don’tFragment),意思是“不能分片”。只有当DF=0时才允许分片。 -
片偏移量:片偏移占13位。片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。 这就是说,每个分片的长度一定是8字节(64位)的整数倍。 -
生命周期:生存周期占8位,生存周期字段常用的的英文缩写是TTL(Time To Live),可以防止一个数据包在网络中无限循环的转发下去,若数据报在路由器消耗的时间小于1秒,就把TTL值减1。当TTL值为0时,就丢弃这个数据报。 TTL通常是32或者64,scapy中默认是64 -
首部校验和:首部检验和占16位。这个字段只检验数据报的首部,不包括数据部分。这是因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和(一些字段,如生存时间、标志、片偏移等都可能发生变化)。不检验数据部分可减少计算的工作量。 -
协议号:协议占8位,封装的上层哪个协议,ICMP:1 TCP:6 UDP:17 -
源地址:源地址占32位。ip地址,表示发送端的IP地址 -
目标地址:目的地址占32位。目标ip地址,表示接收端的IP地址 -
可选项:选项字段根据实际情况可变长,可以和IP一起使用的选项有多个。例如,可以输入创建该数据包的时间等。在可选项之后,就是上层数据 注:根据实际情况可变长,例如创建时间等 上层数据
ping选项:
-t Ping 指定的主机,直到停止。
若要查看统计信息并继续操作,请键入 Ctrl+Break;
若要停止,请键入 Ctrl+C。
-a 将地址解析为主机名。
-n count 要发送的回显请求数。
-l size 发送缓冲区大小。
-f 在数据包中设置“不分段”标记(仅适用于 IPv4)。
-i TTL 生存时间。
-v TOS 服务类型(仅适用于 IPv4。该设置已被弃用,
对 IP 标头中的服务类型字段没有任何
影响)。
-r count 记录计数跃点的路由(仅适用于 IPv4)。
-s count 计数跃点的时间戳(仅适用于 IPv4)。
-j host-list 与主机列表一起使用的松散源路由(仅适用于 IPv4)。
-k host-list 与主机列表一起使用的严格源路由(仅适用于 IPv4)。
-w timeout 等待每次回复的超时时间(毫秒)。
-R 同样使用路由标头测试反向路由(仅适用于 IPv6)。
根据 RFC 5095,已弃用此路由标头。
如果使用此标头,某些系统可能丢弃
回显请求。
-S srcaddr 要使用的源地址。
-c compartment 路由隔离舱标识符。
-p Ping Hyper-V 网络虚拟化提供程序地址。
-4 强制使用 IPv4。
-6 强制使用 IPv6。
3 ICMP协议
Internet控制消息协议ICMP (Internet Control Message Protocol)是IP协议的辅助协议
ICMP协议用来在网络设备间传递各种差错和控制信息,对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。
- ICMP是一个“错误侦测与回馈机制"
- 通过IP数据包封装的
- 用来发送错误和控制消息
Type | Code | 描述 |
---|
0 | 0 | Echo Reply | 3 | 0 | 网络不可达 | 3 | 1 | 主机不可达 | 3 | 2 | 协议不可达 | 3 | 3 | 端口不可达 | 5 | 0 | 重定向 | 8 | 0 | Echo Request |
功能:Ping Ping是网络设备、Windows、Unix和Linux平台上的一个命令,其实是一个小巧而实用的应用程序,该应用基于ICMP协议。 Ping常用于探测到达目的节点的网络可达性。 ping命令的基本格式 ping命令的返回信息 -t参数会一直不停的执行ping(Windows系统和Linux系统对比)
- 调试故障或需进行持续连通性测试时应用
- Ctrl+C可以中断命令
-n(Windows系统和Linux系统对比)
4 ARP协议
4.1 ARP协议概念
ARP协议是地址解析协议(Address Resolution Protocol)是通过解析IP地址得到MAC地址的,是一个在网络协议包中极其重要的网络传输协议,它与网卡有着极其密切的关系。 在TCP/IP分层结构中,把ARP划分为网络层,所有ARP协议在网络层被应用,它是网络层与链路层连接的重要枢纽,每当有一个数据要发送的时候都需要在通过ARP协议将IP地址转换成MAC地址,在IP层及其以上的层次看来,他们只标识IP地址,从不跟硬件打交道
arp协议如何工作的
为了实现IP地址与MAC地址的查询与转换,ARP协议引入了ARP缓存表的概念,每台主机或路由器在维护着一个ARP缓存表(ARP table),这个表包含IP地址到MAC地址的映射关系,表中记录了<IP地址,MAC地址>对,我称之为ARP表项。他们是主机最近运行时获得关于其他主机的IP地址到MAC地址的映射,当需要发送数据的时候,主机就会根据数据报中的目标IP地址信息,然后在ARP缓存表中进行查找对应的MAC地址,最后通过网卡将数据发送出去。ARP缓存表包含一个寿命值(TTL,也称作生存时间),它将记录每个ARP表项的生存时间,生存时间到了就会从缓存表中删除。从一个表项放置到ARP缓存表中开始,一个表项通常的生存时间一般是10分钟吗,当然,这些生存时间是可以任意设置的,我们一般使用默认即可。
4.2 工作原理(结合交换机原理)
1、两台局域网主机互相通信为例讲解原理
ARP解析过程
- 当PC1想发送数据给PC2,首先在自己的本地ARP缓存表中检查主机PC2的MAC地址是否存在?
- 如果PC1缓存中没有找到响应的条目,它将询问主机PC2的MAC地址,从而将ARP请求帧广播到本地网络的所有主机。 该帧中包括源主机PC1的IP、MAC地址,本地网络中的所有主机都接收到ARP请求,并且检查是否与自己的IP地址相匹配。如果发现请求中IP地址与自己IP不匹配,则丢弃ARP请求。
- 主机PC2确定ARP请求中得IP地址与自己的IP地址匹配,则将主机PC1的地址和MAC地址添加到本地缓存表中。
- 主机PC2将包含其MAC地址的ARP回复消息直接发送回主机PC1(数据帧为单播)。
- 主机PC1收到PC2发的ARP回复消息,将PC2的IP和MAC地址添加至自己ARP缓存表中,本机缓存是有生存期的,默认ARP缓存表有效期120s。当超过该有效期后,则将重复上面过程。主机PC2的MAC地址一旦确定,主机PC1就能向主机PC2发送IP信息
精简版
ARP工作原理:
- PC1想发送数据给PC2, 会先检查自己的ARP缓存表。 只在终端设备上
- 如果发现要查找的MAC地址不在表中,就会发送一个ARP请求广播,用于发现目的地的MAC地址。
ARP请求消息中包括PC1的IP地址和MAC地址以及PC2的IP地址和目的MAC地址(此时为广播MAC地址FF-FF-FF-FF-FF-FF) - 交换机收到广播后做泛洪处理,除PC1外所有主机收到ARP请求消息,PC2以单播方式发送ARP应答, 并在自己的ARP表中缓存PC1的IP地址和MAC地址的对应关系,而其他主机则丢弃这个ARP请求消息。
- PC1在自己的ARP表中添加PC2的IP地址和MAC地址的对应关系,以单播方式与PC2通信。
4.3 ARP原理演示
需求分析
- 对等网的环境
- PC1和PC2第一次通信
实现步骤 - 使用ipconfig/all查看PC1和PC2的MAC地址
- 用“arp-a”查看ARP缓存
- 在PC1上ping PC2后,再用“arp-a”查看ARP缓存表
4.4 Windows查看ARP缓存表(静态ARP和动态ARP)
arp -a
arp -d [IP]
arp -s IP MAC
如提示ARP项添加失败,解决方案: a、用管理员模式:电脑左下角“开始”按钮右键,点击"Windows PowerShell (管理员) (A)”或者 进入C盘windows \system32文件夹找到cmd.exe, 右键“以管理员身份运行”再执行arp -s命令:
绑定arp(win10)
cmd中输入
netsh -c i i show in
netsh -c “i i” add neighbors 19 “IP” “Mac”,这里19是idx号。//绑定
netsh -c “i i” delete neighbors 19,这里19是idx号。 //解绑
netsh interface ipv4 set neighbors <接口序号> <IP> <MAC>
动态ARP表项老化:在一段时间内(默认180s)如果表项中的ARP映射关系始终没有使用,则会被删除。通过及时删除不活跃表项,从而提升ARP响应效率
4.5 华为系统中的ARP命令
[Huawei]dis mac- address ## #查看mac地址信息
[Huawei]arp static <IP> <MAC> ## #绑定ARP
[Huawei]undo arp static <IP> <MAC> ###解绑定
<Huawei>reset arp all ###清除mac地址表
4.6 ARP攻击与欺骗
ARP攻击发送的是ARP应答,但是ARP应答中的MAC地址为虚假地址,所以在其他主机想要进行通信时,会将目的MAC地址设置成此虚假MAC地址导致无法正常通信。 例如:如果希望被攻击主机无法访问互联网,就需要对网关发送或被攻击主机发送虚假的ARP应答。当网关接收到虚假的ARP应答更新ARP条目后,如果网关再发生数据给PC1时,就会发送到虚假的MAC地址导致通信故障。
举例说明,例如张三要给李四打电话,他首先要知道李四的电话号码,这时有人告诉他李四的电话号码是12345678(不存在的号码),于是张三就把电话打到12345678,这样就无法找到李四了。
ARP欺骗的原理和ARP攻击基本相同,但是效果不一样。ARP攻击最终的结果是导致网络中断,而ARP欺骗的最终结果是使得流量通过自身达到监控或控制的目的。
4.7 ARP报文(抓包分析)
重点有源ip目标ip和源mac和目标mac 目的MAC地址: 54:89:98:0F:2B:BE 源MAC地址: 54:89:98:5B:5B:8A 帧类型: 0x0806 --长度为2字节,0x0806代表为ARP packe 硬件类型:0x0001 --长度为2字节,表示网络类型;以太网取值为1 协议类型:0x0800 --长度为2字节,表示要映射的协议地址类型。取值为0x0800,表示根据IP地址来进行映射 硬件地址长度:0x06 --长度为1字节,表示硬件地址长度;取值为0x06,以太网中表示MAC地址长度为6字节 协议地址长度:0x04 --长度为1字节,表示协议地址长度;取值为0x04,以太网中表示IP地址长度为4字节 op: 0x0002 --长度为2个字节,表示ARP报文的种类;取值为1,表示请求报文;取值为2,表示ARP应答报文 发送端MAC地址: 54:89:98:5B:5B:8A (信息体的发起端) 发送端IP地址: 0A:00:00:02 (转换即为10.0.0.2) 目的端 MAC地址:54:89:98:0F:2B:BE 目的端IP地址:0A:00:00:01 (转换即为10.0.0.1)
|