Исходящий трафик с определённого хоста лl
-
Одблин.. точно ???
-
В Firewall rules на ЛАН создаем правило, разрешающее хосту ходить в инет. Надеюсь про порядок правил помним.
Помним ;D
в правиле гейтвеем указываем ип ОПТа. Это называется PolicyBased routing - то есть правило с маршрутом.
А вот здесь как выбрать именно интерфейс с которого будем ходить? У меня оба внешних IP из одной подсети и естественно у них один и тот-же шлюз (111.111.111.110/29)
и при создании этого самого правила в выпадающем списке выдаёт просто мне default, 111.111.111.110, 111.111.111.110, т.е. для по шлюзу для каждого интерфейса, а они одинаковые..Вот так, выделенное жирным шрифтом и показывает? Поставьте один из них, вытащите один из кабелей wan или opt1 и будет понятно, какой шлюз использует нужный комп.
-
В Firewall rules на ЛАН создаем правило, разрешающее хосту ходить в инет. Надеюсь про порядок правил помним.
Помним ;D
в правиле гейтвеем указываем ип ОПТа. Это называется PolicyBased routing - то есть правило с маршрутом.
А вот здесь как выбрать именно интерфейс с которого будем ходить? У меня оба внешних IP из одной подсети и естественно у них один и тот-же шлюз (111.111.111.110/29)
и при создании этого самого правила в выпадающем списке выдаёт просто мне default, 111.111.111.110, 111.111.111.110, т.е. для по шлюзу для каждого интерфейса, а они одинаковые..Вот так, выделенное жирным шрифтом и показывает? Поставьте один из них, вытащите один из кабелей wan или opt1 и будет понятно, какой шлюз использует нужный комп.
Лучше поставить и правила посмотреть. Если там на интерфейсах все сделано - то должно работать.
Правила в /tmp/rules.debugПС У меня гейтвей ОПТа последним стоит
-
Люблю подстраховаться… с кабелем оно наверняка :)))
-
ПС У меня гейтвей ОПТа последним стоит
У меня тоже.
Создал правило: написал для проверки, что если адрес соурса 10.10.10.11 и порт назначения 80, то ходить через указанный шлюз (OPT)
cat /tmp/rules.debugUser-defined rules follow
pass in quick on $lan proto tcp from { 10.10.10.11 } to <vpns>port = 80 keep state label "NEGATE_ROUTE: Negate policy route for local network(s)"
pass in quick on $lan route-to ( xl0 111.111.111.110 ) proto tcp from { 10.10.10.11 } to any port = 80 keep state label "USER_RULE"
pass in quick on $lan from 10.10.10.0/24 to any keep state label "USER_RULE: Default LAN -> any"зашёл для проверки на getip.ру. Как и ожидал показывает IP моего ван интерфейса.
На всякий случай указал и другой (такой же шлюз в выпадающем меню) эффект такой-же.</vpns>
-
А кабель выдернуть ? ::)
-
ПС У меня гейтвей ОПТа последним стоит
У меня тоже.
Создал правило: написал для проверки, что если адрес соурса 10.10.10.11 и порт назначения 80, то ходить через указанный шлюз (OPT)
cat /tmp/rules.debugUser-defined rules follow
pass in quick on $lan proto tcp from { 10.10.10.11 } to <vpns>port = 80 keep state label "NEGATE_ROUTE: Negate policy route for local network(s)"
pass in quick on $lan route-to ( xl0 111.111.111.110 ) proto tcp from { 10.10.10.11 } to any port = 80 keep state label "USER_RULE"
pass in quick on $lan from 10.10.10.0/24 to any keep state label "USER_RULE: Default LAN -> any"зашёл для проверки на getip.ру. Как и ожидал показывает IP моего ван интерфейса.
На всякий случай указал и другой (такой же шлюз в выпадающем меню) эффект такой-же.</vpns>
Для ICMP тоже сделай правило.
я не думаю, что он через 80 порт IP узнаёт (могу ошибаться) -
А кабель выдернуть ?
Да я попробовал бы =), только во первых: не пойму зачем, во вторых я сейчас не рядом с файрволом, я по ВПН.
А просто OPT отключить через вебморду не пойдёт?Для ICMP тоже сделай правило.
не думаю, что он через 80 порт IP узнаёт (могу ошибаться)Не поможет.
Вобщем поступил так:
в файле /tmp/rules.debug
нашёл строку в которой создано "неправильное" правило
pass in quick on $lan route-to ( xl0 111.111.111.110 ) proto tcp from { 10.10.10.11 } to any port = 80 keep state label "USER_RULE"
- жирным это WAN;
Заменил название интерфейса на нужное мне (2-ой WAN)
pass in quick on $lan route-to ( rl0 111.111.111.110 ) proto tcp from { 10.10.10.11 } to any port = 80 keep state label "USER_RULE"
после чего сделал pfctl -f /tmp/rules.debug …
И всё заработало :D
Но теперь другая проблема, как сделать чтобы это правило на постоянку "прилипло". ведь после перезагрузки файл с правилами генерируется заново из XML-файла конфигурации.
В XML пробывал посмотреть, но там описание этого правила имеет несколько другой вид:
<rule><type>pass</type>
<interface>lan</interface>
<max-src-nodes><max-src-states><statetimeout><statetype>keep state</statetype>
<os><protocol>tcp</protocol>
<source><address>10.10.10.11</address>
<destination><any><port>80</port></any></destination>
<descr><gateway>111.111.111.110</gateway></descr></os></statetimeout></max-src-states></max-src-nodes></rule>Как в этой секции, отвечающей за генерацию нужно мне правила, указать, что интерфейс для выхода rl0 ???
Добавление <interface>opt1</interface> перед <gateway>111.111.111.110</gateway> не помогает (при парсинге XML выдается ошибка) - жирным это WAN;
-
Я думаю это недоработка или особенность - ищет интерфейс по гейтвею.
Если у Евгения есть время - посмотреть сорцы на этот счет и пообщаться с разрабами. -
Возможно тупой вопрос, но - если линк от провайдера один, то зачем два интерфейса WAN и OPT-WAN? Почему бы не сделать один WAN с виртуальными адресами? а там уж рути/нать трафик как хочешь… Чего-то я вас не догоняю сутра, братцы -(
-
Да… и Евгений перешёл на другую работу, абсолютно никак несвязанную с pfSense, посему наверное скоро скажет проекту "до свидания" -(
-
один WAN с виртуальными адресами?
А чем это поможет? Ведь у меня от этого у меня не появиться возможность на основе PolicyBased routing перенаправлять исходящий трафик через нужный мне интерфейс.
-
один WAN с виртуальными адресами?
А чем это поможет? Ведь у меня от этого у меня не появиться возможность на основе PolicyBased routing перенаправлять исходящий трафик через нужный мне интерфейс.
Если задача - перенаправлять через нужный интерфейс, то - нет, не появится, т.к. этот интерфейс перестанет существовать. Если задача - перенаправлять через/с нужный IP, то всё решится.
Если не секрет - зачем через отдельный интерфейс если всё равно к одному провайдерскому шлюзу? -
Если задача - перенаправлять через/с нужный IP, то всё решится.
Да в принципе на данный момент именно такая задача. Но как это сделать что-то не приложу ума как.
зачем через отдельный интерфейс если всё равно к одному провайдерскому шлюзу?
Просто так исторически сложилось (были/осталась задумки).
-
Если задача - перенаправлять через/с нужный IP, то всё решится.
Да в принципе на данный момент именно такая задача. Но как это сделать что-то не приложу ума как.
Один WAN c 111.111.111.111/29.
На WAN создаёшь Proxy-ARP виртуальный IP 111.111.111.112.
Далее трафик с хоста 10.10.10.11/32 в OutboundNAT делаешь натить используя 111.111.111.112, а трафик с 10.10.10.0/24 - используя 111.111.111.111 (порядок правил должен быть именно такой). Всё собственно. -
Евгений, спасибо! :)
Этот рецепт помог.Только вот:
Я думаю это недоработка или особенность - ищет интерфейс по гейтвею.
Если у Евгения есть время - посмотреть сорцы на этот счет и пообщаться с разрабами.Если всё-таки будет вариант "попинать" девелоперов было бы неплохо реализовать именно как я понял. Чтобы выбор шлюза ещё соответствовал интерфейсу.
В данный момент такой нужды нет, но теоретически такая фенечка была бы очень кстати (хотя скорее всего только для моих сверхмаразматичных задач ::) ).Ещё раз спасибо. (Решено)
-
Сначала нужно на 2.0 проверить. Ветку 1.2 думаю уже никто копать не будет.