J.W.
I have several good friends who have dealt with the early wake-ups (I have been blessed with late sleepers myself). One family put a small lamp in the closet plugged into a timer (one of those that plugs into the outlet, the you plug the lamp into the timer) and mostly closed the closet door. They set the timer to 6 am and told their son that it was not time to be awake until the light went on ("be awake" can mean whatever - you have to stay in bed, you have to be quiet, whatever parameters you need.) It was a small enough light that IF he happened to sleep past 6 it would not wake him up, but was a visual cue for him that he could check for an understand. Another family set a clock radio with soft music for 6 am - if the music was playing, it was time to wake up. If the music wasn't playing, it was still time for sleep. Another friend taught her daughter what "6:00" looks like on the digital clock (her daughter was almost 3) and it wasn't time to be awake until there was a "6" on the clock. All of these things worked very well with a week or so of adjustment.
I wish I had advice on the middle of the night wake-ups, but my 18 month old is also up 2-3 times a night, so I'm as lost as you on that one. Who knows, maybe the "not time to be awake" cue (music or light or whatever) will help with that, too!
Good luck!