One of the lesser known goodies provided by NetworkManager is the checkpoint/restore functionality. It allows the user to roll back to a working network configuration if any changes render a machine inaccessible over a network.
The user needs to define a checkpoint first, then conduct the potentially dangerous changes and finally confirm that the changes didn’t disrupt connectivity. A checkpoint is essentially a snapshot of an active network configuration along with a timer. Should the changes cause a networking outage, the timer expires before the user can confirm success and the changes are reverted, hopefully restoring connectivity.
While the checkpoint/restore D-Bus API is available since version 1.4, its use was limited to tools that would use D-Bus directly. Starting with NetworkManager 1.12 the functionality is accompanied by a libnm API. If you’re developing a network configuration tool that could benefit from the functionality, take a look.