IP-Маскарадинг

После установки сети, у моих друзей и у меня возникла проблема, состоящая в том, что мы не могли использовать Napster из-за работы с IP-маскарадингом. Поэтому я потратил немного своего времени и нашел решение этой проблемы. Я надеюсь, что у вас получится так же хорошо, как и у меня...но ничего не могу обещать.

ПЕРЕД НАЧАЛОМ РАБОТЫ

Я проверил работу моего "обходного пути" со следующими параметрами:

Napster версия 2.0 Beta 5a (для Windows), см. Официальную страницу Napster

Один внешний IP адрес выхода в Интернет.

В настоящий момент 6 компьютеров работают за IP-маскарадингом, 4 из них используют Napster.

Установлен Linux с ядром версии 2.2.12-20 (Дистрибутив RedHat v6.1)

Утилита IPMASQADM версия 0.42, скачайте ее здесь здесь

ПОРЯДОК ДЕЙСТВИЙ

Первым делом убедитесь, что у вас такие же или более новые версии программ, (они указаны в предыдущей главе). Также убедитесь в том, что они корректно установлены.

Установите Napster на Windows-машинах клиентов

После установки Napster и настройки всех установок пользователей, эта версия начнет процедуру под названием "Finding Acceptable Local Data Port" (поиск приемлимого локального порта данных), и через короткое время появится сообщение об ошибке. Внимание: если у вас уже установлен Napster версии 2.0 beta 5a, тогда в меню "Файл" (File) выберите "Свойства" (Properties).

Здесь выберите второй пункт "Я не использую Firewall или мой Firewall астроен - Использовать порт TCP:" (I am not behind a firewall or I configured my firewall - Use TCP port:)

Введите уникальный номер порта. Каждому компьютеру, использующему Napster, нужно будет сопоставить свой номер порта. Самое простое - использовать последнюю цифру IP-адреса. Например: если адрес компьютера 192.168.1.2, то наиболее просто будет запомнить число 6702. Внимание: убедитесь в том, что вы не используете уже занятые номера портов (например 21, 110, и т.п....полный список находится в файле /etc/services)

Повторите пункты 1 - 4 для всех систем, которые будут использовать Napster.

Теперь войдите в вашу систему, осуществляющую IP-маскарадинг, и измените файл стартовой конфигурации (у меня это /etc/rc.d/rc.local) Следующие команды проводят соединение к клиентским частям Napster на машинах, находящихся за вашим IP-маскарадингом. (добавьте их в файл стартовой конфигурации - необходимо добавить по одной команде для каждой машины, использующей Napster):

/usr/sbin/ipmasqadm portfw -a -P tcp -L xxx.xxx.xxx.xxx 6702 -R 192.168.1.2 6702
/usr/sbin/ipmasqadm portfw -a -P tcp -L xxx.xxx.xxx.xxx 6703 -R 192.168.1.3 6703
/usr/sbin/ipmasqadm portfw -a -P tcp -L xxx.xxx.xxx.xxx 6704 -R 192.168.1.4 6704
/usr/sbin/ipmasqadm portfw -a -P tcp -L xxx.xxx.xxx.xxx 6705 -R 192.168.1.5 6705

Где XXX.XXX.XXX.XXX - это IP-адрес Linux-машины, осуществляющей IP-маскарадинг (Интернетовский IP-адрес). Внимание: Если у вас трудности с утилитой IPMASQADM или с IP-маскарадингом вообще, то смотрите IPMASQ-HOWTO. Этот документ написан для тех, у кого системы работают правильно. В документе IPMASQ-HOWTO подробно описывается система переадресации портов и IP-маскарадинга вообще.

ДИНАМИЧЕСКИЕ IP АДРЕСА (Dial-up или DHCP)

Прочитайте внимательно эту главу и главу "Порядок действий", если ваши IP-адреса меняются при каждом вашем подключении к Интернету.

Спасибо Peter Illmayer за то, что дал мне этот скрипт : (Это лучше всего работает у тех, у кого динамические IP адреса...) В debian, я создал файл переадресаций (forward) в /etc/ppp/ip-up.d и добавил туда следующие строки

#!/bin/sh
ppp_ip="`/sbin/ifconfig ppp0 | grep 'inet addr' | awk '{print $2}' | sed -e
's/.*://'`"
/usr/sbin/ipmasqadm portfw -f
/usr/sbin/ipmasqadm portfw -a -P tcp -L ${ppp_ip} 6702 -R 192.168.0.2 6702

Это было в Linux-е с ядром версии 2.2.x kernel, с установленной утилитой ipmasqadm и с соответствующими скомпилированными модулями ядра. Charles J. Fisher подсказал, что подобный скрипт может быть использован и в случае применения DHCP: просто добавьте следующие строки в скрипт, запускающий DHCP, после того, как ваша машина уже получила IP-адрес. net_ip="`ifconfig eth0 | awk '/inet/ {sub(/addr:/,"",$2); print $2}'`"
/usr/sbin/ipmasqadm portfw -f
/usr/sbin/ipmasqadm portfw -a -P tcp -L ${net_ip} 6702 -R 192.168.1.2 6702

Конечно, чем больше машин используют Napster за вашим IP-маскарадингом, тем больше портов вам придется перенаправить.

РЕЗУЛЬТАТ

Подобная система позволит Napster-у работать за машиной с IP-маскарадингом. Надеюсь, что эти советы помогут вам работать так же хорошо, как помогли мне! Пожалуйста, отправляйте комментарии/предложения/претензии по адресу jed204@psu.edu