Pnetlab. Подключить виртуальное устройство к физической сети: различия между версиями

Материал из Wiki
Перейти к навигации Перейти к поиску
 
(не показаны 2 промежуточные версии этого же участника)
Строка 1: Строка 1:
[[Категория:Pnetlab]]
[[Категория:Pnetlab]]
[[Категория:ESXi]]
[[Категория:ESXi]]
[[Категория:Proxmox]]
= Вариант 1. Устройство подключается по L2 к той же подсети, в какой находится виртуальная машина Pnetlab =


== Вариант 1. Устройство подключается по L2 к той же подсети, в какой находится виртуальная машина Pnetlab ==
== Если ВМ PNETLAB установлена в ESXi ==


=== Если ВМ PNETLAB установлена в ESXi ===
=== ESXi веб-интерфейс ===
 
Обязательно необходимо включить параметры на vSwitch, в который включён физический интерфейс ESXi, к которому подключен виртуальный интерфейс ВМ Pnetlab:
==== ESXi ====
Обязательно необходимо включить параметры НА vSwitch, в который включён физический интерфейс ESXI, к которому подключен виртуальный интерфейс ВМ Pnetlab:


* http://<esxi_ip>/ui
* http://<esxi_ip>/ui
Строка 33: Строка 31:
******* Save
******* Save


Создаем ВМ PNETLAB с типом сетевого интерфейса "'''VMXNET 3'''"
Создаем '''ВМ PNETLAB''' с типом сетевого интерфейса "'''VMXNET 3'''"


==== Pnetlab веб-интерфейс ====
=== Pnetlab консоль ===
<code>nano /etc/sysctl.conf</code>
<code>nano /etc/sysctl.conf</code>
  ...
  ...
Строка 43: Строка 41:
<code>reboot</code>
<code>reboot</code>


Проверяем что разрешен форвардинг пакетов между интерфейсами
"'''1'''" - значит включен, всё ок.
<code>root@pnetlab:~# cat /proc/sys/net/ipv4/ip_forward</code>
...
1
...
=== Pnetlab веб-интерфейс ===
* http://<pnetlab_ip>
* http://<pnetlab_ip>
** создаем новую лабу '''test01''':
** создаем новую лабу '''test01''':
Строка 49: Строка 57:
***** Name: '''Net17''' // например, наша физическая подсеть - 192.168.17.0/24
***** Name: '''Net17''' // например, наша физическая подсеть - 192.168.17.0/24
***** Type: '''Management(Cloud0)'''
***** Type: '''Management(Cloud0)'''
Добавляем виртуальный хост Mikrotik        
* Add an object - Nodes - '''Mikrotik RouterOS''':
** Name: '''Mikrotik'''
** Ethernet: '''5'''            
Линкуем интерфейс микрота '''ether2''' с сетью '''Net17'''
На интерфейсе микрота '''ether2''' прописываем адрес '''192.168.17.201/24''',
Шлюз по-умолчанию '''192.168.17.8''' (физический маршрутизатор - шлюз по-умолчанию в сети 17)


           
DNS - '''8.8.8.8'''


=== Pnetlab консоль ===
После этого в shell PNETLAB должны увидеть следующее:        
После этого в shell PNETLAB должны увидеть следующее:        


'''pnet0''' - бридж на PNETLAB с адресом 192.168.17.249/24
<code>root@pnetlab:~# brctl show</code><blockquote>'''pnet0''' - бридж на PNETLAB с адресом 192.168.17.249/24


'''eth0''' - физический интерфейс ВМ PNETLAB    
'''eth0''' - физический интерфейс ВМ PNETLAB    


'''vunl2_3''' - виртуальный интерфейс виртуальной сети Management(Cloud0)        
'''vunl2_3''' - виртуальный интерфейс виртуальной сети Management(Cloud0)</blockquote>
 
<code>root@pnetlab:~# brctl show</code>
  ...
  ...
  bridge name     bridge id               STP enabled     interfaces
  bridge name     bridge id               STP enabled     interfaces
