Итак, ситуация довольно запутанная:
Домашняя сеть. В ней все айпи из пула 192.168.0.*.
Локальная сеть местного провайдера. В ней все айпи 10.*
Есть сервер, который соединяет мою домашнюю сеть и локальную сеть провайдера. На этом сервере ОС Debian Etch, при помощи маскардинга я имею доступ к сети провайдера. Специально для работы DC++ проброшены tcp и udp порты.
Все было хорошо и прекрасно, пока не решил поднять свой хаб. Хаб поднят естественно на сервере. Проблема в том, что у сервера есть 2 ip адреса, что естественно, т.к он смотрит и в мою домашнюю сеть, и в сеть провайдера. Подключаясь к хабу на любой из двух адресов ("локальный" или "домашний")-получаю одно и то же: Хаб определяет мой ip как 192.168.0.2. Это верно, но я так не могу качать файлы с пользователей моей локальной сети, нахоядщихся на моем хабе, а они в свою очередь не могут ничего качать с меня.
Решением проблемы я вижу такой заход на хаб, чтобы он определил мой ip не как 192.168.0.2, а как "локальный" ip самого сервера. В этом случае я попадаю в одну подсеть с локальными пользователями и файлообмен работает.
Вопрос-как реализовать работу DC клиента с файлообменом в активном режиме?
Прикладываю рисунок, как смог попытался донести картину...
Если не ясно-говорите, буду переделывать.
Параллельная тема создана на
ты строишь костыли. В настройках дц для своего хаба укажи принудительное использование нужного адреса и проброшенных портов
Клиент для любых хабов использует одни и те же tcp и udp порты.
Но суть не в этом. Суть в том, что даже если прописать в настройках внешним айпи нужный мне, то получаю:
Не втыкаю. Что именно создаёт у тебя домашнюю сеть?
Просто если ты подключаешься из своей локалки в свою локалку,то ничего другого тебе и не светит,тут как бы без вариантов.
Как что именно создает сеть? Есть 2 компьютера, они и объединены в сеть...
Ну почему же не светит? Я могу подключаться как из домашки в домашку, так и из домашки в локалку.
Второй вариант работает на множестве локальных хабов.
эммм, как бэ не вижу проблему. у самого аналогичная связка. все пашет. Настройки такие -
А на сервере -
mariner, у вас тоже хаб стоит на сервере, на котором и прописаны правила iptables?
Точь-в-точь такие же правила у меня работают давно и хорошо для любых локальных хабов.
у меня работает. даже и не знаю, что предложить
Ответьте, если не затруднит:
1) у вас тоже хаб стоит на сервере, на котором и прописаны правила iptables?
2) Куда смотрит ваш eth1?
3) 192.168.0.2-ip вашей домашней машины?
1 - да
2 - в мою домашнюю подсеть + виртуальная сеть (впнка личная то бишь)
3 - да
Trans, так надо наоборот - чтобы хаб тоже думал, что мой ип 10.171.208.43.
mariner, хаб, стоящий на сервере, определяет ваш айпи как 192.168.0.2 или как адрес самого сервера в внешней (недомашней) сети?
Хаб определяет тот ip, через который идёт соединение с хабом.
При соединении же с пользователями, может использоваться другой ip, который как раз и можно прописать в настройках клиента.
Если правильно понял суть проблемы:
Позвольте пожалуйста опишу что было в моем случае
Сервак (192.168.0.2), виндовой комп (192.168.0.3) роутер д-линк дир120 ип в сетку провайдера 172.1.1.1 (от балды)
Было так, захожу с клиента (порты переброшены, все как надо) на 172.1.1.1 - все ок, хаб фиксирует тот-же ip-адрес..
Захожу на 192.168.0.2 - фиксирует ип клиента 192.168.0.3 (все как надо )
При смене на гетвей asus wl500gpv2 в той же связке при коннекте на 172.1.1.1 ип выставлялся 192.168.0.1 (ип самого маршрутизатора, либо ип компа клиента 192.168.0.3), но никак не мог заставить чтобы хаб видел ип 172.1.1.1
На одном из форумом по гетвею асус подсказали такое правило (сам не линуксоид, напишу как было):
mkdir -p /usr/local/sbin
echo '#!/bin/sh' > /usr/local/sbin/post-firewall
echo 'iptables -t nat -I POSTROUTING 1 -o br0 -s 192.168.0.3 -d 192.168.0.2 -p tcp -m tcp --dport 411 -j SNAT --to-source "$2"' >> /usr/local/sbin/post-firewall
chmod +x /usr/local/sbin/post-firewall
flashfs save && flashfs commit && flashfs enable && reboot
После этого все стало как надо.. Конечно здесь нет интерфейсов ech1 и ech0 (подозреваю на замену в прошивке br0 и br1)
Такую же проблему встретил у товарища: сервак под винь2003 смотрит в сеть прова и другой сетевой в домашнюю сеть из 1го компа. Настроена "служба маршрутизация и удаленный доступ" - все как надо, машина клиент получает инет. Но с хабом опять "пляски" хаб видит ип машины-клиента при коннекте что на внутренний что на провайдеровский ип, проблему решил "переключением портов" простым UserGate. Коннект на ип сервака на порт 412, переключаем на белый ип и порт 411, вуоляля - работает
Может мой пост поможет в решении проблемы, если нет - извините и удалите за флуд
intlive, это к сожалению не совсем то.
Еще немного поколдовал...
Если выставить пассивный режим для DC, то скачивание с активных юзеров работает, хотя в настройках по-прежнему светится айпишник 192.168.0.2. Отдачу не проверял.
В моем скудном понимании вся разница между пассивным и активным режимом работы DC клиента-что в пассивном у клиента нет определенного порта "для прослушки", а в активном-есть.
Для проброса портов для "локальных" хабов у меня использовано следующее правило:
LANCARD="eth1"
IPTABLES="/sbin/iptables"
$IPTABLES -t nat -A PREROUTING -i $LANCARD -p tcp -m tcp --dport 55793 -j DNAT --to-destination 192.168.0.2
$IPTABLES -t nat -A PREROUTING -i $LANCARD -p udp -m udp --dport 52583 -j DNAT --to-destination 192.168.0.2
$LANCARD смотрит в локалку провайдера.
192.168.0.2 - айпи моей рабочей машины.
Эти правила работают для всех хабов, обеспечивая активный режим работы, кроме моего. Никак не могу сообразить что мне нужно для работы в активном режиме. Порт из "локалки" в "домашку" уже проброшен, поидее через него и должны взаимодействовать клиенты...
собственно все упирается в маршрутизацию
А поподробнее? Что куда должно по-вашему идти?
Сейчас:
Смысл в том, что когда ты стучишься на свой хаб сервер говорит - ага, вот этот парень и перекидывает тебя на локалку. По идее от этого можно как-то избавиться. У меня на хабе я тоже не у всех могу качать.
mariner, так вы в активном режиме работаете или в пассивном? Ведь в активе то должны со всех качать...
Проблема решилась еще проще.
Хватило банального отключения проверки ip в командах для профиля Master и прописывания в клиенте в качестве внешнего ip "локального" адреса сервера.
Всем спасибо за помощь.