| Техподдержка Проблема с компьютером или софтом? Тебе сюда. |
![]() |
|
|
#1 (permalink) |
|
Местный
Регистрация: 04.09.2008
Адрес: не дом и не улица
Возраст: 32
Сообщений: 303
|
Как свести на одной машине локалки с одинаковыми адресами?
Возьмем для примера известную картинку VlaSok:
![]() Фиг с ней, что она устарела - она нужна только в качестве иллюстрации. Из этой картинки следует, что при одновременном подключении к Спарку и Гаранте оказываются недоступны некоторые адреса - 10.10.*.* и 10.15.*.* либо Гаранты, либо Спарка (как выберет сам пользователь). Однако! Представим, что на левом интерфейсе (Гаранта) висит хитрая штука™. Хитрая штука™ делает вот что: когда ей приходит пакет, например, с диапазона 10.10, она берет и эти 10.10 заменяет, допустим, на 10.21, который везде в данном случае свободен (и так поступает с любыми адресами, которые мы попросим подменить - сугубо по нашим указаниям). Сам компьютер в результате думает, что ему пришел пакет с гарантовского интерфейса с адресом отправителя 10.21. Он его обрабатывает и отсылает назад (а мы, умные, уже зарание прописали ему в роутинг, что лучший интерфейс для 10.21 - гарантовский). Хитрая штука™ на выходе ловит пакет и проводит над ним обратную операцию - заменяет 10.21 на 10.10 и шлет дальше в сеть. То есть вроде бы получается такой static NAT наоборот. Понятно объяснил? Так вот, как правильно называется эта штука и реализовал ли ее кто-нибудь _под виндой_ программно? Будут ли под ней работать DC++, локальный трекер и игрушки? |
|
|
|
|
|
#2 (permalink) |
|
Администратор
Регистрация: 27.02.2008
Адрес: localhost
Возраст: 28
Сообщений: 1,393
|
R_Murdoc, эта штука надывается статический нат (без наоборот), про винду ничего не скажу, а вот под никсами делается все элементарно. Сам собирал такой девайс, когда нужно было подключить десяток модемов "из коробки" (т.е. у всех одинаковые адреса и пр.).
|
|
|
|
|
|
#3 (permalink) | |||
|
Местный
|
R_Murdoc, как сказал papenkin, организовать такой SNAT можно с помощью правил IPTables.
http://ru.wikipedia.org/wiki/Iptables Настройка межсетевого экрана Iptables Руководство по iptables (Iptables Tutorial 1.1.19) Но для этого нужен еще один компьютер с установленным Linux и двумя сетевыми картами (1 смотрит в одну из сетей, 2 подключается к нашему компьютеру). Предположим, что мы ставим этот роутер вместо сетевой карты, которая смотрит в Гаранту, и будем преобразовывать конфликтующие IP адреса для Гаранты (10.10.0.0/15, 10.12.0.0/16, 10.15.0.0/16). Правила для осуществления такого маппинга сетей будут выглядеть следующим образом (предполагаем что диапазоны 10.20.0.0/15, 10.22.0.0/16, 10.25.0.0/16 не будут вызывать конфликта): Цитата:
Цитата:
Iptables Tutorial 1.2.2 - NETMAP target Необходимо также реализовать маскарадинг, чтобы роутер подменял IP адрес нашего компьютера (в данном примере 192.168.2.2) на свой адрес в Гаранте (в данном примере 10.10.0.2), чтобы был возможен обмен трафиком: Цитата:
На роутере нужно добавить стандартные маршруты до подсетей: Маршруты. ВАЖНО !!!, а на компьютере теже маршруты, но вместо 10.10.0.0, 10.12.0.0, 10.15.0.0 ставить 10.20.0.0, 10.22.0.0, 10.25.0.0, а в качестве шлюза - адрес роутера. В итоге наш компьютер будет обмениваться трафиком с Гарантой через роутер и сможет обращаться к адресам 10.10.x.x, 10.12.x.x, 10.15.x.x, которые для него будут выглядеть как 10.20.x.x, 10.22.x.x, 10.25.x.x. Это примерное описание. Если я в чем-то ошибся, поправьте меня. Было бы здорово увидеть полные правила настройки IPTables для реализации такой схемы. Интересно узнать изменяются ли правила в случае, когда IP адрес самого компьютера принадлежит (в данном примере 10.10.0.2) и не принадлежит конфликтующему диапазону. Также интересно какие правила нужно добавить, чтобы работало перенаправление портов на компьютер (для работы DC++ в активном режиме и других приложений). Особенно интересно узнать, смогут ли нормально работать с конфликтующими адресами DC++, локальный трекер и игрушки. Ведь по идее при заходе на тот же DC хаб последний возвращает список всех присутствующих и их реальные IP адреса, не зная ничего о наших манипуляциях с роутером. И DC++ клиент будет пытаться соединяться именно с теми адресами, которые дал ему хаб, в том числе и с конфликтующими, не производя замену. Знающие люди, подскажите! Последний раз редактировалось VlaSok, 31.12.2008 в 12:44. |
|||
|
|
|
|
|
#4 (permalink) |
|
Администратор
Регистрация: 27.02.2008
Адрес: localhost
Возраст: 28
Сообщений: 1,393
|
VlaSok, не знаю откуда ты все это взял, но одна ГРУБЕЙШАЯ ошибка заставила меня прервать чтение на первой цитате...
Если ты это сам писал, то запомни на всю жизнь: таблица mangle используется ТОЛЬКО для изменения полей TOS и TTL, а также для того, чтобы пометить пакет (MARK). Никаких натов (ни dnat, ни snat, ни masq)! Нат осуществляется в таблице nat. Вторая ошибка - использование NETMAP, которое требует сборки ядра с поддержкой NETMAP. Как правильно и как будет работать напишу у себя в блоге, сейчас времени нету... Может сам догадаешься? Там не сложно, все в таблице nat, цепочки postrouting и prerouting. Хотя тут лучше использовать двойной нат. |
|
|
|
|
|
#5 (permalink) |
|
Местный
|
papenkin, пример взят отсюда:
http://security.maruhn.com/iptables-tutorial/x9940.html p.s.: обрати внимание на вопросы, которые я задал в конце своего поста |
|
|
|
|
|
#6 (permalink) | |||
|
Местный
Регистрация: 04.09.2008
Адрес: не дом и не улица
Возраст: 32
Сообщений: 303
|
Цитата:
Да и отдельную машину для такого собирать, сам понимаешь... Максимум, что можно сделать без ощутимых ударов по бюджету - переучить какой-нибудь дешевый роутер это делать (это уж точно без меня :). Минус - опять-таки будет тормозить. Цитата:
Цитата:
То есть, получается, что речь идет уже максимум о пассивном режиме. Другое дело, если бы все клиенты из списка пользователей отослали нашему клиенту по пакету, в котором бы просто подписались - вот тогда наш клиент бы точно знал, что и где. Игрушки, кажется, должны работать, потому что они общаются только с сервером. |
|||
|
|
|
|
|
#7 (permalink) |
|
Местный
Регистрация: 04.09.2008
Адрес: не дом и не улица
Возраст: 32
Сообщений: 303
|
Поскольку под виндой этого всего нет, а отдельный комп только для того, чтоб свести Гаранту со Спарком (или с другим провайдером), - это слишком жирно (да и линуха для меня не вариант, нет времени с ними возиться - я совсем в другой области работаю), возможно ли, хотя бы в теории, научить какой-нибудь дешевый роутер это делать? Можно даже оторвать роутеру все остальное - лишь бы он транслировал адреса...
|
|
|
|
![]() |
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
| Опции темы | |
| Опции просмотра | |
|
|