RFC 4381
Analysis of the Security of BGP/MPLS IP Virtual Private Networks (VPNs)
RFC 4381 π Analysis of the Security of BGP/MPLS IP Virtual Private Networks (VPNs) π
okay so this RFC is from February 2006 and it's written by M. Behringer from Cisco Systems Inc π It's filed in the Network Working Group stream as Informational (so it's just giving info, not a standard, no cap). The title block doesn't list anything it obsoletes or updates, so it's standing on its own β¨
Status of This Memo πΈ
This memo gives information to the Internet community. It is not a standard of any kind, and it doesn't specify one. Distribution of this memo is unlimited π¦
Copyright Notice π
Copyright (C) The Internet Society (2006). π«Ά
IESG Note π
okay this part is lowkey important bestie. This RFC was at one point looked at by the IETF, so it might look like current IETF work or something that's already been published. It is NOT a candidate for any level of Internet Standard π The IETF doesn't vouch for whether it's fit for any purpose, and it especially doesn't say it was reviewed for things like security, congestion control, or messing up with protocols that are already deployed. The RFC Editor picked to publish it at their discretion, so readers should be careful about how much they trust it before implementing or deploying anything. See RFC 3932 for more info π
Abstract β¨
this doc breaks down how secure the BGP/MPLS IP VPN architecture is, the one described in RFC 4364, for both service providers and VPN users π§
and the verdict is giving: BGP/MPLS IP VPN networks can be just as secure as the traditional layer-2 VPN services that use Asynchronous Transfer Mode (ATM) or Frame Relay. literally iconic π₯
Table of Contents π
1. Scope and Introduction ..........................................3
2. Security Requirements of VPN Networks ...........................4
2.1. Address Space, Routing, and Traffic Separation .............4
2.2. Hiding the Core Infrastructure .............................5
2.3. Resistance to Attacks ......................................5
2.4. Impossibility of Label Spoofing ............................6
3. Analysis of BGP/MPLS IP VPN Security ............................6
3.1. Address Space, Routing, and Traffic Separation .............6
3.2. Hiding of the BGP/MPLS IP VPN Core Infrastructure ..........7
3.3. Resistance to Attacks ......................................9
3.4. Label Spoofing ............................................11
3.5. Comparison with ATM/FR VPNs ...............................12
4. Security of Advanced BGP/MPLS IP VPN Architectures .............12
4.1. Carriers' Carrier .........................................13
4.2. Inter-Provider Backbones ..................................14
5. What BGP/MPLS IP VPNs Do Not Provide ...........................16
5.1. Protection against Misconfigurations of the Core
and Attacks 'within' the Core .............................16
5.2. Data Encryption, Integrity, and Origin Authentication .....17
5.3. Customer Network Security .................................17
6. Layer 2 Security Considerations ................................18
7. Summary and Conclusions ........................................19
8. Security Considerations ........................................20
9. Acknowledgements ...............................................20
10. Normative References ..........................................20
11. Informative References ........................................20
1. Scope and Introduction β¨
so MPLS is getting way more popular for delivering IP VPN services, which means the security of the BGP/MPLS IP VPN architecture is a bigger deal for service providers and VPN customers every day π This doc gives an overview of that security, as described in RFC 4364 [1], and compares it to the security of traditional layer-2 services like ATM or Frame Relay π¦
here's the term we're using: the "MPLS core" is the set of Provider Edge (PE) and provider (P) routers that deliver a BGP/MPLS IP VPN service, usually run by one single service provider (SP) π This doc assumes the MPLS core network is trusted and secure. So it does NOT cover basic stuff like locking down network elements against unauthorised access, misconfigurations of the core, or attacks coming from inside the core π A customer who doesn't trust the service provider's network has to add extra security on top, like IPsec running over the MPLS infrastructure π₯
this doc only looks at the security features of BGP/MPLS IP VPNs. It is not about routing protocol security in general, and IPsec isn't covered either, except to point out how combining MPLS VPNs with IPsec works π
a system's overall security has three parts: the architecture, the implementation, and the operation. Security problems can show up in any of them. This doc only analyses the architectural security of BGP/MPLS IP VPNs, not implementation or operational issues π«Ά
the target audience is technical staff at service providers and enterprises. You need to already know the basic BGP/MPLS IP VPN architecture from RFC 4364 [1] to get through this. For specific Layer 3 VPN terminology and reference models, check out [11] π§
quick map of the rest: Section 2 lists the typical VPN requirements a VPN user might have, and Section 3 analyses how RFC 4364 [1] handles those requirements. Section 4 covers specific security issues in multi-AS (Autonomous System) MPLS architectures, and Section 5 lists security features this architecture does NOT cover, so they have to be handled separately. Section 6 points out potential layer 2 security issues that could affect the overall security of a BGP/MPLS IP VPN service. Section 7 wraps up the findings π
2. Security Requirements of VPN Networks π
both service providers offering any kind of VPN service and the customers using them have specific security demands π Mostly they compare MPLS-based solutions with the traditional layer 2 VPN solutions like Frame Relay and ATM, since those are widely deployed and trusted. This section lays out the typical security requirements for VPN networks. The next section looks at whether and how BGP/MPLS IP VPNs meet these requirements, for both the MPLS core and the connected VPNs π
2.1. Address Space, Routing, and Traffic Separation πΈ
non-intersecting layer 3 VPNs of the same VPN service are assumed to have independent address spaces. For example, two non-intersecting VPNs can each use the same 10/8 network addresses with no conflict π¦ Also, traffic from one VPN must never get into another VPN. That means routing protocol information has to be separated too, so routing tables must also be separate for each VPN β¨ Specifically:
- Any VPN must be able to use the same address space as any other VPN.
- Any VPN must be able to use the same address space as the MPLS core.
- Traffic, including routing traffic, from one VPN must never flow to another VPN.
- Routing information, as well as distribution and processing of that information, for one VPN instance must be independent from any other VPN instance.
- Routing information, as well as distribution and processing of that information, for one VPN instance must be independent from the core.
from a security point of view, the core requirement is to stop packets aimed at a host a.b.c.d inside a given VPN from reaching a host with that same address in another VPN or in the core. It's also about stopping routing packets from reaching another VPN, even if that VPN doesn't have the destination address π«Ά
Confidentiality, as defined in the L3VPN Security Framework [11], goes beyond just isolating VPNs. It protects against eavesdropping on any transmission medium, and encryption is the tool used to get it π This doc treats confidentiality as an optional VPN requirement, since lots of existing VPN deployments don't encrypt transit traffic π
2.2. Hiding the Core Infrastructure π§
the internal structure of the core network (the MPLS PE and P elements) should not be visible from the outside. Breaking this isn't a security problem by itself, but lots of service providers think it's a plus if internal addresses and network structure stay hidden from the outside world π The argument is that denial-of-service (DoS) attacks on a core router are way easier to pull off if the attacker knows the router addresses. Addresses can always be guessed, but attacks are harder when the addresses aren't known π The core should be as invisible to the outside world as a comparable layer 2 infrastructure (for example, Frame Relay or ATM). Core network elements also should not be reachable from inside a VPN π
security should never rely entirely on obscurity, meaning hiding information. Services should stay equally secure even if the implementation is public knowledge π However, there's a strong market perception that hiding details is helpful, and this section is here to address that perception π
2.3. Resistance to Attacks β
there are two basic kinds of attacks: DoS attacks, where resources become unavailable to authorised users, and intrusions, where resources become available to unauthorised users π₯ BGP/MPLS IP VPN networks must provide at least the same level of protection against both forms of attack as current layer 2 networks do.
for intrusions, there are two basic ways to protect the network. First, harden the protocols that could be abused (for example, Telnet into a router). Second, make the network as inaccessible as possible. That's done with a mix of packet filtering or firewalling and address hiding, which we talked about above π¦
DoS attacks are easier to pull off, since one known IP address might be enough info to attack a machine. This can be done with normal "permitted" traffic just by sending higher-than-normal packet rates, so other users can't reach the targeted machine π The only way to be totally invulnerable to this kind of attack is to make sure machines aren't reachable at all, again with packet filtering and optionally with address hiding π«Ά
this doc focuses on protecting the core network from attacks from the "outside", meaning the Internet and connected VPNs. Protection against attacks from the "inside", meaning an attacker with logical or physical access to the core network, is not discussed here π
2.4. Impossibility of Label Spoofing β¨
Okay so, assuming the address and traffic separation we just covered π¦, an attacker might try to get into other VPNs by slipping in packets with a label they don't "own" π. This could come from the outside, like another Customer Edge (CE) router or straight from the Internet, or from inside the MPLS core. The core case isn't getting a deep dive here π , because we're assuming the core network is provided securely. If you do need protection against an insecure core, you'd need security protocols like IPsec running across the MPLS infrastructure, at least from CE to CE, since the PEs belong to the core π.
Depending on how CE routers connect to PE routers, it might be possible to sneak into a VPN that's on the same PE using layer 2 attack mechanisms, like 802.1Q-label spoofing or ATM VPI/VCI spoofing π. Layer 2 security gets its own discussion in section 6 π.
It is required that VPNs cannot abuse the MPLS label mechanisms or protocols to gain unauthorised access to other VPNs or the core π«π₯.
3. Analysis of BGP/MPLS IP VPN Security π
In this section we're checking how the BGP/MPLS IP VPN architecture holds up against the security requirements from above π.
3.1. Address Space, Routing, and Traffic Separation πΈ
BGP/MPLS lets distinct IP VPNs use the same address space, and that space can even be private address space (RFC 1918 [2]) π§©. The trick is adding a 64-bit Route Distinguisher (RD) to each IPv4 route, so VPN-unique addresses also end up unique in the MPLS core π. That "extended" address is also called a "VPN-IPv4 address". So customers don't need to change their current addressing plan, which is iconic β¨.
Each PE router keeps a separate Virtual Routing and Forwarding instance (VRF) for every connected VPN ποΈ. A VRF includes the addresses of that VPN, plus the addresses of the PE routers the CE routers are peering with. All addresses in a VRF, including those PE addresses, logically belong to the VPN and are accessible from the VPN. Having PE addresses reachable by the VPN isn't an issue if static routing is used between PE and CE, because packet filters can block access to all the VRF's addresses on the PE router π‘οΈ. If dynamic routing protocols are used, the CE routers need the peer PE router's address in the core configured. In an environment where the service provider manages the CE routers as CPE, this can be invisible to the customer π. The address space on the CE-PE link (including the peering PE address) is considered part of the VPN address space. Since address space can overlap between VPNs, CE-PE link addresses can overlap too. For practical management reasons, SPs typically address CE-PE links from a global pool, which keeps them unique across the core π.
Routing separation between VPNs can also be achieved π€οΈ. Each VRF is populated with routes from one VPN, either through statically configured routes or through routing protocols running between the PE and CE router. Since each VPN is tied to its own VRF, there is no interference between VPNs on the PE router π ββοΈ.
Across the core to the other PE routers, separation is maintained with unique VPN identifiers in multiprotocol BGP: the Route Distinguishers (RDs) π·οΈ. VPN routes, including the RD, are exclusively exchanged between PE routers by Multi-Protocol BGP (MP-BGP, RFC 2858 [8]) across the core π. These BGP routing updates are not re-distributed into the core, only to the other PE routers, where the information is stored again in VPN-specific VRFs. So routing across a BGP/MPLS network is separate per VPN π.
On the data plane, traffic separation is achieved by the ingress PE prepending a VPN-specific label to the packets π·οΈ. The packets carrying the VPN labels are sent through the core to the egress PE, where the VPN label is used to select the egress VRF π―.
Given the addressing, routing, and traffic separation across a BGP/MPLS IP VPN core network, it can be assumed that this architecture offers the same security as a layer-2 VPN in this respect π. It is not possible to intrude from a VPN or the core into another VPN unless this has been explicitly configured π«.
If and when confidentiality is required, it can be achieved in BGP/MPLS IP VPNs by overlaying encryption services over the network π. However, encryption is not a standard service on BGP/MPLS IP VPNs. See also section 5.2 π«Ά.
3.2. Hiding of the BGP/MPLS IP VPN Core Infrastructure π₯·
Service providers and end-customers don't normally want their network topology revealed to the outside π. This makes attacks more difficult to pull off: if an attacker doesn't know a victim's address, they can only guess the IP addresses to attack. Since most DoS attacks don't provide direct feedback to the attacker, attacking the network would be difficult. It has to be mentioned specifically that information hiding as such does not provide security π¨. However, in the market this is a perceived requirement π .
With a known IP address, a potential attacker can launch a DoS attack more easily against that device π¬. So the ideal is to not reveal any information about the internal network to the outside world π€. This applies to the customer network and the core. A number of additional security measures also have to be taken: most of all, extensive packet filtering π§±.
For security reasons, it is recommended for any core network to filter packets from the "outside" (Internet or connected VPNs) destined to the core infrastructure π. This makes it very hard to attack the core, although some functionality, such as pinging core routers, will be lost π. Traceroute across the core will still work, since it addresses a destination outside the core πΊοΈ.
MPLS does not reveal unnecessary information to the outside, not even to customer VPNs π€«. The addressing of the core can be done with private addresses (RFC 1918 [2]) or public addresses. Since the interface to the VPNs as well as the Internet is BGP, there is no need to reveal any internal information. The only information required in the case of a routing protocol between PE and CE is the address of the PE router. If no dynamic routing is required, static routing on unnumbered interfaces can be configured between the PE and CE. With this measure, the BGP/MPLS IP VPN core can be kept completely hidden π«₯.
Customer VPNs must advertise their routes to the BGP/MPLS IP VPN core (dynamically or statically) to ensure reachability across their VPN π£. In some cases, VPN users prefer that the service provider have no visibility of the addressing plan of the VPN π. A few things to note: first, the information known to the core is not about specific hosts, but networks (routes), which offers a degree of abstraction π§ . Second, in a VPN-only BGP/MPLS IP VPN network (no Internet access), this is equal to existing layer-2 models, where the customer has to trust the service provider π€. Also, in a Frame Relay or ATM network, routing and addressing information about the VPNs can be seen on the core network π‘.
In a VPN service with shared Internet access, the service provider will typically announce the routes of customers who wish to use the Internet to its upstream or peer providers π’. This can be done directly if the VPN customer uses public address space, or via Network Address Translation (NAT) to obscure the addressing information of the customers' networks π. In either case, the customer does not reveal more information than would be revealed by a general Internet service. Core information will not be revealed, except for the peering address(es) of the PE router(s) that hold(s) the peering with the Internet. These addresses must be secured as in a traditional IP backbone π.
In summary, in a pure MPLS-VPN service, where no Internet access is provided, information hiding is as good as on a comparable FR or ATM network π―. No addressing information is revealed to third parties or the Internet. If a customer chooses to access the Internet via the BGP/MPLS IP VPN core, they will have to reveal the same information as required for a normal Internet service. NAT can be used for further obscurity. Being reachable from the Internet automatically exposes a customer network to additional security threats. Appropriate security mechanisms have to be deployed, such as firewalls and intrusion detection systems π¨. This is true for any Internet access, over MPLS or direct π.
A BGP/MPLS IP VPN network with no interconnections to the Internet has security equal to that of FR or ATM VPN networks π¦. With Internet access from the MPLS cloud, the service provider has to reveal at least one IP address (of the peering PE router) to the next provider, and thus to the outside world π©οΈ.
3.3. Resistance to Attacks β¨
okay bestie, so section 3.1 already proved you can't just barge into other VPNs π ββοΈ. the next idea an attacker might have is to go after the MPLS core and try to hit other VPNs from inside there π. but as we saw, you can't address a P router directly π . the only addresses a VPN or the Internet can reach are the peering addresses of the PE routers π. so there are really two ways the BGP/MPLS IP VPN core could get attacked:
- by attacking the PE routers directly π₯
- by attacking the MPLS signaling mechanisms (mostly routing) π§
to attack anything in a BGP/MPLS IP VPN network, you first need to know its address π΅οΈββοΈ. like we talked about in section 3.2, the core's addressing is hidden from the outside world π. so an attacker can't know the IP address of any core router to target. they could try guessing addresses and sending packets to them π―, but because of MPLS address separation, every incoming packet gets treated as belonging to the customer's address space π§. so it's literally impossible to reach an internal router, even by guessing IPs π€. there's only one exception: the peer interface of the PE router πΈ. that PE address is the only attack point from the outside (a VPN or the Internet) π¦.
routing between a VPN and the BGP/MPLS IP VPN core can be configured in two ways:
- Static π§: the PE routers get static routes to the networks behind each CE, and the CEs statically point to the PE for any network in other parts of the VPN (usually a default route) π. there are two sub-cases here: the static route can point at the PE's IP address, or at an interface on the CE router (like serial0) π.
- Dynamic π: a routing protocol (like RIP, OSPF, or BGP) swaps routing info between the CE and PE at each peering point π«Ά.
with a static route pointing at an interface, the CE doesn't need to know any IP addresses of the core or even the PE router π. yes, it means more (static) configuration to manage, but it's the most secure option, no cap π₯. in this setup you can also put packet filters on the PE interface to deny any packet aimed at the PE interface π‘οΈ. that protects the router and the whole core from attack π.
in every other case, each CE router needs to know at least the router ID (RID, i.e., the PE's peer IP address) of the PE router in the core π«£. that makes it a potential destination for an attack π¬. people could imagine all kinds of attacks on the services running on a router π. in practice though, you can limit access to the PE router over the CE-PE interface to just the required routing protocol using access control lists (ACLs) π§±. that narrows the point of attack down to one routing protocol, like BGP π―. a potential attack could be sending a huge number of routes or flooding the PE router with routing updates π. both could lead to a DoS, but neither leads to unauthorised access π ββοΈ.
to lower that risk, you need to configure the routing protocol on the PE router to run as securely as possible π. here's how:
- by accepting only routing protocol packets, and only from the CE router π¬. the inbound ACL on each CE interface of the PE router should allow only routing protocol packets going from the CE to the PE π¦.
- by configuring MD5 authentication for routing protocols π. it's available for BGP (RFC 2385 [6]), OSPF (RFC 2154 [4]), and RIP2 (RFC 2082 [3]), for example π. this stops packets being spoofed from other parts of the customer network besides the CE router π ββοΈ. it means the service provider and customer have to agree on a shared secret between all CE and PE routers π€. this has to be done for all VPN customers π. doing it only for the customer with the highest security requirements is NOT enough π.
- by tuning the routing protocol parameters to lock down this communication even more π. for example, the rate of routing updates should be restricted where possible (in BGP, through damping) β±οΈ. a maximum number of routes accepted per VRF and per routing neighbour should be configured where possible π. and the Generalized TTL Security Mechanism (GTSM; RFC 3682 [10]) should be used for all supported protocols π§.
so to sum it all up: you can't intrude from one VPN into other VPNs, or into the core π. but it's theoretically possible to attack the routing protocol port and run a DoS attack against the PE router π΅. that could hurt other VPNs on the same PE router too π. which is why PE routers must be extremely well secured, especially on their interfaces to CE routers π°. ACLs must be configured so access is limited to the routing protocol's port(s), and only from the CE router π§. on top of that, routing protocol security mechanisms like MD5 authentication, maximum prefix limits, and Time to Live (TTL) security mechanisms should be used on all PE-CE peerings π . with all of these measures in place, the only possible attack left is a DoS attack against the routing protocol itself π₯². BGP has a bunch of countermeasures built in, like prefix filtering and damping, to help with stability π§Έ. and it's also easy to track down the source of a potential DoS like that π΅οΈββοΈ. without dynamic routing between CEs and PEs, the security is equivalent to that of ATM or Frame Relay networks π¦.
3.4. Label Spoofing π
okay so this is basically IP spoofing's cousin π―ββοΈ. in IP spoofing, an attacker fakes the source IP address of a packet. with MPLS, it's theoretically possible to spoof the label of an MPLS packet too π«’. back in the first section we assumed the core network is trusted. if that assumption can't be made, IPsec must be run over the MPLS cloud π. so in this section we focus on whether an outside attacker can insert packets with spoofed labels into the MPLS network, i.e., from a VPN (through the CE router) or from the Internet π΅οΈββοΈ.
the interface between a CE router and its peering PE router is an IP interface, meaning no labels π§. the CE router has no idea the MPLS core exists and thinks it's just sending IP packets to another router π€·ββοΈ. all the "intelligence" lives in the PE device, which picks the label based on configuration and prepends it to the packet π§ . this is true for all PE routers, whether they face CE routers or the upstream service provider π. every interface into the MPLS cloud only needs IP packets, without labels π.
for security reasons, a PE router should NEVER accept a labelled packet from a CE router π ββοΈ. RFC 3031 [9] says it plainly: "Therefore, when a labeled packet is received with an invalid incoming label, it MUST be discarded, UNLESS it is determined by some means (not within the scope of the current document) that forwarding it unlabeled cannot cause any harm." π accepting labels on the CE interface could let packets sneak into other VPNs, so the RFC doesn't allow it π«.
so yes, it's impossible for an outside attacker to send labelled packets into the BGP/MPLS IP VPN core π.
there's still the possibility of spoofing the IP address of a packet being sent to the MPLS core π. but since there's strict address separation inside the PE router, and each VPN has its own VRF, this can only harm the VPN the spoofed packet came from π«£. so a VPN customer can only attack themselves π . MPLS doesn't add any extra security risk here π§.
the Inter-AS and Carrier's Carrier cases are special, since packets with labels are typically exchanged on the interfaces between providers π¦. see section 4 for an analysis of those architectures π.
3.5. Comparison with ATM/FR VPNs π₯
ATM and FR VPN services have a seriously high reputation for security π. ATM and FR VPNs can be provided securely, but it has been reported that these technologies can also have security vulnerabilities [14] π¬. in ATM/FR, as in any networking technology, security depends on the network being configured securely, and errors can also lead to security problems π.
4. Security of Advanced BGP/MPLS IP VPN Architectures πΈ
okay so the BGP/MPLS IP VPN architecture described in RFC 2547 [7] defines the PE-CE interface as the only external interface seen from the service provider network π. in this setup, the PE treats the CE as untrusted and only accepts IP packets from the CE π‘οΈ. the IP address range is treated as belonging to the CE's VPN, so the PE keeps full control over VPN separation π.
RFC 4364 [1] later defined a more complex architecture with more open interfaces π¦. these interfaces allow exchanging label information and labelled packets to and from devices outside the service provider's control π³. this section talks about the security implications of this advanced architecture π.
4.1. Carriers' Carrier π
in the Carriers' Carrier (CsC) architecture, the CE is linked to a VRF on the PE π. the CE may send labelled packets to the PE π¦. the label was previously assigned by the PE to the CE, and represents the label switched path (LSP) from this CE to the remote CE through the carrier's network π€οΈ.
RFC 4364 [1] specifies for this case: "When the PE receives a labeled packet from a CE, it must verify that the top label is one that was distributed to that CE." π this means the CE can only use labels the PE correctly associates with the corresponding VPN π. packets with incorrect labels get discarded, so label spoofing is impossible π ββοΈ.
the use of label maps on the PE leaves control of the label information entirely with the PE, so it has no impact on the security of the solution π§ .
the packet underneath the top label will, as in standard RFC 2547 [7] networks, stay local to the customer carrier's VPN and won't be inspected in the carriers' carrier core π. any potential spoofing of subsequent labels or IP addresses stays local to the carrier's VPN π‘. it has no implication on the carriers' carrier core or on other VPNs in that core β¨. this is specifically stated in section 6 of RFC 4364 [1] π.
note that if the PE and CE are connected using a shared layer 2 infrastructure, like a switch, attacks are possible on layer 2 β οΈ. that could let a third party on the shared layer 2 network intrude into a VPN on that PE router π±. so RFC 4364 [1] specifies that either all devices on a shared layer 2 network have to be part of the same VPN, or the layer 2 network must be split logically to avoid this issue π§©. this will be discussed in more detail in section 6 π.
in the CsC architecture, the customer carrier needs to trust the carriers' carrier for correct configuration and operation π«Ά. so the carrier's customer implicitly needs to trust both their carrier and the carriers' carrier π₯Ή.
in summary, a correctly configured carriers' carrier network gives the same level of security as comparable layer 2 networks or traditional RFC 2547 [7] networks π.
4.2. Inter-Provider Backbones β¨
okay bestie, so RFC 4364 [1] lays out three sub-cases for the inter-provider backbone (Inter-AS) situation π«Ά
a) VRF-to-VRF connections at the autonomous system border routers (ASBRs). π
So in this one, each PE sees the other PE as a CE π Neither one accepts labeled packets, and there's no signaling between the PEs except inside the VRFs on both sides. That means the separation of the VPNs on both sides, and their security, is the same as on a single AS RFC 2547 [7] network. It's already been shown to have the same security properties as traditional layer 2 VPNs π₯
This one has possible scalability issues though π The ASBRs need a VRF per VPN, and every VRF has to hold all the routes of its specific VPN. So an ASBR can run into memory problems that hit all the VPNs if one single VRF holds too many routes. The service providers need to make sure the ASBRs are properly dimensioned and use security measures like limiting the number of prefixes per VRF β¨
The two service providers connecting their VPNs this way have to trust each other π€ Since the VPNs are separated on different (sub-)interfaces, all signaling between the ASBRs stays inside a given VPN. So dynamic cross-VPN security breaches are impossible π¦ It's still conceivable that a service provider plugs a specific VPN into the wrong interface, which ends up interconnecting two VPNs that should never be connected. This must be controlled operationally π
b) EBGP redistribution of labeled VPN-IPv4 routes from AS to neighboring AS. πΈ
In this one, the ASBRs on both sides hold full routing information for all the shared VPNs on both sides. It isn't kept in separate VRFs, it lives in the BGP database instead (this is typically limited to the Inter-AS VPNs through filtering). The separation inside the PE is kept up through VPN-IPv4 addresses π The control plane between the ASBRs uses Multi-Protocol BGP (MP-BGP, RFC 2858 [8]). It exchanges VPN routes as VPN-IPv4 addresses, the ASBR addresses as BGP next-hop IPv4 addresses, and the labels to be used in the data plane π§
The data plane is separated with a single label, which represents a VRF or a subset of one. RFC 4364 [1] says an ASBR should only accept packets with a label it has assigned to this router. That stops packets with unknown labels from getting inserted π ββοΈ But a service provider can still use any label the other provider's ASBR has passed on. So one provider can insert packets into any VPN of the other provider that it has a label for. Not it π
This solution also has to think about the security on layer 2 at the interconnection. The RFC states this type of interconnection should only be implemented on private interconnection points. See section 6 for more details π
RFC 4364 [1] also says a trust relationship between the two connecting ASes must exist for this model to work securely. Basically, every AS interconnected this way forms one single zone of trust β The VPN customer has to trust all the service providers involved in provisioning their VPN in this architecture π«£
c) PEs exchange labeled VPN-IPv4 routes, ASBRs only exchange loopbacks of PEs with labels. π¦
Here there are effectively two control connections between the ASes. The route reflectors (RRs) swap the VPN-IPv4 routes over multihop eBGP π The ASBRs only exchange the labeled addresses of those PE routers that hold VPN routes shared between those ASes. This keeps the ASBRs scalable, since they never need to know the VPN-IPv4 routes β¨
In this solution, the top label specifies an LSP to an egress PE router, and the second label specifies a VPN connected to that egress PE. The security of the ASBR connection has the same constraints as in solution b): an ASBR should only accept packets with top labels it has assigned to the other router, which verifies that the packet is addressed to a valid PE router. Any label that was assigned to the other ASBR will be accepted π₯² It's impossible for an ASBR to tell apart different egress PEs or different VPNs on those PEs. A malicious service provider in one AS could introduce packets into any VPN on a PE of the other AS. It only needs a valid LSP on its ASBR and PEs to the corresponding PE on the other AS π± The VPN label can be statistically guessed from the theoretical label space, which allows unidirectional traffic into a VPN. Yikes, periodt π
This means an ASBR-ASBR connection like this can only be made with a trusted party over a private interface, just like in b) π
On top of that, this solution exchanges labeled VPN-IPv4 addresses between route reflectors (RRs) via MP-eBGP. The control plane itself can be protected with routing authentication (RFC 2385 [6]), which makes sure the routing information was originated by the expected RR and wasn't modified in transit π‘οΈ But the received VPN information can't be verified, same as the previous case. So a service provider can introduce bogus routes for any shared VPN π¬ The ASes need to trust each other to configure their own networks correctly. All the ASes in this design form one trusted zone, and the customer needs to trust all the service providers involved π«Ά
The difference between case b) and case c) is this: in b), the ASBRs act as iBGP next-hops for their AS. So each SP only needs to know the addresses of the other SP's ASBRs, not the rest of its core π§ In case c), the SPs exchange the loopback addresses of their PE routers. So each SP reveals information about its PE routers to the other, and those routers have to be accessible from the other AS π As said above, accessibility doesn't necessarily mean insecurity, but networks should never rely on "security through obscurity" π ββοΈ This shouldn't be an issue if the PE routers are appropriately secured. Still, there's an increasing perception that network devices should generally not be accessible, so it's giving caution π
There are also scalability considerations for case c). A bunch of BGP peerings have to be set up for the overall network, including all the ASes linked this way. SPs on both sides need to work together to define a scalable architecture, probably with route reflectors πΈ
So in summary: all of these Inter-AS solutions logically merge several provider networks. In every Inter-AS configuration, all the ASes form a single zone of trust, and service providers need to trust each other. For the VPN customer, the security of the overall solution is equal to the security of traditional RFC 2547 [7] networks, but the customer needs to trust all the service providers involved in provisioning this Inter-AS solution π
5. What BGP/MPLS IP VPNs Do Not Provide π
5.1. Protection against Misconfigurations of the Core and Attacks 'within' the Core
The security mechanisms discussed here assume the network elements of the core network (PE and P routers) are configured correctly. Deliberate or accidental misconfiguration can lead to serious security leaks π
Quick note: this paragraph is specifically about the core network, meaning the PE and P elements. Misconfigurations of any customer-side elements, like the CE router, are covered by the security mechanisms above π So a potential attacker has to get access to either a PE or a P router to gain anything from misconfigurations. If an attacker has access to core elements, or can insert extra equipment into the core, they can attack both the core network and the connected VPNs. So the following is important:
- To avoid the risk of misconfigurations, the equipment needs to be easy to configure, and SP staff need the right training and experience when configuring the network. Proper tools are required to configure the core network π οΈ
- To minimise the risk of "internal" attacks, the core network must be properly secured. This includes network element security, management security, physical security of the service provider infrastructure, access control to service provider installations, and other standard SP security mechanisms π
BGP/MPLS IP VPNs can only provide a secure service if the core network is provided in a secure fashion. This document assumes that to be the case π
There are various approaches to control the security of a core if the VPN customer cannot or does not want to trust the service provider. IPsec from customer-controlled devices is one of them π¦ The document "CE-to-CE Member Verification for Layer 3 VPNs" [13] proposes a CE-based authentication scheme using tokens, aimed at detecting misconfigurations in the MPLS core. The document "MPLS VPN Import/Export Verification" [12] proposes a similar scheme based on using MD5 routing authentication. Both schemes aim to detect and prevent misconfigurations in the core π§
5.2. Data Encryption, Integrity, and Origin Authentication
BGP/MPLS IP VPNs themselves do not provide encryption, integrity, or authentication service π ββοΈ If these are required, IPsec should be used over the MPLS infrastructure. The same applies to ATM and Frame Relay: IPsec can provide these missing services π
5.3. Customer Network Security
BGP/MPLS IP VPNs can be secured so that they are comparable with other VPN services π However, the security of the core network is only one factor in the overall security of a customer's network. Threats in today's networks don't only come from an "outside" connection, they also come from the "inside" and from other entry points (modems, for example) π To reach a good security level for a customer network in a BGP/MPLS infrastructure, MPLS security is necessary but not sufficient. The same applies to other VPN technologies like ATM or Frame Relay. See also RFC 2196 [5] for more information on how to secure a network β¨
6. Layer 2 Security Considerations πΈ
okay so this part is about layer 2 stuff π«Ά In most Inter-AS or Carrier's Carrier setups, a network gets hooked up to other networks through a point-to-point private connection, and third parties can't interfere with that. BUT ngl, using any shared-medium layer 2 tech for these links, like Ethernet switches, can bring extra security risks π
There are two types of layer 2 risks, bestie:
a) Attacks against layer 2 protocols or mechanisms
Layer 2 can get hit by lots of different stuff: ARP attacks, VLAN trunking attacks, or CAM overflow attacks. For example, ARP spoofing lets an attacker redirect traffic between two routers through their own device, so they get access to every packet flowing between those two routers π
These attacks can be prevented with the right security measures, but these concerns get overlooked way too often π€ It is of the utmost importance that if a shared medium (such as a switch) is used in the scenarios above, all the available layer 2 security mechanisms are used to stop layer 2 based attacks π₯
b) Traffic insertion attacks
When lots of routers share a common layer 2 network (like at an Internet exchange point), a third party can introduce packets into a network. This has been abused before on traditional exchange points, when some service providers defaulted to another provider on that exchange. Basically they were sending all their traffic into the other SP's network, even though the control plane (routing) might not allow that π
So routers on exchange points (or other shared layer 2 connections) should only accept non-labeled IP packets into the global routing table. Any labeled packet must be discarded. This keeps connected networks secure β¨
Some of the designs above require the exchange of labeled packets. That means a third party could introduce labeled packets, and if they're crafted correctly, they might be associated with certain VPNs on a BGP/MPLS IP VPN network. That would effectively introduce false packets into a VPN π
The current recommendation is therefore to discard labeled packets on generic shared-medium layer 2 networks such as Internet exchange points (IXPs). Where labeled packets need to be exchanged, it is strongly recommended to use private connections π
7. Summary and Conclusions π
BGP/MPLS IP VPNs provide full address and traffic separation, just like traditional layer-2 VPN services π They hide the addressing structures of the core and other VPNs, and it's not possible to intrude into other VPNs by abusing the BGP/MPLS mechanisms. It's also impossible to intrude into the MPLS core, if the core is properly secured. HOWEVER, there's a big difference between BGP/MPLS-based IP VPNs and, for example, FR- or ATM-based VPNs. The control structure of the core is layer 3 in the case of MPLS. This caused serious skepticism in the industry towards MPLS, since it might open the architecture to DoS attacks from other VPNs or from the Internet (if connected) π¬
As shown in this document, it is possible to secure a BGP/MPLS IP VPN infrastructure to the same level of security as a comparable ATM or FR service β¨ It's also possible to offer Internet connectivity to MPLS VPNs in a secure manner, and to interconnect different VPNs via firewalls. ATM and FR services have a strong reputation for security, but it has been shown that security problems can exist in these networks too [14] π
When it comes to attacks from within the MPLS core, all VPN classes (BGP/MPLS, FR, ATM) have the same problem. If an attacker can install a sniffer, they can read information in all VPNs. And if the attacker has access to the core devices, they can run a large number of attacks, from packet spoofing to introducing new peer routers π There are a number of precautionary measures outlined above that a service provider can use to tighten the security of the core. But the security of the BGP/MPLS IP VPN architecture depends on the security of the service provider. If the service provider is not trusted, the only way to fully secure a VPN against attacks from the "inside" of the VPN service is to run IPsec on top, from the CE devices or beyond π
This document discussed many aspects of BGP/MPLS IP VPN security. It has to be noted that the overall security of this architecture depends on all components, and it is determined by the security of the weakest part of the solution. For example, a perfectly secured static BGP/MPLS IP VPN network with secured Internet access and secure management is still open to many attacks if there is a weak remote access solution in place π₯²
8. Security Considerations π‘οΈ
The entire document is discussing security considerations of the RFC 4364 [1] architecture. (Yep, the whole thing is security, bestie π)
9. Acknowledgements π«Ά
The author would like to thank everybody who has provided input to this document π Special thanks go to Yakov Rekhter for his continued strong support, and to Eric Rosen, Loa Andersson, Alexander Renner, Jim Guichard, Monique Morrow, Eric Vyncke, and Steve Simlo for their extended feedback and support π
10. Normative References π
[1] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private Networks
(VPNs)", RFC 4364, February 2006.
11. Informative References π
[2] Rekhter, Y., Moskowitz, R., Karrenberg, D., Groot, G., and E.
Lear, "Address Allocation for Private Internets", BCP 5,
RFC 1918, February 1996.
[3] Baker, F., Atkinson, R., and G. Malkin, "RIP-2 MD5
Authentication", RFC 2082, January 1997.
[4] Murphy, S., Badger, M., and B. Wellington, "OSPF with Digital
Signatures", RFC 2154, June 1997.
[5] Fraser, B., "Site Security Handbook", RFC 2196, September 1997.
[6] Heffernan, A., "Protection of BGP Sessions via the TCP MD5
Signature Option", RFC 2385, August 1998.
[7] Rosen, E. and Y. Rekhter, "BGP/MPLS VPNs", RFC 2547,
March 1999.
[8] Bates, T., Rekhter, Y., Chandra, R., and D. Katz,
"Multiprotocol Extensions for BGP-4", RFC 2858, June 2000.
[9] Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol Label
Switching Architecture", RFC 3031, January 2001.
[10] Gill, V., Heasley, J., and D. Meyer, "The Generalized TTL
Security Mechanism (GTSM)", RFC 3682, February 2004.
[11] Fang, L., "Security Framework for Provider-Provisioned Virtual
Private Networks (PPVPNs)", RFC 4111, July 2005.
[12] Behringer, M., Guichard, J., and P. Marques, "MPLS VPN
Import/Export Verification", Work in Progress, June 2004.
[13] Bonica, R. and Y. Rekhter, "CE-to-CE Member Verification for
Layer 3 VPNs", Work in Progress, September 2003.
[14] DataComm, "Data Communications Report, Vol 15, No 4: Frame
Relay and ATM: Are they really secure?", February 2000.
Author's Address π¦
Michael H. Behringer
Cisco Systems Inc
Village d'Entreprises Green Side
400, Avenue Roumanille, Batiment T 3
Biot - Sophia Antipolis 06410
France
EMail: mbehring@cisco.com
URI: http://www.cisco.com
Full Copyright Statement βοΈ
Copyright (C) The Internet Society (2006).
This document is subject to the rights, licenses and restrictions contained in BCP 78 and at www.rfc-editor.org/copyright.html, and except as set forth therein, the authors retain all their rights.
This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property π§
The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document, or the extent to which any license under such rights might or might not be available. It also doesn't represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat, and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification, can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org.
Acknowledgement π
Funding for the RFC Editor function is provided by the IETF Administrative Support Activity (IASA) β¨
π¦ where this page comes from
- ietf: rfc4381 2006-02
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms