A question mark next to the route in the routing table symbolizes a “loose” flag.
This flag is often used for routes coming from BGP protocol because the next-hop attribute is not being changed among iBGP neighbors, so routed process should do reverse routing lookup to determine the real next-hop IP of given route.
See this example:
> show routing route flags: A:active, ?:loose, C:connect, H:host, S:static, ~:internal, R:rip, O:ospf, B:bgp, Oi:ospf intra-area, Oo:ospf inter-area, O1:ospf ext-type-1, O2:ospf ext-type-2 VIRTUAL ROUTER: default (id 1) ========== destination nexthop metric flags age interface next-AS ... 10.10.0.0/16 192.168.200.99 ?B 92699 0 10.150.0.0/17 10.150.59.1 10 A S ethernet1/2