The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"PortMapping в локальный интерфейс."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"PortMapping в локальный интерфейс."  
Сообщение от Иной on 05-Ноя-07, 20:01 
Есть подсеть: 40.0.0.0-40.0.0.100 на интерфейсе rl1
Есть внешний канал от ISP, с IP: 255.255.255.255 на интерфейсе rl0

Есть сервер под FreeBSD 6.2, на котором настроена связка NATD+ipfw и маппинг портов:

redirect_port 40.0.0.3:8081 8081
redirect_port 40.0.0.4:80 80

Маппинг работает, но только для запросов, приходящих из вне. 40.0.0.* он игнорирует.

На компьютерах пользователей установлено приложение, которое обращается на 255.255.255.255:8081.

Задача:
При обращении пользователей из 40.0.0.* на 255.255.255.255 и указанные выше порты, разворачивать их согласно портмаппингу.

Как?

сразу говорю, что нельзя сменить приложение. не вариант.

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "PortMapping в локальный интерфейс."  
Сообщение от DN (ok) on 06-Ноя-07, 12:13 
>[оверквотинг удален]
>
>Маппинг работает, но только для запросов, приходящих из вне. 40.0.0.* он игнорирует.
>
>
>На компьютерах пользователей установлено приложение, которое обращается на 255.255.255.255:8081.
>
>Задача:
>При обращении пользователей из 40.0.0.* на 255.255.255.255 и указанные выше порты, разворачивать
>их согласно портмаппингу.
>Как?

Пакеты из 40.0.0.* не проходят через natd , поэтому и нет портмапинга .
Сделайте так, чтобы пакеты шли через natd , то есть шли на адрес ISP rl0 .

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "PortMapping в локальный интерфейс."  
Сообщение от Иной on 06-Ноя-07, 19:26 
>[оверквотинг удален]
>>
>>Задача:
>>При обращении пользователей из 40.0.0.* на 255.255.255.255 и указанные выше порты, разворачивать
>>их согласно портмаппингу.
>>Как?
>
>Пакеты из 40.0.0.* не проходят через natd , поэтому и нет портмапинга
>.
>Сделайте так, чтобы пакеты шли через natd , то есть шли на
>адрес ISP rl0 .

Обращения от 40.0.0.* и идут на адрес ИСП. Только НАТД все равно их пропускает.. Как настроить, что-бы видел?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "PortMapping в локальный интерфейс."  
Сообщение от Иной on 10-Ноя-07, 16:47 
>[оверквотинг удален]
>>>их согласно портмаппингу.
>>>Как?
>>
>>Пакеты из 40.0.0.* не проходят через natd , поэтому и нет портмапинга
>>.
>>Сделайте так, чтобы пакеты шли через natd , то есть шли на
>>адрес ISP rl0 .
>
>Обращения от 40.0.0.* и идут на адрес ИСП. Только НАТД все равно
>их пропускает.. Как настроить, что-бы видел?

актуально
прочитал ворох форумов, нет ответа...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "PortMapping в локальный интерфейс."  
Сообщение от DN (ok) on 10-Ноя-07, 20:45 
>>Пакеты из 40.0.0.* не проходят через natd , поэтому и нет портмапинга
>>.
>>Сделайте так, чтобы пакеты шли через natd , то есть шли на
>>адрес ISP rl0 .
>
>Обращения от 40.0.0.* и идут на адрес ИСП. Только НАТД все равно
>их пропускает.. Как настроить, что-бы видел?

ipfw sh  в студию.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "PortMapping в локальный интерфейс."  
Сообщение от Иной on 10-Ноя-07, 21:28 
>>>Пакеты из 40.0.0.* не проходят через natd , поэтому и нет портмапинга
>>>.
>>>Сделайте так, чтобы пакеты шли через natd , то есть шли на
>>>адрес ISP rl0 .
>>
>>Обращения от 40.0.0.* и идут на адрес ИСП. Только НАТД все равно
>>их пропускает.. Как настроить, что-бы видел?
>
>ipfw sh  в студию.

firewall.sh

### Allow NATD ###
/sbin/ipfw add divert natd ip from 40.0.0.0/24 to any out via rl0
/sbin/ipfw add divert natd ip from any to 212.49.120.132 in via rl0
/sbin/ipfw add pass all from any to any via rl1
/sbin/ipfw add allow ip from any to any via rl0
/sbin/ipfw add allow ip from any to any via lo0

natd.conf:

