ytil Posted July 5, 2018 Posted July 5, 2018 Добрый день. Имеется маршрутизатор с FreeBSD на борту. Ядро собрано с поддержкой множественных таблиц маршрутизации. Задача состоит в том, чтобы одновременно работало 3 разных канала, для разных пулов адресов свои вот конфиг pf пояснения. с пула <ch1> мы натируем соединение к первому провайдеру и всё работает в первой таблице маршрутизации с пула <ch2> всё идет на шлюз по умолчанию 192.168.0.4 (от другого провайдера) и тоже все работает c пула <ch3> тоже всё идет на шлюз по умолчанию 10.100.201.1 (этот шлюз назначен на другом маршрутизаторе ежели 192.168.0.4). Но почему-то исходящий траффик идет через <ch2>, а входящий как надо. Поясните, что же тут не так, и как мне заставить всё это работать) /etc/pf.rules isp1_if = "em0" isp2_if = "bce0" isp3_if = "bce1" int_if = "em1" table <ch1> {172.16.14.0/24} table <ch2> {172.16.15.0/24} table <ch3> {172.16.16.0/24} set limit { states 10000000, frags 15000 } set skip on lo0 set skip on $int_if scrub in all fragment reassemble nat on $isp1_if from <ch1> to any -> 1.1.1.1 pass all pass in from <ch1> to any rtable 0 pass in from <ch2> to any rtable 1 pass in from <ch3> to any rtable 2 netstat -rn | grep default default 1.1.1.1 UGS em0 setfib 1 netstat -rn | grep default default 192.168.0.4 UGS bce0 setfib 2 netstat -rn | grep default default 10.201.1.1 UGS bce1 Вставить ник Quote
Ivan_83 Posted July 5, 2018 Posted July 5, 2018 Я с таблицами не работал но: set skip on $int_if похоже лишнее. nat on $isp1_if from <ch1> to any -> 1.1.1.1 Натить ты должен в адрес на локальном интерфейсе. У тебя должно быть три правила для нат. И вообще, раз у тебя ничего не пересекается то вроде и таблицы машрутизации не нужны: на выход ты гонишь правилами, на вход у тебя таблица нат+маршрутизации. Вставить ник Quote
ytil Posted July 5, 2018 Author Posted July 5, 2018 (edited) 33 минуты назад, Ivan_83 сказал: Я с таблицами не работал но: set skip on $int_if похоже лишнее. nat on $isp1_if from <ch1> to any -> 1.1.1.1 Натить ты должен в адрес на локальном интерфейсе. У тебя должно быть три правила для нат. И вообще, раз у тебя ничего не пересекается то вроде и таблицы машрутизации не нужны: на выход ты гонишь правилами, на вход у тебя таблица нат+маршрутизации. да, бред немного написал, натирую я на локальный интерфейс. т.е. на 1.1.1.2, а шлюз у меня 1.1.1.1. Очепятка почему у меня должно быть 3 правила для ната? 2 других канала у меня натируются на других маршрутизаторах, а на этом я просто указываю к ним default route. Я просто не знаю, как без таблиц маршрутизации загонять трафик с какого-то пула, на нужный шлюз по умолчанию. Не знаю считается это, что каналы пересекаются или нет но маршрутизаторы для второго и третьего канала в одной ospf зоне и вставлены в один свитч. 1 канал мне приходит от Провадера Х, а 2 других канала принадлежат мне. Edited July 5, 2018 by ytil Вставить ник Quote
Ivan_83 Posted July 5, 2018 Posted July 5, 2018 Да, не внимательно читал, один нат. Тогда там есть rdr и может route-to, нужно документацию читать, я бы через них как то указывал. (параллельно вместо ещё двух натов) Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.