Другое

GNS3: подключение реального оборудования через один порт

Полное руководство по подключению реального сетевого оборудования к GNS3 через один физический порт с использованием VLAN-мостирования. Решение проблем с петлями и SSH.

Как подключить реальное сетевое оборудование к GNS3 с использованием одного физического порта?

Здравствуйте! Я пытаюсь подключить реальное сетевое оборудование к топологии GNS3, но столкнулся с техническими сложностями. У меня есть только один физический порт, подключенный к серверу GNS3.

Моя текущая конфигурация:

  • Сервер Proxmox с виртуальной машиной GNS3
  • Физический интерфейс сервера подключен к GNS3 через VLANы
  • Созданы VLANы и соответствующие мосты (бриджи)
  • В GNS3 определены порты netX для объекта «cloud»
  • Виртуальная машина Ubuntu с специальным портом для подключения к проекту GNS3

Проблемы, с которыми я столкнулся:

  1. При подключении двух линков от тестового оборудования к коммутатору gns3-ports возникает петля, и трафик проходит только через один из них
  2. SSH-сессия не запускается между виртуальной машиной и реальным оборудованием через GNS3, хотя ping работает

Мне нужно, чтобы трафик проходил сквозным образом между реальным оборудованием и коммутатором gns3-ports. Конфигурация коммутатора gns3-ports предоставлена.

Использовать один физический порт для подключения реального сетевого оборудования к GNS3 возможно через VLAN-мостирование и правильную конфигурацию виртуальных мостов. Для этого потребуется настроить VLAN-тегирование на физическом интерфейсе, создать отдельные мосты для каждого VLAN и сопоставить их с портами GNS3 cloud объектов.

Содержание

Подготовка инфраструктуры

Перед началом настройки убедитесь, что у вас есть следующее:

  • GNS3 установлен в виртуальной машине Ubuntu на сервере Proxmox
  • Физический интерфейс сервера с поддержкой VLAN
  • Права администратора на всех системах
  • Тестовое сетевое оборудование (коммутаторы, маршрутизаторы)

Для работы с одним физическим портом вам потребуется использовать технологию VLAN (Virtual Local Area Network), которая позволяет логически разделить один физический интерфейс на несколько виртуальных.

Важно: Убедитесь, что ваш сетевой адаптер поддерживает 802.1Q VLAN tagging. Большинство современных серверных сетевых карт поддерживают эту функцию.

Настройка VLAN на физическом интерфейсе

Сначала настройте VLAN-тегирование на физическом интерфейсе вашего сервера Proxmox:

bash
# Определите имя вашего физического интерфейса (обычно ens33, enp0s3 и т.д.)
ip link show

# Создайте VLAN интерфейсы для каждого нужного VLAN
ip link add link ens33 name ens33.100 type vlan id 100
ip link add link ens33 name ens33.200 type vlan id 200
ip link add link ens33 name ens33.300 type vlan id 300

# Включите интерфейсы
ip link set ens33.100 up
ip link set ens33.200 up
ip link set ens33.300 up

# Назначьте IP-адреса (если необходимо)
ip addr add 192.168.100.1/24 dev ens33.100
ip addr add 192.168.200.1/24 dev ens33.200
ip addr add 192.168.300.1/24 dev ens33.300

Конфигурация мостов в Proxmox

Создайте мосты в Proxmox для каждого VLAN:

bash
# Создайте мосты для каждого VLAN
ovs-vsctl add-br vmbr100
ovs-vsctl add-br vmbr200
ovs-vsctl add-br vmbr300

# Подключите VLAN интерфейсы к мостам
ovs-vsctl add-port vmbr100 ens33.100
ovs-vsctl add-port vmbr200 ens33.200
ovs-vsctl add-port vmbr300 ens33.300

Теперь настройте мосты для работы с GNS3. Откройте файл конфигурации сети в Proxmox и добавьте:

bash
# /etc/network/interfaces
auto ens33.100
iface ens33.100 inet manual
    vlan-raw-device ens33

auto vmbr100
iface vmbr100 inet manual
    bridge-ports ens33.100
    bridge-stp off
    bridge-fd 0
    bridge-vlan-aware yes
    bridge-vids 2-4094

# Повторите для других VLAN

Настройка GNS3 для работы с VLAN

Откройте GNS3 и настройте cloud объекты для работы с VLAN:

  1. В GNS3 создайте новый cloud объект
  2. В настройках cloud объекта выберите соответствующий мост (vmbr100, vmbr200 и т.д.)
  3. Назначьте порт для подключения к проекту

Для каждого VLAN создайте отдельный cloud объект:

Cloud 1: vmbr100 (VLAN 100)
Cloud 2: vmbr200 (VLAN 200)  
Cloud 3: vmbr300 (VLAN 300)

В настройках вашей виртуальной машины GNS3 убедитесь, что порты правильно связаны с cloud объектами:

bash
# Настройка портов в Ubuntu VM
ip link add eth0.100 link eth0 type vlan id 100
ip link add eth0.200 link eth0 type vlan id 200
ip link add eth0.300 link eth0 type vlan id 300

ip link set eth0.100 up
ip link set eth0.200 up
ip link set eth0.300 up

# Подключите к мостам
ip link set eth0.100 master vmbr100
ip link set eth0.200 master vmbr200
ip link set eth0.300 master vmbr300

Решение проблемы петель

