Если нет центрального офиса, то проще всего через ipsec в туннельном режиме.
Я бы заморочился с настройкой из ansible.
То есть делаем на ipsec сеть, mikrotik вроде умеет делать транслировать политику ipsec на другой микротик. Где один мастер, другой просто принимает соединение. Но, все равно нужно изначально настроить с обоих сторон.
То есть в максимуме будет связь всех со всеми. И она будет наиболее устойчивой.
Из минусов, нельзя будет сделать резервирование через другой канал, если нет белых ip с обоих сторон.
Из плюсов, на микротик это легко сделать, аппаратное шифрование, нет нагрузки на роутер.
Чтобы сделать это на 20 микротов каждый с каждым, без написания скриптов не получится. Я бы сгенерил дефолтный конфиг на одном микроте, выгрузил его и использовал бы его как шаблон. Микрот вроде позволяет сохранить конфиг в виде скрипта. Вырезать лишнее, вставить переменные и через ansible катить по ssh на все узлы.
Возможно, нет потребности прям каждый с каждым, но есть узлы которые точно должны быть в доступе у всех. Их выделить, сделать соединение с каждым и между собой. Но я бы не парился, если с автоматизацией, то без разницы.
Главный минус, трафик в ipsec в туннельном режиме пролетает мимо файрвола и маршрутизации, сразу в локалку. Это и плюс с другой стороны, нагрузка на роутер минимальна.
Я делал что-то подобное, но вручную и на гораздо меньше количестве.