nuclight: (Default)
nuclight ([personal profile] nuclight) wrote2012-04-26 03:11 am
Entry tags:

IpfwNg

В честь 26 годовщины 26 апреля уволился с текущей работы и таки наконец начал проект http://wiki.freebsd.org/IpfwNg — хотя на работе FreeBSD и была основной системой, реальную возможность пилить ядро я так и не получил (хотя тот же NAT64 нам бы понадобился не через полгода, так через год). В ближайшие недели посижу дома и надеюсь сделать хотя бы скелет, который можно будет потом уже в свободное время потихоньку пилить — работы по проекту предстоит очень много.

Желающие обсудить по делу — велкам в каменты (хотя я туда еще не все наброски оформил).

[identity profile] http://users.livejournal.com/_dyr/ 2012-04-27 08:07 am (UTC)(link)
"rtable"
Хотя конкретно для вашего случая я бы всё же не использовал несколько таблиц маршрутизации, а пользовался бы именно перекладыванием в нужный интерфейс ("route-to"). По моему опыту роутеры с несколькими FIB весьма глючные :(

[identity profile] victor-sudakov.livejournal.com 2012-04-27 10:01 am (UTC)(link)
А для локально запущенных приложений pf rtable разве работает? А то в pf.conf(5) написано "Only effective before the route lookup happened, i.e. when filtering inbound." В такой позе и "ipfw setfib" работает.

А перекладыванием я сейчас как раз и пользуюсь, только ipfw fwd, а не pf. Но вот появилась новая фича с этими fib, захотелось попробовать.

[identity profile] http://users.livejournal.com/_dyr/ 2012-04-27 10:17 am (UTC)(link)
Для локальных не знаю.
ipfw fwd не работает же - он изменяет лишь ip, но кладёт в тот же интерфейс (в отличии от удобного route-to в pf):
pass out quick route-to ($ext_if_1 $ext_gw_1) from $nat_1 to any allow-opts no state
pass out quick route-to ($ext_if_2 $ext_gw_2) from $nat_2 to any allow-opts no state

[identity profile] victor-sudakov.livejournal.com 2012-04-28 04:11 am (UTC)(link)
> ipfw fwd не работает же - он изменяет лишь ip, но кладёт в тот же интерфейс

Как это не работает? "If ipaddr is not a local address, then the port number (if specified) is ignored, and the packet will be forwarded to the remote address, using the route as found in the local routing table for that IP."

А как бы на ipfw fwd делали policy routing, если бы клал только в тот же интерфейс? Или я Вас не понял?

[identity profile] http://users.livejournal.com/_dyr/ 2012-04-28 06:30 am (UTC)(link)
А вот фиг. Навскидку: kern/129036 (http://www.freebsd.org/cgi/query-pr.cgi?pr=129036&cat=kern), kern/122963 (http://www.freebsd.org/cgi/query-pr.cgi?pr=122963&cat=kern)

[identity profile] dadv.livejournal.com 2012-04-28 02:08 pm (UTC)(link)
Он кладет в нужный интерфейс, там есть лишь проблема с тем, что переписывание имени исходящего интерфейса в атрибутах пакета не происходит и ipfw продолжает "видеть" имя старого исходящего интерфейса. Но роутинг будет выполнен корректно на указанных next-hop всё равно.

[identity profile] nuclight.livejournal.com 2012-05-10 01:40 am (UTC)(link)
А что глючное? У нас на работе (с которой и уволился) прекрасно работали, [livejournal.com profile] bird_of_luck постарался.

[identity profile] http://users.livejournal.com/_dyr/ 2012-05-10 06:20 am (UTC)(link)
А периодически в дампы валились. :( И как не начнёшь гуглить, так везде первым же советом идёт - убирайте multi-FIB'ы и проверяйте.