The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Маршрутизатор на FreeBSD: не форвардятся пакеты"
Отправлено михалыч, 02-Ноя-13 16:58 
> Спасибо, Вы настоящий друг!

Да ладно!

> Остался лишь последний вопрос, и опять же связанный с ppp-nat: он не
> воспринимает форвардинг портов, записанных в ppp.conf —
>>  nat port tcp 10.0.1.10:80 80

Вы же правильно указали строку, синтаксис именно такой.

> При этом через костыль под названием portfwd всё работает. В связи с
> этим у меня вопрос, как настроить это дело хотя бы через
> ipfw, потому как portfwd с ранжированием работать не умеет, а вручную
> вбивать весь массив 30000-35000 для работы FTP в конфиг-файл я сойду
> с ума.

Да не вопрос! Легко!
Хоть во двор, хоть в коридор, тьфу ты, хотел сказать, хоть через ipfw, хоть через pf
Там в конфигах диапазон портов можно задать.
А с ума сходить не надо. Успеете. ))

Лезем в man ppp или смотрим /usr/share/examples/ppp/ppp.conf.sample
man ppp

секция AUTOMATIC DIALING
Смотрите пример определений в
/usr/share/examples/ppp/ppp.conf.sample (формат файла /etc/ppp/ppp.conf довольно простой).
Каждая строка содержит один комментарий, включение, метку или команду:


    строка, начинающаяся с символа "#", рассматривается как строка комментарий.
    Ведущие пробелы игнорируются при определении строки как строки комментария.


    включение представляет собой строку, начинающуюся со слова "!include".
    Она должна иметь один аргумент - включаемый в него файл.
    Вы, возможно, захотите прописать и установить "!include ~/.ppp.conf" для
    совместимости со старыми версиями ppp.


    имя метки начинается с самого начала строки, затем следует двоеточие (":").


    строка с командой должна содержать вначале минимум один пробел или символ табуляции.


Смотрим /usr/share/examples/ppp/ppp.conf.sample

Если мы с помощью nat перенаправляем ftp и http на внутреннюю машину:


nat port tcp 10.0.0.2:ftp ftp
nat port tcp 10.0.0.2:http http

То есть, повторюсь, пример перенаправления вы привели правильно.
А 5 тысяч строк в /etc/ppp/ppp.conf прописывать вручную, действительно, тяжело. ))

Поэтому сделаем так.
Сгенерируем файл ppp.port в котором и укажем все ваши перенаправления и порты.

perl -le 'for (30000..35000){print "nat port tcp 10.0.1.10:$_ $_"}' >/etc/ppp/ppp.port

Прописываем включение этого файла в основном кофигурационном файле ppp.conf
Пробела или tab вначале быть не должно! Это важно.
!include /etc/ppp/ppp.port

А можно поступить по другому, использовать для поднятия pppoe не ppp а mpd установив его предварительно из портов.
Это будет лучше.

Устанавливаем mpd
cd /usr/ports/net/mpd5/
make install clean
rehash
cd /usr/local/etc/mpd5/
ee mpd.conf

startup:
        # configure mpd users
        set user foo bar admin
        set user foo bar
        # configure the console
        set console self 127.0.0.1 5005
        set console open
        # configure the web server
        set web self 0.0.0.0 5006
        set web open

default:
        # MY PPPOE
        load pppoe0

pppoe0:
        create bundle static B1
        set iface route default
        set iface up-script "/usr/local/etc/mpd5/ng0_up.sh"
        set iface down-script "/usr/local/etc/mpd5/ng0_down.sh"
        set ipcp ranges 0.0.0.0/0 0.0.0.0/0

        create link static L1 pppoe
        set link action bundle B1

        # username and password for pppoe
        set auth authname "username"
        set auth password "password"

        set link max-redial 0
        set link mtu 1492
        set link keep-alive 5 15
        set pppoe iface bge0
        open

cat /usr/local/etc/mpd5/ng0_up.sh

#!/bin/sh


/sbin/ipfw -q add 50 nat 1 all from any to any via ng0
/sbin/ipfw -q nat 1 config log if ng0 redirect_port tcp 10.0.1.10:30000-35000 30000-35000

cat /usr/local/etc/mpd5/ng0_down.sh

#!/bin/sh


/sbin/ipfw -q delete 50
/sbin/ipfw -q nat 1 delete

Здесь используется nat (!не natd)
Если будете пробовать по этому варианту, то вам надо убрать правила, относящиеся к natd
Если в ядре нет поддержки nat, обеспечить загрузку необходимых модулей.
Но лучше вкомпилить в ядро NAT и NETGRAPH

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру