交换机ARP、VLAN之间的三层通信技术学习
- 1、ARP
- 1.1、 地址解析过程
- 1.2、ARP报文格式
- 1.3、ARP表项
- 1.4、免费ARP
- 1.5、 VLAN间ARP代理
- 1.5.1、解决同网段,不同广播域内主机互通问题;
- 1.5.2、解决同网段,不同VLAN之间主机互通问题。
- 1.5.3、解决同网段,同VLAN内由于配置了端口隔离/连接到DSLAM设备,导致的同VLAN主机无法互通问题。
- 2、三层交换机实现VLAN之间的三层通信
1、ARP
ARP(Address Resolution Protocol)用于将一个IP地址映射到正确的MAC地址。
为ARP 代理:
一个物理网络的子网(Subnet)中的源主机向另一个物理网络的子网中的目的主机发ARP request,和源主机直连的网关用自己接口的MAC地址代替目的主机回ARP reply,这个过程称为ARP 代理。
1.1、 地址解析过程
在以太网内二层(指三层交换机有vlanif接口,才有IP,二层交换机没有IP,ARP不能使用)。
查询MAC地址,ARP请求报文,只有源MAC地址,目的MAC为00。
1、同一网段内
1)、在同一广播域内,所有主机处于同一网段,主机A要向主机C发送信息,主机A的ARP表中没有对应的MAC地址,主机先以广播方式发送一个ARP请求报文。ARP请求报文中的发送端IP地址和发送端MAC地址为主机A的源IP地址和源MAC地址,目标IP地址和目标MAC地址为主机C的IP地址和全0的MAC地址。
2)、ARP的请求以广播方式发出,在同一广播域内所有主机都可以接收到该请求,但只有被请求的主机C才会对该请求进行处理。
3)、收到ARP的主机C通过比较接收的目的IP地址与自己的IP地址相同,查询自己的ARP表有没有主机A的MAC地址,没有就添加主机A的MAC地址和IP地址。
4)、响应是单播方式发出,包含有自己的MAC地址。
ARP是不能穿越广播域,就是不能穿越路由器或VLAN。三层设备路由器不转发ARP广播。
地址解析协议 ARP 作用:在主机 ARP 高速缓存中存放一个从 IP 地址到硬件地址的映射表,并且这个映射表经常动态更新。每一台主机都设有一个 ARP 高速缓存(ARP Cache),里面有本局域网上的各主机和路由器的 IP 地址到硬件地址的映射表(并且每一个映射地址都设置有生存时间)。
2、不在同一网段
发送给网关的是报文,不是arp查询请求。
当主机A和主机D不在同一网段时,主机A就会先向网关(路由器)发出ARP请求, ARP请求报文中的目标IP地址为网关的IP地址。
当主机A从收到的响应报文中获得网关的 MAC地址后,将报文封装并发给网关。
如果网关没有主机D的ARP表项,网关会广播ARP请求,目标IP地址为主机D 的IP地址,当网关从收到的响应报文中获得主机D的 MAC 地址后,就可以将报文发给主机 D;
如果网关已经有主机 B 的 ARP 表项,网关直接把报文发给主机 B。
1.2、ARP报文格式
太网帧类型:为0x0806(ARP请求和ARP应答)
硬件地址的类型:以太网类型时此值为1。
协议地址的类型:此值为0x0800(对IPv4地址进行映射)。
硬件地址长度和协议地址长度:MAC地址占6字节,IP地址占4字节。
操作类型字段Operation Code:值为1,表示进行ARP请求;值为2,表示进行ARP应答;值为3,表示进行RARP请求;值为4,表示进行RARP应答。
目的以太网地址,全1时代表广播地址FF-FF-FF-FF-FF。
1.3、ARP表项
ARP 表项分为动态 ARP 表项和静态 ARP 表项。
1、动态ARP表项:
- 由ARP协议通过ARP报文自动生成和维护;
- 可以被老化;
- 可以被新的 ARP 报文更新;
- 可以被静态 ARP 表项覆盖。
当到达老化时间、接口 down 时会删除相应的动态 ARP 表项。
2、静态ARP表项
- 通过手工配置和维护;
- 不会被老化;
- 不会被动态ARP表项覆盖。
配置静态 ARP 表项可以增加通信的安全性。
静态 ARP 表项:
- 长静态 ARP 表项
- 配置长静态 ARP 表项时,除了配置 IP 地址和 MAC 地址项外,还必须配置该 ARP 表项所在 VLAN 和出接口。长静态 ARP 表项可以
直接用于报文转发
。
- 配置长静态 ARP 表项时,除了配置 IP 地址和 MAC 地址项外,还必须配置该 ARP 表项所在 VLAN 和出接口。长静态 ARP 表项可以
- 短静态 ARP 表项
- 配置短静态 ARP 表项时,只需要配置 IP 地址和 MAC 地址项。
[Switch] arp static 10.0.0.1 6832-6500-ed01 vid 10 interfacegigabitethernet 1/0/1
[Switch] arp static 10.0.0.2 6832-6500-ed02 interfacegigabitethernet 1/0/2
ARP的老化机制
参数 | 缺省配置 |
---|---|
老化超时时间 | 1200秒 |
老化探测次数 | 3 |
老化探测报文的模式 | 最后一次为广播方式,其余为单播方式发送。 |
华为老化时间是20分钟,不同设备不一样。
查看老化时间:[HuaWei]dis arp
1.4、免费ARP
免费ARP:Gratuitous ARP
- 设备主动使用自己的IP地址作为目的IP地址发送ARP请求。此种方式称免费ARP。
免费ARP有如下作用:
- IP地址冲突检测:当设备接口的协议状态变为Up时,设备主动对外发送免费ARP报文。正常情况下不会收到ARP应答,如果收到,则表明本网络中存在与自身IP地址重复的地址。如果检测到IP地址冲突,设备会周期性的广播发送免费ARP应答报文,直到冲突解除。
- 用于通告一个新的MAC地址:发送方更换了网卡,MAC地址变化了,为了能够在动态ARP表项老化前通告网络中其他设备,发送方可以发送一个免费ARP。
- 在VRRP备份组中用来通告主备发生变换:发生主备变换后,MASTER设备会广播发送一个免费ARP报文来通告发生了主备变换。
1.5、 VLAN间ARP代理
代理ARP就是通过使用一个主机,来作为指定的设备使用自己的 MAC 地址来对另一设备的ARP请求作出应答。
代理ARP的作用:
主机查询的对象不在同一个局域网内,路由器就提供了代理ARP为这个问题提供了解决方案。
主机A发送ARP请求主机D的MAC地址时,因为路由器不转发广播包的原因,ARP请求只能到达路由器。
这时路由器启用了代理ARP功能,并知道主机D属于它连接的网络,那么路由器就用自己接口的MAC地址代替主机C的MAC地址来对主机A进行ARP应答。主机A接收ARP应答,但并不知道代理ARP的存在。
Proxy ARP有以下特点:
- 所有的处理在ARP子网网关(ARP Subnet Gateways)进行,所连网络中的主机不必做任何改动;
- 在主机端看不到子网,只是一个标准IP网络;
- Proxy ARP只影响主机的ARP高速缓存,对网关的ARP高速缓存和路由表没有影响;
- 使用Proxy ARP后,主机应该减小ARP老化时间,以尽快使无效ARP项失效,减少发给路由器而路由器却不能转发的报文。主流还是使用VRRP。
Proxy ARP方式 | 作用 |
---|---|
路由Proxy ARP | 解决同一网段不同物理网络上计算机的互通问题。 |
Vlan内部Proxy ARP | 解决相同Vlan内,且Vlan配置用户隔离的网络上计算机互通问题。 |
Vlan间Proxy ARP | 解决不同Vlan之间对应计算机的三层互通问题。 |
1.5.1、解决同网段,不同广播域内主机互通问题;
配置:在路由器/交换机三层接口上配置 arp-proxy enable
[Router] interface vlanif 10
[Router-Vlanif10] ip address 10.0.0.254 255.255.255.0
[Router-Vlanif10] quit
[Router] interface vlanif 10
[Router-Vlanif10] arp-proxy inner-sub-vlan-proxy enable
[Router-Vlanif10] quit
SVI----交换虚拟接口
,交换机上针对不同的VLAN可以设置的接口(此接口为3层接口)
SVI功能:
1.充当对应VLAN之内的网关,为不同VLAN之间通信提供可能。
2.方便用户进行远程控制(telnet ssh)
SVI存在条件:
1.交换机存在属于SVI接口对应VLAN ID的活动接口
2.Trunk 链路,SVI对应VLAN id存在于trunk链路的VLAN允许列表之内
3.针对三层交换机,可以创建多个SVI–多个SVI可以同时工作,但对于二层交换机,二层交换机物理接口正常无法配置ip地址,仅存在一个svi,默认在vlan1中。
注意:二层交换机接口可以配置ip地址,出厂存在MAC地址;用于远程登录该设备;该接口默认在vlan1 中,故vlan1就被称为默认的管理vlan。
三层交换机配置IP地址:
[sw1]interface GigabitEthernet 1/0/4
[sw1-GigabitEthernet0/0/1]undo portswitch //华为默认开启,实际不用配置。
[sw1-GigabitEthernet0/0/1]ip address 192.168.1.1 24
三层交换机上配置的VLAN接口为虚接口
[sw1]interface Vlanif 10
[sw1-Vlanif2]ip address 10.0.0.254 24
[sw1]interface Vlanif 20
[sw1-Vlanif2]ip address 10.2.0.254 24
1.5.2、解决同网段,不同VLAN之间主机互通问题。
Super VLAN,也叫VLAN聚合(VLAN Aggregation)指在一个物理网络内,用多个VLAN(称为Sub-VLAN)隔离广播域,并将这些Sub-VLAN聚合成一个逻辑的VLAN(称为Super-VLAN),这些Sub-VLAN使用同一个IP子网和缺省网关,达到节约IP地址资源的目的。
注意:在实际工作应用不多。
三层交换机完美地解决了VLAN间的互通,不过还有个问题:网络中VLAN的数量如果很多,那就需要给每个VLAN配置一个SVI接口!
Super VLAN也叫VLAN聚合,是一个可以给很多VLAN当网关的SVI接口。对,它只是一个虚拟接口,除此之外和别的VLAN没有半点相同的地方:既不能做接口的PVID,Trunk接口也不允许它通过。
它唯一的作用就是:当很多设备的网关!
这三台PC之间呢?能互通吗?虽然它们在同一个网段,但还是在不同的VLAN里,和普通VLAN一样不能通!三台PC的IP地址和掩码,是不是在同一个网段?
这个ARP请求谁能听见?Super VLAN是所有Sub VLAN的网关,肯定能听见。我们给Super VLAN的SVI(交换虚拟接口)接口加个功能,让它承担起各个Sub VLAN间互通的任务。这叫本地代理ARP(Local Proxy ARP)。
配置三层交换机交换虚拟接口
[Huawei]interface Vlanif 100
[Huawei-Vlanif100]ip add 10.0.0.254 255.255.255.0
[Huawei-Vlanif100]arp-proxy inter-sub-vlan-proxy enable
1.5.3、解决同网段,同VLAN内由于配置了端口隔离/连接到DSLAM设备,导致的同VLAN主机无法互通问题。
端口隔离功能可以实现同一VLAN内端口之间的隔离,不同隔离组之间是可以互访的,只是隔离组内部是不可以相互访问的。
GROUP1 内部的成员间隔离,无法互访。但是group 1内的成员可以访问group 2和未配端口隔离的成员。
[sw1]interface Vlanif10
[sw1-Vlanif10]ip address 10.0.0.254 255.255.255.0
[sw1-Vlanif10]q
[sw1]interface GigabitEthernet0/0/1
[sw1-GigabitEthernet0/0/1]port link-type access
[sw1-GigabitEthernet0/0/1]port default vlan 10
[sw1-GigabitEthernet0/0/1]port-isolate enable group 1
#
interface GigabitEthernet0/0/2
port link-type access
port default vlan 10
port-isolate enable group 1
#
interface GigabitEthernet0/0/3
port link-type access
port default vlan 10
port-isolate enable group 1
#
interface GigabitEthernet0/0/4
port link-type trunk
port trunk allow-pass vlan 10
#
interface GigabitEthernet0/0/5
port link-type access
port default vlan 10
port-isolate enable group 2
#
interface GigabitEthernet0/0/6
port link-type access
port default vlan 10
port-isolate enable group 2
端口隔离是交换机端口之间的一种访问控制安全控制机制。
实现不同端口接入的PC之间不能互访(PC属于相同的VLAN),而所有的PC都能够通过上行的交换机访问网络。
可以配置VLAN内的用户间的相互隔离或者互通,端口隔离则是物理层次上的隔离,是基于端口。
被隔离的端口之间不能被访问。被隔离的端口和没有被隔离的端口可以互访。不同隔离组之间也可以互访。
全局模式:
[sw1]port-isolate mode all //全局使能隔离模式
接口模式:
[sw1]int g0/0/1
[sw1-GigabitEthernet0/0/1]port link-type access
[sw1-GigabitEthernet0/0/1]port default vlan 10
[sw1-GigabitEthernet0/0/1]port-isolate enable group 1 //默认是组1 group 1可以不输入
配置VLAN内Proxy ARP功能。
[sw1]interface Vlanif10
[sw1-Vlanif10]ip address 10.0.0.254 255.255.255.0
[sw1-Vlanif10]arp-proxy inner-sub-vlan-proxy enable
2、三层交换机实现VLAN之间的三层通信
实际网络部署:
- 在实际网络部署中常常会将不同的IP地址段划分为不同的Vlan。
在同Vlan并且相同的网段
的PC之间可直接进行通信,就不需要三层转发设备,这种方式被称为二层通信。- 在Vlan之间需要通过三层通信来进行互访,这时需要借助三层设备。
二层报文转发流程:
转发流程 | 描述 |
---|---|
未知单播-泛洪 | 如果找不到,就向入端口以外的其它所有端口发送; |
已知单播-转发 | 交换机在MAC地址表中查找数据帧中的目的MAC地址,如果找到,就将该数据帧发送到相应的端口; |
同端口-不转发 | 如果交换机收到的报文中源MAC地址和目的MAC地址所在的端口相同,则丢弃该报文; |
组播和广播-泛洪 | 交换机向入端口以外的其它所有端口转发广播报文。 |
Vlan间二层通讯被隔离了,不同VLAN之间的终端无法直接通讯。怎么解决?
使用三层路由设备将不同的VLAN打通。使用路由器和三层交换机都可以,不过由于路由器成本太高,路由器也没有这么多接口,实际中使用三层交换机。
带VLAN报文转发流程:
类型 | 描述 |
---|---|
转发报文 | 匹配VLAN和MAC地址,符合发送到相应的端口,不符合在VLAN内泛洪; |
防环 | 报文中源MAC地址和目的MAC地址所在的端口相同,则丢弃该报文; |
广播 | 交换机向(VLAN内)入端口以外的其它所有端口转发广播报文。 |
三层交换机的原理模型可以认为是:三层交换机 = 二层交换机+三层路由器。
在三层交换机上,可以在一个VLAN配置三层接口(cisco成为交换机虚拟接口 SVI:switch virtual interface),这个SVI接口就是上面原理模型中的那个路由模块对应的接口。它具备普通路由器接口的基本特性,比如:
- 该接口有自己的MAC地址;
- 在该SVI接口上,我们可以进行标准的三层协议的配置,包括IP地址,路由协议等等。
三层交换机内部既有MAC地址表,用以二层转发;又有IP路由表,用以三层转发。
三层交换机转发方式:
- 软件三层转发
- 查找目的IP的网段路由(最佳匹配查找,次优路径),
- 如果路由不存在,报文丢弃。
- 如果存在,查找下一跳的ARP表,如果ARP不存在,进行ARP学习。
- 学习到ARP后,进行报文转发,并将转发信息写入硬件主机路由表,以后该目的IP的报文就可以通过硬件进行三层转发了
- 硬件二层交换
- 根据报文的目的MAC(精确匹配查找),查找二层MAC转发表:
- 如果不存在该MAC条目,则在所有端口上进行泛洪处理(广播组播也会泛洪)。
- 如果存在该MAC条目,并且该条目没有Route标志,则进行标准交换转发。
- 如果该MAC条目上有
Route标记
,则进行硬件三层转发。
- 硬件三层转发
- 根据报文的目的IP地址(精确匹配查找,优选路径),查找三层主机路由表:
- 如果存在,直接转发(TTL–,目的MAC地址进行替换)
- 如果不存在,则进行标准的软件三层报文转发。
跨网段访问PC3时,PC1会将数据交给网关,所以DMAC是AR1,此时交换机发现DMAC是自己,拆开二层头部,查看三层头部的DIP进行三层转发。
三层交换机处理流程:
收到数据流多个数据包,只有第一个数据包是有三层交换机的三层引擎来处理的,处理的方式是软件方式,查找目的IP的网段路由,三层引擎获取了新的2层封装信息后,然后进入硬件转发,先硬件二层后硬件三层。
在第一个数据包转发完成后,在硬件中创建一个MLS条目。MLS是基于CEF(一种基于拓扑转发的模型)的。
Cisco Catalyst 交换机使用传统的MLS(Multilayer Switching,多层交换)体系结构或基于CEF(Cisco Express Forwarding, Cisco 快速转发)的MLS体系结构。传统的MLS是一种老式结构,而所有新型的Catalyst交换机都支持CEF多层交换。
类型 | 描述 |
---|---|
转发信息表 | 匹配VLAN和MAC地址,符合发送到相应的端口,不符合在VLAN内泛洪; |
邻接关系表(FIB) | 记录了主机MAC地址和交换机地址; |
虚接口概述
路由器的物理接口上可以配置IP地址,那么三层交换机上面是否可以?答案是可以的。
SVI----交换虚拟接口
,交换机上针对不同的VLAN可以设置的接口,充当对应VLAN之内的网关,为不同VLAN之间通信提供可能。
Vlanif转发流程:
1、PC1发送数据包给PC3,计算机网卡比较目的IP地址不在同一网段,将数据发送给网关,目的MAC为MAC10。
路由模块解析发现目的IP为172.16.2.5,不是本地接口存在的IP地址,因此需要对该报文三层转发。查找目的IP的网段路由,根据报文的目的IP地址(精确匹配查找,优选路径),查找三层主机路由表,匹配中VLANIF20产生的直连路由,直接转发。