Страница 1 из 1
PPTP_Client + route = трабл
Добавлено: 2020-08-22 23:07:44
m0nstr
Доброго! Два дня бьюсь как рыба, а решение не надыбал ) Вщм идея не тривиальная: поднять жабру на фряхе, и цепляться к ней через внешний роутер с белым ИП на порт 5222. Фриаха сама цепляется по ВПН (с обратной стороны), а роутер, в свою очередь, мапит порт на сервис. Обиснил каксмог. С фришой раньше не работал, но после установки в первый раз твердо решил что именно эта ОСь мне нужна. Легкая, интуитивная, много инфы... Но сейчас не об этом. Жабру поднял. За pptp VPN-сервер зацепился mpd5, на нем открыл порт и вот тут уткнулся в проблему. Роутер и фрибсд между собой спокойно дружат, меняются пингами и прочее, но маршрутизация не дописана и вот тут я голову сломал (образно). Т.е. пакет приходит на роутер, тот радостно его отправляет на фришу, та в свою очередь отвечает НО на шлюз по умолчанию, через который в Инете висит! А как сделать чтобы трафик возвращался на шлюз ВПН-сервера - ума не приложу. Если пишу основным шлюз ВПН-сервера, тогда все падает к чертям, якобы "а до него самого то, впн-сервера, как добраться?") Ставлю основным шлюз провайдера своего, пакеты радостно бегут только через него...пробовал ipfw fwd заворачивать пакеты на нужный шлюз (впн-сервера), дк ОС просто игнорирует эти правила фаервола...что мне сделать а, подскажите пж..?
Блин, как многго букв получилось) Почему-то метрику не наблюдаю...

PPTP_Client + route = трабл
Добавлено: 2020-08-22 23:14:46
m0nstr
не дает редактировать...upd => FreeBSD 12.0r341666 GENERIC i386 с нульки
PPTP_Client + route = трабл
Добавлено: 2020-08-22 23:27:08
m0nstr
Инторнет------запр.пакет--------->(роутер(впн-серв))<---------фриша------отв.пакет----->'осн шлюз Интернета' (ну да, да. пошел я нахрен) ))
я вотак это вижу, ВОЗМОЖНО ошибаюсь. включил логирование ipfw, но логи не могу найти нигде. зацепица незачто...плачу на техно
PPTP_Client + route = трабл
Добавлено: 2020-08-24 18:09:09
snorlov
на mpd есть скрипты выполняемые при поднятии/отключение интерфейса, именно там и прописывается дополнительный маршрут...
p.s. честно говоря я вашу схему так и не понял, что/куда бегает, фришка за роутером, тогда нафиг нужен впн....
PPTP_Client + route = трабл
Добавлено: 2020-08-24 19:07:12
m0nstr
скрипты это понятно. но какие туда команды писать - вот вопрос. схема: хост (фрибсд) с джабером цепляется к впн, где открывается порт на этот джабер. клиент ломится на этот порт.
джабер висит на порту по адресу 192.1.1.1->5.130.0.4->87.128.128.128:5222
37.37.37.37:6666 -> 87.128.128.128:5222->192.1.1.1:5222 попадает на сервер джабер
и джабер должен ответить 192.1.1.1:5222->37.37.37.37:6666, но он уходит по другому маршруту 192.1.1.1->5.130.0.4 на "первичный" шлюз
*внутренние адреса опущены
вопрос: как сделать основным шлюзом сервер ВПН?
PPTP_Client + route = трабл
Добавлено: 2020-08-24 19:31:21
snorlov
Можно еще на фришке поднять ipfw c форвардом по порту джабера
PPTP_Client + route = трабл
Добавлено: 2020-08-26 7:58:04
novik
m0nstr писал(а): ↑2020-08-22 23:07:44
Если пишу основным шлюз ВПН-сервера, тогда все падает к чертям
Попробуйде использовать несколько таблиц маршрутизации. Сделайте для джабер-а отдельную setfib 1
m0nstr писал(а): ↑2020-08-24 19:07:12
как сделать основным шлюзом сервер ВПН?
Как обычно. setfib 1 route add default xx.xx.xx.xx
PPTP_Client + route = трабл
Добавлено: 2020-08-27 15:11:07
m0nstr
люди, спасибо всем кто откликнулся! novik, отдельный респект. правда я пошел другим путем, кому интересно...я сделал так:
- route add внешний-ип-впн-сервера мой-локальный-шлюз
- route change default внутренный-шлюз-впн-сервера
и все мои пакетики побежали через шлюз впн-сервера) и портмапинг заработал как положено. решено
PPTP_Client + route = трабл
Добавлено: 2020-08-27 15:18:42
m0nstr
novik писал(а): ↑2020-08-26 7:58:04
Как обычно. setfib 1 route add default xx.xx.xx.xx
не сработало кстати, в ответ пришло: setfib: 1: invalid FIB (max 0)
а так было бы неплохо... (=
PPTP_Client + route = трабл
Добавлено: 2020-08-27 22:47:35
novik
m0nstr писал(а): ↑2020-08-27 15:18:42
не сработало кстати, в ответ пришло: setfib: 1: invalid FIB (max 0)
Это потому что
man setfib
The system maximum is set in the kernel configuration file with
options ROUTETABLES=N
or in /boot/loader.conf with
net.fibs="N"
where N is an integer.
я забыл вам написать.
И jabber пускайте с
в rc.conf.