World No 1 Rafael Nadal will play Roger Federer for the 33rd time when they go head-to-head in Friday's blockbuster semi-final at the Australian Open.