In this paper we aim at developing a solution to fairly allocating bandwidth among unicast and multicast flows. For this purpose, we propose the anycast max-min fairness criterion, which is based on the well known max-min fairness criterion for unicast. We then present an efficient implementation of the proposed criterion: the Multicast Fair Bandwidth Allocation (MFBA) architecture. The MFBA architecture has two key aspects: 1) maintaining per-flow state at core routers is avoided, and 2) layered multicast is supported without the need for signaling. The proposed architecture has been implemented in a Linux PC platform. We report experimental results on the bandwidth allocation and the quality of layered video.