Как перенаправить трафик обратно через VPN на другие серверы

script3будет выполняться только в случае успешного выполнения script1и script2, а script1и script2будут выполняться параллельно:

./script1 &
process1=$!

./script2 &
process2=$!

wait $process1
rc1=$?

wait $process2
rc2=$?

if [[ $rc1 -eq 0 ]] && [[ $rc2 -eq 0  ]];then
./script3
fi
0
17.03.2020, 00:26
1 ответ

Итак, я не знаю, насколько вы понимаете, как работает маршрутизация, поэтому я попытаюсь объяснить, и мы посмотрим, насколько вы сможете понять мое объяснение. Объяснение не совсем правильное, потому что на самом деле вращается больше колес, но этого должно быть достаточно.

На каждом переходе в сети стек IP просматривает каждый входящий IP-пакет. Он сравнивает IP-адрес назначения с таблицей маршрутизации. Вы можете увидеть эту таблицу маршрутизации с ip route.

Сначала он проверяет, соответствует ли IP-адрес пакета одному из его собственных интерфейсов. Если это так, то пакет предназначен для самого перехода, и переход «проглатывает» пакет (, толкает его вверх по стеку, например. к стеку TCP ).

Если пакет не предназначался для самого хопа, то хоп проверяет и проходит свою собственную таблицу маршрутизации от наиболее значимого маршрута к наименее значимому. /24говорит вам, что 24 из 32 бит являются значимыми. Тогда /16будет менее значимым. В случае ip routeстек IP будет сравнивать IP-адрес пакета с отображаемыми маршрутами снизу вверх. Выигрывает первый маршрут, соответствующий IP-адресу пакета. Таким образом, при обходе таблицы маршрутизации с IP-адресом назначения 192.168.102.10 маршрут 192.168.0.0/16 будет соответствовать пакету. Маршрут 192.0.0.0/16 не будет. Вы можете использовать инструмент sipcalcдля отображения информации о сетевых адресах.

Последний соответствующий маршрут будет маршрутом по умолчанию, который соответствует всем параметрам.

Каждый маршрут содержит следующий переход, на который будет отправлен пакет. Возможно, вы можете лучше увидеть следующий переход в /sbin/route -n. Это столбец «маршрутизатор» или столбец «интерфейс», в зависимости от того, подключена ли сеть, которую представляет маршрут, напрямую к сетевому интерфейсу, присутствующему на прыжке, или нет.

Когда пакет проходит через VPN-туннель, IP-пакет упаковывается в другой пакет. Так что, насколько вам известно, учитываются только внутренние IP-адреса входа и выхода VPN. Пакет попадает в точку входа и вылетает из точки выхода «волшебным образом».

Итак, теперь вы должны быть в состоянии определить на каждом узле, какой путь должен пройти пакет, включая исходный и конечный прыжки. Если он не идет по тому пути, который вам нравится, вам нужно добавить соответствующий маршрут. Это может быть маршрут с одним хостом, например,192.168.102.79/32(все значащие биты! Соответствует только одному хосту! ). Найдите несколько примеров для ip route add.

Кроме того, вы хотите наблюдать за прохождением пакетов через узлы. Вы можете использовать tcpdump -n -i interfaceдля этого (f.ex.tcpdump -n -i eth0). Таким образом, если вы видите пакет, проходящий через узел 1, и думаете, что он должен идти к узлу 2, но не видите, как он проходит через узел 2, то маршруты на узле 1, вероятно, неверны и отправляют пакет не в тот пункт назначения.

Таким образом, вы сможете анализировать каждый шаг таблицы маршрутизации от источника к месту назначения, видеть, какой маршрут должен проходить пакет на каждом узле, возможно, добавлять маршруты, чтобы пакет правильный путь и убедитесь, что они действительно соответствуют tcpdump.

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

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

После того, как ваша маршрутизация заработала, убедитесь, что она выдерживает перезагрузку. F.ex. написав новый маршрут в/etc/network/interfaces(место, где вам нужно зарегистрировать, это зависит от того, как сетевой стек настроен на этой машине. Это сильно различается между различными Unix, дистрибутивами Linux и т. д.)

Надеюсь, это поможет вам в дальнейшем.

0
28.04.2021, 23:20

Теги

Похожие вопросы