Строка 66: Строка 83:
  pnet0           8000.0050569cc983       no              eth0
  pnet0           8000.0050569cc983       no              eth0
                                                          vunl2_3
                                                          vunl2_3
... 
Проверяем        
<code>[admin@MikroTik] > tool traceroute ya.ru</code>
# ADDRESS                          LOSS SENT    LAST     AVG    BEST   WORST STD-DEV STATUS
1 192.168.17.8                       0%    1   1.5ms     1.5     1.5     1.5       0
2 193.34.13.97                       0%    1   3.2ms     3.2     3.2     3.2       0
3 213.135.130.21                     0%    1   3.3ms     3.3     3.3     3.3       0
4 95.167.13.2                        0%    1   3.6ms     3.6     3.6     3.6       0
5 87.226.181.89                      0%    1  23.9ms    23.9    23.9    23.9       0
6 5.143.250.94                       0%    1  23.1ms    23.1    23.1    23.1       0
7 10.4.4.1                           0%    1  20.4ms    20.4    20.4    20.4       0
8 87.250.250.242                     0%    1  26.7ms    26.7    26.7    26.7       0       
Готово, наш микрот в локальной сети '''17'''
Теперь можно подключиться к нему через Winbox
== Если ВМ PNETLAB установлена в Proxmox ==
=== Proxmox веб-интерфейс ===
Создаем '''ВМ PNETLAB''' с типом сетевого интерфейса: "'''VirtIO (paravirtualized)'''", Bridge: "'''vmbr0'''"
=== Pnetlab консоль ===
<code>nano /etc/sysctl.conf</code>
  ...
  ...
# uncomment
net.ipv4.ip_forward=1
...
<code>reboot</code>
Проверяем что разрешен форвардинг пакетов между интерфейсами
"'''1'''" - значит включен, всё ок.
<code>root@pnetlab:~# cat /proc/sys/net/ipv4/ip_forward</code>
...
1
...
=== Pnetlab веб-интерфейс ===
* http://<pnetlab_ip>
** создаем новую лабу '''test01''':
*** Добавляем виртуальную сеть '''Net17''', которая по L2 будет связана с физическим интерфейсом ВМ PNETLAB
**** Add an object - '''Network''':
***** Name: '''Net17''' // например, наша физическая подсеть - 192.168.17.0/24
***** Type: '''Management(Cloud0)'''
Добавляем виртуальный хост Mikrotik        
Добавляем виртуальный хост Mikrotik        
* Add an object - Nodes - '''Mikrotik RouterOS''':
* Add an object - Nodes - '''Mikrotik RouterOS''':
** Name: '''Mikrotik'''
** Name: '''Mikrotik'''
Строка 79: Строка 140:
Шлюз по-умолчанию '''192.168.17.8''' (физический маршрутизатор - шлюз по-умолчанию в сети 17)
Шлюз по-умолчанию '''192.168.17.8''' (физический маршрутизатор - шлюз по-умолчанию в сети 17)


DNS - '''8.8.8.8'''        
DNS - '''8.8.8.8'''
 
=== Pnetlab консоль ===
После этого в shell PNETLAB должны увидеть следующее:        


<code>root@pnetlab:~# brctl show</code><blockquote>'''pnet0''' - бридж на PNETLAB с адресом 192.168.17.249/24
'''eth0''' - физический интерфейс ВМ PNETLAB    
'''vunl2_3''' - виртуальный интерфейс виртуальной сети Management(Cloud0)</blockquote>
...
bridge name     bridge id               STP enabled     interfaces
...
pnet0           8000.0050569cc983       no              eth0
                                                         vunl2_3
... 
Проверяем        
Проверяем        


Строка 97: Строка 172:
Теперь можно подключиться к нему через Winbox
Теперь можно подключиться к нему через Winbox


== Вариант 2. Устройство имеет свою подсеть и подключается через NAT к внешней подсети, в которой находится виртуальная машина Pnetlab ==
= Вариант 2. Устройство имеет свою подсеть и подключается через NAT к внешней подсети, в которой находится виртуальная машина Pnetlab =


==== Pnetlab веб-интерфейс ====
== Если ВМ PNETLAB установлена в ESXi или Proxmox ==


