У меня есть VPN со шлюзом и сервером приложений. Сервер приложений знает только о шлюзе VPN. Шлюз VPN знает о шлюзе физической сети, в которой размещена виртуальная машина.
Проблема: я не могу связаться с api.twitter.com с сервера приложений. Наблюдение: кэш заполнен записями, показывающими физический шлюз Айпи адрес. Вот отрывок:
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, являются IP-адресами twitter. 37.59.245.62
IP-адрес физического шлюза. 10.1.4.20
- это IP-адрес VPN-шлюза.
IP-адрес физического шлюза отображается только для записей, касающихся серверов Twitter.
Почему этот компьютер кэширует маршруты с IP-адресами, к которым у него нет прямого доступа?
Предыдущий вопрос, показывающий, что очистка кеша временно решает проблему
Почему кешируется? По той же причине кеши используются в любой другой ситуации, чтобы предотвратить накладные расходы на поиск маршрута. Причина, по которой вы видите «внешние» шлюзы, - это, скорее всего, сообщения ICMP, которые возвращаются, информируя вас о том, что этот IP-адрес недоступен.
Я спросил это где-нибудь еще, и оказывается, решение заключалось в отключении перенаправления ICMP.