Имя: Пароль:
1C
1С v8
iptables descr=11001 (0x00002AF9)
0 kozanostra
 
26.10.20
07:55
Здравствуйте!
Как пробросить 1с тонких/толстых клиентов через nat?
Есть две сети у каждой свои шлюзы, днс и т.д. между ними комп на debian для проброса сервисов.
Нужно, чтоб комп-клиент обращался на компьютер разделяющий сети попадал на 1с сервер.
Написал правила
iptables -t nat -A PREROUTING -p tcp -d 10.0.0.71 -m  multiport --dport 135,475,1540,1541,1560:1591 -j DNAT --to-destination 10.20.20.70
iptables -t nat -A POSTROUTING -p tcp --dst 10.20.20.0/24 -j SNAT --to 10.20.20.71
но получаю ошибку descr=11001 (0x00002AF9)
Как побороть?
RemoteApps, RDP, VNC, Vlan, Web, Route не предлагать. Хочется именно проброс, чтоб ip одной сети не фигурировали во второй.
1 unbred
 
26.10.20
08:23
первая строчка гугла говорит, что надо в hosts добавить твой IP.
2 vbus
 
26.10.20
08:57
А у тебя  Established разрешено между интерфейсами? 1с на чем стоит на windows? там firewall на эти порты открыт?
3 kozanostra
 
26.10.20
09:30
> первая строчка гугла говорит, что надо в hosts добавить твой IP.
Это да, но тогда будет обращение из сети 10.0.0.0 в сеть 10.20.20.0 , а так не надо
Или вариант на разделяющем компе?

>А у тебя  Established разрешено между интерфейсами?
Принудительно Established нет, но если писать
iptables -t nat -A PREROUTING -p tcp -d 10.0.0.71 -m  multiport --dport 3389 -j DNAT --to-destination 10.20.20.70
iptables -t nat -A POSTROUTING -p tcp --dst 10.20.20.0/24 -j SNAT --to 10.20.20.71
то другие сервисы работают.

>1с на чем стоит на windows?
windows server standart 2019

>там firewall на эти порты открыт?
да, все кто в его сети нормально подключаются
4 vbus
 
26.10.20
09:57
1 На всякий случай проверь nmap 10.20.20.70 -p 1500-1600 , увидишь порты открытые(вдруг там 1542)
2 посмотри счетчики iptables -L -nv --line-numbers -t nat , если счетчики по 0, то до правила пакеты не доходят, а если не нули, скорее всего firewall на windows, ну или ищи почему пакеты не доходят.
5 Fedor-1971
 
26.10.20
10:17
(3) Погоди, а сколько я помню, 1С сервер получает запросы на один порт, а отвечает с другого
т.е. тебе нужно прописать 2 правила:
1) 71: порт ХХХХ - отправить на IP: 1540
2) IP: 1541 - отдать попросителю, т.е. твоей сети 10.20 . . .
6 Fedor-1971
 
26.10.20
10:25
5+ Если эти сети физически находятся в одном месте (без выхода в дикий интернет)
просто пропиши route table для сетей на 71 компе, они тупо будут видеть друг друга
7 kozanostra
 
27.10.20
14:19
Большое спасибо отписавшимся, за участие.
Проблема решена.
На разделяющем сети компьютере:
iptables -t nat -A PREROUTING -p tcp -d 10.0.0.71 -m  multiport --dport 135,475,1540,1541,1560:1591 -j DNAT --to-destination 10.20.20.70
iptables -t nat -A POSTROUTING -p tcp --dst 10.20.20.0/24 -j SNAT --to 10.20.20.71
На клиенте:
в hosts
ip указываем разделяющего сервера, а dns-имя 1с сервера.
10.0.0.71    1c_srw-comp

схематически выглядит вот так:
(user-comp 10.0.0.121)-->(eth1 10.0.0.71--nat--10.20.20.71 eth0)-->(1c_srw-comp 10.20.20.70)
В результате 10.0.0.121 думает, что общается с 10.0.0.71, а 10.20.20.70 думает, что общается с 10.20.20.71 и ни какой каши и мусора между сетями. В tcpdump в каждой сети только свое адресное пространство, чего не было бы при прописывании route-ов
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.