* http://<pnetlab_ip>
=== Pnetlab консоль ===
** Создаем новую лабу test01:
<code>nano /etc/sysctl.conf</code>
*** Добавляем виртуальную сеть Net_172.16.1.0/24
...
**** Add an object - '''Network''':
# uncomment
**** Name: '''Net_172.16.1.0/24'''
net.ipv4.ip_forward=1
**** Type: '''Cloud5'''
...
<code>reboot</code>


==== В shell ВМ PNETLAB         ====
Проверяем что разрешен форвардинг пакетов между интерфейсами
Проверяем что разрешен форвардинг пакетов между интерфейсами


"'''1'''" - значит включен, всё ок.
"'''1'''" - значит включен, всё ок.


Если нет - прописываем в этот файл "'''1'''"        
<code>root@pnetlab:~# cat /proc/sys/net/ipv4/ip_forward</code>
 
root@pnetlab:~# cat /proc/sys/net/ipv4/ip_forward
  ...
  ...
  1
  1
  ...
  ...
=== Pnetlab веб-интерфейс ===
* http://<pnetlab_ip>
** Создаем новую лабу test01:
*** Добавляем виртуальную сеть Net_172.16.1.0/24
**** Add an object - '''Network''':
**** Name: '''Net_172.16.1.0/24'''
**** Type: '''Cloud5'''
Прописываем адрес на интерфейсе        
Прописываем адрес на интерфейсе        


Строка 178: Строка 259:
  9 87.250.250.242                     0%    2  26.2ms    25.9    25.6    26.2     0.3
  9 87.250.250.242                     0%    2  26.2ms    25.9    25.6    26.2     0.3
Готово, наш микрот выходит через NAT в физическую локальную сеть 17, а оттуда в интернет
Готово, наш микрот выходит через NAT в физическую локальную сеть 17, а оттуда в интернет
[[Категория:Proxmox]]

Текущая версия на 22:46, 15 августа 2022

Вариант 1. Устройство подключается по L2 к той же подсети, в какой находится виртуальная машина Pnetlab

Если ВМ PNETLAB установлена в ESXi

ESXi веб-интерфейс

Обязательно необходимо включить параметры на vSwitch, в который включён физический интерфейс ESXi, к которому подключен виртуальный интерфейс ВМ Pnetlab:

  • http://<esxi_ip>/ui
    • Networking
      • Virtual Switches
        • vSwitch02 (виртуальный свитч, в которой подключен физ интерфейс ESXI, к которому подключен вирт интерфейс ВМ pnetlab)
          • Edit settings
            • Security
              • Promiscuous mode: Accept
              • MAC address changes: Accept
              • Forged transmits: Accept
                • Save

Параметры для физического интерфейса берем автоматом от свитча

  • http://<esxi_ip>/ui
    • Networking
      • Port groups
        • VM Network (сеть, в которой подключен интерфейс ВМ)
          • Edit settings
            • Promiscuous mode: Inherit from vSwitch
            • MAC address changes: Inherit from vSwitch
            • Forged transmits: Inherit from vSwitch
              • Save

Создаем ВМ PNETLAB с типом сетевого интерфейса "VMXNET 3"

Pnetlab консоль

nano /etc/sysctl.conf

...
# uncomment
net.ipv4.ip_forward=1
...

reboot

Проверяем что разрешен форвардинг пакетов между интерфейсами

"1" - значит включен, всё ок.

root@pnetlab:~# cat /proc/sys/net/ipv4/ip_forward

...
1
...

Pnetlab веб-интерфейс

  • http://<pnetlab_ip>
    • создаем новую лабу test01:
      • Добавляем виртуальную сеть Net17, которая по L2 будет связана с физическим интерфейсом ВМ PNETLAB
        • Add an object - Network:
          • Name: Net17 // например, наша физическая подсеть - 192.168.17.0/24
          • Type: Management(Cloud0)

Добавляем виртуальный хост Mikrotik        

  • Add an object - Nodes - Mikrotik RouterOS:
    • Name: Mikrotik
    • Ethernet: 5            

Линкуем интерфейс микрота ether2 с сетью Net17

