ServiceEntry not working properly

I install istio 1.10 and kubenetes v1.19.0 with profile demo enabled.

Base on the document: service-entry, use the sleep pod as client and arbitary web service on vm serving at port 9000.

I create a service entry for this web service on vm :

apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: sonarqube
  namespace: external
spec:
  hosts:
  - "cicd.sonar.com"
  location: MESH_INTERNAL
  ports:
  - number: 9000
    name: http
    protocol: HTTP
  resolution: STATIC
  endpoints: 
    - address: 192.168.10.98

in my sleep pod in namespace external:

[root@apiserver sleep]# kubectl exec -it sleep-79f64648b5-j4bvw -n external -c sleep -- /bin/sh
/ $ curl cicd.sonar.com:9000
curl: (6) Could not resolve host: cicd.sonar.com

apparently, the dns is not working. but I don’t know how to debug it?

I also notice that smart dns is available on since v1.8.0, how to let service running in or out of mesh
access each other using service dns ?