I'm having a problem as zerg countering a protoss cannon play at my natural as an opener. 

Sending drones to destroy the pylon really hurts my early economy, and often gets a couple drones killed when they can't destroy the pylon in time. Often the player is able to fire off a new pylon to re-activate the cannons they placed.

I've tried escaping a drone to build an expansion elsewhere, but it's relatively undefended, and I can't transfer drones there. It's not a stand-in for the local expansion. 

I've also tried fast-teching to speedlings or nydus worm, but by the time I get there on a single base, the opponent has been able to mount a strong enough response. 

This has been a problem whether I have a hatchery there or not. The hatchery can hold out a while against the cannons, but they obviously pick off any drones that go there. 

Scouting it and delaying the hatchery puts me behind, and putting a hatchery elsewhere has made it vulnerable in the mid-game.

How can I come back against this opener?