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

Материал из Wiki
Перейти к навигации Перейти к поиску
 
Строка 2: Строка 2:
[[Категория:ESXi]]
[[Категория:ESXi]]
[[Категория:Proxmox]]
[[Категория:Proxmox]]
== Вариант 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 веб-интерфейс ====
<code>nano /etc/sysctl.conf</code>
...
# uncomment
net.ipv4.ip_forward=1
...
<code>reboot</code>
* http://<pnetlab_ip>
** создаем новую лабу '''test01''':
*** Добавляем виртуальную сеть '''Net17''', которая по L2 будет связана с физическим интерфейсом ВМ PNETLAB
**** Add an object - '''Network''':
***** Name: '''Net17''' // например, наша физическая подсеть - 192.168.17.0/24
***** Type: '''Management(Cloud0)'''
           
После этого в shell PNETLAB должны увидеть следующее:        
'''pnet0''' - бридж на PNETLAB с адресом 192.168.17.249/24
'''eth0''' - физический интерфейс ВМ PNETLAB    
'''vunl2_3''' - виртуальный интерфейс виртуальной сети Management(Cloud0)        
<code>root@pnetlab:~# brctl show</code>
...
bridge name     bridge id               STP enabled     interfaces
...
pnet0           8000.0050569cc983       no              eth0
                                                         vunl2_3
...
Добавляем виртуальный хост 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'''        
Проверяем        
<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
== Вариант 2. Устройство имеет свою подсеть и подключается через NAT к внешней подсети, в которой находится виртуальная машина PNETLAB ==
==== Pnetlab веб-интерфейс ====
* http://<pnetlab_ip>
** Создаем новую лабу test01:
*** Добавляем виртуальную сеть Net_172.16.1.0/24
**** Add an object - '''Network''':
**** Name: '''Net_172.16.1.0/24'''
**** Type: '''Cloud5'''
==== В shell ВМ PNETLAB         ====
Проверяем что разрешен форвардинг пакетов между интерфейсами
"'''1'''" - значит включен, всё ок.
Если нет - прописываем в этот файл "'''1'''"        
root@pnetlab:~# cat /proc/sys/net/ipv4/ip_forward
...
1
...
Прописываем адрес на интерфейсе        
<code>root@pnetlab:~# ip address add 172.16.1.1/24 dev pnet5</code>
Добавляем правило src-nat на PNETLAB
<code>iptables -t nat -A POSTROUTING -o pnet0 -s 172.16.1.0/24 -j MASQUERADE</code>
После этого в shell PNETLAB должны увидеть следующее        
<code>root@pnetlab:~# ip a</code>
...
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
...
<code>root@pnetlab:~# iptables -L -v -n -t nat</code>
...
3   107 MASQUERADE  all  --  *      pnet0   172.16.1.0/24        0.0.0.0/0
...
Сохраняем настройки
<code>root@pnetlab:~# iptables-save > /etc/network/iptables.rules</code>
<code>root@pnetlab:~# nano /etc/network/if-pre-up.d/iptables-load</code>
#!/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
<code>root@pnetlab:~# chmod +x /etc/network/if-pre-up.d/iptables-load</code>        
Добавляем виртуальный хост микротик        
* 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'''
Проверяем
<code>[admin@MikroTik] > tool traceroute ya.ru</code>
# 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, а оттуда в интернет

Версия 09:30, 19 июля 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

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

           

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

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

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

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

root@pnetlab:~# brctl show

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

Добавляем виртуальный хост 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        

Проверяем        

[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 веб-интерфейс

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

В shell ВМ PNETLAB        

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

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

Если нет - прописываем в этот файл "1"        

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

...
1
...

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

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, а оттуда в интернет