关于MFF基本原理的相关内容,可参考2006年发布的RFC4562。
MFF( MAC-Forced Forwarding)主要用于在Ethernet上控制计划外的广播包和主机之间的通讯,也即同一子网内部但位于不同区域的主机之间的通讯。
该功能禁止位于同一IPv4子网内但位于不同客户场所的主机之间的MAC地址解析,并实际上将所有上行流量引导到IPv4网关。IPv4网关提供这些相同LAN主机之间的IP层连接。
目录
1.MFF
1.1.背景介绍
接入网:
通常情况下接入网络可以被分解为用户线路部分和汇聚网络部分。
用户线路部分:通常指最后一英里(the first mile,第一英里等其他别称),一般与每个客户场所建立单独的物理(或逻辑,在某些无线技术的情况下)连接。
汇聚网络部分:用于执行客户流量的聚合和集中。
用户线路通常指的是光纤和基站等设备或器件。
汇聚网络通常可用AR(Access Routers,接入路由器)指代,或者汇聚路由器和核心路由器等。
用户线路部分和汇聚网络部分通过接入节点AN=Access Node连接。
一个典型组网为SW—OLT—ONU—Users。
接入网解决方案必须满足如下要求:
1@:主机之间的二层隔离。
2@:IPv4地址有效分配。
也即要求在汇聚的AR(Access Routers,接入路由器)节点对不同场所的客户主机数据进行转发,在ATM(Asynchronous Transfer Mode,异步传输模式网络)这种要求可以通过DSL调制调节器和BRAS的PVC(Permanent Virtual Circure)标识来实现。而在Ethernet中难以使用该方式。
虽然可以通过VLAN 聚合(VLAN Aggregation或SVLAN)和PPPOE(PPP Over Ethernet)的方案进行解决,但是SVLAN受VLAN4096数的限制,(尽管可以多层VLAN嵌套,但会引入复杂性),而PPPoE则无法高效传递组播数据。
因此基于以上考虑,提出MFF方案。
1.2.基本方案
方案举措:
1@:EAN(Ethernet Access Node,以太网接入节点)为每个客户主机获取允许目标AR的IP和MAC地址。
2@:EAN(Ethernet Access Node,以太网接入节点)用允许的目标AR(Access Routers,接入路由器)的MAC地址回复来自客户主机的任何上游上送的ARP请求。
3@:EAN(Ethernet Access Node,以太网接入节点)丢弃客户主机上送的DMAC非目标AR(Access Routers,接入路由器)的单播流量。EAN还丢弃在用户线路上接收的所有非必要的广播和组播数据包。
1@AR地址获取:
EAN(Ethernet Access Node,以太网接入节点)的地址获取可以通过DHCP或者静态配置的方式进行设置。
EAN可以通过类似DHCP SNOOPing的类似功能,探测DHCPAck报文获取相应地址。
如果使用静态地址,则需在EAN上手动指定AR地址从而让EAN周期性探测保活该IP和MAC信息。
2@进行ARP回应:
AR(Access Routers,接入路由器)通常作为网关用于处理客户主机的上游流量。主机在跨区域同网段通信时,发出ARP。EAN(Ethernet Access Node,以太网接入节点)的拦截该请求,并以指定AR(Access Routers,接入路由器)的MAC地址(通常是默认网关)作为请求的数据链路层地址。
简单说就是进行一次ARP代答—目标设备以特定MAC代替实际MAC进行ARP应答。而ARP代理通常指以实际MAC地址进行代理应答。
3@过滤上层流量:
EAN的ARP代理将始终使用AR的MAC地址进行回复,因此请求主机永远不会了解位于其他场所的主机的MAC地址。通常也无该需求。
@为了进一步考虑用户数据的安全性,EAN必须丢弃在用户线路上接收到的DMAC非指定AR的单播帧。
@类似的,来自用户线路上的广播或组播包决不能在其他用户线路上转发,而只能在EAN上行链路上转发到聚合网络。
@并且EAN必须丢弃在用户线路上接收的所有广播数据包,EAN代替处理的ARP和有效的DHCP报文除外,并限制上行广播数据包的速率。
比如,主机发送的DHCPDISCOVER、DHCPREQUEST、DHCPDECLINE、DHCPINFORM等。
@并且EAN必须丢弃在上层聚合网络发送的广播包,但是来自AR发向用户的ARP除外。 当使用DHCP时,DHCPOFFER, DHCPACK, DHCPNAK也应当保留可被EAN转发。
1.3.其他考虑
1@:如果接入网存在服务器,则EAN对其处理原则与对AR处理原则相同。
一般不建议将服务器部署于接入网测而是放置在AR上。
2@:属于同一IPv4子网但位于不同客户驻地的客户主机之间的流量将始终通过AR转发。这通常会导致ICMP重定向消息,因此应在AR上禁用ICMP重定向。
3@:MFF是一种有状态的协议。如果在接入网络中使用静态IPv4地址分配,则必须为EAN预先提供可通过用户线路到达的客户主机以及与这些主机相关联AR的状态信息。
4@:如果EAN启用了IGMP SNOOPing功能,可以提高带宽效率。但是必须在用户线路上丢弃接收到除IGMP报文外的所有IPv4组播数据包。
5@:MFF不适用于IPv6网络。IPv6地址充足且使用ND协议,EAN可通过静态配置或通过窥探在一个或多个AR之间交换的RA消息来学习这些地址。
6@:从安全角度考虑,MFF只是为了实现2层隔离。该效果与标准以太网桥的效果完全相同。此外,实现MAC强制转发的EAN必须跟踪在用户线路上分配的IPv4地址以便有效识别伪造消息。
1.4.配置介绍
[HUAWEI] mac-forced-forwarding enable
[HUAWEI] vlan 100
[HUAWEI-vlan100] mac-forced-forwarding enable
//使能MFF功能。
MFF的实现机制是ARP代答,而出口ARP检测功能的实现机制是转发ARP请求报文。并且MFF和Super-VLAN、VLANIF互斥。
[HUAWEI-GigabitEthernet1/0/1] mac-forced-forwarding network-port
//上行连接网关和其他网络设备的接口需要被配置为网络接口。缺省情况下,接口为用户接口。
[HUAWEI-vlan10] mac-forced-forwarding static-gateway 10.1.1.10
//VLAN下需要维护一个静态网关地址来为这些用户服务。如果在已配置静态网关的情况下试图改变静态网关的IP地址,会导致接入用户无法访问网络。这是由于用户ARP表中对应的MAC地址属于原网关地址,如果未刷新则无法对外通信。
[HUAWEI-vlan10] mac-forced-forwarding gateway-detect [ interval interval-time]
//MFF设备每隔interval-time秒[默认30s]使用某一个用户的信息构造ARP请求报文发向网络端,再从网关的ARP应答中获取网关的MAC地址。如果MAC地址发生变化,MFF设备将立即更新网关信息,同时广播免费ARP报文到用户端,用于及时刷新用户的网关地址映射关系。
[HUAWEI-vlan10] mac-forced-forwarding arp-trigger
//主机迁移探测机制,在主机迁移后EAN接收到用户的ARP等终端信息。设备从用户侧第一次收到ARP报文后均会向所有网络侧端口广播该ARP报文。刷新相应表项。
[HUAWEI-vlan10] mac-forced-forwarding user-detect transparent
//配置网关探测用户状态的ARP报文透传功能,使MFF设备透传网关发给用户的ARP请求报文,不再进行ARP代答。如果网关收不到用户发出的ARP应答报文,则可以判断该用户已下线,从而达到时刻关注用户在线状态并准确计费的目的。