Добрый.
как бы он не ругался при добавлении существующего маршрута.
Внимательнее еще раз всмотритесь в код скрипта.
Маршрут будет добавляться, если выполняются оба условия (условие_1 && условие_2).
Итого:
Если нет пинга на 10.168.45.6, то скрипт завершит работу сразу и без проверки на 2-ое условие, т.к. первое не выполнено.
Если есть пинг на 10.168.45.6 и нет маршрута в 10.168.49.0/24 через l2tp, то маршрут добавится.
Если есть пинг на 10.168.45.6 и есть маршрут в 10.168.49.0/24 через l2tp, то скрипт просто завершит работу без попытки добавления маршрута.
P.s. Одно но. Обязательно убедитесь в том, что зюхел постоянно будет получать адрес 10.168.45.6 в l2tp-туннеле. Иначе "ахалай-махалай"(с) не выйдет.