[
]>
VXLAN GPE Extension for Packets Exchange Between Control and User Plane of vBNG
China Mobile32 Xuanwumen West Ave, Xicheng DistrictBeijingBeijing100053Chinahushujun@chinamobile.comChina Mobile32 Xuanwumen West Ave, Xicheng DistrictBeijingBeijing100053Chinaqinfengwei@chinamobile.comChina Mobile32 Xuanwumen West Ave, Xicheng DistrictBeijingBeijing100053Chinalizhenqiang@chinamobile.comHuawei101 Software Avenue, Yuhua DistrictNanjingJiangsu210012Chinawangzitao@huawei.comZTERTG Area
nvo3
This document briefly describes the architecture of control plane and
user plane separated vBNG and define the extension of VXLAN-GPE for
PPPoE/IPoE dialup packets exchange between control plane and user
plane.
For migration of vBNG, one way is separating the control plane(CP)
and user plane(UP) of traditional BNG. CP is deployed in centrolized
cloud DC and UP is fulfilled by high performance hardware device,
e.g. router, switch, etc. VXLAN-GPE is used to transfer PPPoE/IPoE
dialup packets between CP and UP. This document describes how to
extend VXLAN-GPE to carry necessary information of access user in
VXLAN packets.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL"
in this document are to be interpreted as described
in .
BNG: Broadband Network Gateway. It is usually the layer 3 edge node
of ISP's core network and provides users access control for broadband
service. It's also known as BRAS(Broadband Remote Access Server) or
BAS(Broadband Access Server).
The architecture of C/U separated BNG is shown as the following
figure.
+----------------------------------+
| BNG-CP |
+--+--------------+--------------+-+
| | |
Service | Control | Management|
Interface | Interface | Interface |
| | | | | |
VXLAN-GPE | CUSP | NETCONF |
| | |
+--+--------------+--------------+-+
| BNG-UPs |
+-----------------+----------------+
|
|
+--------+--------+
| Access Network |
+--------+--------+
|
+----+----+
| User |
+---------+
In this architecture, CP is responsible for user access
authentication and setting forwarding entries of UP if authentication
is successful. UP need to relay PPPoE/IPoE dialup packets between
users and CP and forward PPPoE/IPoE data packets to Internet based on
the forwarding entries set by CP. CP should do some basic
configurations on UP, e.g. user profile configuration.
There are three interfaces between CP and UP. Management interface
is used by CP to carry out basic configurations of UP through
NETCONF. Control interface is used for seting forwarding entries on
UP through OpenFlow. Service interface is used to transmitting
PPPoE/IPoE dialup packets between user plane and control plane.
VXLAN-GPE is chosen for service interface since it's a relatively
mature technology and can carry L2 packets through L3 network. For
user access authentication, CP need to know which port of UP the user
is connected to for the authentication of access location because a
specfic user is only permitted to access on specific port/location.
The necessary information include: node ID, slot ID, subcard ID, port
ID and so on. The access port information should be carried in VXLAN
packets encapsulated by UP. The next section describes how to extend
VXLAN-GPE this requirement.
In order to extend VXLAN-GPE for carrying user access port
information, a new next protocol value will be requested from IANA
based on Generic Protocol Extension for VXLAN
[I-D.ietf-nvo3-vxlan-gpe], see section IANA Considerations. The new
next protocol is called vBNG service header.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|R|R|R|F|R|R|Ver| Next Protocol | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Node ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Slot ID | Subcard ID | Port ID | Port Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: vBNG service header
Flag (8 bits): The first 8 bits are the flag field. "R" bits are
reserved bits which MUST be set to zero and ignored.
F (1 bit): The F bit is set to indicated the inner packet following
the vBNG service header SHOULD be forwarded based on the routing
table by UP instead of forwarded to users. F bit is set only in the
packets from CP to UP for some specific scenarios, e.g. DHCP relay,
L2TP.
Ver (2 bits): Version of vBNG service header. In this document the
version is 0.
Next protocol (8 bit): This field indicates the protocol immediatly
following the vBNG service header. This doocument defines two next
protocol value, 0x00 for PPPoE and 0x01 for IPoE.
Node ID (32 bit): This field indicates which UP node is processing
the user access. It COULD be one of the UP's IP addresses which MUST
be unique in all related UPs.
Slot ID (8 bit): This field indicates which slot of the indicated UP
is processing the user access. If there is no different slots on the
indicated UP this field MUST be set to 0x00.
Subcard ID (8 bit): This field indicates which subcard of the
indicated slot is processing the user access. If there is no
different subcards on the indicated slot this field MUST be set to
0x00.
Port ID (8 bit): This field indicates which port of the indicated
subcard is processing the user access.
Port Type (8 bit): This field indicates the type of the user access
port. This document defines the following types:
+-------------------+----------+
| Port Type | Value |
+-------------------+----------+
| GE | 0x01 |
+-------------------+----------+
| 10GE | 0x02 |
+-------------------+----------+
| 40GE | 0x03 |
+-------------------+----------+
| 100GE | 0x04 |
+-------------------+----------+
| LAG | 0x05 |
+-------------------+----------+
| Virtual Interface | 0x06 |
+-------------------+----------+
Figure 3: vBNG service header
One optional solution is using ifIndex to indicate the port
information.
The ifIndex of the interface MAY be included. This is the 32-bit
ifIndex assigned to the interface by the device as specified by the
Interfaces Group MIB [RFC2863].
The ifIndex can be utilized within a management domain to map to an
actual interface, but it is also valuable in public applications.
The ifIndex can be used as an opaque token to discern which interface
of UP is processing the user access. And based on this index, the
information binding with the interface of UP, such as the Slot ID,
subcard ID, Port ID, etc, can be retrieved by the CP.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|R|R|R|F|R|R|Ver| Next Protocol | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Node ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IfIndex |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4: Optional vBNG service header
IfIndex (32 bit): This field indicates which interface of UP is
processing the user access. And based on this index, the information
which binding with the interface of UP, such as the Slot ID, subcard
ID, Port ID, etc, can be retrieved by the CP.
Following the vBNG service header it's the original PPPoE/IPoE dialup
packet which SHOULD includes MAC, C-VLAN, S-VLAN, PPPoE/IPoE header,
PPPoE/IPoE payload and so on. UP SHOULD NOT modify the original
PPPoE/IPoE dialup packets when encapsulating them into VXLAN-GPE
packets or decapsulating them from VXLAN-GPE packets.
When UP receives PPPoE/IPoE dialup packets from users, it
encapsulates the original dialup packets in VXLAN-GPE with the user
access port information and sends to CP. CP decapsulates VXLAN-GPE
packets and processes PPPoE/IPoE related things, including AAA
authentication and addresses allocation. CP encapsulates the PPPoE/
IPoE response packets in VXLAN-GPE and sends to UP. UP decapsulates
VXLAN-GPE packets and sends PPPoE/IPoE response packets to users.
The following two diagrams show the PPPoE and IPoE process by UP and
CP.
|------------------->| |
| | PPPoE PADO | |
| PPPoE PADO | in VXLAN-GPE | |
||------------------->| |
| | PPPoE PADS | |
| PPPoE PADS | in VXLAN-GPE | |
||------------------->| |
| | | Access-request |
| | |----------------->|
| | | Access-accept |
| | ||<==================>| |
| | Set Forwarding | |
| | Entries on UP | |
| ||<==============>| Internet |
| | +--------------------+
Figure 5: PPPoE Process
]]>
|------------------->| |
| | | Access-request |
| | |----------------->|
| | | Access-accept |
| | ||------------------->| |
| | DHCP ACK | |
| DHCP ACK | in VXLAN-GPE | |
||<==============>| Internet |
| | +--------------------+
Figure 6: IPoE Process
]]>
This document only defines new "Next Protocol" for C/U seperated
vBNG. So, this document itself does not directly introduce more
security issues. The same security considerations as Generic
Protocol Extension for VXLAN [I-D.ietf-nvo3-vxlan-gpe].
IANA is requested to assign a new next protocol value in VXLAN-GPE
header as the following: