
Подключившись к VPN нашей компании и просматривая таблицу маршрутизации, я обнаружил следующее:
172.16.0.0 10.8.0.241 255.255.0.0 UG 0 0 0 tun0
10.8.0.241 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
10.8.0.0 10.8.0.241 255.255.255.0 UG 0 0 0 tun0
Думаю, я правильно понимаю первую строку: пакет в сеть 172.16 сбрасывается в интерфейс tun0, но адресован шлюзу 10.8.0.241, который позаботится обо всем остальном.
Во второй строке прямо говорится, что для перехода на 10.8.0.241 достаточно просто подключиться к tun0.
Чего я не понимаю, так это почему последние две строки нельзя просто объединить в
10.8.0.0 0.0.0.0 255.255.255.0 UG 0 0 0 tun0
сказать, что все, что касается 10.8, можно просто сбросить в туннель, и нужная машина его подхватит. Почему пакет до 10.8 должен быть сначала явно передан шлюзу той же сети? Может быть, 10.8.0.251 здесь используется как коммутатор, потому что это единственная машина, напрямую подключенная к другому концу tun0 и знающая способы, как пересылать пакеты дальше для 10.8?
решение1
Прежде чем ответить на этот вопрос, позвольте мне объяснить связанные между собой флаги.
- U (маршрут вверх)
- H (цель — хост)
- G (использовать шлюз)
Маршрут 2
и 3
не могут быть объединены, поскольку вы сообщаете исходной машине, что нужно достичь ее 10.8.0.241
напрямую ( metric 0
), а для достижения любой машины с сетевым идентификатором 10.8.0.0/24
используйте шлюз 10.8.0.241
. Я не уверен, почему мы пересылаем пакеты на шлюз по умолчанию, но это может быть трюком для внедрения обратного маршрута на маршрутизаторе шлюза / брандмауэре.
решение2
Предположительно топология сети будет следующей:
Клиент => Интернет => 10.8.0.241 => 10.8.0.0/24
Когда VPN установлен, вы не можете напрямую подключиться ни к какому хосту, кроме конечной точки VPN через tun0. Чтобы отправить данные куда-либо еще в диапазоне 10.8.0.0/24, вам нужно отправить их на GW (10.8.0.241), который затем перенаправит их на нужный хост.
Это может быть сделано для того, чтобы предоставить вам IP-адрес в той же сети, что и серверы на удаленной конечной точке, или чтобы вы могли подключаться к другим VPN-клиентам.