How to debug NAT traversal

Tailscale version: 1.16
Your operating system & version: MacOS 10.15.7/Debian 11

Been using Tailscale to connect between work and home for a long time without problem. Recently found that I can rarely get direct connection. Not sure what changed. I even tried to run tailscale on my home router which has public IP address, which I think will definitely get me a direct connection no matter what the other end’s setup might be. But still no.

Guess there is some change on my company’s firewall. I observed some strange behavior like:

From idle state, I try to ping home
timeout for several seconds
ping through with high latency for several seconds
latency reduced to less than 10ms. Check status, it's direct connection. 
several seconds later, relay connection for ever.

I can tell UDP is not banned by netcat between my nodes.

So how can I debug and tell what blocks NAT traversal?