Сначала скажу, что я не проектировал эту сеть с самого начала, поэтому топология стала неожиданностью даже для меня.
Существует две подсети (одна - наша компания, а другая - наши клиенты), которые находятся в одном физическом месте, и поэтому сети разделены VLAN: s. Однако в дополнение к этому и у нас, и у нашего клиента есть разные брандмауэры, поэтому у нас есть дополнительный виртуальный маршрутизатор (VyOS), который действует как мост между нашими сетями. Маршрутизатор VyOS имеет два интерфейса (eth0 и eth1).
Я могу нормально пинговать обе сети, но если я попытаюсь перейти на веб-сервер наших клиентов в их подсети, соединение не удастся. Что особенно интересно, когда я вручную настраиваю свой шлюз так, чтобы он указывал на 192.168.5.34 (VyOS) вместо нашего шлюза на 192.168.5.1, соединение работает, поэтому в брандмауэре должно быть что-то не так, когда он должен перенаправить трафик обратно из того же интерфейса, откуда он появился. Кроме того, если я настрою исходный код, он также будет работать.
Вот информация о сетях:
наша подсеть: 192.168.5.0/24 firewall: 192.168.5.1 VyOS eth1: 192.168.5.34
подсеть клиента: 192.168.1.0/24 брандмауэр: 192.168.1.1 VyOS eth0: 192.168.1.34
РЕДАКТИРОВАТЬ: это маршрут, по которому проходит трафик, когда я пытаюсь подключиться к веб-серверу через HTTP.
192.168.5.172 -> 192.168.5.1 -> 192.168.5.34 -> 192.168.1.28 | 192.168.1.28 -> 192.168.1.1 (похоже, что здесь, на нашем брандмауэре Juniper, соединение не работает)
Ваша сеть работает должным образом. Нарисуем это:
Я уверен, что это упрощение, но здесь достаточно информации, чтобы показать проблему и различные исправления (и их недостатки)
Предположения
Для тех, кто следит за стеком OSI, это все IP и находится на уровне 3.
1. Сети с прямым подключением
На вашем ПК есть пакет для отправки на IP. Первое, что он делает, это проверяет, находится ли IP-адрес назначения в той же локальной IP-сети. Если оба адреса SRC и DST используют одну и ту же сеть (это бит IP-адреса, который остается после применения маски подсети), тогда ОС отправляет пакет через интерфейс Ethernet. ОС помечает исходящий пакет IP-адресом источника интерфейса, с которого он выходит.
Ваш тестовый компьютер отправляет пакеты с IP-адресом SRC 192.168.5.172. Пункт назначения - 192.168.5.250. Ваша сетевая маска - / 24, что составляет 255.255.255.0. Таким образом, ваш компьютер может отправлять пакеты напрямую, выводя пакет из сети. Ethernet и адресат получат его.
2. Шлюзы по умолчанию
Шлюз по умолчанию, маршрут по умолчанию, шлюз, маршрутизатор последней инстанции - это то, на что вы отправляете пакеты, когда у вас нет лучшего маршрута для их отправки.
Вот маршруты по умолчанию в вашей сети:
Итак, если IP-адрес назначения не является локальным (напрямую подключен), тогда TestPC знает, как адресовать пакет через шлюз по умолчанию.
Есть только один IP-адрес шлюза по умолчанию для устройства (ручная работа - да, я пытаюсь сделать это простым).
(боковой комментарий) Если для VyOS установлен шлюз по умолчанию, это, вероятно, через ваш офис Juniper. Это хорошо для обновлений и прочего, но не имеет отношения к вашей среде. Для VyOS также вполне разумно вообще не иметь настроенного шлюза по умолчанию.
3. Конкретные маршруты
Ваш traceroute из вопроса указывает, что два офисных межсетевых экрана имеют определенные знания о другой локальной сети.
Таким образом, для каждого брандмауэра будет настроен дополнительный маршрут.
Ваша компания Juniper знает, что «доступ к 192.168.1.0/24 через 192.168.5.34»
Их брандмауэр знает, что «192.168.5.0 255.255.255.0 через 192.168.1.34» или подобное. Графически это означает:
4. Будьте единым целым с пакетом
Итак, давайте представим это с точки зрения пакета.
а. TestPC пингует Google (я использую ping, потому что он не имеет состояния и проще, чем объяснение TCP-соединения, такого как HTTP)
Это как изображение:
б. TestPC теперь будет пинговать сервер клиента по адресу 192.168.1.28.
Вот это последнее изображение:
Как это исправить? Есть несколько разных исправлений.
1. Межсетевое соединение
Это «правильный» дизайн, использующий небольшую межсетевую связь между двумя вашими межсетевыми экранами и отказ от устройства VyOS. Я использовал 172.22.22.x / 24 в качестве межсоединения LAN. A / 24 довольно большой, но все просто.
Положительные
Недостатки
2. Добавьте статический маршрут в межсетевой экран Заказчика.
Вроде отсутствует. Если вы добавите синюю стрелку из клиентского брандмауэра в VyOS, это будет работать лучше.
3. Добавьте SOURCE NAT на устройстве VyOS.
Кто-то известный однажды сказал: «Если ваш план включает добавление большего количества уровней NAT, вы не понимаете корень проблемы», я действительно не думаю, что это хорошая идея.
Если устройство VyOS преобразует весь трафик между двумя сетями через NAT на свой СОБСТВЕННЫЙ IP-адрес в этой локальной сети, то ответный трафик не будет пытаться перейти на шлюз по умолчанию.
Основным недостатком является то, что вы увидите весь трафик, поступающий с IP-адреса VyOS, и вы не будете знать, кто настоящий отправитель. Это несколько затрудняет судебную экспертизу.
4. Статичный маршрут всего!
Это ужасный ответ, но в некоторых ситуациях он может быть уместным.
Если бы у каждого устройства локальной сети была такая таблица маршрутизации, то все они знали бы, как разговаривать с надежной локальной сетью.
# ip ro ls
по умолчанию через 192.168.5.1 dev eth0
192.168.1.0/24 через 192.168.5.34 dev eth0
192.168.5.0/24 dev eth0 proto kernel scope link src 192.168.5.173
С другой стороны, это кошмар для менеджмента. Это может быть работоспособно, если у вас есть только пара устройств, которые никогда не перемещаются, но добавлять их динамически беспорядочно.
Возможные сейвы
В итоге
Карты LAN отличные решения для понимания вашей сетевой проблемы. Люблю их! Я использовал http://www.gliffy.com/ чтобы создать фоновое изображение для этих иллюстраций.
ПОЦЕЛУЙ Если решение утомительное и сложное, вероятно, это неправильное решение.