Как настроить локальные IP-адреса и подсети для этой топологии?

354
Stilez

У меня есть сервер с ссылками 1G и 10G и коммутатор 1G + 10G. Я хочу иметь возможность использовать ссылки 1G и 10G одновременно - либо для проверки обоих друг на друга, либо для команды через SSH на одном, а на другом. Это примерно та топология, которую я хотел бы иметь. Но я не уверен, как лучше установить две ссылки параллельно между устройствами и сделать так, чтобы они рассматривались как отдельные без конфликтов или проблем.

Это упрощенная топология, которую я хочу:

Как настроить локальные IP-адреса и подсети для этой топологии?

Потому что конкретные результаты могут помочь

  • Я хочу иметь возможность запускать SSH с ПК на сервер при подключении 1G, чтобы я мог жестко подключиться к каналу 10G через SCP / Samba или перенастроить его и тщательно протестировать.

  • Я также хочу, чтобы мой сеанс SSH был активным и видимым, и сравнивал результаты одновременного трафика для идентичного трафика, передаваемого между одними и теми же конечными точками через линии 1G и 10G.

  • Я хочу полностью контролировать, какие данные ссылки отправляются с клиента. Например, я хочу иметь возможность пропинговать SERVER-1 или отправить файл через SCP / Samba, и если я получу ответ, убедитесь, что данные шли через SWITCH-3, а не через SWITCH-4 -> SERVER-2 - > SERVER-1 и был на самом деле соединен на сервере.

  • В идеале ПК должен рассматривать два IP-адреса серверов как отдельные устройства и не понимать, что это один и тот же компьютер. (Я не буду отправлять что-либо патологическое по двум ссылкам, где может возникнуть конфликт, если SERVER-1 и SERVER-2 настроены на работу так, как если бы, по сути, это были ссылки на два отдельных сервера, а не на один и тот же сервер). Аналогично, сервер должен видеть две ссылки с ПК как отдельные потоки данных, возможно, с отдельных ПК.

  • Наконец, так что я могу подключиться и отключить ссылку общего доступа к файлам, но поддерживать постоянное подключение к ПК + Интернету через ссылку 1G.

Я не уверен в последствиях параллельных ссылок, подобных этому, или в том, что мне нужно сделать, чтобы полностью отделить их. Сервер запускает FreeBSD 11, если это помогает.

Для части тестирования было бы просто полезно иметь 2 ссылки на сервер, одну для управления и одну для тестирования (перерыв!), Которые не взаимодействуют и не маршрутизируют друг друга, даже если они связывают одни и те же 2 хоста.

Я рассмотрел возможность предоставления им отдельных подсетей (SERVER-1 @ 10.1.0.0/24 и SERVER-2 @ 10.2.0.0/24), но я не уверен, как далеко я должен зайти, чтобы создать эффект, который мне нужен, В данный момент у меня нет VLAN, работающих в локальной сети, поэтому, если бы это было решением, я бы не использовал его сегодня.

Обновить

«Коммутатор» является платформой pfSense, поэтому его FreeBSD 11 на данный момент имеет два двойных сетевых адаптера 10G SFP + Chelsio. Он никогда не будет работать на скорости линии, и я знаю, что это не его целевая роль, но с легким набором правил он может передавать пакеты Samba со скоростью 4,5 Гбит / с на двух разных каналах одновременно для специального тестирования или замены взорванного 10G-механизма при покупке. замена, которой достаточно для того, что я делаю, в качестве домашней лаборатории / экспериментальной, а не производственной.

Таким образом, он может делать все, что может делать pfвстроенная прошивка Chelsio, что делает его очень гибким. Но я бы подумал, что есть стандартный способ настроить это, поэтому я заинтригован.

