【Rust】tokio::spawnのawait

下のように書くと、DNSエラーとなる。

#[tokio::main]
async fn main()  {
    let res = tokio::spawn(async move {
        let v = get_myip().await.unwrap();
        println!("{}", v);
    });    
}   

pub async fn get_myip() -> Result<String, Box<dyn std::error::Error>> {

    let ip: Ip = serde_json::from_str(&reqwest::get("https://httpbin.org/ip")
        .await?
        .text()
        .await?)?;
    Ok(ip.origin)
}

しかし、実行されるまで待って、res.await.unwrap();とすれば、エラーは解消される。

    let res = tokio::spawn(async move {
        let v = get_myip().await.unwrap();
        println!("{}", v);
    });
    res.await.unwrap();

レスポンスがないままtokio::spawnが終了してしまうからっぽい。
うーん、奥が深い… httpbin.org に問題があるかと思ったけど、全然違った…