Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Eugene Grosbein                      2:5006/1       12 Jan 2005  02:54:25
 To : All
 Subject : ICMP errors & NAT
 -------------------------------------------------------------------------------- 
 
 Привет!
 
 Вопрос на тему "что должен делать NAT и чего он делать не должен".
 Возьмем простую схему:
 
 H-...-B-L-R-...-G-...D
 
 Здесь H - хост в публичном интернете, B - пограничный роутер
 автономной системы AS, в которую входит все, что правее B. Многоточие
 между ними - путь в интернете от H до B, он нас не интересует.
 L - локальная сеть в системе AS на реальных адресах, R - внутренний
 маршрутизатор с NAT. Все что правее его - сеть на приватных адресах,
 включающая хост D, а G - один из маршрутизаторов на пути от R до D,
 у всех таких роутеров G только серые адреса.
 
 У D кроме серого адреса есть и отдельный реальный, трафик на этот реальный
 адрес приходит извне на R, который его транслирует в серый адрес D
 (команда redirect_address для natd).
 
 Пусть теперь хост H запускает traceroute на реальный адрес машины D.
 Пока пакеты идут вплоть до R, система H получает нормальную трассировку
 маршрута. Что получается на следующем после R хопе? Пакет от H из-за
 redirect_address транслируется и попадает на первый из роутеров G,
 который обнаруживает, что TTL уже ноль, прибивает пакет, генерирует
 новый пакет ICMP error и посылает его от своего собственного серого
 адреса в сторону H. Этот ICMP-пакет попадает снова на R и обрабатывается
 NAT'ом.
 
 natd в FreeBSD 3.x и более старых, а также ранних версий 4.x транслировал
 адрес источника в таком пакете и если в конфигурации не сказано иного,
 пакет уходил в интернет с адресом источника, заданным аргументом -a или -n,
 то есть со стандатным alias address. В результате H видел в трассировке
 маршрута несколько строк с одинаковыми адресами - столько, сколько
 маршрутизаторов G между R и H. Потом кто-то написал PR и в результате
 поведение natd (точнее, libalias) изменили - он перестал транслировать
 исходящие ICMP errors и последние версии 4.x и в пятерке такие ICMP-пакеты
 уходят в публичный интернет с приватным адресом источника.
 
 В свое время при переходе с 3.5 сразу на середину ветки 4.x это изменение
 мне не понравилось и я сделал патч для libalias, восстанавливающий старое
 поведение, с которым успешно прожил больше двух лет. Hе понравилось
 это изменение во-первых, потому что структура внутренней сети становится
 видна хостам вне автономной системы. Во-вторых, потому что серые адреса
 часто режутся в публичном интернете (и это правильно), поэтому трассировка
 будет в соответствующих строчках вместо серых адресов рисовать звезды
 и тормозить. А со старым поведением просто рисуется несколько строк с
 одинаковым адресом и не тормозит.
 
 Hо в этом случае имеем один минус. Хосты в сети L видят то же самое,
 что и хост H. Hо сеть L внутри автономной системы и ей можно показывать
 структуру внутренней сети, а кроме того, серые адреса внутри нее можно
 не резать. В последнее время этот минус стал сильно мешать.
 
 Теперь вопрос к сетевикам - как вы считаете, какое поведение более
 "правильное" - пропуск исходящих ICMP errors без трансляции или
 с трансляцией адреса источника?
 
 Eugene
 --- slrn/0.9.8.0 (FreeBSD)
  * Origin: Svyaz Service JSC (2:5006/1@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 ICMP errors & NAT   Eugene Grosbein   12 Jan 2005 02:54:25 
 Re: ICMP errors & NAT   Eugene Grosbein   12 Jan 2005 02:59:52 
 ICMP errors & NAT   Ilya Rubinchik   12 Jan 2005 09:18:03 
 Re: ICMP errors & NAT   Eugene Grosbein   12 Jan 2005 12:38:46 
 ICMP errors & NAT   Ilya Rubinchik   13 Jan 2005 00:24:18 
 Re: ICMP errors & NAT   Eugene Grosbein   13 Jan 2005 11:42:08 
 ICMP errors & NAT   Slawa Olhovchenkov   12 Jan 2005 16:20:28 
 Re: ICMP errors & NAT   Eugene Grosbein   12 Jan 2005 21:31:59 
 ICMP errors & NAT   Slawa Olhovchenkov   12 Jan 2005 18:43:54 
 Re: ICMP errors & NAT   Eugene Grosbein   12 Jan 2005 23:25:57 
Архивное /ru.unix.bsd/26093cf4598d2.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional