1. A method of providing broadcast services over a Virtual Private LAN Services (VPLS) network having at least two source Provider Edge (PE) routers, each of which is connected to a respective head-end system for broadcasting services, and having a plurality of destination PE routers, each of which is connected to at least two core provider (P) routers in the VPLS network, the method comprising: calculating a plurality of Steiner trees, each Steiner tree in the plurality of Steiner trees being sourced by a respective source PE router and including each destination PE router from the plurality of destination PE routers, the plurality of Steiner trees being disjoint from one another with respect to at least the core P routers in the VPLS network, said calculating comprising: computing a first Steiner tree coupled to a first multicast router and having a set of the core P routers, computing a second Steiner tree coupled to a second multicast router without involving the set of the core P routers of the first Steiner tree in the computations, and provisioning both the first Steiner tree and the second Steiner tree with enough bandwidth to carry all of the broadcast services but using load balancing so that the first Steiner tree has about half of the bandwidth and the second Steiner tree has about half of the bandwidth; broadcasting the broadcast services evenly over the first Steiner tree and the second Steiner tree, whereby all of the broadcast services are broadcasted over the first Steiner tree and the second Steiner tree; and after the first Steiner tree fails, switching all of the bandwidth to the second Steiner tree, wherein the switching step comprises: inserting static Internet Group Management Protocol (IGMP) memberships in the second multicast router, and removing IGMP entries from the first multicast router.