проблема с натом через виртуальный интерфейс ng0

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
k0ma
сержант
Сообщения: 217
Зарегистрирован: 2010-12-07 8:13:09
Откуда: Глубоко в Сибири

проблема с натом через виртуальный интерфейс ng0

Непрочитанное сообщение k0ma » 2014-09-10 18:11:16

как видно из названия темы, проблема с натом через интерфейс Ng0, который подымается по средством программы mpd5.

Код: Выделить всё

root@router:/etc # ifconfig 
bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8009b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,LINKSTATE>
        ether 00:13:d3:db:43:60
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
xl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=82009<RXCSUM,VLAN_MTU,WOL_MAGIC,LINKSTATE>
        ether 00:50:da:c5:11:16
        inet 192.168.168.1 netmask 0xffffff00 broadcast 192.168.168.255
        media: Ethernet autoselect (none)
        status: no carrier
plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> metric 0 mtu 1500
ipfw0: flags=8801<UP,SIMPLEX,MULTICAST> metric 0 mtu 65536
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
        inet 127.0.0.1 netmask 0xff000000 
vlan1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=3<RXCSUM,TXCSUM>
        ether 00:13:d3:db:43:60
        inet 172.17.15.252 netmask 0xfffffc00 broadcast 172.17.15.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
        vlan: 1 parent interface: bge0
vlan20: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=3<RXCSUM,TXCSUM>
        ether 00:13:d3:db:43:60
        inet 10.0.0.253 netmask 0xffffff00 broadcast 10.0.0.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
        vlan: 20 parent interface: bge0
vlan201: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=3<RXCSUM,TXCSUM>
        ether 00:13:d3:db:43:60
        inet 172.20.1.252 netmask 0xffffff00 broadcast 172.20.1.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
        vlan: 201 parent interface: bge0
vlan202: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=3<RXCSUM,TXCSUM>
        ether 00:13:d3:db:43:60
        inet 172.20.2.252 netmask 0xffffff00 broadcast 172.20.2.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
        vlan: 202 parent interface: bge0
vlan203: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=3<RXCSUM,TXCSUM>
        ether 00:13:d3:db:43:60
        inet 172.20.3.252 netmask 0xffffff00 broadcast 172.20.3.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
        vlan: 203 parent interface: bge0
vlan204: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=3<RXCSUM,TXCSUM>
        ether 00:13:d3:db:43:60
        inet 172.20.4.252 netmask 0xffffff00 broadcast 172.20.4.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
        vlan: 204 parent interface: bge0
vlan205: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=3<RXCSUM,TXCSUM>
        ether 00:13:d3:db:43:60
        inet 172.20.5.252 netmask 0xffffff00 broadcast 172.20.5.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
        vlan: 205 parent interface: bge0
vlan206: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=3<RXCSUM,TXCSUM>
        ether 00:13:d3:db:43:60
        inet 172.20.6.252 netmask 0xffffff00 broadcast 172.20.6.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
        vlan: 206 parent interface: bge0
vlan207: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=3<RXCSUM,TXCSUM>
        ether 00:13:d3:db:43:60
        inet 172.20.7.252 netmask 0xffffff00 broadcast 172.20.7.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
        vlan: 207 parent interface: bge0
vlan208: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=3<RXCSUM,TXCSUM>
        ether 00:13:d3:db:43:60
        inet 172.20.8.252 netmask 0xffffff00 broadcast 172.20.8.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
        vlan: 208 parent interface: bge0
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1460
        inet 192.168.100.22 --> 192.168.100.1 netmask 0xffffffff 
ng1: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1396
        inet 192.168.10.0 --> 192.168.10.12 netmask 0xffffffff 

Код: Выделить всё

root@router:/etc # cat /etc/ipfw.rules 
#!/bin/sh
ipfw='/sbin/ipfw -q'
#local='192.168.10.0/23'
worknet='172.17.12.0/20'
usernet='172.16.0.0/22'
vpn='192.168.100.0/22'

##########  VLANS  ######
vlan20='10.0.0.0/24'
vlan201='172.20.1.0/24'
vlan202='172.20.2.0/24'
vlan203='172.20.3.0/24'
vlan204='172.20.4.0/24'
vlan205='172.20.5.0/24'
vlan206='172.20.6.0/24'
vlan207='172.20.7.0/24'
vlan208='172.20.8.0/24'
##########################

#Sbros vseh pravil
${ipfw} flush
${ipfw} pipe flush
${ipfw} queue flush

#Razreshaem vse po local intface
${ipfw} add 10 allow all from any to any via lo0
${ipfw} add 11 deny all from any to 127.0.0.0/8
${ipfw} add 12 deny all from 127.0.0.0/8 to any
${ipfw} add 13 allow all from me to any keep-state

