Software defined network is a new computer network architecture who separates controller and data layer in network devices such as switches and routers. By the emerge of software defined networks, a class of location problems, called controller placement problem, has attracted much more research attention. The task in the problem is to simultaneously find optimal number and location of controllers satisfying a set of routing and capacity constraints. In this paper, we suggest an effective solution method based on the so-called Iterated Local Search (ILS) strategy. We then, compare our method to an existing standard mathematical programming solver on an extensive set of problem instances. It turns out that our suggested method is computationally much more effective and efficient over middle to large instances of the problem.