Jump to content

Recommended Posts

Posted

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

 

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

 

 

Posted

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

 

 

Posted

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

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

Posted

Старый код, перешёл с него на 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"
...

  • 2 weeks later...
  • 5 months later...
Posted

Я вот два дня уже почитываю доки, а с 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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.