На самом деле мой основной коммутатор 10G только что скончался, и я трачу некоторое время на то, чтобы на время выполнить поиск и устранение неисправностей / настройку, изучить некоторые новые вещи и провести некоторое тестирование, поэтому мне не нужна дополнительная пропускная способность и почему это все в порядке, пока не будет готов заменить переключатель через месяц или около того.

0
Отредактируйте вопрос, указав марку и модель коммутатора, чтобы мы могли обращаться к руководствам Google и т. Д. В зависимости от того, что именно делает коммутатор, это может быть вообще невозможно в этой конфигурации, и вам, возможно, придется поэкспериментировать с двумя ссылками без коммутатора. , dirkt 6 лет назад 0
Похоже, вам просто нужно установить отдельный IP на каждом из сетевых адаптеров сервера. Коммутатор не знает, к какому устройству (ям) принадлежит данный IP-адрес, он просто знает о MAC-адресе, поэтому с двумя сетевыми картами у вас есть два MAC-адреса и, следовательно, две разные конечные точки для коммутатора, на который отправляется трафик. MaQleod 6 лет назад 1
Есть ли причина выбирать один IP вместо другого? Не могли бы вы использовать двойной стек и использовать оба IP-адреса? Таким образом, если запросы поступают для IPv4, вы можете изначально поддерживать это, или если запросы поступают для IPv6, вы можете изначально поддерживать это. Попытка подключиться к устройству, которое поддерживает только один IP с другим IP, может быть очень уродливой. Коммутатор (Ethernet) не заботится о том, какой IP-адрес или оба они имеют. Ron Maupin 6 лет назад 0
@Ron - я тестирую и устраняю неполадки. Вся цель не в отказоустойчивости или произвольных входящих запросах (кроме тех, которые я сам посылаю). Это должно иметь выделенную ссылку управления и выделенную линию тестирования / передачи данных - и машины не будут сбиты с толку наличием двух маршрутов между ними, а не внутренним мостом сетевых адаптеров, поэтому я думаю, что данные проходили по одному маршруту, когда этого не было. Я мог бы предоставить 2nd li k свою собственную подсеть, но для простоты я бы хотел, чтобы они были в той же подсети, если это возможно - но возможно ли это? Stilez 6 лет назад 0
Два разных IP-адреса - это отдельные протоколы, и они не могут обмениваться данными без какого-либо типа кластджа. и хост IPv4 не может напрямую взаимодействовать с хостом IPv6. Вот почему вы используете два сервера в стеке. Ron Maupin 6 лет назад 0
Ааа. Хорошо. Я не использую IPv6 в глобальной сети. Мне не пришло в голову использовать его для разделения трафика. Конечно, это сработало бы. Это хороший совет, который я должен был понять, но не смог (так как я здесь никогда не использую IPv6 или 6to4) Stilez 6 лет назад 0
Что ж, ваш вопрос касается IP-адресов, и есть только два текущих IP-адреса: IPv4 и IPv6. Ron Maupin 6 лет назад 0

2 ответа на вопрос

0
kicken

Судя по звукам, все, что вам нужно сделать, это назначить каждому отдельному сетевому адаптеру отдельный IP-адрес, что можно сделать либо статически, либо через DHCP. Тогда просто убедитесь, что вы используете правильный IP при общении с сервером.

Например, если вы настраиваете NIC 1 как 192.168.10.101и NIC 2 как 192.168.10.202тогда:

  • Оба сетевых адаптера будут находиться в одной локальной сети
  • Трафик, предназначенный для 192.168.10.101, всегда будет идти через SWITCH 3 <-> SERVER 1
  • Трафик, предназначенный для 192.168.10.202, всегда будет идти через SWITCH 4 <-> SERVER 2

Если у вас настроен локальный DNS-сервер, вы можете создать отдельные записи хоста для каждого IP-адреса, чтобы упростить направление трафика.