На интерфейсе микрота ether2 прописываем адрес 192.168.17.201/24,

Шлюз по-умолчанию 192.168.17.8 (физический маршрутизатор - шлюз по-умолчанию в сети 17)

DNS - 8.8.8.8

Pnetlab консоль

После этого в shell PNETLAB должны увидеть следующее:        

root@pnetlab:~# brctl show

pnet0 - бридж на PNETLAB с адресом 192.168.17.249/24

eth0 - физический интерфейс ВМ PNETLAB    

vunl2_3 - виртуальный интерфейс виртуальной сети Management(Cloud0)

...
bridge name     bridge id               STP enabled     interfaces
...
pnet0           8000.0050569cc983       no              eth0
                                                        vunl2_3
... 

Проверяем        

[admin@MikroTik] > tool traceroute ya.ru

# ADDRESS                          LOSS SENT    LAST     AVG    BEST   WORST STD-DEV STATUS
1 192.168.17.8                       0%    1   1.5ms     1.5     1.5     1.5       0
2 193.34.13.97                       0%    1   3.2ms     3.2     3.2     3.2       0
3 213.135.130.21                     0%    1   3.3ms     3.3     3.3     3.3       0
4 95.167.13.2                        0%    1   3.6ms     3.6     3.6     3.6       0
5 87.226.181.89                      0%    1  23.9ms    23.9    23.9    23.9       0
6 5.143.250.94                       0%    1  23.1ms    23.1    23.1    23.1       0
7 10.4.4.1                           0%    1  20.4ms    20.4    20.4    20.4       0
8 87.250.250.242                     0%    1  26.7ms    26.7    26.7    26.7       0        

Готово, наш микрот в локальной сети 17

Теперь можно подключиться к нему через Winbox

Если ВМ PNETLAB установлена в Proxmox

Proxmox веб-интерфейс

Создаем ВМ PNETLAB с типом сетевого интерфейса: "VirtIO (paravirtualized)", Bridge: "vmbr0"

Pnetlab консоль

nano /etc/sysctl.conf

...
# uncomment
net.ipv4.ip_forward=1
...

reboot

Проверяем что разрешен форвардинг пакетов между интерфейсами

"1" - значит включен, всё ок.

root@pnetlab:~# cat /proc/sys/net/ipv4/ip_forward

...
1
...

Pnetlab веб-интерфейс

  • http://<pnetlab_ip>
    • создаем новую лабу test01:
      • Добавляем виртуальную сеть Net17, которая по L2 будет связана с физическим интерфейсом ВМ PNETLAB
        • Add an object - Network:
          • Name: Net17 // например, наша физическая подсеть - 192.168.17.0/24
          • Type: Management(Cloud0)

Добавляем виртуальный хост Mikrotik        

  • Add an object - Nodes - Mikrotik RouterOS:
    • Name: Mikrotik
    • Ethernet: 5            

Линкуем интерфейс микрота ether2 с сетью Net17

На интерфейсе микрота ether2 прописываем адрес 192.168.17.201/24,

Шлюз по-умолчанию 192.168.17.8 (физический маршрутизатор - шлюз по-умолчанию в сети 17)

DNS - 8.8.8.8

Pnetlab консоль

После этого в shell PNETLAB должны увидеть следующее:        

root@pnetlab:~# brctl show

pnet0 - бридж на PNETLAB с адресом 192.168.17.249/24

eth0 - физический интерфейс ВМ PNETLAB    

vunl2_3 - виртуальный интерфейс виртуальной сети Management(Cloud0)

...
bridge name     bridge id               STP enabled     interfaces
...
pnet0           8000.0050569cc983       no              eth0
                                                        vunl2_3
... 

Проверяем        

[admin@MikroTik] > tool traceroute ya.ru

