Борем gmail

Суть простая: у меня есть сеть с Н выходов наружу. И очень надо, чтобы весь трафик на gmail шел через определенный узел. Казалось бы, фигня вопрос! Берем AS gmail и зароучиваем куда надо. Но фиг-то там. Нет отдельной AS для почты. Там у них все в куче: и почта и ютюб и прочее.

Ок, давай 25й порт завернем … Но опять же, весь почтовый трафик не нужен! Остается только по адресам. Но и тут засада: они меняются. Не часто, но регулярно! Ок, пара минут (ладно, полчаса) и готов такой однострочник.

alias gmail="echo \"conf t\"; for i in {alt1.gmail-smtp-in.l.google.com.,gmail-smtp-in.l.google.com.,alt2.gmail-smtp-in.l.google.com.,alt4.gmail-smtp-in.l.google.com.,alt3.gmail-smtp-in.l.google.com.}; do host \$i 127.0.0.1 | grep has\ address | awk '{ print \"ip route \" \$4 \"/32 37.9.13.1\"; }' ; done; echo \"exit\"; echo \"write\"; echo \"exit\""

На момент написания результат будет такой

conf t
ip route 108.177.125.27/32 37.9.13.1
ip route 64.233.161.26/32 37.9.13.1
ip route 192.178.163.27/32 37.9.13.1
ip route 173.194.208.27/32 37.9.13.1
ip route 142.250.101.27/32 37.9.13.1
exit
write
exit

В результате все текущие почтовые адреса гмыла пойдут через 37.9.13.1 – это адрес роутера в селектеле, через который подключен мой сервер. Как этот вывод скормить FRR автоматично предлагаю решить самостоятельно 🙂