Проблема заключается в следующем. Предположим, я делаю это, затем пингую SVR1 или использую \\ SVR1 (общий ресурс samba). Может ли трафик идти на ПК-> SW4-> SVR2-> SVR1, незаметно соединяющийся на сервере (если SVR1 отключен), или маршрутизироваться таким образом из-за низкой задержки 10G (когда доступны оба маршрута)? Точно так же, что если SVR использует CURL для dl с машины LAN / WAN, как гарантировать, что SVR2-> SW4 не может быть кооптирован как шлюз / fwdr, а работает только точка-точка между двумя машинами, так что трафик SVR на SW4 выиграл не соединяет / подключается через ПК / ПЕРЕКЛЮЧАТЕЛЬ к любому другому сетевому адаптеру / маршрутизатору / устройству? Более того, когда локальная подсеть / 16 содержит оба IP-адреса. Это мой вопрос - как Stilez 6 лет назад 0
Afaik, SW4 -> SRV2 -> SVR1 не должно быть возможным. Коммутатор не будет знать, что SVR1 доступен через SRV2, поэтому он не будет отправлять данные таким образом. Что касается трафика, исходящего с сервера, вам необходимо убедиться, что программа привязана к правильному IP-адресу, в противном случае ОС выберет тот, который она сочтет нужным. В частности, для curl это будет означать использование опций `--interface` /` --dns-interface`. kicken 6 лет назад 0
Если вам нужна одна ссылка, предназначенная для разговора с конкретным ПК, и они оба находятся на одном коммутаторе, то частная подсеть через статическую конфигурацию также должна работать. kicken 6 лет назад 0
0
dirkt

Хотя в принципе ваш коммутатор должен выяснить по MAC-адресам NIC1 и NIC2 (которым, конечно, нужны разные адреса), какой путь должен пройти пакет, и не должен отправлять его по другому пути, чтобы быть абсолютно уверенным ( и, как вы хотите узнать что-то новое) я бы настроил VLAN для полного разделения путей данных.

PfSense поддерживает VLAN, так что ваш коммутатор тоже должен. Грубо говоря, пакет VLAN похож на обычный пакет Ethernet, но с дополнительным полем тега, поэтому вы можете настроить свой коммутатор так, чтобы он действовал как несколько «наложенных» виртуальных коммутаторов. Ваш переключатель также должен иметь возможность добавлять или удалять теги.

Так, например, вы можете иметь VLAN с тегами 1, 2и 3вот так:

 Switch Server  tag 1 ROUTER NIC1 NIC3 ----- NIC1  PC ----- NIC2 NIC4 NIC2 tag 1   ROUTER NIC1 NIC3 NIC1  PC ----- NIC2 NIC4 ----- NIC2 tag 2 tag 2   untag tag 3  ROUTER ----- NIC1 NIC3 ----- NIC1  PC ----- NIC2 NIC4 NIC2 tag 3  

Маршрутизатор, вероятно, не сможет обрабатывать помеченные пакеты VLAN.

Создайте разные подсети для разных VLAN, например, например, 192.168.0.0/24 - это подсеть, которую предоставляет маршрутизатор (тег 3), а затем 10.0.1.0/24 и 10.0.2.0/24 - это подсети для тега 1 и тега 2.

Вы можете использовать ipдля добавления сетей VLAN к сетевым интерфейсам и установить адреса Так, например, для вашего сервера с eth1и eth2, вы могли бы сделать

ip link add link eth1 name vlan1 type vlan id 1 ip link add link eth2 name vlan2 type vlan id 2 ip link add link eth1 name vlan3 type vlan id 3 ip addr add 10.0.1.10/24 dev vlan1 ip addr add 10.0.2.10/24 dev vlan2 ip addr add 192.168.0.10/24 dev vlan3 

Некоторые приложения, например Samba, можно указать только для привязки к конкретным интерфейсам, например vlan3; или вы можете создать сетевые пространства имен и, скажем, поместить vlan1в это пространство имен и запустить sshdв этом пространстве имен. И так далее.

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