#Ping
${ipfw} add 210 allow icmp from any to me icmptypes 0,3,5,8

#Podkluchenie SSH & VPN 1723(vpn) 22(ssh)
${ipfw} add 250 allow gre from any to any
${ipfw} add 250 allow tcp from any to me 5006 keep-state
${ipfw} add 250 allow all from me to any keep-state

${ipfw} add 250 allow tcp from me to 172.17.12.17 dst-port 1723 keep-state 
${ipfw} add 250 allow tcp from me to 172.17.12.232 dst-port 1723 keep-state

${ipfw} add 250 allow all from ${worknet} to me dst-port 1723,22,80,5006 keep-state
${ipfw} add 250 allow all from ${vlan20} to me dst-port 1723,22,80 keep-state 
${ipfw} add 250 allow all from ${vlan201} to me dst-port 1723,22,80 keep-state
${ipfw} add 250 allow all from ${vlan202} to me dst-port 1723,22,80 keep-state
${ipfw} add 250 allow all from ${vlan204} to me dst-port 1723,22,80 keep-state
${ipfw} add 250 allow all from ${vlan205} to me dst-port 1723,22,80 keep-state
${ipfw} add 250 allow all from ${vlan206} to me dst-port 1723,22,80 keep-state
${ipfw} add 250 allow all from ${vlan207} to me dst-port 1723,22,80 keep-state
${ipfw} add 250 allow all from ${vlan208} to me dst-port 1723,22,80 keep-state

${ipfw} add 250 allow all from 192.168.10.0/23 to me keep-state
#${ipfw} add 250 fwd 192.168.100.1 all from 192.168.10.0/23 to any keep-state

${ipfw} add 250 allow all from 192.168.10.0/23 to ${vpn} keep-state
${ipfw} add 250 allow all from 192.168.10.0/23 to ${worknet} keep-state
${ipfw} add 250 allow all from 192.168.10.0/23 to ${vlan20} keep-state
${ipfw} add 250 allow all from 192.168.10.0/23 to ${vlan201} keep-state
${ipfw} add 250 allow all from 192.168.10.0/23 to ${vlan202} keep-state
${ipfw} add 250 allow all from 192.168.10.0/23 to ${vlan203} keep-state
${ipfw} add 250 allow all from 192.168.10.0/23 to ${vlan204} keep-state
${ipfw} add 250 allow all from 192.168.10.0/23 to ${vlan205} keep-state
${ipfw} add 250 allow all from 192.168.10.0/23 to ${vlan206} keep-state
${ipfw} add 250 allow all from 192.168.10.0/23 to ${vlan207} keep-state
${ipfw} add 250 allow all from 192.168.10.0/23 to ${vlan208} keep-state
${ipfw} add 250 allow all from 192.168.10.0/23 to 172.16.0.0/21 via ng0 keep-state
${ipfw} add 256 deny tcp from any to me 1723,22,80

#logs
${ipfw} add 500 deny log all from any to any

#Vsem VSE
#${ipfw} add 65000 allow all from any to any

#NATip
/sbin/ipnat -CF -f /etc/ipnat.rules

Код: Выделить всё

root@router:/etc # cat /etc/ipnat.rules 
map vlan1 from 192.168.10.0/23 to 172.17.12.0/22 -> 172.17.15.252/32
map vlan20 from 192.168.10.0/23 to 10.0.0.0/24 -> 10.0.0.253/32
map vlan201 from 192.168.10.0/23 to 172.20.1.0/24 -> 172.20.1.252/32
map vlan202 from 192.168.10.0/23 to 172.20.2.0/24 -> 172.20.2.252/32
map vlan203 from 192.168.10.0/23 to 172.20.3.0/24 -> 172.20.3.252/32
map vlan204 from 192.168.10.0/23 to 172.20.4.0/24 -> 172.20.4.252/32
map vlan205 from 192.168.10.0/23 to 172.20.5.0/24 -> 172.20.5.252/32
map vlan206 from 192.168.10.0/23 to 172.20.6.0/24 -> 172.20.6.252/32
map vlan207 from 192.168.10.0/23 to 172.20.7.0/24 -> 172.20.7.252/32
map vlan208 from 192.168.10.0/23 to 172.20.8.0/24 -> 172.20.8.252/32
map vlan209 from 192.168.10.0/23 to 172.20.9.0/24 -> 172.20.9.252/32
map vlan210 from 192.168.10.0/23 to 172.20.10.0/24 -> 172.20.10.252/32
map vlan211 from 192.168.10.0/23 to 172.20.11.0/24 -> 172.20.11.252/32
map vlan212 from 192.168.10.0/23 to 172.20.12.0/24 -> 172.20.12.252/32

