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 недоступен.

Другие вопросы по тегам