Петли возникают из-за неправильной конфигурации коммутации между реальным оборудованием и GNS3. Для решения проблемы:

  1. Используйте Spanning Tree Protocol (STP) на вашем коммутаторе GNS3:

    bash
    # Настройка STP на коммутаторе gns3-ports
    spanning-tree mode rapid-pvst
    spanning-tree vlan 100,200,300 root primary
    
  2. Настройте порты как trunk на реальном оборудовании:

    bash
    # Пример для Cisco
    interface GigabitEthernet0/1
    switchport mode trunk
    switchport trunk allowed vlan 100,200,300
    
  3. Отключите STP на мостах Proxmox (если используется):

    bash
    ovs-vsctl set bridge vmbr100 stp_enable=false
    ovs-vsctl set bridge vmbr200 stp_enable=false
    ovs-vsctl set bridge vmbr300 stp_enable=false
    

Важно: При отключении STP убедитесь, что у вас нет петель в сети. Используйте spanning-tree portfast на конечных портах.

Диагностика проблем с SSH

Если ping работает, а SSH не работает, проверьте следующие аспекты:

  1. Проверьте таблицу маршрутизации:

    bash
    # На виртуальной машине GNS3
    ip route
    
    # На реальном оборудовании
    show ip route
    
  2. Проверьте firewall правила:

    bash
    # На Ubuntu VM
    sudo ufw status
    
    # Разрешите SSH трафик
    sudo ufw allow 22/tcp
    
  3. Проверьте NAT настройки:

    bash
    # Если используется NAT
    sudo iptables -t nat -L -v -n
    
  4. Проверьте конфигурацию SSH:

    bash
    # Разрешите SSH подключение
    sudo sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
    sudo systemctl restart sshd
    

Полный пример конфигурации

Вот полный пример конфигурации для трех VLAN:

1. Настройка физического интерфейса:

bash
# Физический интерфейс
ip link set ens3 up

# VLAN интерфейсы
ip link add link ens3 name ens3.100 type vlan id 100
ip link add link ens3 name ens3.200 type vlan id 200  
ip link add link ens3 name ens3.300 type vlan id 300

ip link set ens3.100 up
ip link set ens3.200 up
ip link set ens3.300 up

# IP адреса
ip addr add 192.168.100.1/24 dev ens3.100
ip addr add 192.168.200.1/24 dev ens3.200
ip addr add 192.168.300.1/24 dev ens3.300

2. Настройка мостов:

bash
# Создание мостов
ovs-vsctl add-br vmbr100
ovs-vsctl add-br vmbr200
ovs-vsctl add-br vmbr300

# Подключение VLAN интерфейсов
ovs-vsctl add-port vmbr100 ens3.100
ovs-vsctl add-port vmbr200 ens3.200
ovs-vsctl add-port vmbr300 ens3.300

3. Настройка GNS3 проекта:

Cloud 1: vmbr100 (VLAN 100) -> eth0.100
Cloud 2: vmbr200 (VLAN 200) -> eth0.200
Cloud 3: vmbr300 (VLAN 300) -> eth0.300

Коммутатор gns3-ports:
- Port 1: Cloud 1 (VLAN 100)
- Port 2: Cloud 2 (VLAN 200)  
- Port 3: Cloud 3 (VLAN 300)
- Port 4: Тестовое оборудование (Trunk)

4. Конфигурация коммутатора GNS3:

bash
! Конфигурация коммутатора
vlan 100
 name VLAN_100
vlan 200
 name VLAN_200
vlan 300
 name VLAN_300

! Настройка портов
interface GigabitEthernet0/1
 switchport mode access
 switchport access vlan 100
 spanning-tree portfast

interface GigabitEthernet0/2
 switchport mode access
 switchport access vlan 200
 spanning-tree portfast

interface GigabitEthernet0/3
 switchport mode access
 switchport access vlan 300
 spanning-tree portfast

interface GigabitEthernet0/4
 switchport mode trunk
 switchport trunk allowed vlan 100,200,300

Альтернативные решения

Если VLAN-мостирование вызывает сложности, рассмотрите альтернативные варианты:

1. Использование нескольких физических интерфейсов

Если возможно, добавьте еще один физический интерфейс для изоляции трафика.

2. Туннелирование (GRE/IPsec)

Настройте GRE или IPsec туннели между реальным оборудованием и GNS3.

3. Docker контейнеры

Используйте Docker для изоляции сетевых сред вместо VLAN.

4. Виртуальные мосты без VLAN

Создайте отдельные виртуальные мосты для каждого типа трафика без использования VLAN.

Совет: Для тестирования начните с простой конфигурации с одним VLAN, а затем постепенно добавляйте остальные. Это поможет быстрее выявить и устранить проблемы.

Источники

  1. GNS3 Official Documentation - Cloud Node Configuration
  2. Proxmox VE Network Configuration Guide
  3. VLAN Configuration on Linux
  4. Open vSwitch Configuration
  5. Cisco Switch Configuration Best Practices

Заключение

Подключение реального сетевого оборудования к GNS3 через один физический порт требует тщательной настройки VLAN-мостирования и правильной конфигурации виртуальных мостов. Основные шаги включают:

  1. Разделение физического интерфейса на несколько VLAN
  2. Создание отдельных мостов для каждого VLAN
  3. Настройку GNS3 cloud объектов для работы с VLAN
  4. Решение проблем петель через STP или правильную конфигурацию портов
  5. Диагностику проблем с SSH через проверку маршрутизации и firewall

Для успешной реализации важно тестировать каждый этап постепенно и использовать инструменты для диагностики сетевых проблем. При возникновении сложностей рекомендуется начать с минимальной конфигурации и постепенно добавлять функциональность.

Авторы
Проверено модерацией
Модерация