# ADDRESS                          LOSS SENT    LAST     AVG    BEST   WORST STD-DEV STATUS
1 192.168.17.8                       0%    1   1.5ms     1.5     1.5     1.5       0
2 193.34.13.97                       0%    1   3.2ms     3.2     3.2     3.2       0
3 213.135.130.21                     0%    1   3.3ms     3.3     3.3     3.3       0
4 95.167.13.2                        0%    1   3.6ms     3.6     3.6     3.6       0
5 87.226.181.89                      0%    1  23.9ms    23.9    23.9    23.9       0
6 5.143.250.94                       0%    1  23.1ms    23.1    23.1    23.1       0
7 10.4.4.1                           0%    1  20.4ms    20.4    20.4    20.4       0
8 87.250.250.242                     0%    1  26.7ms    26.7    26.7    26.7       0        

Готово, наш микрот в локальной сети 17

Теперь можно подключиться к нему через Winbox

Вариант 2. Устройство имеет свою подсеть и подключается через NAT к внешней подсети, в которой находится виртуальная машина Pnetlab

Если ВМ PNETLAB установлена в ESXi или Proxmox

Pnetlab консоль

nano /etc/sysctl.conf

...
# uncomment
net.ipv4.ip_forward=1
...

reboot

Проверяем что разрешен форвардинг пакетов между интерфейсами

"1" - значит включен, всё ок.

root@pnetlab:~# cat /proc/sys/net/ipv4/ip_forward

...
1
...

Pnetlab веб-интерфейс

  • http://<pnetlab_ip>
    • Создаем новую лабу test01:
      • Добавляем виртуальную сеть Net_172.16.1.0/24
        • Add an object - Network:
        • Name: Net_172.16.1.0/24
        • Type: Cloud5

Прописываем адрес на интерфейсе        

root@pnetlab:~# ip address add 172.16.1.1/24 dev pnet5

Добавляем правило src-nat на PNETLAB

iptables -t nat -A POSTROUTING -o pnet0 -s 172.16.1.0/24 -j MASQUERADE

После этого в shell PNETLAB должны увидеть следующее        

root@pnetlab:~# ip a

...
9: pnet5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
inet 172.16.1.1/24 scope global pnet5
...

root@pnetlab:~# iptables -L -v -n -t nat

...
3   107 MASQUERADE  all  --  *      pnet0   172.16.1.0/24        0.0.0.0/0
...

Сохраняем настройки

root@pnetlab:~# iptables-save > /etc/network/iptables.rules

root@pnetlab:~# nano /etc/network/if-pre-up.d/iptables-load

#!/bin/sh
ip address add 172.16.1.1/24 dev pnet5
iptables-restore < /etc/network/iptables.rules
echo "1" > /proc/sys/net/ipv4/ip_forward
exit 0

root@pnetlab:~# chmod +x /etc/network/if-pre-up.d/iptables-load        

Добавляем виртуальный хост микротик        

  • Add an object - Nodes - Mikrotik RouterOS:
    • Name: Mikrotik
    • Ethernet: 5

Линкуем интерфейс микрота ether3 с сетью Net_172.16.1.0/24

На интерфейсе микрота ether3 прописываем адрес 172.16.1.100/24,

Шлюз по-умолчанию 172.16.1.1 (адрес интерфейса pnet5 в PNETLAB)

DNS - 8.8.8.8

Проверяем

[admin@MikroTik] > tool traceroute ya.ru

# ADDRESS                          LOSS SENT    LAST     AVG    BEST   WORST STD-DEV STATUS
1 172.16.1.1                         0%    3   0.8ms     1.1     0.8     1.2     0.2
2 192.168.17.8                       0%    3   1.1ms     1.1       1     1.3     0.1
3 193.34.13.97                       0%    3   1.7ms     2.8     1.7     4.8     1.4
4 213.135.130.21                     0%    3   4.4ms     4.9     4.4     5.9     0.7
5 95.167.13.2                        0%    3   3.2ms     4.4     3.2     6.4     1.4
6 87.226.181.89                      0%    3  22.6ms    22.8    22.6      23     0.2
7 5.143.250.94                       0%    2  26.1ms    24.4    22.6    26.1     1.8
8                                  100%    2 timeout
9 87.250.250.242                     0%    2  26.2ms    25.9    25.6    26.2     0.3

Готово, наш микрот выходит через NAT в физическую локальную сеть 17, а оттуда в интернет