Назад | Перейти на главную страницу

linux кеширует маршрут с IP-адресами машины, к которой у него нет доступа

У меня есть 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.