Я пытаюсь заставить свой хост маршрутизировать свой трафик через гостевую систему KVM (Untangle), но мне не везет с основными правилами IP-таблиц.
Прямо сейчас, у меня есть весь трафик, полученный хостом по eth2 и перенаправляющий весь трафик к eth1. Eth1 соединен с br1, который Untangle видит как WAN. Распутать мосты до br0.
Это все работает нормально. Любой новый гость, которого я создаю, будет проходить через Untangle, а мой маршрутизатор, подключенный к eth0, будет проходить через Untangle.
Как заставить хост маршрутизировать через br0 / eth0?
Вот мои текущие выходные данные маршрутов с трафиком, проходящим через eth2 на хосте:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 76.xx.xx.x 0.0.0.0 UG 0 0 0 eth2
10.10.10.0 * 255.255.255.0 U 0 0 0 br1
76.xxx.xx.x * 255.255.248.0 U 0 0 0 eth2
link-local * 255.255.0.0 U 1000 0 0 br0
192.168.2.0 * 255.255.255.0 U 0 0 0 br0
192.168.122.0 * 255.255.255.0 U 0 0 0 virbr0
Я знаю, что это старо, но я достиг этого раньше другим способом.
Прежде всего, я настроил eth2 на мосту (назовем его br_wan) и НЕ настроил его на хосте (поэтому хост не будет видеть трафик, поступающий на этот порт или на мост). Поделитесь br_wan с гостем и настройте его как порт wan. Нет необходимости заставлять трафик идти к хосту, только чтобы он направлял его гостю. Кроме того, если вы маршрутизируете wan через хост, вы можете потерять много, Untangle не будет знать общедоступный IP-адрес, потому что на хосте будет работать DHCP-клиент, который вам, вероятно, не нужен. И это немного менее безопасно.
Создайте другой мост, вы можете назвать его br_net, и это интерфейс в Untangle, к которому будут подключаться все другие Гости и хост. Его не нужно подключать к физическому интерфейсу, но это может быть, если вы хотите.
Сконфигурируйте хост, чтобы получить его IP от интерфейса br_net, и настройте шлюз на этом интерфейсе так, чтобы у хоста был маршрут по умолчанию, проходящий через интерфейс br_net.
Должен сказать, что я начал с решения, подобного этому, но в итоге решил использовать все брандмауэры на хосте с помощью Shorewall. Теперь мое правило, что касается брандмауэра, это использовать UFW, если установка не будет пересылать пакеты, и использовать Shorewall, если установка будет пересылать пакеты. Shorewall действительно потрясающий, очень легкий в освоении и очень мощный.