Форум программистов, компьютерный форум, киберфорум
Cisco
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
1

Вопрос по NAT-таблице

20.12.2014, 02:05. Показов 1939. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
То есть нас в книжках учат, что если на маршрутизаторе присутствует таблица NAT, согласно которой осуществляется подмена внутреннего локального адреса на внешних локальный, то при прохождении через эту таблицу пакета из внутренней сети во внешнюю мало того, что будет заменён ip-адрес, будет заменён и порт. Причём последний будет УНИКАЛЬНЫМ. У Олиферов:

Назначенный номер порта выбирается произвольно, однако должно быть выполнено условие его уникальности в пределах всех узлов, получающих выход во внешнюю сеть. Соответствие фиксируется в таблице.
А они ни хрена не уникальный. Вот я к примеру составил макет сети. Имеется внутренняя сеть с двумя хостами 192.168.2.2 и 192.168.7.2 (они оба слева), есть внешний хост 192.168.3.2 (он справа)

Начнём пинговать (192.168.2.2->192.168.3.2 и 192.168.7.2->192.168.3.2). То есть от хостов пойдут пакеты с указанием портов, откуда они вышли. Эта сущность (номер порта которая) в ICMP пакетах определяется полем SEQ NUMBER. Наша цель сделать так, чтобы с узла 192.168.2.2 и с узла 192.168.7.2 вышли пакты с одинаковыми значениями этого поля. То есть если на момент испытаний с узла 192.168.2.2 вышло 16 пакетов (ну то есть мы просто чё-нибудь пропинговали, неважно что и у нас получилось, что мы в общей сложности отослали куда-нибудь 16 пакетов), то и с узла 192.168.7.2 должно быть выйти столько же пакетов; а если вышло меньше (например, 12), то нужно просто пропинговать какой-нибудь узел (например 192.168.7.2->192.168.3.2), уравняв тем самым количество пакетов, вышедших с каждого из узлов и приступить к испытаниям.

Зайдём в режим симуляции, зайдём на роутер, очистим таблицу NAT:

Router#clear ip nat tr *
Router#sh ip nat translations
Pro Inside global Inside local Outside local Outside global
--- 192.168.6.1 192.168.2.2 --- ---
--- 192.168.6.1 192.168.7.2 --- ---

Router#
Так, теперь с каждого из хостов запустим по одному пакету ОДНОВРЕМЕННО на 192.168.3.2 в режиме симуляции. И когда пакеты один за другим пройдёт роутер, обратимся к таблице NAT, вот такая она примерно должна быть:

Router#sh ip nat translations
Pro Inside global Inside local Outside local Outside global
icmp 192.168.6.1:41 192.168.2.2:41 192.168.3.2:41 192.168.3.2:41
icmp 192.168.6.1:41 192.168.7.2:41 192.168.3.2:41 192.168.3.2:41
--- 192.168.6.1 192.168.2.2 --- ---
--- 192.168.6.1 192.168.7.2 --- ---
Красным я выделил то, что должно быть одинаково-мы этого должны добиться и выше я написал как. А вот обведённые синим цветом цифры должны быть уникальны, ну то есть хотя бы в пределах таблицы. Не должно быть двух одинаковых портов согласно теории. А они есть. А теперь смотрите, что получается. Эта таблица на момент, когда с хостов 192.168.2.2 и 192.168.7.2 на хост 192.16.3.2 прошло по одному пакету. Какой пакет прошёл первым, я сказать не берусь, может, строки в таблице сортируются по алфавиту или ещё как (похоже, что сортируются). НО! Самое-то главное. Когда назад пойдёт какой-нибудь пакет, адресованный 192.168.2.2 или 192.168.7.2 он БЕЗУСЛОВНО придёт на 192.168.2.2, вот в чём дело!

Ещё раз, если сейчас в обратном направлении пойдёт пакет на узел, к примеру, 192.168.7.2, он, согласно таблице, попадёт на 192.168.2.2! И в CPT так и произошло! Обратно пошёл пакет, предназначенный узлу 192.168.7.2. но он охренительно завернул на 199.168.2.2! Как я определил пакет? А по цвету. (В результате на один узел вернулось 5 пакетов, а на другой 3, но это в режиме симуляции)

А теперь представьте, что в реале пакет, предназначенный узлу 192.168.2.2 на обратном пути где-нибудь пропал или ещё что-то в этом роде. Хост 192.168.2.2 об этом инфы не получит, он будет считать, что связь установлена, хотя на самом деле к нему придёт пакет, предназначенный другому узлу (192.168.7.2)

Решилось бы, если порты, нарисованные синим цветом действительно были уникальны в пределах таблицы. Но они не уникальны. Cтранно, необъяснимо и вредно. Ну и как же теперь быть? Спасибо, кто откликнется.
Вложения
Тип файла: rar NAT.rar (10.6 Кб, 9 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.12.2014, 02:05
Ответы с готовыми решениями:

WPF: Не работают библиотеки Open.NAT, Mono.NAT
Доброго времени суток! Хочу витащить свой IP. У меня "серый ip". (кто не в курсе го в Википедию)...

Вопрос По Таблице
Всем привет! На форме есть таблица со вкладками. Как программно открыть на экране нужную мне...

Вопрос по таблице
Здравствуйте. Помогите пожалуйста исправить следующую проблему. <table border> <tr> <td><a...

Вопрос по хеш-таблице
Приветствую! У меня есть хеш таблица: тип ключа - строка текста произвольной длины. Метод...

2
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
20.12.2014, 02:55  [ТС] 2
Случайно нашёл ошибку, она концептуальна. Эффект, который нужен мне достигается применением списка доступа. Ну то есть надо использовать способ "dinamic NAT" и тогда назначенные порты будут действительно уникальными. Если назначать адрес адресу ("statick NAT"), как делал я, тогда, наверное, надо придерживаться правила: каждому адресу УНИКАЛЬНЫЙ адрес. А я двум адресам (192.168.2.2 и 192.168.7.2) назначил один и тот же адрес 192.168.6.1, за что и поплатился.
0
461 / 442 / 75
Регистрация: 26.12.2012
Сообщений: 2,886
05.01.2015, 22:33 3
в принципе в жизни наверное трудно себе представить схему в которой делался бы статический nat один inside global в несколько inside local, что то даже не представлю себе такое в жизни да и в пакет трасер косяков полно чтобы полностью доверять его поведению
0
05.01.2015, 22:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.01.2015, 22:33
Помогаю со студенческими работами здесь

Вопрос по таблице истинности.
подскажите, пожалуйста, какая будет таблица истинности для такой формулы я думаю, что эта...

Вопрос по ширине кнопок в таблице
Уважаемые коллеги, день добрый! Возник вопрос ,как сделать кнопки одинаковой ширины в тексте HTML....

Периодичность в таблице и вопрос по отчетам
У меня возникло парочка вопросов, помогите разобраться, а то не смог найти сам. 1 Вопрос. ...

Вопрос по запросу, критерий выборки в подчиненной таблице
Уважаемые коллеги, здравствуйте! Возник вопрос по использованию запроса, в котором критерием...

Как сделать что если нет данных в таблице, чтобы шаблон этой самой таблице не выводился а писалось что данных в таблице нет
В общем проблема такая, есть админка где выводится список жалоб которые без ответа, когда они есть...

Формулой найти слово в таблице на Листе2, которое присутствует в таблице на Листе1
Здравствуйте! На листе2 есть таблица с предложениями, на листе1 - таблица с отдельными словами....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru