Mobile ad hoc networks are characterized by their highly dynamic, multi-hop, and infrastructure-less nature. Due to limited computing power, scarce bandwidth, high mobility and the lack of a central coordinating entity, service discovery in these network is a challenging task. The great majority of service discovery protocols developed for MANETs deal with the above issues at the application layer.In this paper, we discuss the fact of implementing service discovery at the routing layer instead of the application layer, in order to reduce Service Discovery (SD) overhead and to limit resources consumption. We develop an integrated service discovery protocol, called BF-SD-ZRP, utilizing a combination of different optimization techniques: piggibacking of SD information on the routing messages, compact description of SD using Bloom filter (BF) and service caching. Our simulation results allows to validate our scheme and demonstrate its efficiency in terms of overhead reduction and service discoverability.