Unlimited ammo
From Halopedia, the Halo wiki
The Unlimited Ammunition glitch can be done in Halo 3 multiplayer and campaign.
Walkthrough
Campaign
One way to get unlimited ammo is to give an ally a weapon. Even if there is one round or 1 unit of energy remaining when you give it to them, the weapon will never deplete unless you use it again, but you will still need to reload.
Another method is to play co-op, and continually kill your partner in a safe zone to amass a huge amount of dropped weapons.
Multiplayer
Edit a level in custom games by pressing the X button on the controller on the main custom games screen. Then, you can set all weapons on the map to have unlimited ammo.
Some Halo 3 matchmaking types, such as Team Snipers or Griffball, include unlimited ammo. Most types, with a set weapons list, include unlimited ammo.