LINUX.ORG.RU
ФорумAdmin

доступ из локальной сети через iptables nat к сетевой папке windows


0

2

Здравствуйте!

На работе столкнулись с проблемой. Локальная сеть нашей лаборатории подключена к сети нашего института через linux роутер, ОС ubuntu server 8, через snat. Из лабораторной сети нужен доступ доступ в институтскую сеть к серверу базы данных, ОС windows 2000 server. Столкнулись с проблемой, когда из лабораторной сети одновременно невозможно подключиться к серверу более чем одному компьютеру. Когда подключается второй компьютер, соединение с первым разрывается. Выяснили, что проблема не в базе данных и не в конкретном windows сервере — достаточно одновременно двум компьютерам из нашей сети обратиться к одному и тому же файлу на любом windows компьютере в институтской сети, скажем начать копирование, и тогда соединение с тем, кто начал копирование раньше, разрывается с ошибкой «Сетевое имя не может быть найдено». Внутри сети института таких проблем нет. Может ли быть такое из-за nat? Сейчас наш роутер пропускает всё, и добавлено лишь правило для nat:

# laboratory network: 192.168.0.0/255.255.0.0 lan0
# institute network: 10.2.0.0/255.255.0.0 lan1 our IP 10.2.0.41
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
# Set up nat on institute interface
iptables -t NAT -A POSTROUTING -o lan1 -j SNAT --to 10.2.0.41


для виндошаринга порт надобно открыть. //тред не читал

dada ★★★★★
()

Столкнулись с проблемой, когда из лабораторной сети одновременно невозможно подключиться к серверу более чем одному компьютеру. >Когда подключается второй компьютер, соединение с первым разрывается
Может ли быть такое из-за nat?

да. ИМХО NAT в пределах сети одной организации не нужен - он чреват костылями когда нужно задействовать что-то отличное от простых сетевых протоколов

Pinkbyte ★★★★★
()

Модули трекеров нужных протоколов загружены?
Что-типа nf_conntrack_*, в зависимости от версии ядра.

madcore ★★★★★
()

А просто прописать маршруты в институтскую подсеть на сервере не проще?

Fletch ★★
()

Всем спасибо за ответы.

@Fletch: роутинг настроить можно бы, но для этого пришлось бы менять все адреса внутри лабораторной сети, с 192.168.* на 10.*. Ради всего одной базы данных этого не хочется.

@madcore: да, nf_nat, nf_conntrack_ipv4, nf_conntrack загружены.

@Pinkbyte: совершенно верно, в конце концов пришлось применить костыли.

Оказалось, что протокол SMB не совместим с NAT: http://www.nynaeve.net/?p=93. То есть из-за NAT одновременно к windows серверу может обращаться только один клиент, если пытается обратиться второй, то соединение с первым, или с обоими сервер разрывает. В качестве решения предлагают либо делать NAT на пул IP адресов, чтобы каждый клиент после NAT имел свой IP-адрес, либо запретить direct hosting, запретив обращение клиентов на порт 445. Тогда клиенты переходят на общение с сервером по NetBIOS через TCP/IP, и это нормально работает с NAT. Я запретил direct hosting, теперь наши клиенты в любом количестве могут соединяться с базой данных.

Whenever a new transport-layer connection is created, the client is supposed to assign a new VC number. Note that the VcNumber on the initial connection is expected to be zero to indicate that the client is starting from scratch and is creating a new logical session. If an additional VC is given a VcNumber of zero, the server may assume that any existing connections with that same client are now bogus, and shut them down.

Why do such a thing?

The explanation given in the LANMAN documentation, the Leach/Naik IETF draft, and the SNIA doc is that clients may crash and reboot without first closing their connections. The zero VcNumber is the client’s signal to the server to clean up old connections. Reasonable or not, that’s the logic behind it. Unfortunately, it turns out that there are some annoying side-effects that result from this behavior. It is possible, for example, for one rogue application to completely disrupt SMB filesharing on a system simply by sending Session Setup requests with a zero VcNumber. Connecting to a server through a NAT (Network Address Translation) gateway is also problematic, since the NAT makes multiple clients appear to be a single client by placing them all behind the same IP address.

mvm
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.