Подключаем GNS3 к локальной сети и интернету
В прошлой статье, мы рассмотрели установку GNS 3 на Hyper-V. Сегодня мы предоставим устройствам, запущенным в GNS3, доступ к нашей ЛВС и сети Интернет.
Всё рассмотренное далее, подразумевает, что вы установили и настроили GNS3 согласно предыдущей статье.
Если вы попробуете запустить GNS3 после перезагрузки, вы можете обнаружить что клиент GNS3 не может соединиться с сервером. Происходит это потому, что виртуальный коммутатор, к которому мы подключаемся, по умолчанию, каждый раз выдает нам новый ip-адрес, он может выдать и тот же самый, тут все дело случая. Нас это не устраивает, нам нужна предсказуемая адресация.
Для этого мы добавим новый виртуальный коммутатор с жёстко заданным ip-адресом.
Откройте диспетчер Hyper-V, выберите локальный сервер Hyper-V и справа в разделе «Действия» выберите «Диспетчер виртуальных коммутаторов»
![]()
Откроется окно “Диспетчер виртуальных коммутаторов”
![]()
Если вы устанавливали Hyper-V впервые, у вас должен быть только один виртуальный коммутатор.
Выберите «Внутренняя» и нажмите на кнопку «Создать виртуальный коммутатор»
В поле Имя введите «Management»
![]()
Нажмите «ОК»
Теперь, когда мы создали виртуальный коммутатор у нас, в сетевых подключениях, появился новый сетевой адаптер:
![]()
Давайте определимся с подсетями, для сети управления GNS3 мы будем использовать подсеть:
172.16.100.0/24Я специально выделил /24 подсеть, чтобы она в будущем не пересекалась с другими сетями.
Зададим только что созданному нашему виртуальному адаптеру адрес 172.16.100.254.
![]()
Не забудьте отключить IP6, сняв галочку с IP версии 6 (TCP/IP)
Теперь зайдем в настройки виртуальной машины GNS3 и поменяем настройки адаптера, выбрав виртуальный коммутатор Management:
![]()
Перезапустим наш GNS3
Перейдем в окно виртуальной машины GNS3, закроем окно с информацией, если оно открыто и в меню выберем Reboot.
После загрузки мы видим вот что:
![]()
Так как мы задали ip-адрес вручную и переключились на новый виртуальный коммутатор, на котором у нас нет DHCP-сервера, GNS3 не смог получить ip-адрес. Пропишем его вручную, нажмем ОК, откроется меню сервера:
![]()
Выберем пункт Network и нажмем Yes
В открывшемся редакторе приведем настройки к виду:
![]()
Нажмем Ctrl+x и затем Y и затем Enter
Обратите внимание — сервер автоматически перезагружается каждый раз, при изменении конфигурации сети виртуального сервера.
После загрузки новые настройки сети изменились:
![]()
Откроем клиент GNS3 и изменим ip-адрес сервера, в настройках, на 172.16.100.1. Мы подключимся к GNS3 по постоянному адресу.
Запустим микротик в GNS3 и откроем Winbox
Он нам снова доступен, но на этот раз, только по mac-адресу:
![]()
Так как нам нужна постоянная адресация - нас это не устраивает.
Для внутренней сети GNS3 мы выделим подсеть
172.16.200.0/24Для маршрутизаторов выделим подсеть
172.16.200.240/28Создадим еще один виртуальный коммутатор, а затем подключенный к нему адаптер, назначим адаптеру адрес 172.16.200.254/28
На этот раз, для добавления коммутатора мы будем использовать командную строку PowerShell, запущенную от имени администратора:
Добавим коммутатор
New-VMSwitch -name GNS3_LAN -SwitchType Internal|PS D:\> New-VMSwitch -name GNS3_LAN -SwitchType Internal
Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
GNS3_LAN InternalНастроим ему ip-адрес
Проверим правильность имени адаптера:
Get-NetAdapter -Name "vEthernet (GNS3_LAN)"PS D:\> Get-NetAdapter -Name "vEthernet (GNS3_LAN)"
Name InterfaceDescription ifIndex Status MacAddress LinkSpeed
---- -------------------- ------- ------ ---------- ---------
vEthernet (GNS3_LAN) Hyper-V Virtual Ethernet Adapter #3 40 Up 00-15-5D-3F-C1-27 10 GbpsАдаптер с таким именем есть, теперь нам нужен его индекс:
Get-NetIPConfiguration -InterfaceAlias "vEthernet (GNS3_LAN)" -DetailedPS D:\> Get-NetIPConfiguration -InterfaceAlias "vEthernet (GNS3_LAN)" -Detailed
ComputerName : XXXX
InterfaceAlias : vEthernet (GNS3_LAN)
InterfaceIndex : 40
InterfaceDescription : Hyper-V Virtual Ethernet Adapter #3
NetCompartment.CompartmentId : 1
NetCompartment.CompartmentDescription : Default Compartment
NetAdapter.LinkLayerAddress : 00-15-5D-3F-C1-27
NetAdapter.Status : Up
IPv6LinkLocalAddress : fe80::7c44:3ee0:2839:d1f9%40
IPv4Address : 169.254.209.249
IPv6DefaultGateway :
IPv4DefaultGateway :
NetIPv6Interface.NlMTU : 1500
NetIPv4Interface.NlMTU : 1500
NetIPv6Interface.DHCP : Enabled
NetIPv4Interface.DHCP : Enabled
DNSServer : fec0:0:0:ffff::1
fec0:0:0:ffff::2
fec0:0:0:ffff::3Нас интересует строка
InterfaceIndex : 40 Возможно, у вас индекс будет отличаться!
Пропишем для интерфейса адрес:
New-NetIPAddress –IPAddress 172.16.200.254 -PrefixLength 28 -InterfaceIndex 40PS D:\vm\gns3> New-NetIPAddress -IPAddress 172.16.200.254 -PrefixLength 28 -InterfaceIndex 40
IPAddress : 172.16.200.254
InterfaceIndex : 40
InterfaceAlias : vEthernet (GNS3_LAN)
AddressFamily : IPv4
Type : Unicast
PrefixLength : 28
PrefixOrigin : Manual
SuffixOrigin : Manual
AddressState : Tentative
ValidLifetime : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource : False
PolicyStore : ActiveStore
IPAddress : 172.16.200.254
InterfaceIndex : 40
InterfaceAlias : vEthernet (GNS3_LAN)
AddressFamily : IPv4
Type : Unicast
PrefixLength : 28
PrefixOrigin : Manual
SuffixOrigin : Manual
AddressState : Invalid
ValidLifetime : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource : False
PolicyStore : PersistentStoreИ сразу отключим Ip6 на этом интерфейсе:
Disable-NetAdapterBinding -Name "vEthernet (GNS3_LAN)" -ComponentID PS D:\vm\gns3> Disable-NetAdapterBinding -Name "vEthernet (GNS3_LAN)" -ComponentID ms_tcpip6 -PassThru
Name DisplayName ComponentID Enabled
---- ----------- ----------- -------
vEthernet (GNS3_LAN) IP версии 6 (TCP/IPv6) ms_tcpip6 FalseПроверим статус еще раз:
Get-NetIPConfiguration -InterfaceAlias "vEthernet (GNS3_LAN)" -DetailedPS D:\vm\gns3> Get-NetIPConfiguration -InterfaceAlias "vEthernet (GNS3_LAN)" -Detailed
ComputerName : DESKTOP-TOK0194
InterfaceAlias : vEthernet (GNS3_LAN)
InterfaceIndex : 40
InterfaceDescription : Hyper-V Virtual Ethernet Adapter #3
NetCompartment.CompartmentId : 1
NetCompartment.CompartmentDescription : Default Compartment
NetAdapter.LinkLayerAddress : 00-15-5D-3F-C1-27
NetAdapter.Status : Up
IPv4Address : 172.16.200.254
IPv4DefaultGateway :
NetIPv4Interface.NlMTU : 1500
NetIPv4Interface.DHCP : Disabled
DNSServer :Все настроено правильно!
Нам нужно добавить еще один адаптер к нашей виртуальной машине GNS3.
Чтобы это сделать, предварительно нужно её выключить, для этого используем командную строку:
Stop-VM -VMName "GNS3 VM"Добавим адаптер:
Add-VMNetworkAdapter -VMName "GNS3 VM" -SwitchName "GNS3_LAN" -Name "GNS_LAN"Проверим настройки виртуально машины, у неё должен появиться новый адаптер:
![]()
Включим MAC-спуфинг на всех интерфейсах
Set-VMNetworkAdapter -VMName "GNS3 VM" -MacAddressSpoofing On Давайте так же отличим автоматические контрольные точки, они нам будут только мешать, для этого зайдите в свойства виртуальной машины:
И уберите галочку, как показано на рисунке.
Запускаем GNS3
Start-VM -VMName "GNS3 VM"Давайте теперь настроим сеть на Mikrotik
Запустим клиент GNS3 и после запуска самого микротика откроем его консоль:
[admin@MikroTik] >Добавим ip-адрес интерфейсу ether1
/ip address add address=172.16.200.253/28 interface=ether1Теперь, чтобы получить доступ к сети, нам нужно изменить настройки Cloud1
Для этого удалим текущий линк между микротиком и облаком, щелкнув правой кнопкой мыши по линии и выбрав Delete
В окне GNS3 откройте свойства Cloud1, выбрав пункт Configure
Удалите eth0 ид списка и добавьте eth1, нажмите ОК
Соедините линком mikrotik и cloud1 через ether1 и eth1
Пропингуем наш виртуальный адаптер с mikrotik:
[admin@MikroTik] /interface ethernet> /tool ping 172.16.200.254
current: 4.4Mbps
average: 4.4MbpsКак видите — связь есть!
Переименуем Микротик на карте в GW1, в GNS3 это можно сделать в настройках самой ноды (подменю Configure)
Изменим имя на самом устройстве:
[admin@MikroTik] > system identity set name=GW1
[admin@GW1] > system identity print
name: GW1Сделаем GW1 шлюзом нашей GNS3 подсети 192.16.200.0/28
Для этого установим для ether2 ip-адрес:
/ip address add address=172.16.200.14/28 interface=ether2В клиенте GNS3 на карту перетащим Ethernet switch и VPCS
Соединим GW1 и Switch1 через Ether2 и Ethernet0
Так же соединим PC1 со Switch1 с любым портом
Вот что у нас получилось:
![]()
Запустим PC1, откроем его консоль и пропишем IP и шлюз по-умолчанию.
PC1> ip 172.16.200.1 255.255.255.240 172.16.200.14
Checking for duplicate address...
PC1 : 172.16.200.1 255.255.255.240 gateway 172.16.200.14Проверим доступность шлюза:
PC1> ping 172.16.200.14
84 bytes from 172.16.200.14 icmp_seq=1 ttl=64 time=0.239 ms
84 bytes from 172.16.200.14 icmp_seq=2 ttl=64 time=0.412 ms
84 bytes from 172.16.200.14 icmp_seq=3 ttl=64 time=0.414 ms
84 bytes from 172.16.200.14 icmp_seq=4 ttl=64 time=0.376 ms
84 bytes from 172.16.200.14 icmp_seq=5 ttl=64 time=0.380 msПроверим доступность нашего ПК:
PC1> ping 172.16.200.254
172.16.200.254 icmp_seq=1 timeout
172.16.200.254 icmp_seq=2 timeout
172.16.200.254 icmp_seq=3 timeout
172.16.200.254 icmp_seq=4 timeoutСвязи нет, а дело тут в том, что наш ПК не знает, где находится хост 172.16.200.1
На нашем ПК открываем консоль с правами администратора и прописываем
route -p add 172.16.200.0 mask 255.255.255.240 172.16.200.253
OKСнова пингуем с PC1
PC1> ping 172.16.200.254
84 bytes from 172.16.200.254 icmp_seq=1 ttl=127 time=0.554 ms
84 bytes from 172.16.200.254 icmp_seq=2 ttl=127 time=0.728 ms
84 bytes from 172.16.200.254 icmp_seq=3 ttl=127 time=0.853 ms
84 bytes from 172.16.200.254 icmp_seq=4 ttl=127 time=0.618 msНужно обязательно сохранить настройки
PC1> save
Saving startup configuration to startup.vpc
. doneНо если мы попробуем получить доступ к сети интернет — у нас ничего не выйдет:
PC1> ping 8.8.8.8
*172.16.200.14 icmp_seq=1 ttl=64 time=0.259 ms (ICMP type:3, code:0, Destination network unreachable)
*172.16.200.14 icmp_seq=2 ttl=64 time=0.279 ms (ICMP type:3, code:0, Destination network unreachable)
*172.16.200.14 icmp_seq=3 ttl=64 time=0.391 ms (ICMP type:3, code:0, Destination network unreachable)
*172.16.200.14 icmp_seq=4 ttl=64 time=0.286 ms (ICMP type:3, code:0, Destination network unreachable)Это всё от того, что у GW1 нет шлюза по-умолчанию, давайте его пропишем:
/ip route add dst-address=0.0.0.0/0 gateway=172.16.200.254Снова неудача:
PC1> ping 8.8.8.8
8.8.8.8 icmp_seq=1 timeout
8.8.8.8 icmp_seq=2 timeout
8.8.8.8 icmp_seq=3 timeoutА дело тут в чем - мы находимся в рамках внутренней сети из которой нельзя попасть во внешнюю сеть, так что нам придется добавить еще один виртуальный адаптер, который и обеспечит нас доступом к ЛВС и интернету.
Для этого добавим еще один виртуальный коммутатор и назовем его WAN:
PS D:\> New-VMSwitch -name WAN -NetAdapterName Ethernet -AllowManagementOS $true
Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
WAN External Realtek PCIe GbE Family ControllerУстановим виртуальную машину GSN3:
Stop-VM -VMName "GNS3 VM"Добавим новый адаптер:
Add-VMNetworkAdapter -VMName "GNS3 VM" -SwitchName "WAN" -Name "WAN"
Set-VMNetworkAdapter -VMName "GNS3 VM" -MacAddressSpoofing On Запустим GNS3
Start-VM -VMName "GNS3 VM"Откроем клиент GNS3
Удалим все линки к GW1, а затем в свойствах GW1 и увеличим число адаптеров до 3
Восстановим линки GW1
Добавим еще одно облако и в его настройках удалим eth0 и eth1
Переименуем его как Internet (вкладка Misc.)
Cloud1 переименуем в LAN
Соединим Ether2 c Internet
Запустим всё устройства.
У меня интернет раздается с домашнего роутера, так что давайте настроим DHCP-клиента на нашем микротике
/ip dhcp-client add interface=ether3 disabled=no
[admin@GW1] > /ip address print
Flags: X - disabled, I - invalid, D - dynamic
# ADDRESS NETWORK INTERFACE
0 172.16.200.253/28 172.16.200.240 ether1
1 172.16.200.14/28 172.16.200.0 ether2
2 D 192.168.1.46/24 192.168.1.0 ether3Как видите микротик получил ip-адрес
Теперь давайте проверим таблицу маршрутизации:
[admin@GW1] > /ip route print
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
# DST-ADDRESS PREF-SRC GATEWAY DISTANCE
0 A S 0.0.0.0/0 172.16.200.254 1
1 DS 0.0.0.0/0 192.168.1.1 1
2 ADC 172.16.200.0/28 172.16.200.14 ether2 0
3 ADC 172.16.200.240/28 172.16.200.253 ether1 0
4 ADC 192.168.1.0/24 192.168.1.46 ether3 0У нас два маршрута по умолчанию, давайте удалим старый
/ip route remove 0Проверим таблицу маршрутизации
[admin@GW1] > /ip route print
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
# DST-ADDRESS PREF-SRC GATEWAY DISTANCE
0 ADS 0.0.0.0/0 192.168.1.1 1
1 ADC 172.16.200.0/28 172.16.200.14 ether2 0
2 ADC 172.16.200.240/28 172.16.200.253 ether1 0
3 ADC 192.168.1.0/24 192.168.1.46 ether3 0Проверим доступ к интернету с PC1
PC1> ping 8.8.8.8
8.8.8.8 icmp_seq=1 timeout
8.8.8.8 icmp_seq=2 timeout
8.8.8.8 icmp_seq=3 timeoutПинга нет, так как мы не настроили NAT (маскарад) на микротике, давайте пропишем его:
/ip firewall nat add chain=srcnat action=masquerade out-interface=ether3Пинг появился
PC1> ping 8.8.8.8
84 bytes from 8.8.8.8 icmp_seq=1 ttl=106 time=137.656 ms
84 bytes from 8.8.8.8 icmp_seq=2 ttl=106 time=136.948 ms
84 bytes from 8.8.8.8 icmp_seq=3 ttl=106 time=136.659 ms
84 bytes from 8.8.8.8 icmp_seq=4 ttl=106 time=136.682 ms
84 bytes from 8.8.8.8 icmp_seq=5 ttl=106 time=136.842 msТеперь наша сеть ЛВС GNS3 имеет доступ к интернету.
Давайте попробуем присоединиться к Микротику по внешнему адресу:
putty 192.168.1.46
MMMM MMMM KKK TTTTTTTTTTT KKK
MMM MMMM MMM III KKK KKK RRRRRR OOOOOO TTT III KKK KKK
MMM MM MMM III KKKKK RRR RRR OOO OOO TTT III KKKKK
MMM MMM III KKK KKK RRRRRR OOO OOO TTT III KKK KKK
MMM MMM III KKK KKK RRR RRR OOOOOO TTT III KKK KKK
MikroTik RouterOS 6.47 (c) 1999-2020 http://www.mikrotik.com/
[?] Gives the list of available commands
command [?] Gives help on the command and list of arguments
[Tab] Completes the command/word. If the input is ambiguous,
a second [Tab] gives possible options
/ Move up to base level
.. Move up one level
/command Use command at the base level
[admin@GW1] >В результате мы создали вот такую виртуальную сеть:
![]()
Конечно, теперь вам необходимо озаботиться настройкой межсетевого экрана на GW1, но это выходит за рамки нашей сегодняшней темы.
Заключение
Сегодня мы рассмотрели с вами настройку GNS3 для доступа к ЛВС и сети Интернет.
Добавили виртуальные коммутатор в Hyper-V для сети управления GNS3.
Перенастроили виртуальную машину для доступа по статическому ip и настроили сервер GNS3 для работы с этим ip-адресом.
Выделили подсети для маршрутизаторов и ЛВС GNS3.
Добавили виртуальный коммутатор для ЛВС GNS3 и виртуальный интерфейс к серверу GNS3 для ЛВС GNS3.
Настроили ip-адреса на виртуальном коммутаторе и на виртуальном маршрутизаторе mikrotik – GW1
Настроили маршрутизацию между физической и виртуальной сетями.
Добавили виртуальный ПК и соединили его через виртуальный коммутатор с GW1, настроили его для доступа к GW1 и нашей ЛВС.
Для доступа к сети Интернет, добавили виртуальный коммутатор и виртуальный интерфейс к серверу GNS3.
Настроили DHCP-клиент на GW1, для получения ip-адреса от домашнего роутера.
Настроили NAT на GW1 для обеспечения доступа к сети Интернет устройств из ЛВС GNS3.
Добавить комментарий