you can use Route Reflector Servers or confederation AS with mini AS.
The first method is easier to implement.
On a selected router that should act as a BGP reflector server for some other iBGP peers you just need to add for each "client" peer the line
neighbor x.x.x.x route-reflector-client
This eliminates the need for a full mesh of iBGP sessions between clients of the RRS.
The RRS will propagate a client's prefix to all of its clients and ot all non clients iBGP peers.
The RRS will propagate to all clients a route learned from a non client iBGP peer.
The RRS devices need a full mesh of standard iBGP sessions between them.
For redundancy purposes each set of clients can be served by two RRS that can configure the same cluster-id or a different one .
RRS adds two BGP attributes that allow fo safe reflection:
Originator -ID : BGP RID of the client that injected the prefix in the iBGP domain
Cluster list: it is a list of all the BGP RRS that the route has been propagated through when not set with cluster-id command the cluster-id = BGP RID of RRS.
in MP BGP implementations the neighbor ..... route-reflector-client command can be given in a specific address family and this can lead to RRS specialization in MPLS SP networks ( some RRS are used for global routing table others for VPNv4 services )
advertising the local loopback in iBGP is not needed and not recommended advertise it in the underlying IGP OSPF
Hope to help