redirect_port tcp 40.0.0.33:2109 2109
redirect_port tcp 40.0.0.33:7769 7769
redirect_port tcp 40.0.0.33:2104 2104

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "PortMapping в локальный интерфейс."  
Сообщение от DN (??) on 11-Ноя-07, 00:43 
>[оверквотинг удален]
>>>
>>>Обращения от 40.0.0.* и идут на адрес ИСП. Только НАТД все равно
>>>их пропускает.. Как настроить, что-бы видел?
>>
>>ipfw sh  в студию.
>
>firewall.sh
>
>### Allow NATD ###
>/sbin/ipfw add divert natd ip from 40.0.0.0/24 to any out via rl0

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Что и следовало ожидать.
Пакеты из  40.0.0.0/24 не попадут в это правило, а следовательно и не
будет портмапинга. Эти пакеты должны будут проследовать в upper layers
стека TCP/IP ядра.  

Из man ipfw:
      ^    to upper layers    V          
      |                       |          
      +----------->-----------+          
      ^                       V          
[ip(6)_input]           [ip(6)_output]  
      |                       |          
      ^                       V          
[ether_demux]        [ether_output_frame]
      |                       |          
      +-->--[bdg_forward]-->--+          
                                        
      ^                       V          
      |      to devices       |          

Надо добавить, что-то типа  (sorry, не тестировал решение, так как у вас адрес
255.255.255.255  - limited broadcast ):
/sbin/ipfw add divert natd ip from 40.0.0.0/24 to 255.255.255.255 8081 in via rl1
/sbin/ipfw add divert natd ip from 212.49.120.132 8081 to 40.0.0.0/24 out via rl1

Надо Вам почитать RFC1812:
5.3.5.1 Limited Broadcasts
Limited broadcasts MUST NOT be forwarded.  
....
5.3.5.2 Directed Broadcasts
  
С учетом этих положений Вам может удаться справиться с задачей.
  
>[оверквотинг удален]
>
>/sbin/ipfw add pass all from any to any via rl1
>/sbin/ipfw add allow ip from any to any via rl0
>/sbin/ipfw add allow ip from any to any via lo0
>
>natd.conf:
>
>redirect_port tcp 40.0.0.33:2109 2109
>redirect_port tcp 40.0.0.33:7769 7769
>redirect_port tcp 40.0.0.33:2104 2104

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "PortMapping в локальный интерфейс."  
Сообщение от Иной on 11-Ноя-07, 10:59 
>[оверквотинг удален]
>>
>>/sbin/ipfw add pass all from any to any via rl1
>>/sbin/ipfw add allow ip from any to any via rl0
>>/sbin/ipfw add allow ip from any to any via lo0
>>
>>natd.conf:
>>
>>redirect_port tcp 40.0.0.33:2109 2109
>>redirect_port tcp 40.0.0.33:7769 7769
>>redirect_port tcp 40.0.0.33:2104 2104

Да я 255.255.255.255 от балды написал :)
Имея ввиду "какой-то IP адрес"

На деле другой IP, 212.49.120.132

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "PortMapping в локальный интерфейс."  
Сообщение от DN (ok) on 11-Ноя-07, 13:22 
>Да я 255.255.255.255 от балды написал :)
>Имея ввиду "какой-то IP адрес"
>
>На деле другой IP, 212.49.120.132

Однако, какой Вы шутник!?
255.255.255.255 - адрес для определенных целей.

Замените 255.255.255.255 на 212.49.120.132 .

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "PortMapping в локальный интерфейс."  
Сообщение от Иной on 11-Ноя-07, 18:52 
>>Да я 255.255.255.255 от балды написал :)
>>Имея ввиду "какой-то IP адрес"
>>
>>На деле другой IP, 212.49.120.132
>
>Однако, какой Вы шутник!?
>255.255.255.255 - адрес для определенных целей.
>
>Замените 255.255.255.255 на 212.49.120.132 .
>

Поверьте, я знаю RFC :)

Думал, все поймут. Ладно, ошибся.

/sbin/ipfw add divert natd ip from 40.0.0.0/24 to 212.49.120.132 8081 in via rl1
/sbin/ipfw add divert natd ip from 212.49.120.132 8081 to 40.0.0.0/24 out via rl1

Будет правильно?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "PortMapping в локальный интерфейс."  
Сообщение от DN (ok) on 12-Ноя-07, 12:40 

>/sbin/ipfw add divert natd ip from 40.0.0.0/24 to 212.49.120.132 8081 in via
>rl1
>/sbin/ipfw add divert natd ip from 212.49.120.132 8081 to 40.0.0.0/24 out via
>rl1
>
>Будет правильно?

Что-то типа, тестируйте. Я не могу проверить.
Может Вы еще где не так выразились . :-)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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