Jump to content
Калькуляторы

НАТ и БГП на одном сервере Как?

Доброго дня всем ...

 

Ситуация:

Есть работающий сервер, в него приходят два аплинка от разных провайдеров.

От каждого мы получили небольшой блок адресов и пускаем пользователей через нат на каждом интерфейсе, чето типа

 

int_if="em0"
ext_if="em1"
ua_if="bge1"
nat pass on $ext_if from 192.168.0.0/16 to any -> х.х.х.х/хх source-hash
nat pass on $ext_if from 10.0.0.0/8 to any -> $ext_if
nat pass on $ua_if from 192.168.0.0/16 to any -> у.у.у.у/уу source-hash
nat pass on $ua_if from 10.0.0.0/8 to any -> $ua_if

 

на ем0 висит ngtee, отдающий статистику Нетфлов.

 

И вот для прекращения всего этого безобразия прикупили АС и подняли БГП с обоими провайдерами.. Анонсируем обоим весь наш блок адресов. Один пров дает дефолт, второй - только префиксы УаИкс.

НО - реально, сейчас СВОИМ блоком адресов /24 НЕ пользуемся. Продолжаем работать с блоками верхних провов, так как они висят на нате на ОБОИХ интерфейсах.

 

Собственно задача - сделать на одной машине БГП, НАТ и сбор статистики нетфлов с нее, причем НЕотначеных адресов, само собой.

Как задействовать блок наших адресов, не разнося при этом биллинг и бгп на отдельные машины? С отдельными машинами я вижу так - на одной нетфлов и нат, на другой - бгп.

 

Если возможно на одной машине, то:

- можно ли натить на ОБА интерфеса ОДИН И ТОТ ЖЕ блок адресов, вроде как так -

 

int_if="em0"

ext_if="em1"

ua_if="bge1"

nat pass on $ext_if from 192.168.0.0/16 to any -> z.z.z.z/zz source-hash

nat pass on $ua_if from 192.168.0.0/16 to any -> z.z.z.z/zz source-hash

Будет ли это работать и не будет ли накладок ?

Если натить одну часть нашей подсети /24 на одного прова, а другую - на другого, то юзер будет виден в Мире и УаИксе под разными ИПами, тоесть также, как и было у нас ДО АС и БГП (((

 

Заранее спасибо за советы ...

Edited by Elisium

Share this post


Link to post
Share on other sites

можно, отначенный блок пойдет по роутингу.

нетфлоу снимать чере ng_netflow на внутреннем интерфейсе.

Share this post


Link to post
Share on other sites

Заработало только вот так -

nt_if="em0"

ext_if="em1"

ua_if="bge1"

nat pass on {$ext_if,$ua_if} from 192.168.0.0/16 to any -> z.z.z.z/zz source-hash

Если разложить на два правила, то адреса в мир и укр сегмент выдаются разные.

 

Вопрос был реально для первоклассников (((

Просто стремно было центральный сервак дергать ((((

Edited by Elisium

Share this post


Link to post
Share on other sites

можно еще так написать, если у вас всего 3 интерфейса

 

nat pass on ! $nt_if from 192.168.0.0/16 to any -> z.z.z.z/zz source-hash

 

или писать как и писали два правила только поменять алгоритм, на bitmask предположим.

 

т.е.

 

nat pass on $ext_if from 192.168.0.0/16 to any -> z.z.z.z/zz bitmask
nat pass on $ua_if from 192.168.0.0/16 to any -> z.z.z.z/zz bitmask

Edited by [GP]Villi

Share this post


Link to post
Share on other sites

Всем спасибо ))

Вопрос уже немного ранее решен ))

Edited by Elisium

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this