Evgeniy Garkov, В конфиге сервера у вас используется опция client-config-dir, следовательно в /etc/openvpn/ccd должны быть файлы конфигурации клиентов. В этом случае для конфигурации сети за клиентом А нужно добавить в его файл конфигурации (в каталоге /etc/openvpn/ccd) опцию: iroute 192.168.1.0 255.255.255.0
Эта опция добавит маршрут на ВПН сервер до сети за клиентом А при подключении клиента. push "route 192.168.31.0 255.255.255.0"
Эта опция добавит маршрут клиенту А до сети за клиентом В.
По идее тут же должна быть опция для назначения статического адреса клиенту А: ifconfig-push 10.8.0.2 255.255.255.0
Без постоянных адресов, настраивать маршрутизацию в других сетях проблематично.
Аналогичные настройки надо сделать и для клиента В.
После добавления этих опций и перезагрузке ВПН в таблицах маршрутизации клиентов и сервера должны добавиться соответствующие маршруты.
Следующий этап - настройка клиентских сетей.
Если клиент А или В каждый в своей сети является шлюзом по умолчанию, то никакой дополнительной настройки сети не нужно.
Если же клиент А или В в своей сети не является шлюзом по умолчанию, то нужно любым доступным способом на все компы сети добавить маршрут к сети соседа через своего клиента. Конечно этот маршрут на самого клиента добавлять не надо. Например для компов в сети за клиентом А нужно добавить маршрут до сети 192.168.31.0/24 шлюзом будет выступать клиент А. Аналогично для сети за клиентом В.
Массово раздать маршрут можно несколькими способами, например: как опция при раздаче IP адресов в DHCP сервере, другой вариант - с помощью GPO, если в сети развернута AD, и т.п.
Кроме того, стоит аналогичным образом добавить маршрут для ВПН (10.8.0.0/24) сети в обоих сетях.
После подобных настроек доступ из одной сети в другую должен работать. Так же должен быть доступ с ВПН сервера в обе сети.
Не забываем про настройку фаерволов как локальных на каждом компе в клиентских подсетях так и на клиенте А/В и на ВПН сервере. Для тестов есть смысл выбрать пару компов внутри сетей и отключить фаерволы на них. После того как маршрутизация заработает, включаем фаерволы и настраиваем правила так, что бы ВПН трафик не блокировался.
Руслан, Да, у вас в локальной репе будет клон оригинального мастера.
Да, в локальной репе будет хранится и ваша ветка.
Локальный репозиторий можно связать с кучей разных удаленных репозиториев. По сути это просто означает, что в конфиг локального репозитория вы добавляете записи о других удаленных репозиториях. И их можно использовать в командах git.
В локальном репозитории настраивается несколько удаленных репозиториев с которыми он может синхронизироваться: git remote --help
При клонировании оригинального репозитория у вас автоматически добавится запись origin с соответствующим URLом. Свой удаленный репозиторий вы должны будете добавить сами через git remote add. Когда на github создаете новый репозиторий, то он там предлагает несколько вариантов инициализации локального репозитория с этим, один из вариантов - команда git remote add, используйте эту подсказку github (если вы его используете).
При обновлении мастера будете указывать origin, при пуше своей ветки - свой удаленный репозиторий.
pfemidi, Можно и merge, главное не менять master.
Но я бы делал интерактивный rebase. Как мне кажется, rebase, в данном случае, выглядит более простым и логичным вариантом.
Evgeniy Garkov, Вариант добавления маршрутов в конфиги зависит от типа конфигурирования клиентов.
Вы используете опцию client-config-dir в конфиге сервера и есть ли у вас файлы конфигурации клиентов в каталоге, указанном в этой опции?
mureevms, Это лишь настройка по умолчанию, которую можно и нужно изменить.
Я обычно использую topology subnet - это создает "обычную" ВПН подсеть, при этом ВПН серверу присваивается первый адрес из этой подсети, а клиентам распределяются остальные. У автора, возможно, настроено так же.
К слову топология по умолчанию объявлена deprecated с версии OpenVPN 2.3.
Вы видите это обилие книг по С++11/14, которые вам накидали тут? Это много говорит о том как быстро выходят книги на русском языке.
К слову книга по моей ссылке в последнем издании 2020 года содержит изменения и С++17. Но их там не много - у меня оба издания есть, могу сравнивать.
Лично мое мнение - самое главное изменение произошло в С++11 - это введение rvalue ссылок и семантика перемещения (это одно изменение) - это описано у Скотта Мейерса хорошо. С++14 только немного дополняет и доводит до ума некоторые вещи из С++11. У Мейерса описаны и другие изменения в С++11/14.
17 и 20 стандарты придется изучать из статей в интернете или из англоязычных книг. В любом случае последние стандарты строятся на предыдущих и они никуда не делись. Тот же С++03 никуда не делся - большая часть языка вполне соответствует С++03.
HoShik, По идее и с указателями должно работать. Возможно указатель надо уменьшать, а не увеличивать. Стек растет в сторону уменьшения адресов (от старших адресов к младшим). Но на какой-то другой платформе (ОС, ЦПУ) это может быть не так, поэтому стоит использовать промежуточную библиотечную прослойку, которая будет реализована правильно для любой платформы.
Но с int и float - это вам надо вернуть как было. Это правильно. В таком виде как сейчас, возможно, будет работать в отдельно взятом примере, но не как общий случай.
Числа с плавающей запятой это всегда приближение, а в вашем случае это приближение может сказаться на том, что вы возьмете лишний аргумент (или наоборот не доберете).
И кто интересно пытается подключиться к этой учетке?
Теоретически, кто-то может пытаться зайти с консоли. Вы же своим подключением его выгнали.
Но, видимо, это не ваш случай.
Ради спортивного интереса, при случае, можете посмотреть, что происходит в это время на консоли сервера, к которому вы таким образом подключаетесь. Если мне память не изменяет винда выдает сообщение о попытке подключиться и там что-то еще о своих действиях, даже если на компе никто не залогинен.
Рад, что удалось натолкнуть на правильную мысль!
sirota, Судя по тому, что вы писали, проблема именно в RDP. Со связью похоже все нормально.
Смотрите журналы винды на события от RDP. На клиенте и на сервере.
sirota, На счет бета-версии прошивки - зря вы так сразу отмахнулись. Стоит проверить - у вас все равно других вариантов пока нет.
У других клиентов RDP такие же проблемы с этими серверами или это только у вас так? Стоит проверить.
Если только у вас, то проблема явно на вашей стороне. Вряд ли все сервера имеют одну и ту же проблему.
Вообще смотрите журналы винды на клиенте и сервере. RDP там что-то должен оставлять в случае сбоя.
FlyServer, Один офис в Москве может по доходам быть равносилен остальному банку. Реальные примеры такого положения вещей из жизни у меня есть.
Не думайте, что аренда выделенного канала стоит космических денег. Нет, для банка вполне доступно, особенно когда речь идет о крупном офисе в Москве.
Когда реально сталкиваешься с необходимостью решить подобную задачу (выбрать какой канал использовать для удаленного офиса), то выбираешь из несколько вариантов, и часто цена вопроса - совсем не основной аргумент чтоб какой-то из вариантов забраковать.
Выделенный канал - обычно это не физический кабель. Канал может быть частью большого и толстого канала оператора. Главное, чтоб трафик внутри нашего канала был логически отделен от другого трафика. Это делается каналообразующей аппаратурой оператора с использованием специализированных протоколов. Обычно из областных центров нет проблем арендовать выделенный канал у крупного оператора федерального уровня в Москву или Питер.
Да, аренда такого канала стоит прилично. Но мы же говорим о банке и Москве. Допустим в Старые Васюки для небольшого офиса такой канал может стать золотым, там будет упрощенная схема через интернет.
Если в Москве будет несколько филиалов, то канал в Краснодар может быть один, в Москве организуется своя корпоративная сеть между филиалами с выходом в один канал.
Кстати, важный вопрос - резервирование. Должны резервироваться/дублироваться основные критически важные сервера/службы, каналы связи, канальное оборудование. Менее важные места должны иметь возможность восстанавливаться после сбоя за какое-то заранее оговоренное время.
Резервироваться могут так же и каналы связи между офисами. В этом случае имеет смысл выбирать другого оператора для резервного канала, у которого есть свои собственные каналы связи не связанные с первым оператором.
FlyServer, По ВПН не так. На базе оператора организуется корпоративная сеть. Другой вариант - выделенный канал от центрального офиса до удаленного, но при наличии кучи удаленных офисов, это будет слишком сложно.
Внутри корпоративной сети своими средствами строится ВПН. По выделенным каналам данные передаются то же через ВПН. ВПН должен контролировать сам банк. IPSec может не подойти, т.к. в РФ он не сертифицирован. Но если какие-то отечественные продукты встраивают поддержку сертифицированных крипто средств в IPSec, то такой вариант вполне годится.
Не нужен detach. Это только усложнит код если реализовывать ожидание завершения потоков в ручную. А без ожидания есть большой шанс, что main завершиться быстрее, чем потоки успеют хоть что-нибудь сделать.
Нужно просто join выполнять в правильном месте, как писали выше отвечавшие.
С u8 типом для литерала будет char8_t, без u8 - char.
Если используете методы принимающие char8_t (или string_view от него), то что бы избежать дополнительных преобразований оставьте u8.
sv можно убрать. string_view - можно в любой момент создать, когда понадобится из литерала или указателя.
Опишите как вы запускаете скрипт.
Вообще start.cmd - плохое название для батника, т.к. в cmd.exe есть команда start. Имеет смысл переименовать скрипт.