ref: http://msmvps.com/blogs/ulfbsimonweidner/archive/2005/03/08/37975.aspx
The infrastructure masters job is to compare objects of the local domain against objects in other domains of the same forest. If the server holding the infrastructure master is also a global catalog it won't ever see any differences, since the global catalog holds a partitial copy of every object in the forest itself. Therefore the
infrastructure master won't do anything in its domain. However if every DC in the Domain is also global catalog server there's no job for the IM since the GC already knows about the objects of other domains. So if
you look at the job the IM has to do, it's pretty clear that it may reside on a GC if it's a single domain forest (no need to pull updates from other domains). It's also pretty clear that it may reside on a GC if it's in a multiple domain forest but every DC in the domain where the IM runs on the GC are also GCs (no need to pull updates since the GC knows everything).
So the following infrastructure is a valid configuration:
One domain:
R-DC1 (GC + IM)
R-DC2 (GC)
Other domain:
O-DC1 (GC)
O-DC2 (IM)
O-DC3-x (might or might not be GC, does not matter)
The first domain does not need to pull updates since the GCs know everything, the other domain has the IM running on a non-GC so it pulls the updates and replicates them to other DCs.
The following KB states that correctly:
http://support.microsoft.com/kb/223346/EN-US/
- there are multiple Domains in the Forest
- there are Domain Controllers in the same Domain which are not Global Catalog Servers
- there's only one Domain in the Forest
- every Domain Controller in the Domain in question is Global Catalog Server