The deal is worth $2 million, a source told ESPN.com's Scott Burnside.
Penner spent last season with the rival Los Angeles Kings, compiling two goals, 12 assists and 18 penalty minutes in 33 regular-season games. He played in 18 playoff games with the Kings, winning his second Stanley Cup with them in 2012.
Penner won his first NHL championship with the Ducks in 2007. He played in 101 games with them from 2005-07.
The 30-year-old left wing also has played for Edmonton.
Information from ESPN.com's Scott Burnside and The Associated Press was used in this report.