I m little bit confused about finding the difference between draft martini and kompella... so how can we discribe the difference betwen both the drafts in terms of implementation, benifits and issues?
There are a few differences between Martini and Kompella, but let's start with the similarities 😉
1) They are both a mechanism for creating point-to-point L2 VPNs between two logical interfaces.
2) They both use basically the same encapsulations
Now, to the differences, this is not an exhaustive list 🙂
1) Martini uses directed LDP to signal the VPN label between the PE devices, Kompella uses BGP to signal the VPN label between the PE devices
2) Martini requires explicit configuration of each p2p link. Kompella provides a mechanism to automatically setup new p2p links between new interfaces (possibly on new PEs). This autodiscovery is based on BGP, too.
There may be lots of other differences but those are the ones that jump out at me...
Martini draft uses ldp for signaling the connection while Kompella uses bgp, futhermore martini is much simpler to implement/configure and you can use targeted LDP while Kompella needs more configuration as you need to configure routing instance and enable family l2vpn signaling under the bgp configuration which definitely leads to BGP session tear down and establish again
To Osama's point, draft-martini (called l2circuits in JUNOS) tend to be simpler to configure in small environments, as there is no need for a BGP infrastructure. However, the true benefits of draft-kompella L2VPNs (as well as BGP-based VPLS) come from scaling. As your environment supports large numbers of PE routers and l2circuits or VPLS endpoints, the autodiscovery features of BGP-based signaling mean less redundant configuration and less concurrent control plane connections. Under the hood, the data-plane signaling is the same for draft-martini and draft-kompella l2vpn -- it's just the control plane infrastructure to establish and maintain the connections that's different.
If you're looking to support a handful of l2circuits, draft-martini is probably the right choice. However if you're looking to deploy VPLS, or if you have a larger number of tunnels, the BGP-based infrastructure will allow for a centralized location mechanism for remote endpoints, and will also use significantly fewer control plane resources. Remember that with draft-martini, the routing-engine must maintain a separate targeted LDP (TCP socket) for each tunnel -- whereas BGP-based VPNs can leverage only the required number of BGP neighbors. In draft-martini, one thousand concurrent martini tunnels means 1000x TCP sessions just for the LDP signaling.
Also, if you plan to deploy layer 3 VPNs (aka: RFC4364, aka: 2547bis) in the future, you should preconfigure your BGP sessions for both family l2vpn signaling and family inet-vpn unicast. You will then be able to leverage the same BGP infrastructure for your layer 3 services in addition to you L2VPNs and VPLS (L2VPN and VPLS use the same BGP address family for signaling and autodiscovery). As Osama correctly points out, address families are negotiated in the BGP session OPEN, and a change requires bouncing the bgp neighbor. As such, it's a good idea to make sure to configure any address families you may need in the future to avoid any operational impact from adding a new service type.
I am looking for information on Draft Kompella and how its implemented in MX960.
We have MX960s up and running, using Draft Kompella configured according to the configurations guides. But now my boss asked me to compare Draft Martini and Draft Kompella on a more theoretical base. Are there any whitepapers, presentation etc. on this implementation and how it works?
Draft Martini is described in many RFCs, but the Kompella-RFCs are expired. Is that correct?
I would be pleased to get some information on Draft Kompella apart from configuration guides.
Please take a look at this document. It's about VPLS
drafts may expire, RFCs not. Actually, the Kompella flavour of L2VPN was published as an informational RFC6624 (https://tools.ietf.org/html/rfc6624).
I'd like to add to what Dan said, ....agreed, that yes it's best to turn up your bgp sessions with any and all address families you may need in the future as it does cause neighbor bounce to add that AF in the future.... however, I love my router relector cluster 🙂 .... i have a RR cluster of 2 core routers. 2 things I love about my RR cluster. One reason is, on all my PE's I only have 2 bgp neighbors...so that relaxes the I-BGP full mesh rule. 1 neighbor to one RR cluster member, and 1 neighbor to the other RR cluster member. The second reason is, when I have to add an AF to a neighbor session, I do it to the first RR cluster member neighbor session and it goes down and I lose all NLRI (routes) on that session, BUT, I don't lose connectivity to this PE's L2/3VPN's because the other neighbor session is still up and good.... then after the first one come up with new AF on it and routes are re-learned, I add the AF to the second RR cluster member neighbor session.
...furthermore, now in 2017, for new installs, you probably should go ahead an turn on ipv6 address family too, for future proofing.
I would actually recommend martini over kompella for any situation unless you really just don't want to run LDP. It's not true that a TCP session is needed per tunnel. It is per neighbor. You can have 1000 tunnels between the same two PEs and it would only be one TCP session.
Configuration is also simpler with martini. Even if the routing-instance and BGP sessions are already up with kompella, adding new circuits still require more lines of configs than martini.
Draft Martini: Named after its author Luca Martini (worked for Level 3 at this time), simply uses LDP for signaling to establish point-to-point Layer 2 VPN over MPLS backbone, with no suggestion for auto-discovery.
Draft Kompella: Named after its author Kireeti Kompella (worked for Juniper at this time), simply uses BGP for both signaling and auto-discovery to establish multipoint (To be more specific it is fully meshed point-to-point pseudowires) Layer 2 VPN over MPLS backbone.
Both drafts uses the same encapsulation; Provider’s Layer 2 header + Tunnel Label + VC Label + Control Word + Payload (L2 Frame), the encapsulation details for each Layer 2 protocol was described in several RFCs.
As a quick comparison, Draft Martini suffers scalability issues due to configuration overhead in the absence of auto-discovery when dealing with fully meshed topologies between the edge routers, which is not the case with Draft Kompella leveraging auto-discovery and complex signaling, however Draft Martini leverages simplicity and straightforwardness.
It is important to understand that there is a Martini encapsulation, which describes how layer 2 data is encapsulated when traversing an l2circuit or l2vpn and a Martini tunnel, which describes how the circuit is signaled. Martini tunnels (l2circuits) and
Kompella tunnels (l2vpn) use different signaling protocols (LDP and BGP, respectively), but use a common encapsulation (Martini encapsulation). In general, Martini tunnels have wider vendor support, so they are typically preferred for interop between different vendor PEs.
https://www.juniper.net/us/en/training/jnbooks/day-one/networking-technologies-series/this-week-deploying-mpls/ >>>> pg 90
The BGP Layer 2 VPN (Kompella) draft describes an algorithm used to auto-provision PE routers when a new site is added to a PE router. This algorithm automatically assigns new circuit IDs and labels, notifies other PE routers, and sets up the VPN mesh automatically in all topologies. The BGP Layer 2 VPN has extended this same algorithm of auto-provisioning into the BGP virtual private LAN service (VPLS) RFC. LDP Layer 2 circuits (Martini) require manual provisioning in a manner similar to a traditionally managed Frame Relay network. Both BGP Layer 2 VPNs and LDP Layer 2 circuits call for the use of the Martini-style encapsulation.
JNCIS-SP Study Guide—Part 3
BGP Layer 2 VPNs • Chapter 13–1
Hi Efuentes, if we are talking about EPL (pseudowire type 5) services configired between a mesh of PE nodes for each CE vlan protected with preferential forwarding status bit (RFC6870) , does it imply taking a decission between martini vs kompella?
Thx in advance.
So here, Martini vs Kompella I wish to start with a services, What services you are using for your network whether L3vpn, L2vpn, VPLS.?
The first thing you need to understand control plane and data plane, both(martini and kompella) theories are for the control plane . In martini vpn labels on PE routers learned via protocol LDP on the other hand in kompella it is learned via protocol bgp. Both theories dont have any impact on Data plane, forwarding is same for both.
Ques comes which one is good..??
So, it depends on service what you are using if you have L3vpn then it is must to have an BGP preconfigured, if you are using L2vpn or L2circuits I would rather suggest you to go with Martni because you can configure only LDP and it makes your network simpler. If you have VPLS in your network, I would rather suggest you to go with kompella bgp ...
Hope my views will helpful for you !!