The OpenNET Project / Index page

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

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

"TFTPD клиент и сервер в разных подсетях"  +/
Сообщение от zaza11 (ok) on 21-Июл-12, 13:06 
Как я понял проходит запрос а данные не идут. Как быть? Поместить tftpd и клиентов в одной подсети невозможно.
Ответить | Правка | Cообщить модератору

Оглавление

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


1. "TFTPD клиент и сервер в разных подсетях"  +/
Сообщение от bill (ok) on 21-Июл-12, 22:15 
> Как быть?

SNAT, DNAT


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "TFTPD клиент и сервер в разных подсетях"  +/
Сообщение от zaza11 (ok) on 21-Июл-12, 23:06 
>> Как быть?
> SNAT, DNAT

Так белые сети и там и там, не совсем понимаю как мне поможет nat.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "TFTPD клиент и сервер в разных подсетях"  +/
Сообщение от LSTemp (ok) on 21-Июл-12, 23:49 
>>> Как быть?
>> SNAT, DNAT
> Так белые сети и там и там, не совсем понимаю как мне
> поможет nat.

что tftn-сервер и прям в инет глядид без всяких ограничений? и клиент тоже?

что прям вот такая схема соединения выходит?:
[tftp-servet WAN_IP1]-[inet]-[WAN_IP2 tftp-client]

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "TFTPD клиент и сервер в разных подсетях"  +/
Сообщение от LSTemp (ok) on 21-Июл-12, 23:53 
> Как я понял проходит запрос а данные не идут.

а как понял?

>Как быть?

может для начала маршруты в обе стороны проверить?

>Поместить tftpd и клиентов в одной подсети невозможно.

Дайте названия OC на сервере и клиенте. Так же названия tftp-программ на сервере и клиенте.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "TFTPD клиент и сервер в разных подсетях"  +/
Сообщение от zaza11 (ok) on 22-Июл-12, 16:09 
>> Как я понял проходит запрос а данные не идут.
> а как понял?
>>Как быть?
> может для начала маршруты в обе стороны проверить?
>>Поместить tftpd и клиентов в одной подсети невозможно.
> Дайте названия OC на сервере и клиенте. Так же названия tftp-программ на
> сервере и клиенте.

tftpd стандартный freebsd, с другой стороны пробовал много чем. Например winagents tftp client. Понял, потому что запущен сервер в режиме создание новых файлов при их отсутствии, и при попытке сделать put он создает требуемый файл, а вот данные в него не грузит.

И кстати да, я наврал - нат таки есть. Попробовал просто с белыми адресами - всё ходит. В итоге и правда трабл с натом, но мне не совсем понятно что делать.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "TFTPD клиент и сервер в разных подсетях"  +/
Сообщение от LSTemp (ok) on 23-Июл-12, 01:54 
>[оверквотинг удален]
>>>Поместить tftpd и клиентов в одной подсети невозможно.
>> Дайте названия OC на сервере и клиенте. Так же названия tftp-программ на
>> сервере и клиенте.
> tftpd стандартный freebsd, с другой стороны пробовал много чем. Например winagents tftp
> client. Понял, потому что запущен сервер в режиме создание новых файлов
> при их отсутствии, и при попытке сделать put он создает требуемый
> файл, а вот данные в него не грузит.
> И кстати да, я наврал - нат таки есть. Попробовал просто с
> белыми адресами - всё ходит. В итоге и правда трабл с
> натом, но мне не совсем понятно что делать.

после установки связи на стандартный порт 69 и получения команды, для передачи/приема данных tftp-сервер выбирает произвольный UDP-порт. этот порт скорее всего закрыт по умолчанию в ipfw для входящих пакетов (посылаемых клиентом для передачи данных). => надо подгружать модули сетевого фильтра для поддержки этого протокола.

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