#vpn
map ng0 from 192.168.10.0/23 to 192.168.100.0/22 -> 192.168.100.22/32
Если в кратце то подымается куча вланов, внутри вланов есть впн сервер, на котором мы авторизуемся и общаемся и в инет выходим, адреса он выдает 192.168.100.0\23
надо чтобы на фря подымалась впнка (ng0) - работает
чтобы могли к mpd подключаться пользователи "нелегалы" - работает
натить "нелегалов" через поднятую впн на фря (ng0) - неполучается. :st:
если есть идеи попроще конечно выслушаю, но уж очень мне ipfw и ipnat нравятся =)
:bn:

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
kharkov_max
капитан
Сообщения: 1798
Зарегистрирован: 2008-10-03 14:56:40

Re: проблема с натом через виртуальный интерфейс ng0

Непрочитанное сообщение kharkov_max » 2014-09-11 22:13:19

Думаю что на подобное тебе ни кто не ответит.
Конкретизируй проблему (а то как то ты скудно описал ...), и давай конфиг mpd5.

Аватара пользователя
k0ma
сержант
Сообщения: 217
Зарегистрирован: 2010-12-07 8:13:09
Откуда: Глубоко в Сибири

Re: проблема с натом через виртуальный интерфейс ng0

Непрочитанное сообщение k0ma » 2014-09-12 4:07:02

Код: Выделить всё

root@router:/usr/home/koma # cat /usr/local/etc/mpd5/mpd.conf
startup:
        # configure mpd users
        set user foo bar admin
        #set user foo1 bar1
        # configure the console
        set console self 0.0.0.0 5005
        set console open
        # configure the web server
        set web self 0.0.0.0 5006
        set web open
default:
        load pptp_server
        load pptp_client

pptp_client:
        create bundle static B1
#       set iface up-script /usr/local/etc/mpd5/up-script.sh
#       set iface down-script /usr/local/etc/mpd5/down-script.sh
        set iface route default
        set ipcp ranges 0.0.0.0/0 0.0.0.0/0
        create link static L1 pptp
        set link action bundle B1
        set auth authname sa11
        set auth password 8c84d142
        set link max-redial 0
        set link mtu 1460
        set link keep-alive 20 75
        set pptp peer 172.17.12.232
        set pptp disable windowing
        open

pptp_server:
        set ippool add pool1 192.168.10.10 192.168.10.50
        create bundle template B
        set iface enable proxy-arp
        set iface idle 1800
        set iface enable tcpmssfix
        set ipcp yes vjcomp
        set ipcp ranges 192.168.10.0/23 ippool pool1
        set ipcp dns 172.16.0.1
        set bundle enable compression
        set ccp yes mppc
        set mppc yes e40
        set mppc yes e128
        set mppc yes stateless
        create link template L pptp
        set link action bundle B
        set link enable multilink
        set link yes acfcomp protocomp
        set link no pap chap
        set link enable chap
        set link keep-alive 10 60
        set link mtu 1460
        set pptp self 0.0.0.0
        set link enable incoming
что еще написать? скажите, а как то можно глянуть движение пакета? может быть я увижу что от пользователей до меня идут запросы в мир, но мой фаервол их блокирует, либо не идут пакеты и нат криво настроен?
:bn:

Alteron
сержант
Сообщения: 230
Зарегистрирован: 2008-07-21 9:35:11

Re: проблема с натом через виртуальный интерфейс ng0

Непрочитанное сообщение Alteron » 2014-09-12 19:38:40

k0ma писал(а):что еще написать? скажите, а как то можно глянуть движение пакета? может быть я увижу что от пользователей до меня идут запросы в мир, но мой фаервол их блокирует,
tcpdump тебе в помощь
либо не идут пакеты и нат криво настроен?
Как у тебя нат на интерфейсе ng0 запускается?
Измеритель верёвочками.

Аватара пользователя
k0ma
сержант
Сообщения: 217
Зарегистрирован: 2010-12-07 8:13:09
Откуда: Глубоко в Сибири

Re: проблема с натом через виртуальный интерфейс ng0

Непрочитанное сообщение k0ma » 2014-09-13 15:43:52

разобрался, в фаерволе правила не те написаны были.

думал разрешить надо ходить подсети 192.168.10.0\23, просто так без указания интерфейса, а надо было так

Код: Выделить всё

${ipfw} add 260 allow all from 192.168.10.0/23 to any via ng1 keep-state
ну типа разрешить надо было подсетям ходить через определенный интерфейс, нат верно тоже настроен был.
:bn: