Linux кэширует маршрут с IP-адресами компьютеров, к которым у него нет доступа
У меня есть VPN с шлюзом и сервер приложений. Сервер приложений знает только о шлюзе VPN. Шлюз VPN знает о шлюзе физической сети, на которой размещен vms.
Проблема: я не могу связаться с api.twitter.com с сервера приложений. Наблюдение: кэш заполнен записями, показывающими IP-адрес физического шлюза. Вот выдержка:
ip -s route show cache 199.16.156.40
199.16.156.40 via 37.59.245.62 dev eth0 src 10.1.4.20
cache <redirected> used 170 age 22sec ipid 0x9e49
199.16.156.40 from 10.1.4.20 via 37.59.245.62 dev eth0
cache <redirected> age 25sec ipid 0x9e49
IP-адреса, начинающиеся с 199, являются твиттерными. 37.59.245.62
это IP физического шлюза. 10.1.4.20
VPN-IP-адрес шлюза VPN.
IP-адрес физического шлюза отображается только для записей, связанных с серверами Twitter.
Почему эта машина кэширует маршруты с IP-адресами, к которым у нее нет прямого доступа?
Предыдущий вопрос, показывающий, что очистка кеша временно решает проблему
2 ответа
Я спросил это где-то еще, и оказалось, что решение было отключить перенаправления ICMP.
Почему он кешируется? По той же причине кеши используются в любой другой ситуации, чтобы предотвратить издержки при поиске маршрута. Причина, по которой вы видите "внешние" шлюзы, заключается в том, что скорее всего возвращаются сообщения ICMP, информирующие вас о том, что этот IP недоступен.