PS
ИМХО Вам просто надо нагуглить нужный модуль и подгрузить его.


Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "TFTPD клиент и сервер в разных подсетях"  +/
Сообщение от zaza11 (ok) on 23-Июл-12, 10:51 
>[оверквотинг удален]
> после установки связи на стандартный порт 69 и получения команды, для передачи/приема
> данных tftp-сервер выбирает произвольный UDP-порт. этот порт скорее всего закрыт по
> умолчанию в ipfw для входящих пакетов (посылаемых клиентом для передачи данных).
> => надо подгружать модули сетевого фильтра для поддержки этого протокола.
> я по bsd не спец - не могу точно сказать, что сделать,
> но проблема очевидно в этом. т.е какой-то модуль ядра или ipfw
> должен отслеживать командный канал по порту 69 и автоматически открывать порт
> для связанных соединений на пердачу данных.
> PS
> ИМХО Вам просто надо нагуглить нужный модуль и подгрузить его.

Всё верно, и с этого произвольного порта идет попытка ответить клиенту, а нат не знает куда транслировать этот ответ, т.к. у него в таблице трансляции есть только 69 порт. Походу решением тут будет заставить сервер отвечать тоже по 69 порту. Вот только какой демон tftpd под фрибсд так умеет?

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "TFTPD клиент и сервер в разных подсетях"  +/
Сообщение от LSTemp (ok) on 23-Июл-12, 23:56 
>[оверквотинг удален]
>> но проблема очевидно в этом. т.е какой-то модуль ядра или ipfw
>> должен отслеживать командный канал по порту 69 и автоматически открывать порт
>> для связанных соединений на пердачу данных.
>> PS
>> ИМХО Вам просто надо нагуглить нужный модуль и подгрузить его.
> Всё верно, и с этого произвольного порта идет попытка ответить клиенту, а
> нат не знает куда транслировать этот ответ, т.к. у него в
> таблице трансляции есть только 69 порт. Походу решением тут будет заставить
> сервер отвечать тоже по 69 порту. Вот только какой демон tftpd
> под фрибсд так умеет?

никакой. tftp-сервер не может использовать порт 69 для передачи данных - это порт для передачи команд от пользователя. если сервер будет использовать данный порт для передачи данных, то на все время передачи он будет заблокирован и другой пользователь не сможет соединиться с сервисом. поэтому после получения команды ч/з порт 69 сервер для передачи данных открывает произвольный порт и обмен данными идет уже по нему. это специфика протокола: есть командный порт 69 (для установки соединения с сервером и пердачи ему команд) и есть порт для передачи данных (который в общем случае выбирается произвольно).

Еще раз: все что Вам нужно сделать - это подгрузить соответствующий модуль. Related connections и lsmod Вам о чем-нибудь говорит?

Покажу со своего линукса про ФТП, чтоб понятней было:

- тупо смотрю в каталоге модулей моего сетевого фильтра, есть ли что про ftp:

[root@localhost netfilter]# ls /usr/lib/modules/3.4.6-2.fc17.i686.PAE/kernel/net/ipv4/netfilter|grep ftp
nf_nat_ftp.ko
^^^^^^^^^^^^^
nf_nat_tftp.ko

- смотрю какие модули для ftp подгружены в данный момент:

[root@localhost netfilter]# lsmod|grep ftp
nf_nat_ftp             12645  0
^^^^^^^^^^^^^^
nf_conntrack_ftp       14007  1 nf_nat_ftp
nf_nat                 24339  2 nf_nat_ftp,iptable_nat
nf_conntrack           71517  6 nf_nat_ftp,nf_nat,xt_state,nf_conntrack_ftp,iptable_nat,nf_conntrack_ipv4

как видите, для решения подобной же проблемы при работе с FTP, у меня подгружен соответствующий модуль - nf_nat_ftp. он тянет за собой загрузку зависимых модулей -  в частности nf_conntrack_ftp. эти модули отслеживают какой порт сервер выбрал для обмена данными с конкретным клиентом и автоматом открывают его для пакетов, приходящих с адреса клиента. вот так (упрощенно) это работает.

как видите модуль nf_nat_tftp в моей системе тоже есть - можно использовать при желании.

где это во free расположено и как запускается при старте системы - спрашивайте у знатоков ОС (ну или гуглите - вроде я уже все что можно разжевал)

PS
возможен костыльный вариант: если конфигурация tftp-сервера разрешает указать диапазон портов, используемый для передачи данных, то можете просто эти порты открыть в ipfw для всех и навсегда (но тогда - Вы сам себе злобный буратино :).

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "TFTPD клиент и сервер в разных подсетях"  +/
Сообщение от Andrey Mitrofanov on 24-Июл-12, 09:50 
> Еще раз: все что Вам нужно сделать - это подгрузить соответствующий модуль.
> Related connections и lsmod Вам о чем-нибудь говорит?

...""в разных подсетях (FTP / FreeBSD)"" ///Как у них <<-"там" с conntracker-ами??

> [root@localhost netfilter]# ls /usr/lib/modules/3.4.6-2.fc17.i686.PAE/kernel/net/ipv4/netfilter|grep
> ftp
> nf_nat_ftp.ko
> ^^^^^^^^^^^^^
> nf_nat_tftp.ko

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "TFTPD клиент и сервер в разных подсетях"  +/
Сообщение от LSTemp (ok) on 25-Июл-12, 10:24 
> ...""в разных подсетях (FTP / FreeBSD)"" ///Как у них <<-"там" с conntracker-ами??

понятия не имею. я пояснил на пальцах как работает tftp и как это реализовано в Linux. Как на Free  - не знаю (может там весь conntrack на отдельным демоне висит - хз). Я направление поиска дал - дальше дело знатоков данной ОС, если что-то добавят по конкретной реализации.

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "TFTPD клиент и сервер в разных подсетях"  +/
Сообщение от lavr email on 25-Июл-12, 17:51 
>> ...""в разных подсетях (FTP / FreeBSD)"" ///Как у них <<-"там" с conntracker-ами??
> понятия не имею. я пояснил на пальцах как работает tftp и как
> это реализовано в Linux. Как на Free  - не знаю
> (может там весь conntrack на отдельным демоне висит - хз). Я
> направление поиска дал - дальше дело знатоков данной ОС, если что-то
> добавят по конкретной реализации.

tftp везде одинаково работает, во freebsd нет модулей а-ля conntrack,
можно посмотреть в сторону tftp-proxy + pf для случая с NAT

гонять tftp через NAT... :(

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. "TFTPD клиент и сервер в разных подсетях"  +/
Сообщение от zaza11 (ok) on 26-Июл-12, 16:31 
Всем большое спасибо. Особенно LSTemp.
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

14. "TFTPD клиент и сервер в разных подсетях"  +/
Сообщение от LSTemp (ok) on 27-Июл-12, 03:24 
> Всем большое спасибо. Особенно LSTemp.

вообще-то действительно странно... обычно tftp используют для снятия конфигов с оборудования и оно (как првило) расположено в той же сети. м/ду сетями для этих целей обычно пользуют ssh (или телнет по тунелю в крайнем случае). Вы уврены, что Вам именно tftp нужен? Без него никак?

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

13. "TFTPD клиент и сервер в разных подсетях"  +/
Сообщение от LSTemp (ok) on 27-Июл-12, 03:13 
>>> ...""в разных подсетях (FTP / FreeBSD)"" ///Как у них <<-"там" с conntracker-ами??
>> понятия не имею. я пояснил на пальцах как работает tftp и как
>> это реализовано в Linux. Как на Free  - не знаю
>> (может там весь conntrack на отдельным демоне висит - хз). Я
>> направление поиска дал - дальше дело знатоков данной ОС, если что-то
>> добавят по конкретной реализации.
> tftp везде одинаково работает, во freebsd нет модулей а-ля conntrack,
> можно посмотреть в сторону tftp-proxy + pf для случая с NAT
> гонять tftp через NAT... :(

спасибо, lavr.


Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

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

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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