В общем сразу говорю - я деревянный в этом вопросе, потому прошу не отправлять в интернет) почитал, ничего не понял.
Имеем proxmox 8 с кучкой контейнеров и ВМ. все с адресами по dhcp 192.168.1.xxx
Создаю машину со статическим адресом 192.168.2.xxx
и она не видит не интернет, ни другие машины, ее так же никто не видит
с этой машины пингуется только сам proxmox 192.168.1.194
что делать? куда податься?)
Хочется послать в интернет, но давайте попробуем тут.
Для начала, за зачем создавать машину со статическим адресом 192.168.2.xxx ?
Ну и немного про основы сетей
CIDR адресация подразумевает слеющие основные компоненты
- CIDR адрес 192.168.2.XXX/24 где 24 это маска сети, 24 означает, что все адреса после последней точки принадлежат одной подсети, сети 192.168.1.0/24 и 192.168.2.0/24 разные, а сеть 10.0.0.0/16 может включать в себя ip 10.0.1.1 и 10.0.30.43
- Адрес маршрутизатора, традиционно это HostMin в калькуляторе, при обращении к хосту в рамках одного сегмента сети (подсеть) происходит ARP запрос и прямое обращение P2P так, сказать, при обращении к другому сегменту сети происходит обращение к маршрутизатору для того, чтобы он уже переслал запрос в нужную сеть
- Статические маршруты, это когда Вы руками прописываете через какой интерфейс и какой маршрутизатор ходить в нужную сеть
Вот калькулятор сетей
Соответственно, сегментировання сеть в минимальном исполнении выглядит так
Для этого надо
- CIDR адресация сегментов сети
- В каждом сегменте указывается адрес маршрутизатора
- Адрес маршрутизатора реальный и находится на маршрутизаторе
- Маршрутизатор знает обо всех сегментах сети, которые он маршрутизирует
- На фаерволе маршрутизатора разрешена эта самая маршрутизация
Соответственно, таблица маршрутизации маршрутизатора выглядит примерно так (упрощенно)
| Адрес | Маршрут |
|---|---|
| 0.0.0.0/0 | wan0 95.135.3.1 |
| 192.168.1.0/24 | eth0 |
| 192.168.2.0/24 | eth1 |
Поэтому, возвращаемся к первоначальному вопросу зачем создавали 192.168.2.xxx?
- Если для статических адресов, то можно либо на маршрутизаторе (DHCP сервере) зафиксировать это IP адрес за узлом, либо ограничить пул динамических адресов, например, выдавать по DHCP адреса с 192.168.1.50 до 192.168.1.254, а с 192.168.1.2 до 192.168.1.49 назначать статически
- Если задача состоит в сегментировании сети, то тогда заводить сегменты на маршрутизаторе (на самом деле не обязательно, но это потребует дополнительных настроек, например, при помощи 121 и 249 опций DHCP) и далее уже подключать узлы к этим сегментам.
В случае сегментирования сети часто используется vlan и тут полезно иметь управляемые свитчи
trunk - физический линк, который пересылает трафик от нескольких vlan
хочется. в первую очередь для опыта что бы когда понадобиться действительно - понимать как это решать. вдруг мне 255 адресов не хватит)
про CIDR забыл написать - стоит 16
По основам сетей - спасибо большое, я это ± видел, и понимаю что ответ тут есть)
Но тугоумность не позволяет найти ответ. посему написал сюда.
еще разок перечитаю - напишу что получилось
все просто
твой прокс должен стать роутером, как обычные роутеры
т.к. адреса 192.168 не маршрутизируются наружу, то тут нужен костыль, который называется маскарадинг или трансляция адресов или source nat
чтобы виртуалки из 192.168.2.xxx видели инторнет, тебе надо на проксе в файле /ect/networks/interfaces сделать такое правило
pre-up iptables -t nat -A POSTROUTING -s ‘192.168.2.0/24’ -o vmbr0 -j MASQUERADE
pre-down iptables -t nat -D POSTROUTING -s ‘192.168.2.0/24’ -o vmbr0 -j MASQUERADE
если не заработает, то надо еще включить перенаправление пакетов
в 9м проксе в /etc профайл файл и теперь они лежат в /usr/lib/sysctl.d/
открываеш /usr/lib/sysctl.d/50-default.conf
добавляеш туда net.ipv4.ip_forward=1
перезагружаеш прокс и должно работать
тогда
- либо где-то стоит /24
- либо неправильно настроен статический IP
- либо они находятся в разных бриджах
254 только при /24, при /16 будет намногобольше хостов, можно посмотреть в калькуляторе, но из этого я делаю вывод, что у вас таки чать машин с /16, а часть с /24, что неправильно
Благодарю, прописал все в /ect/networks/interfaces
добавил post-up echo 1 > /proc/sys/net/ipv4/ip_forward
согласно инструкции с справочника proxmox
все завелось сразу. все другдруга увидели и интернет в т.ч.
Т.е. эти виртуалки на разных бриджах висят? тогда да ответ @kalobyte ближе.
Но я бы еще посоветовал посмотреть замечательное видео про SDN в proxmox
Возможно, что не не понадобится производить настройки в консоли
Если у вас 2 бриджа, то подходит вариант simple (он первый описан в ввидео)
P.S.
Работает, но и пусть, но у меня есть вопросики на тему 2х строронней видимости виртуалок.
нет, один единственный
так не надо делать
это если бы у тебя в один свитч были воткнуты машины с разными сетями
работать будет, но так не надо делать, для этого есть виланы на свитчах и бриджи на проксе
(раньше бриджи были отдельными сетевыми утсройствами для объединения сетей на хабах)
спасибо, но я повторюсь еще раз, я деревянный)
что бы понимать уровень деревянности - мне для ого что бы лампочку вкрутить нужно минимум 3 специалиста ![]()
попробую позде сделать дополнительно несколько бриджей
Ну в общем
- если разные бриджи или один, но с vlan и выходом за рамки Proxmox, то как я описывал. Там на роутере настраивается маршрутизация между сетями и все работает как часы
- Если хотите получить изолированную сеть внутри Proxmox, что-то типа виртуальных сетей в docker-compose, когда виртуалки общаются напрямую между собой без ограничений в свой локальной сети, а выход во внешнюю сеть происходит через точки выхода, то вариант @kalobyte, но я бы его реализацию таки не рекомендовал, а все бы мышкой накликал по мануалу RomNero (ссылку на видео выше кидал) т.к. это более современный вариант и имеет ряд преимуществ
- Отсутствие прямой правки файлов, что в при дальнейших обновлениях PVE может стать существенным. Я вообще не сильно рекомендую лазить внутрь PVE, хоть и сам этим не гнушаюсь
- ± Тоже самое сам проксмокс пропишет, только корректно
- Там есть встроенный DHCP сервер и вроде как еще и DNS
И еще раз, без глубокого понимания сетевых технологий
- Не смешивайте разные маски, т.е. /16 и 24 на 192.168.0.0
- Не добавляйте разные подсети в один бридж или сегмент сети
- Не прописывайте статические адреса из динамического диапазона
- Когда задаете вопрос пишите максимально развернуто, с примерами конфигов и схемами, чтобы камрадам было максимально понятно
- Делайте как можно проще и понимая конкретную задачу (например, сегментировать сеть для DMZ и ACL или виртуализировать сеть для изолированной работы серверов)
Пока видится, что то, что сейчас работает, работает на какой-то магии и не факт, что будет работать на всех сценариях.
P.S.
Маскарадинг (-j MASQURADE) работает только в одном направлении, т.е. на примере на скрине выше пинги из vmbr0 в enc1 ходят, а обратно нет.
А роутинг echo 1 > /proc/sys/net/ipv4/ip_forward работает в обе стороны
Но в любом случае надо в каждой из сетей указать правильные маршруты



