В настоящее время я настраиваю Ubuntu 12.04 с двумя сетевыми интерфейсами. eth0 находится на LAN_USERS (192.168.5.0/24), предназначенном для пользователя, а eth1 находится на LAN_INFRA (10.0.4.0), предназначенном для управления. Кроме того, я установил мост на eth1.
cat /etc/network/interfaces
:
auto eth0
iface eth0 inet static
address 192.168.5.180
netmask 255.255.255.0
network 192.168.5.0
broadcast 192.168.5.255
gateway 192.168.5.1
auto eth1
iface eth1 inet manual
auto br1
iface br1 inet static
address 10.0.4.5
netmask 255.255.255.0
network 10.0.4.0
broadcast 10.0.4.255
gateway 10.0.4.1
bridge_ports eth1
bridge_stp on
bridge_fd 0
bridge_waitport 0
# route -n
является: Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.5.1 0.0.0.0 UG 100 0 0 eth0 10.0.4.0 0.0.0.0 255.255.255.0 U 0 0 0 br1 192.168.5.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
Из-за фильтрации обратного пути br1 не отображается в сетях, отличных от 10.0.4.0. Я мог бы отключить фильтрацию обратного пути, но решил настроить маршрутизацию на основе политик.
echo "250 infra >> /etc/iproute2/rt_tables
ip rule add iif br1 table infra
ip route add to default dev br1 table infra
И не работает ....
Как я могу отладить свои правила PBR? Есть ли очевидные ошибки в моей настройке?
Ура
ОБНОВЛЕНИЕ: мне нужно маршрутизировать ответы на пакеты, приходящие от br1, обратно через br1, а не через eth0. Мой самый простой вариант использования: эхо-запросы от 192.168.5.10 до 10.0.4.5 не возвращают причину маршрута по умолчанию и rp_filter = 1. Они сбрасываются как марсианские пакеты.
В вашей конфигурации сказано: «Если пакет прибыл на br1, отправьте его через br1». Это явно не имеет смысла. Подобные правила предназначены для маршрутизаторов, но вы даже не упоминаете маршрутизацию.
Вы имеете в виду: «Отправляйте пакеты, которые являются ответом на пакеты, пришедшие на br1 через br1». Это можно сделать с помощью меток пакетов Netfilter и ip rule
вариант fwmark
. Но здесь это не имело бы смысла. Поскольку вы используете rp_filter, вы можете просто маршрутизировать по целевому адресу. Вам даже не нужна расширенная маршрутизация (ip rule
). Для этого. Обычная обычная маршрутизация должна выполнить свою работу: «Отправить 10.0.4.0/24 через br1, остальное через eth0».
Вы объяснили, что вы сделали, но не упомянули ни одной задачи, требующей сложной настройки. Если вы ничего особенного не делаете, что тогда пойдет не так?