Jump to content

Recommended Posts

Добрый день!

Есть два координатора, за каждым координатором есть по незащищённому узлу. Координаторы видят друг друга нормально.

vipnet.png.6011bbb8afb68f16294f8028214a03c7.png

Компьютер 2 с випнет клиентом, 1 и 3 без.

В каждой сети есть свой шлюз, соответственно ПАК-1 и ПАК-2 не являются шлюзами для компьютеров.

На ПАК-2 прописан тоннель в своей секции (соответственно, на ПАК-1 в секции ПАК-2 он тоже есть)

tunnel= 192.168.1.2-192.168.1.2 to 192.168.1.2-192.168.1.2

На ПАК-1 нет возможности сделать тоннель до компьютера 1 по реальному адресу, поэтому пытаюсь сделать через нат.

Соответственно, пишу в секции [nat] фаервола следующее:

rule= num 1 proto any from anyip to 192.168.0.2  change dst=192.0.0.2
rule= num 2 proto any from 192.168.0.2 to anyip   change src=192.0.0.2

Далее на ПАК-1 в своей секции [id] и на ПАК-2 в секции ПАК-1 пишу:

tunnel= 192.0.0.2-192.0.0.2 to 192.0.0.2-192.0.0.2

На компьютере 3 пишу маршрут, что 192.0.0.2 через ПАК-2

route add 192.0.0.2 mask 255.255.255.255 192.168.1.1

Ну и, на последок, на компьютере 1 прописываю маршрут до компьютера 3

route add 192.168.1.2 mask 255.255.255.255 192.168.0.1

В фаерволе общение между всеми ними разрешено, ПАК-1:

[forward]
rule= num 1 proto any from (192.168.0.2,192.0.0.2) to 192.168.1.2 pass
rule= num 2 proto any from 192.168.1.2 to (192.168.0.2,192.0.0.2) pass
[tunnel]
rule= num 1 proto any from (192.168.0.2,192.0.0.2) to 0x1000002   pass
rule= num 2 proto any from 0x1000002 to (192.168.0.2,192.0.0.2)   pass
rule= num 3 proto any from 0x0000002 to 192.168.1.2   pass
rule= num 4 proto any from 192.168.1.2 to 0x0000002   pass

На ПАК-2 всё разрешено.

Что получаю на выходе:

Компьютер 2 видит компьютер 3, и наоборот.

Компьютер 3 видит компьютер 1 (по адресу 192.0.0.2), а вот компьютер 1 не видит компьютер 3. По журналу пакетов ПАК-1 классифицирует их как транзитный пакет, хотя пакеты от компьютера 3 (и ответы на них) как локальный пакет.

Share this post


Link to post
Share on other sites

Что то вы намудрили...

1) Прописать туннели (лучше через  ЦУС) за каким координатором какие компьютеры находятся. За ПАК1 (192.168.0.2) за ПАК2 (192.168.1.2)

2) Далее необходимо прописать маршрут. Чтобы ПАК1 знал, что сеть 192.168.1.0/24 (или как у вас там с маской) находится за ПАК2. Ну и соответственно обратный маршрут на ПАК2. Маршрут необходим в том случае, если ПАКи соединенны, допустим через L2 VPN. (Считай кабелем на прямую) Если на координатор приходит внешка на прямую и шлюзом по умолчанию выставлен шлюз провайдера, то с маршрутами на координаторе делать ничего не нужно.

3) Т.к Вы указали, что координаторы не являются шлюзами для ПК1, и 3, то как пакет дойдет до туннелируемого узла? Он же отправит его на свой шлюз по умолчанию, который скорей всего и не знает где сеть 192.168.1.0 или 192.168.0.0. То в данном случае, необходимо задать маршрут либо на самим ПК либо на их шлюзе. На ПК1 маршрут будет такой (сеть 192.168.1.0/24 находится за координатором 192.168.0.1) Под виндой будет выглядеть так route add 192.168.1.0 mask 255.255.255.0 192.168.0.1 -p

Соответственно на ПК 3 такой route add 192.168.0.0 mask 255.255.255.0 192.168.1.1 -p

PS ПК2 видит ПК3, тк на ПК2 стоит клиент и его драйвер выполняет всю нужную маршрутизацию через координатор.

PSS На координаторе убейте все правила с трансляцией. Оставьте только туннели.

Share this post


Link to post
Share on other sites

spec89,

Вы, видимо, не полностью прочитали вопрос.

Использовать реальный адрес в туннеле не представляется возможным, схема образная, в реальности сеть в сотни раз больше и координаторов далеко не два. Если я сделаю туннель по реальному адресу, то сломаю половину своей сети с випнет клиентами.

15 часов назад, spec89 сказал:

3) Т.к Вы указали, что координаторы не являются шлюзами для ПК1, и 3, то как пакет дойдет до туннелируемого узла? Он же отправит его на свой шлюз по умолчанию, который скорей всего и не знает

Собственно, я так и написал:

22 часа назад, w03zd8rc сказал:

На компьютере 3 пишу маршрут, что 192.0.0.2 через ПАК-2


route add 192.0.0.2 mask 255.255.255.255 192.168.1.1

Ну и, на последок, на компьютере 1 прописываю маршрут до компьютера 3


route add 192.168.1.2 mask 255.255.255.255 192.168.0.1

Туннели прописаны:

22 часа назад, w03zd8rc сказал:

tunnel= 192.168.1.2-192.168.1.2 to 192.168.1.2-192.168.1.2

 

22 часа назад, w03zd8rc сказал:

tunnel= 192.0.0.2-192.0.0.2 to 192.0.0.2-192.0.0.2

 

Как "по стандартному" сделать туннели и связать их я знаю, эта задача тривиальная. Вопрос заключается в том, как сделать туннель за натом координатора

Share this post


Link to post
Share on other sites

Адрес туннеля за другим координатором вы можете предоставить как угодно с помощью виртуальных адресов. Для этого вы можете про пак 1 на паке2 написать:

tunnel= 192.0.0.2-192.0.0.2 to 192.168.0.2-192.168.0.2

Share this post


Link to post
Share on other sites

KIV,

я пробовал на ПАК-1 в своей секции [id] прописать

tunnel= 192.168.0.2-192.168.0.2 to 192.0.0.2-192.0.0.2

но, при запуске iplir ПАК-1 принудительно исправляет строку на

tunnel= 192.168.0.2-192.168.0.2 to 192.168.0.2-192.168.0.2

 

3 часа назад, KIV сказал:

Для этого вы можете про пак 1 на паке2 написать

В этом и вся соль: клиенты, использующие ПАК-1 как координатор, или имеющие его в связях, не должны туннелировать доступ к ПК1 ч/з координатор, а обращаться к ПК1 напрямую. Использовать виртуальные адреса (в настройках координатора у клиентов) не представляется возможным (есть на это причины), вручную у каждого клиента удалять из туннелей координатора этот туннель тоже не выход - при следующем обновлении ч/з ЦУС он встанет обратно.

Share this post


Link to post
Share on other sites

Действительно, плохо прочитал пост :)

По туннелям, всё должно работать нормально с подменой адреса в строке туннеля. Возможно прошивка старая? В данный момент подмена отлично у меня работает на версии 3.3 (менять естественно надо на IP адреса, которые вообще ни где не фигурируют в iplir.conf)

По нату могу сказать следующее: Поглядите по tcpdump-ом где затык и какие вообще ИП приходят.

Share this post


Link to post
Share on other sites
51 минуту назад, spec89 сказал:

По туннелям, всё должно работать нормально с подменой адреса в строке туннеля. Возможно прошивка старая? В данный момент подмена отлично у меня работает на версии 3.3 (менять естественно надо на IP адреса, которые вообще ни где не фигурируют в iplir.conf)

А каким образом Вы подмену делаете? Через нат или секцию [id] своего координатора?

По нат я уже писал в самом начале - по какой-то причине ПАК-1 даже не пытается отправить пришедшие пакеты, обработанные натом,  в туннель, а перекидывает их дальше, на свой шлюз. А если пытаюсь через секцию [id] прописать виртуальные, то при выходе из редактирования iplir.conf получаю следующее сообщение:

The mapped addresses for the tunnel of own ID should be equal to original range. Fixing tunnel [192.168.0.2-192.168.0.2 to 192.0.0.2-192.0.0.2] for native ID

ну и при старте iplir он исправляет, как написано выше.

Сейчас поставил межу ПАК-1 и ПК1 отдельно маршрутизатор, который натит 192.168.0.1 в 192.0.0.1 и наоборот, т.е. на ПАК-1 приходят пакеты с 192.0.0.1 и уходят в туннель; из туннеля приходят пакеты на 192.0.0.1, ПАК-1 отправляет на маршрутизатор. По факту это то, чего я ожидал от секции [nat] фаервола.... И, конечно же, костыль =(

 

Share this post


Link to post
Share on other sites

Не в собственной секции координатора менять адреса нужно, а на другом координаторе.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site, you agree to our Terms of Use.