Pnetlab. Подключить виртуальное устройство к физической сети: различия между версиями
Cless (обсуждение | вклад) (Новая страница: «Категория:Pnetlab Категория:ESXi Категория:Proxmox») |
Cless (обсуждение | вклад) |
||
| (не показаны 4 промежуточные версии этого же участника) | |||
| Строка 1: | Строка 1: | ||
[[Категория:Pnetlab]] | [[Категория:Pnetlab]] | ||
[[Категория:ESXi]] | [[Категория:ESXi]] | ||
= Вариант 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> | |||
Проверяем что разрешен форвардинг пакетов между интерфейсами | |||
"'''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 | |||
* 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 должны увидеть следующее: | |||
<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 | |||
... | |||
Проверяем | |||
<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 | |||
* 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 должны увидеть следующее: | |||
<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 | |||
... | |||
Проверяем | |||
<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 установлена в ESXi или Proxmox == | |||
=== 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: | |||
*** Добавляем виртуальную сеть Net_172.16.1.0/24 | |||
**** Add an object - '''Network''': | |||
**** Name: '''Net_172.16.1.0/24''' | |||
**** Type: '''Cloud5''' | |||
Прописываем адрес на интерфейсе | |||
<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, а оттуда в интернет | |||
[[Категория:Proxmox]] | [[Категория: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
- Security
- Edit settings
- vSwitch02 (виртуальный свитч, в которой подключен физ интерфейс ESXI, к которому подключен вирт интерфейс ВМ pnetlab)
- Virtual Switches
- Networking
Параметры для физического интерфейса берем автоматом от свитча
- 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
- Edit settings
- VM Network (сеть, в которой подключен интерфейс ВМ)
- Port groups
- Networking
Создаем ВМ 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)
- Add an object - Network:
- Добавляем виртуальную сеть Net17, которая по L2 будет связана с физическим интерфейсом ВМ PNETLAB
- создаем новую лабу test01:
Добавляем виртуальный хост 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)
- Add an object - Network:
- Добавляем виртуальную сеть Net17, которая по L2 будет связана с физическим интерфейсом ВМ PNETLAB
- создаем новую лабу test01:
Добавляем виртуальный хост 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
- Добавляем виртуальную сеть Net_172.16.1.0/24
- Создаем новую лабу test01:
Прописываем адрес на интерфейсе
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, а оттуда в интернет