Wiki source code of Proxmox Настройка сети
Last modified by Сергей Коршунов on 2022/09/01 13:40
Show last authors
author | version | line-number | content |
---|---|---|---|
1 | = Proxmox Настройка сети = | ||
2 | |||
3 | Здравия всем! В этой заметке расскажу как в **Proxmox 7 **настроить сетевые интерфейсы для работы виртуальных машин и контейнеров. Как настроить **VLAN** и пробросить его внутрь виртуальных машин и контейнеров. Создадим внутреннюю сеть без доступа во внешний мир. | ||
4 | |||
5 | Содержание | ||
6 | |||
7 | * Сетевой мост для виртуальных машин | ||
8 | * Внутренняя сеть для виртуальных машин | ||
9 | * Настройка NAT для виртуальных машин | ||
10 | * Настройка VLAN для виртуальных машин | ||
11 | * Заключение | ||
12 | |||
13 | == Сетевой мост для виртуальных машин == | ||
14 | |||
15 | Сетевой мост это режим виртуальные машины получают ip адрес из одной подсети с гипервизором и имеют в нее прямой доступ. | ||
16 | |||
17 | Если мы ставили **Proxmox** из дистрибутива, то бридж **vmbr0** уже будет настроен. Если вы ставили вначале **Debian 11**, а потом сверху **Proxmox**, то эта инструкция для вас. | ||
18 | |||
19 | Откроем настройки сети для нашего **Proxmox** | ||
20 | |||
21 | [[~[~[image:https://hserv.su/wp-content/uploads/2022/07/image-0078-1024x524.png~|~|height="524" width="1024"~]~]>>url:https://hserv.su/wp-content/uploads/2022/07/image-0078.png]] | ||
22 | |||
23 | Откроем наш текущий интерфейс, у меня это **enp4s0f0**. | ||
24 | |||
25 | [[image:https://hserv.su/wp-content/uploads/2022/07/image-0100.png||height="265" width="615"]] | ||
26 | |||
27 | И удалим текущие настройки сети | ||
28 | |||
29 | [[image:https://hserv.su/wp-content/uploads/2022/07/image-0080.png||height="265" width="615"]] | ||
30 | |||
31 | Смело нажимаем кнопку **OK** **Proxmox** не применяет сразу настройки. Создадим наш новый бридж | ||
32 | |||
33 | [[image:https://hserv.su/wp-content/uploads/2022/07/image-0082-1024x524.png||height="524" width="1024"]] | ||
34 | |||
35 | Перенесем настройки сети, самое главное, нужно в поле **Порты сетевого моста** указать имя нашего сетевого интерфейса, в моем случае это **enp4s0f0** | ||
36 | |||
37 | [[image:https://hserv.su/wp-content/uploads/2022/07/image-0101.png||height="265" width="615"]] | ||
38 | |||
39 | Проверяем внесенные изменения, и нажимаем кнопку **Apply Configuration** | ||
40 | |||
41 | [[~[~[image:https://hserv.su/wp-content/uploads/2022/07/image-0084-1024x524.png~|~|height="524" width="1024"~]~]>>url:https://hserv.su/wp-content/uploads/2022/07/image-0084.png]] | ||
42 | |||
43 | На этом настройка сетевого бриджа закончена | ||
44 | |||
45 | == Внутренняя сеть для виртуальных машин == | ||
46 | |||
47 | Иногда нужно несколько виртуальных машин объединить в локальную сеть, при этом, эта сеть не должна иметь доступ во внешний мир. Создадим новый бридж | ||
48 | |||
49 | [[image:https://hserv.su/wp-content/uploads/2022/07/image-0109.png||height="265" width="615"]] | ||
50 | |||
51 | Применим настройки и все наш бридж готов. При этом его можно назначать виртуальным машинам, и он не имеет доступ во внешний мир | ||
52 | |||
53 | == Настройка NAT для виртуальных машин == | ||
54 | |||
55 | В данном режиме сети виртуальные машины получают ip адреса в своей виртуальной подсети, во внешнюю сеть выходят через гипервизор и настроенный на нем NAT. Этот часто применяется при аренде железного сервера, где количество ip адресов ограничено. | ||
56 | |||
57 | Создадим новый бридж | ||
58 | |||
59 | [[image:https://hserv.su/wp-content/uploads/2022/07/image-0110.png||height="265" width="615"]] | ||
60 | |||
61 | Применим настройки | ||
62 | |||
63 | [[image:https://hserv.su/wp-content/uploads/2022/07/image-0111.png||height="278" width="666"]] | ||
64 | |||
65 | Теперь откроем окно терминала | ||
66 | |||
67 | [[~[~[image:https://hserv.su/wp-content/uploads/2022/07/image-0112-1024x493.png~|~|height="493" width="1024"~]~]>>url:https://hserv.su/wp-content/uploads/2022/07/image-0112.png]] | ||
68 | |||
69 | Добавляем в файл с новыми сетевыми настройками несколько строк: | ||
70 | |||
71 | {{{mcedit /etc/network/interfaces.new}}} | ||
72 | |||
73 | {{{auto vmbr100 | ||
74 | iface vmbr100 inet static | ||
75 | address 192.168.100.1/24 | ||
76 | bridge-ports none | ||
77 | bridge-stp off | ||
78 | bridge-fd 0 | ||
79 | post-up echo 1 > /proc/sys/net/ipv4/ip_forward | ||
80 | post-up iptables -t nat -A POSTROUTING -s '192.168.100.0/24' -o vmbr0 -j MASQUERADE | ||
81 | post-down iptables -t nat -D POSTROUTING -s '192.168.100.0/24' -o vmbr0 -j MASQUERADE}}} | ||
82 | |||
83 | В первой строчке мы разрешили форвард пакетов между сетевыми интерфейсами. Без этого гипервизор не сможет работать в роли шлюза. Вторая и третья строка это правила **iptables **для настройки **NAT**. | ||
84 | |||
85 | Осталось перезагрузить сервер **proxmox**. Теперь назначаем этот бридж виртуальным машинам, прописываем на них ip адрес из сети 192.168.100.0/24, в качестве шлюза указываем ip адрес** **192.168.100.1, днс провайдера и на виртуальных машинах будет доступ в интернет. | ||
86 | |||
87 | == Настройка VLAN для виртуальных машин == | ||
88 | |||
89 | Иногда на один физический порт приходит тегированный трафик. Для доступа виртуальных машин к этим сетям используем **Linux VLAN**. | ||
90 | |||
91 | [[~[~[image:https://hserv.su/wp-content/uploads/2022/07/image-0103.png~|~|height="490" width="849"~]~]>>url:https://hserv.su/wp-content/uploads/2022/07/image-0103.png]] | ||
92 | |||
93 | В открывшемся окне в имя добавим наш **VLAN**, к примеру 10. Самое главное поле, это **VLAN raw device**, в котором мы указываем наш сетевой адаптер | ||
94 | |||
95 | [[image:https://hserv.su/wp-content/uploads/2022/07/image-0104.png||height="299" width="615"]] | ||
96 | |||
97 | Щелкаем создать и создается интерфейс **vlan10** | ||
98 | |||
99 | [[image:https://hserv.su/wp-content/uploads/2022/07/image-0105.png||height="199" width="602"]] | ||
100 | |||
101 | Теперь создадим сетевой **bridge**, в настройках **Порты сетевого моста** указываем только что созданный **vlan10.** Имя моста я для удобства ставлю как у **VLAN**. | ||
102 | |||
103 | [[image:https://hserv.su/wp-content/uploads/2022/07/image-0106.png||height="265" width="615"]] | ||
104 | |||
105 | Теперь надо применить внесенные изменения. | ||
106 | |||
107 | [[image:https://hserv.su/wp-content/uploads/2022/07/image-0107.png||height="446" width="875"]] | ||
108 | |||
109 | После этого этот бридж можно назначать виртуальным машинам. | ||
110 | |||
111 | [[image:https://hserv.su/wp-content/uploads/2022/07/image-0108.png||height="197" width="615"]] | ||
112 | |||
113 | == Заключение == | ||
114 | |||
115 | В данной заметке я описал все основные режимы работы сети, которые я использую. Есть еще различные режимы, к примеру, где гипервизор выступает в роли роутера, но мне проще поднять маленькую виртуалку, чем городить это на гипервизоре. Также я не рассмотрел такую вещь как **bond**, те объединение сетевых интерфейсов, для балансировки нагрузки. Это очень большая настройка, потому что сразу надо настраивать **bond** и на коммутаторе. | ||
116 | |||
117 | Как видим из заметки, чтобы виртуалки имели доступ к сети нужно создать сетевой мост — **bridge**. И в зависимости от настроек бриджа мы получаем различный результат. Чем хорошо **proxmox**, он все изменения не применяет сразу, а только после нажатия кнопки. Это дает возможность настраивать сеть, не имея прямого доступа к серверу. |