Добрый день. Настраивал свои устройства и знакомился с RouterOS по вашему сайту. Большое спасибо за то, что пишете статьи с решениями. Есть нерешенная задача (неделю бьюсь): Сервер OVPN (mikrotik RB751G-2HnD): белый IP на wan сеть 192.168.44.0\24 Клиент 01 (mikrotik mAP): серый IP на wan сеть 192.168.41.0\24 сеть ovpn 192.168.40.0\24 Клиент 04 (устройство iOS) Задача, чтобы клиент 04 смог попадать в сеть клиента 01. Клиент 01 отлично пингует устройства в сети сервера. Клиент 04 тоже пингует устройства в сети сервера. Сервер пингует устройства сети клиента 01. Клиент 04 не пингует устройства сети клиента 01. Выдержки из конфигураций. Сервер: /interface ovpn-server add name=ovpn-client01 user=client01 add name=ovpn-client04 user=client04 /ppp profile add local-address=192.168.40.1 name=ovpn-profile remote-address=ovpn-pool use-encryption=required /interface ovpn-server server set certificate=cert_2 cipher=blowfish128,aes128,aes192,aes256 default-profile=ovpn-profile enabled=yes netmask=30 require-client-certificate=yes /ip firewall filter add chain=input comment=ovpn dst-port=1194 protocol=tcp add chain=input comment=Ping protocol=icmp add chain=forward log-prefix=ping protocol=icmp add chain=input comment="Established connections" connection-state=established add chain=forward connection-state=established add chain=input comment="Related connections" connection-state=related add chain=forward connection-state=related add action=drop chain=input comment="Invalid connections" connection-state=invalid add action=drop chain=forward connection-state=invalid add chain=input comment=UDP protocol=udp add chain=forward protocol=udp add chain=forward comment="Access to Internet from local network" in-interface=bridge-local src-address=192.168.44.0/24 add chain=input comment="ovpn traffic" in-interface=ovpn-client01 add chain=forward in-interface=ovpn-client01 add action=drop chain=input comment=BOGOM in-interface=eth1 src-address-list=BOGON add action=drop chain=input comment="All other" add action=drop chain=forward /ip firewall nat add action=masquerade chain=srcnat comment="default configuration" out-interface=eth1 add action=log chain=dstnat in-interface=ovpn-client04 /ip route add distance=1 dst-address=192.168.41.0/24 gateway=ovpn-client01 /ppp secret add local-address=192.168.40.5 name=client01 password=*** profile=ovpn-profile remote-address=192.168.40.6 service=ovpn add local-address=192.168.40.17 name=client04 password=*** profile=ovpn-profile remote-address=192.168.40.18 service=ovpn add disabled=yes local-address=192.168.40.9 name=client02 remote-address=192.168.40.10 service=ovpn add disabled=yes local-address=192.168.40.13 name=client03 remote-address=192.168.40.14 service=ovpn Клиент 01: /interface ovpn-client add certificate=cert_2 cipher=aes256 connect-to=*.*.*.* mac-address=* name=ovpn-client password=*** user=client01 /ip firewall filter add chain=input comment="Allow Ping" protocol=icmp add chain=forward protocol=icmp add chain=input comment="Accept established connections" connection-state=established add chain=forward connection-state=established add chain=input comment="Accept related connections" connection-state=related add chain=forward connection-state=related add action=drop chain=input comment="Drop invalid connections" connection-state=invalid add action=drop chain=forward connection-state=invalid add chain=input comment="Allow UDP" protocol=udp add chain=forward protocol=udp add chain=forward comment="Access to Internet from local network" in-interface=bridge-local src-address=192.168.41.0/24 add chain=input comment="ovpn traffic" in-interface=ovpn-client add chain=forward in-interface=ovpn-client add action=drop chain=input comment=BOGON in-interface=eth1 src-address-list=BOGON add action=drop chain=input comment=All add action=drop chain=forward /ip firewall nat add action=masquerade chain=srcnat comment="default configuration" out-interface=eth1 /ip route add distance=1 dst-address=192.168.44.0/24 gateway=ovpn-client Клиент 04 (iOS): verb 3 remote *.*.*.* 1194 client tls-client dev tun proto tcp resolv-retry infinite nobind persist-key persist-tun float pkcs12 clien04.p12 client-to-client route 192.168.41.0 255.255.255.0 route 192.168.44.0 255.255.255.0 auth-user-pass Думается мне, что не хватает одной строчки настройки ната в конфигурации сервера. Подскажите куда смотреть, пожалуйста.
Попробуйте на клиенте 1 add distance=1 dst-address=192.168.40.0/24 gateway=ovpn-client Вообще при роутенге, на стороне сервера маршруты на клиента правильно прописывать в поле routes в /ppp secret Тогда при подключении интерфейса маршрут автоматически добавится в таблицу маршрутизации.
Илья, спасибо. Помогло. Пинг пошел от клиента 4 до устройств за клиентом 1. Но только пинг. Видимо, правило для файрвола надо добавить. Буду разбираться. >> Вообще при роутенге, на стороне сервера маршруты на клиента правильно прописывать в поле routes в /ppp secret Я тоже думал так упростить себе жизнь, но вики.микротик вот что пишет: "Routes that appear on the server when the client is connected. The route format is: dst-address gateway metric (for example, 10.1.0.0/ 24 10.0.0.1 1). Several routes may be specified separated with commas. This parameter will be ignored for OpenVPN."
Подождите, пинг пошел значит tcp-ip пакеты идут. Если не видно клиентов других сетей но есть пинг - не идут широковещательные пакеты до удаленной сети. Попробуйте зайти по ip адресу удаленного компьютера. Если зайдет - проблема именно в этом. OVPN работает в двух режимах, IP (уровень 3 сетевой модели OSI) и ETHERNET (уровень 2 OSI). Переключите оба конца OVPN в ETHERNET режим.
Илья, снова к вам вопрос. Попытка пробросить порт на устройство в сети ovpn-клиента через белый ip сервера ovpn. Если проброс на устройство в сети сервера, то всё отлично. /ip firewall nat print chain=dstnat action=dst-nat to-addresses=192.168.44.90 to-ports=80 protocol=tcp in-interface=eth1-wan dst-port=4444 Если проброс на аналогичное устройство в сети ovpn-клиента client1, то не работает. /ip firewall nat print chain=dstnat action=dst-nat to-addresses=192.168.41.90 to-ports=80 protocol=tcp in-interface=eth1-wan dst-port=5555 При это в ip firewall connections client1 появляется строка в момент запроса: Src.Address 213.87.162.31:27700 Dst. Address 192.168.41.96:80 TCP State sun received 213.87.162.31 это ip смартфона, с которого пытаюсь извне достучаться. Запрос через браузер 1.1.1.1:5555. Откуда 27700 мне непонятно. Трафик между клиентами и сервером и между клиентами ходит отлично. Илья, подскажите, пожалуйста, куда смотреть?
Скорее всего у вас ситуация такова. Сервер прокинул пакет до клиента, но у того свой шлюз по умолчанию. На стороне клиента надо в mangle prerouting 1. Маркируем соединение как-то, если in-interface=ovpn-client 2. Маркируем маршрут, если connection-name=тому что мы задали в (1) далее в /ip route добавляем, что-то типа /ip route add gateway=ovpn-client(или локальный адрес сервера) route-mark=то что задано в (2) Т.е. добиваемся того, чтобы пакет придя по VPN, ушел назад туда же.
Не получилось. /ip firewall mangle chain=prerouting action=mark-connection new-connection-mark=vpn_conn passthrough=yes dst-address=192.168.41.90 in-interface=ovpn-client // без dst-address=192.168.41.90 вообще перестали работать маршруты через oven канал chain=prerouting action=mark-routing new-routing-mark=vpn_route_in passthrough=yes connection-mark=vpn_conn /ip route gateway=ovpn-client@main routing-mark=vpn_route_in distance=1 dst-address=0.0.0.0/0 Пробовал маркировать весь трафик устройства 192.168.41.90 и отправлять через ovpn канал на шлюз сервера - тоже не помогло. Может ошибка где-то?
Код: /ip firewall mangle Нам достаточно маркировать соединение по интерфейсу. Код: chain=prerouting action=mark-connection new-connection-mark=vpn_conn passthrough=yes in-interface=ovpn-client Здесь правильно Код: chain=prerouting action=mark-routing new-routing-mark=vpn_route_in passthrough=yes connection-mark=vpn_conn Логично еще на output то же самое навесить Код: chain=output action=mark-routing new-routing-mark=vpn_route_in passthrough=yes connection-mark=vpn_conn Код: /ip route gateway=ovpn-client routing-mark=vpn_route_in distance=1 dst-address=0.0.0.0/0 Откуда у вас конструкция @main взялась непонятно. Она здесь не нужна.