Перейти к содержимому
Калькуляторы

ng_nat nat прозрачный для ipfw

Вообщем видел как работает nat трансляция средствами mpd5 (netgraph), абсолютно прозрачно для ipfw ... Меня это очень порадовало, очень удобно ....

 

Подскажите пожалуйста как сделать подобное только для обычного внешнего интерфейса (созданного не mpd) ?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

man ng_nat десять раз

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

3 прочитал не помогло :)

 

# man ng_nat

 # Create NAT node
           ngctl mkpeer ipfw: nat 60 out
           ngctl name ipfw:60 nat
           ngctl connect ipfw: nat: 61 in
           ngctl msg nat: setaliasaddr x.y.35.8

           # Divert traffic into NAT node
           ipfw add 300 netgraph 61 all from any to any in via fxp0
           ipfw add 400 netgraph 60 all from any to any out via fxp0

 

далее написано The ng_nat node can be inserted right after the ng_iface(4) node in the graph.

 

вот как раз именно вопрос в том, что бы не надо было заварачивать трафик через ipfw туда .... просто указывать шлюз куда за ethernet интерфейсом, а пакеты что бы уже сами проходя через ethernet интерфейс натились ng_nat

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ну тогда еще man ng_iface раз пять... И нарисовать схему прохождения пакетов по нетграфу.

Ну или при работающем mpd5 с нетграфовым натом сделать ngctl dot, который попробовать открыть graphViz-ом. И посмотреть как это делает Mpd вешая нат на интерфейс

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Старый код, перешёл с него на pf nat:

mknat() {
        iface=$1
        index=$2
        ngnat_inrule=$3
        ngnat_outrule=$4
        nat_ipaddr=$5

        ipfw add $ngnat_inrule  netgraph $ngnat_inrule  ip from any      to me  via $iface in
        ipfw add $ngnat_outrule netgraph $ngnat_outrule ip from $nat_lan to any via $iface out

        ngctl mkpeer ipfw: nat $ngnat_outrule out
        ngctl name ipfw:$ngnat_outrule nat$index
        ngctl connect ipfw: nat$index: $ngnat_inrule in
        ngctl msg nat$index: setaliasaddr $nat_ipaddr
}

# 5000 = de-nat incoming before traffic accounting
# 6000 = nat outgoing after traffic accounting and shapers
test -n "$nat_ipaddr1" && mknat $ext_nic1 1 5001 6001 "$nat_ipaddr1"
test -n "$nat_ipaddr2" && mknat $ext_nic2 2 5002 6002 "$nat_ipaddr2"
...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Почитав документацию понял что на ether ифейсах это не возможно ..

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я вот два дня уже почитываю доки, а с ng_eiface не получится завернуть в ng_nat пакетики?

Между ng_eiface и ng_ether, к примеру или на выходе с ng_eiface уже готовые ethernet кадры, а не ip пакеты?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.