Реклама:

info.krc.karelia.ru

win -:|:- koi -:|:- iso -:|:- dos -:|:- mac

Start -:|:- Проекты -:|:- О нас

Frequently Asked Questions по FreeBSD 2.X : Работа в сети : Не могу заставить работать ppp. Что я делаю не так? : Почему большинство игр не работает с опцией -alias?
Previous: Процесс, вызвавший прозвонку в режиме auto, никогда не получает
Next: Что такое ошибки FCS?

10.7.20. Почему большинство игр не работает с опцией -alias?

Причиной, по которой игры и подобные программы не работают с библиотекой libalias заключается в том, что внешняя машина будет пытаться открыть соединение или посылать (нежданные) UDP пакеты на машину внутренней сети. Программное обеспечение, обеспечивающее опцию -alias, не знает о том, что должна посылать эти пакеты машине внутренней сети.

Чтобы это всЃ же заработало, удостоверьтесь, что единственной запущенной программой является программное обеспечение, с которым вы испытываете проблемы, затем напустите tcpdump на tun-интерфейс маршрутизатора либо включите протоколирование tcp/ip в ppp (``set log +tcp/ip'') на маршрутизаторе.

Когда вы запустите некорректно работающее программное обеспечение, вы должны увидеть пакеты, проходящие через маршрутизатор. Когда что-то начнЃт приходить извне, оно будет отброшено (в этом-то и проблема). Заметьте номер порта получателя этих пакетов, затем завершите работу вашего программного обеспечения. Выполните эту процедуру несколько раз для того, чтобы убедиться, что номер порта постоянен. Если это так, то следующая строчка в соответствующем разделе /etc/ppp/ppp.conf заставит программное обеспечение функционировать нормально:

          alias port proto internalmachine:port port
        

Здесь ``proto'' - это ``tcp'' либо ``udp'', ``internalmachine'' - это машина, которой вы хотите перенаправлять пакеты, и ``port'' - это номер порта получателя пакетов.

Несомненно, вы не сможете использовать программное обеспечение на других машинах, не изменяя указанную выше команду, а также запускать программное обеспечение на двух машинах внутри сети одновременно - в конце концов, внешний мир видит всю вашу сеть как единственную машину.

Есои номера портов непостоянны, есть ещЃ три варианта:

1) Настройте поддержку этого в libalias. Примеры ``особых случаев'' можно найти в /usr/src/lib/libalias/alias_*.c (alias_ftp.c - хорошее начало). Это означает, что вам нужно будет использовать чтение некоторых распознаваемых исходящих пакетов, обнаруживать команды для установления внешней машиной обратной связи на внутреннюю машину на конкретный (случайный) порт и настраивать ``маршрут'' в таблице соответствий так, чтобы последующие пакеты проходили нормально.

Это самое трудоЃмкое решение, но оно наилучшее и позволит программному обеспечению работать на нескольких машинах.

2) Используйте прокси. Приложение может поддерживать, например, socks5 или (как в случае ``cvsup'') может иметь режим ``passive'', обходящийся без запросов к противоположной стороне на открытие обратного соединения.

3) Переназначьте всЃ на внутреннюю машину с помощью команды ``alias addr''. Это решение в лоб.


Frequently Asked Questions по FreeBSD 2.X : Работа в сети : Не могу заставить работать ppp. Что я делаю не так? : Почему большинство игр не работает с опцией -alias?
Previous: Процесс, вызвавший прозвонку в режиме auto, никогда не получает
Next: Что такое ошибки FCS?

 

Rambler's Top100 Service Яндекс цитирования