Подсеть роутера:10.0.0.0/8
Адрес роутер: 10.0.0.1
Подсеть виртуалок: 10.1.0.1/24
У вас сети пересекаются, 10.1.0.1/24 является частью 10.0.0.0/8.
Не смертельно, но могут возникать иногда трудноопределимые глюканы.
Первое правило IPv4 -- НЕ ДОЛЖНО БЫТЬ ПЕРЕСЕКАЮЩИХСЯ СЕТЕЙ.
asmelnik, я почитал про ipv4 и как я понял единственная доступная частная подсеть это 10.0.0.0/8, вот я и отталкиваюсь от неё или я могу сделать 1.0.0.0/8?
я почитал про ipv4 и как я понял единственная доступная частная подсеть это 10.0.0.0/8
Плохо читали.
т.к.классовые сети нынче архаика, то их 3 диапазона адресов (на самом деле как минимум 4, но последний 4-й использовать крайне не рекомендуется в пользовательских сетях)
10.0.0.0/8
172.16.0.0/12 (или 172.16-31.0.0/16)
192.168.0.0/16 (или 192.168.0-255.0/24)
-A INPUT -d 10.0.0.0/16 -i vmbr1 -j DROP
это для ЛОКАЛЬНОГО УЗЛА, а на транзитных пакетах это никак не отразится.
Для именно ВАШЕГО текущего конфига правильнее
-I INPUT 1 -s 10.1.0.0/16 -i vmbr1 -j DROP
-I FORWARD 1 -s 10.1.0.0/16 -i vmbr1 -j DROP
Это при условии, что vmbr1 интерфейс имеет адрес из сети 10.1.0.0/16
так и на роутере маску поменяйте.
Ну или вместо 10.1.0.0 используйте 172.ххх.ххх.ххх или 192.168.ххх.ххх диапазон
Не, я не настаиваю, но есть как получилось, а есть как правильно.
Пока что у вас получилось "оно работает, но вообще говоря работает неправильно"
Например в сети роутера может появится узел с адресом 10.1.0.1 и он буде совершенно законным узлом, но вот с роутером у него может быть связь очень странная....
если я на роутере поменяю, он будет в подсети подсети, а по задумке он сеть А класса, а не Б
Забудьте про классы, от них отказались окончательно.
И сети класса A и Б (и прочие буквы) ЖЕСТКО определяются первым байтом IPv4 адреса... если уж вы про классы.
В вашей конфигурации узел 10.1.0.15 (например) в сети именно роутера, которая 10.0.0.0/8 (а он ей принадлежит), никогда на сможет связаться с узлом 10.1.0.16 в сети 10.1.0.0/16 ваших виртуалок (не, костыли-способы есть, но по ПРАВИЛЬНОМУ -- связи не будет).
У вас все на физически одной железке, все маршруты в рамках одной ОС-и и у этой ОС-и весьма специфическое поведение, отличное от поведения "железячных" маршрутизаторов.
Общее правило IP:
Один и тот же адрес не может принадлежать 2-м разным конечным подсетям.
т.е. в рамках связности не должно быть например 2-х разных интерфейсов с адресами 10.1.0.1/24 и 10.0.0.1/8
т.к. блок адресов 10.1.0.0-255 принадлежит сразу 2-м сетям.
Учебник вам в помощь.
10.0-255.0.0/16
Итого 256 штук сетей.
В такой сети 65534 адреса для узлов и 2 служебных, использовать которые по классике нельзя (нулевой и последний)
Маска может быть /17
, 18, 19 и т.д до 30 (и 31 тоже, но не на любом оборудовании, а /32- отдельная специфика :) )
Адресов в таких сетях все меньше, но сетей все больше.
IPv4 адрес это просто 32 бита, для удобства восприятия человеком разбитые по 8 бит.
Маска - сколько бит зафиксированы в рамках вашей сети.
т.е. для 10.0.0.0 сети с маской /22
Адрес
00001010 00000000 00000000 00000000
Маска
11111111 11111111 11111100 00000000
Все адреса вида
00001010 00000000 000000хх ххххххххх
т.е. старшие 22 бита всех адресов одинаковые, различаются только младшие (последние) 32-22=10 бит.
Будут адресами этой сети адреса
от 10.0.0.0 до 10.0.3.255
Обычно используют маски 8, 16 и 24 для простоты подсчетов и по инерции от классовых сетей, только и всего.
Транзитные -- они транзитом проходят через узел :)
т.е. их адрес назначения не принадлежит данному узлу, и они приходят на один интерфейс и уходят в какой-то другой... интерфейсы могут быть и виртуальными.
Твоё правило блокирует трафик, исходящий от роутера. Но нам нужно блокировать входящий на роутер от виртуалок. Попробуй так: iptables -A FORWARD -s 10.1.0.0/24 -d 10.0.0.1 -j DROP. Это блокирует пакеты идущие от виртуалок к роутеру.
Дропать вообще весь входящий трафик на роутере - не очень-то полезный совет. И главное, какой в этом практический смысл? Например протокол icmp - это не только ping/traceroute, но и всякие служебные сообщения, необходимые для корректной работы TCP (простейший пример - icmp-сообщение fragmentation needed). Блокировать нужно корректные порты, а не все подряд.