Мы — долго запрягаем, быстро ездим, и сильно тормозим.
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||
|
www.lissyara.su
—> статьи
|
РЕШЕНИЕ
Для начала рассмотрим некоторые термины, употребляемые при формирования правил NAT'a:
1) Inside Local (IL) - IP хостa во внутренней сети.
2) Inside Global (IG) - IP хоста внутренней сети, под которым он виден для внешней сети.
3) Outside Global (OG) - IP хоста во внешней сети.
4) Outside Local (OL) - IP хоста во внешней сети, под которым он виден для внутренней сети.
5) Внутренняя Сеть (IN) - Сеть, которая подключена к порту маршрутизатора, на котором прописано ip nat inside.
6) Внешняя Сеть (ON) - Сеть, которая подключена к порту маршрутизатора, на котором прописано ip nat outside.
На практике, не обязательно что бы на интерфейсе фактически внутренней сети было указано ip nat inside, а на интерфейсе фактически внешней - ip nat outside. Может быть и наоборот, т.к. нат трансляции являются двухсторонними. Это влияет только на синтаксис правил.
Определимся с интерфейсами... Интерфейс смотрящий в сеть с хостом А (Fa 0/0) имеет IP 172.16.1.239 и он обозначен как интерфейс внутренней сети (на нем прописано ip nat inside). Интерфейс смотрящий в сеть B (Fa 0/1) имеет IP 192.168.102.244 и обозначен как внешний интерфейс (ip nat outside).
А теперь с хостами... А - хост во внутренней сети с IP 172.16.1.133, B - во внешней сети, и IP его - 172.17.0.9. Фактически же, устройство B расположено "дальше", проходя по пути еще не одну нат трансляцию и еще не один маршрутизатор. В данном примере я решил упростить схему для большей прозрачности.
Теперь рассмотрим общий вид правил, которые понадобятся для двойной трансляции:
1) ip nat inside source static IL IG
2) ip nat outside source static OG OL
Первым правилом мы подменяем адрес хоста во внутренней сети с серого (неизвестного внешней сети) на белый - адрес, известный внешней сети. Таким образом мы делаем хост внутренней сети, доступным для внешней.
Вторым правилом - подменяем адрес устройства во внешней сети на один из адресов внутренней сети, т.к. хост А может принимать пакеты только из своей подсети.
Ну вот, вроде бы все готово и можно писать конфиг:
|
А теперь проверяем... с хоста B пробуем пропингать хост А, и... в результате облом :((( Будем разбираться... запустив tcpdump на хосте А видим, что пакет приходит, и адрес источника у него правильный - 172.16.1.215, видно что сервер отвечает на этот ip, но обратный ответ до хоста B не доходит... проверив текущие нат трансляции на маршрутизаторе, видно что правила написаны правильно, адреса транслируются правильно.
|
Первая и последняя строки - статические трансляции, средняя строка - текущая сессия.
И теперь самое главное. Причина, по которой у меня так и не получилось проделать это в прошлый раз. Дело в том, что трансляция описанная правилом ip nat inside source ... осуществляется при прохождении пакета через интерфейс обозначенный как ip nat inside, а ip nat outside source ... через обозначенный как ip nat outside. Отсюда получается, что у пакета, исходящего из хоста B вначале попадая на интерфейс Fa0/1 (ip nat outside) меняется адрес назначения с 192.168.102.133 на 172.16.1.133, и он переправляется на Fa0/0 (ip nat inside), на котором уже транслируется адрес источника с 172.17.0.9 на 172.16.1.215. Теперь рассмотрим обратный ход пакета... Хост А отвечает, адрес назначения пакета - 172.16.1.215. Он попадает в маршрутизатор на интерфейс Fa0/0, на котором адрес источника (172.16.1.133) подменяется на 192.168.102.133 и все... для того что бы изменить адрес назначения, пакет должен пройти через интерфейс Fa0/1, но поскольку у пакета адрес назначения из его-же подсети, он не попадает на Fa0/1. Вот и есть тот затык. Решить его довольно-таки просто. Для этого нужно прописать статический маршрут для адреса 172.16.1.215 в сторону сети, расположенной за интерфейсом Fa0/1.
|
Проверяем, и вуаляяя!.. Оба хоста могут достучаться друг до друга, что и требовалось было сделать.
На этом пожалуй все. Если кому есть что добавить - милости прошу...
Надеюсь это кому нибудь будет полезно, и сэкономит немного времени.
P.S. Текст получился довольно-таки закручено, но по другому даж не знаю как описать :)
|
Roman Stozhkov, 2011-08-26 в 8:31:10
ip nat outside source static 172.17.0.9 172.16.1.215 add-route
Вот так будет правильнее
m0ps, 2011-08-26 в 9:43:31
Roman Stozhkov, спасибо, не знал...
bsdavod, 2011-12-16 в 17:20:47
А на FreBSD это можно соорудить? (ipnat, pf, natd или что другое)
mischum, 2011-12-28 в 9:01:23
а я все не могу раздать инет для оперделенных хостов через туннель с офисом, чтоб траффик инета шел через офис
Oleg, 2013-01-17 в 10:18:45
В описании не указано что у хоста B должен быть дефолтовый маршрут. Иначе он не сможет достучаться до маршрутизатора где будет приминяться правило NAT.
Roman Stozhkov , 2013-01-29 в 11:10:22
Oleg, не запутывайте читателей, для этого есть add-route.
Oleg, 2013-01-29 в 11:53:46
хм.. "А теперь проверяем... с хоста B пробуем пропингать хост А, и... в результате облом" на какой адрес идет пинг? на адрес интерфейса или адрес хоста B т.е. 172.17.0.9
Roman Stozhkov, 2013-01-29 в 13:44:25
Oleg, NAT двойной, в начале статьи написано. Не надо там никакого default GW. А вот то, что последние цифры адресов не должны пересекаться, это да, хосту 172.17.0.9 не понравится, если придет проначенный пакет с тем же src. :)
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
вверх
|
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
Комментарии пользователей [8 шт.]