Проблема: потрібно запустити MikroTik у GNS3 для навчання, до мікротика потрібно підʼєднатися використовуючи
Winbox та
Dude.
Отже, запускаємо
GNS3 (Графічний Симулятор Мереж), додаємо мікротік та Хмарку, з'єднуємо порт порт езернет хоста з портом ether1.
Якщо кабель підключено, то мікротік побачить мережу і отримає адресу по DHCP. Але звʼязатися з хостом він не зможе, так як пакети вкинуті на вхід ip-стеку порта езернет повернутися назад на
вхід вже не можуть. (На Windows це працює, тому що там віртуалка з GNS3 запускається під VMWare, яка і робить всі потрібні налаштування мережі).
Якщо є фізичний мікротик, то на обох мікротиках можна ввімкнути romon (альтернативна мережа для мікротіків, яка працює по власному протоколу IP), і тоді можна підключитися через фізичний мікротік до віртуального використовуючи Winbox.
Якщо є ще один компʼютер поруч, підключений до тієї ж мережі, то з нього можна без проблем доступитися до віртуального мікротика через Winbox та Dude.
Але щоб запустити GNS3, мікротік, Winbox, та Dude на одному компʼютері, потрібно створити віртуальну мережу:
- Створюємо пару віртуальних езернетів:
ip link add veth01 type veth peer name veth02
ip addr add 192.168.6.1/24 brd + dev veth01
ip link set dev veth01 up
ip link set dev veth02 up
- Вимикаємо фаєрвол, або конфігуруємо через
firewall-config у ньому що
veth01 та
veth02 — це довірена мережа (
trusted).
- Створюємо у GNS3
ще одну хмарку, та додаємо у неї порт
veth02 (потрібно поставити галочку: показувати спеціальні пристрої).
- Зʼєднуємо порт
veth02 хмарки з портом
ether8 мікротика.
- (На даному етапі, Winbox вже повинен бачити віртуальний мікротик.) Додаємо статичну адресу
192.168.6.2 для
ether8 через консоль
/ip address add address=192.168.6.2/24 interface=ether8
чи через Winbox (IP > Address > +).
- Перевіряємо чи пінгується мікротік з хоста та навпаки. (Пінг повинен працювати).
- Пробуємо зʼєднатися з мікротиком по http, наприклад використовуючи httping, і зʼєднання не вдається. Запускаємо Wireshark на зʼєднані між хмаркою та мікротиком і бачимо що пакет TCP syn від хоста приходить, але ігнорується мікротиком.
- Запускаємо команду
ethtool -K veth01 tx off
(вимкнути створення контрольних сум для вихідних пакетів на порту veth01), і звʼязок по tcp/http починає працювати.
- Запускаємо на міркотику сервер dude, підключаємося до нього клієнтом dude — все працює.
Для полегшення життя, можна створити невеличкий скрипт-обгортку для gns3:
#!/bin/bash
sudo ip link add veth01 type veth peer name veth02
sudo ethtool -K veth01 tx off
sudo ip addr add 192.168.6.1/24 brd + dev veth01
sudo ip link set dev veth01 up
sudo ip link set dev veth02 up
gns3
sudo ip link set dev veth01 down
sudo ip link set dev veth02 down
sudo ip link del dev veth01
Також, для полегшення життя, можна в налаштуваннях GNS3 створити новий тип хмарки, в якій додати порт veth02. Хмарку можна назвати «Local» чи «MyPC» і змінити іконку на відповідну.