Есть есть сервер, на нем установлен OpenVPN сервер и такая таблица маршрутизации
hardcoreuk # route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.231.1 0.0.0.0 UG 4 0 0 eth0
10.231.0.0 10.231.0.2 255.255.255.0 UG 0 0 0 tun0
10.231.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
127.0.0.0 127.0.0.1 255.0.0.0 UG 0 0 0 lo
192.168.231.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0был шлюз и на нем был прописан такой маршрут
ID Destination IP Address Subnet Mask Default Gateway Status Modify
1 10.231.0.0 255.255.255.0 192.168.231.42 Enabled Modify DeleteЯ заменит шлюз на тачку с Zentyal и добавил вот такой маршрут
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.231.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
xx.xx.xx.xx 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.231.0.0 192.168.231.42 255.255.255.0 UG 0 0 0 eth1теперь vpn клиенты видят только 192.168.231.42 и 192.168.231.1, а необходимый 192.168.231.250 не видят.
Я не могу понять в чем дело.
>[оверквотинг удален]
> xx.xx.xx.xx 0.0.0.0
> 255.255.255.0 U 0
> 0
> 0 eth0
> 10.231.0.0 192.168.231.42 255.255.255.0 UG
> 0 0
> 0 eth1
> теперь vpn клиенты видят только 192.168.231.42 и 192.168.231.1, а необходимый 192.168.231.250
> не видят.
> Я не могу понять в чем дело.192.168.231.42 это я так понимаю OpenVPN сервер , 192.168.231.1 это шлюз?
таблицу маршрутизации с 192.168.231.250 покажите, маршрута к 10.231.0.0 там наверно нет, и тогда правила пакетного фильтра с 192.168.231.1 смотрите
>[оверквотинг удален]
>> 0 eth0
>> 10.231.0.0 192.168.231.42 255.255.255.0 UG
>> 0 0
>> 0 eth1
>> теперь vpn клиенты видят только 192.168.231.42 и 192.168.231.1, а необходимый 192.168.231.250
>> не видят.
>> Я не могу понять в чем дело.
> 192.168.231.42 это я так понимаю OpenVPN сервер , 192.168.231.1 это шлюз?
> таблицу маршрутизации с 192.168.231.250 покажите, маршрута к 10.231.0.0 там наверно нет,
> и тогда правила пакетного фильтра с 192.168.231.1 смотритеKernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.231.1 0.0.0.0 UG 3 0 0 eth0
127.0.0.0 127.0.0.1 255.0.0.0 UG 0 0 0 lo
192.168.231.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
http://s3.hostingkartinok.com/uploads/images/2012/08/58e88e1...
>[оверквотинг удален]
> 0 eth0
> 127.0.0.0 127.0.0.1
> 255.0.0.0 UG
> 0 0
> 0 lo
> 192.168.231.0 0.0.0.0
> 255.255.255.0 U 0
> 0
> 0 eth0
> http://s3.hostingkartinok.com/uploads/images/2012/08/58e88e1...с адресами я так понимаю угадал. тогда у вас получается вот что. от vpn-клиента пакет идет с 192.168.231.42 напрямую к 192.168.231.250, а вот ответ , так как на 192.168.231.250 нет маршрута к 10.231.0.0, пойдет через 192.168.231.1. то правило что вы показали бесполезно, нужно правило для ответного пакета. запустите tcpdump на eth1 шлюза и увидите что происходит.
>[оверквотинг удален]
>> 192.168.231.0 0.0.0.0
>> 255.255.255.0 U 0
>> 0
>> 0 eth0
>> http://s3.hostingkartinok.com/uploads/images/2012/08/58e88e1...
> с адресами я так понимаю угадал. тогда у вас получается вот что.
> от vpn-клиента пакет идет с 192.168.231.42 напрямую к 192.168.231.250, а вот
> ответ , так как на 192.168.231.250 нет маршрута к 10.231.0.0, пойдет
> через 192.168.231.1. то правило что вы показали бесполезно, нужно правило для
> ответного пакета. запустите tcpdump на eth1 шлюза и увидите что происходит.Это правило я прописываю на шлюзе?
я так понимаю должно быть 10.231.0.0/16 gw 192.168.231.42 ???
для этого такого правила тоже нужно создавать правила в pf?
>[оверквотинг удален]
>>> 0
>>> 0 eth0
>>> http://s3.hostingkartinok.com/uploads/images/2012/08/58e88e1...
>> с адресами я так понимаю угадал. тогда у вас получается вот что.
>> от vpn-клиента пакет идет с 192.168.231.42 напрямую к 192.168.231.250, а вот
>> ответ , так как на 192.168.231.250 нет маршрута к 10.231.0.0, пойдет
>> через 192.168.231.1. то правило что вы показали бесполезно, нужно правило для
>> ответного пакета. запустите tcpdump на eth1 шлюза и увидите что происходит.
> Это правило я прописываю на шлюзе?
> я так понимаю должно быть 10.231.0.0/16 gw 192.168.231.42 ???на шлюзе уже есть маршрут правда не к 10.231.0.0/16, а к 10.231.0.0/24.
если такой же маршрут пропишите на 192.168.231.250, то ответы пойдут уже не через шлюз, а напрямую на vpn-сервер, но если vpn-клиенты будут хотить не только на 192.168.231.250, а и на другие 192.168.231.0/24, то что бы не прописывать маршруты у всех 192.168.231.0/24, напишите правило для пакетов от 192.168.231.0/24 к 10.231.0.0/24(16) на шлюзе.
> для этого такого правила тоже нужно создавать правила в pf?
pf шлюза или vpn-сервера?
>[оверквотинг удален]
>> Это правило я прописываю на шлюзе?
>> я так понимаю должно быть 10.231.0.0/16 gw 192.168.231.42 ???
> на шлюзе уже есть маршрут правда не к 10.231.0.0/16, а к 10.231.0.0/24.
> если такой же маршрут пропишите на 192.168.231.250, то ответы пойдут уже не
> через шлюз, а напрямую на vpn-сервер, но если vpn-клиенты будут хотить
> не только на 192.168.231.250, а и на другие 192.168.231.0/24, то что
> бы не прописывать маршруты у всех 192.168.231.0/24, напишите правило для пакетов
> от 192.168.231.0/24 к 10.231.0.0/24(16) на шлюзе.
>> для этого такого правила тоже нужно создавать правила в pf?
> pf шлюза или vpn-сервера?Я запутался...
1)Мне нужно прописать 10.231.0.0/24 gw 192.168.231.42 и правило
2)Помогите понять что за правило. Мой мозг уже отказывается работать.
>[оверквотинг удален]
>> если такой же маршрут пропишите на 192.168.231.250, то ответы пойдут уже не
>> через шлюз, а напрямую на vpn-сервер, но если vpn-клиенты будут хотить
>> не только на 192.168.231.250, а и на другие 192.168.231.0/24, то что
>> бы не прописывать маршруты у всех 192.168.231.0/24, напишите правило для пакетов
>> от 192.168.231.0/24 к 10.231.0.0/24(16) на шлюзе.
>>> для этого такого правила тоже нужно создавать правила в pf?
>> pf шлюза или vpn-сервера?
> Я запутался...
> 1)Мне нужно прописать 10.231.0.0/24 gw 192.168.231.42 и правило
> 2)Помогите понять что за правило. Мой мозг уже отказывается работать.покаместь сделайте правило пакетного фильтра на шлюзе, разрешите прохождения пакетов от
192.168.231.0/24 к 10.231.0.0/24там linux? вывод iptables-save покажите, только без белых ip
>[оверквотинг удален]
>>> бы не прописывать маршруты у всех 192.168.231.0/24, напишите правило для пакетов
>>> от 192.168.231.0/24 к 10.231.0.0/24(16) на шлюзе.
>>>> для этого такого правила тоже нужно создавать правила в pf?
>>> pf шлюза или vpn-сервера?
>> Я запутался...
>> 1)Мне нужно прописать 10.231.0.0/24 gw 192.168.231.42 и правило
>> 2)Помогите понять что за правило. Мой мозг уже отказывается работать.
> покаместь сделайте правило пакетного фильтра на шлюзе, разрешите прохождения пакетов от
> 192.168.231.0/24 к 10.231.0.0/24
> там linux? вывод iptables-save покажите, только без белых ipЯ создал правило в pf
# Generated by iptables-save v1.4.4 on Wed Aug 8 13:03:18 2012
*nat
:PREROUTING ACCEPT [215322:18286413]
:POSTROUTING ACCEPT [16546:1247167]
:OUTPUT ACCEPT [32583:2447087]
:postmodules - [0:0]
:premodules - [0:0]
-A PREROUTING -j premodules
-A PREROUTING -d xx.xx.xx.101/32 -i eth0 -p udp -m udp --dport 1194 -j DNAT --to-destination 192.168.231.42:1194
-A PREROUTING -d xx.xx.xx.101/32 -i eth0 -p tcp -m tcp --dport 142 -j DNAT --to-destination 192.168.231.42:142
-A POSTROUTING -j postmodules
-A POSTROUTING ! -s xx.xx.xx.101/32 -o eth0 -j SNAT --to-source xx.xx.xx.101
-A postmodules -s 10.10.0.0/24 -o eth1 -j MASQUERADE
COMMIT
# Completed on Wed Aug 8 13:03:18 2012
# Generated by iptables-save v1.4.4 on Wed Aug 8 13:03:18 2012
*filter
:INPUT DROP [0:0]
:FORWARD DROP [5:238]
:OUTPUT DROP [0:0]
:drop - [0:0]
:fdns - [0:0]
:fdrop - [0:0]
:ffwdrules - [0:0]
:fglobal - [0:0]
:fmodules - [0:0]
:fnoexternal - [0:0]
:fnospoof - [0:0]
:fnospoofmodules - [0:0]
:fobjects - [0:0]
:fredirects - [0:0]
:ftoexternalonly - [0:0]
:idrop - [0:0]
:iexternal - [0:0]
:iexternalmodules - [0:0]
:iglobal - [0:0]
:iintservs - [0:0]
:imodules - [0:0]
:inoexternal - [0:0]
:inointernal - [0:0]
:inospoof - [0:0]
:inospoofmodules - [0:0]
:log - [0:0]
:odrop - [0:0]
:oglobal - [0:0]
:ointernal - [0:0]
:omodules - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state INVALID -j idrop
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -j inospoof
-A INPUT -j iexternalmodules
-A INPUT -j iexternal
-A INPUT -j inoexternal
-A INPUT -j imodules
-A INPUT -j iintservs
-A INPUT -j iglobal
-A INPUT -p icmp ! -f -m icmp --icmp-type 8 -m state --state NEW -j ACCEPT
-A INPUT -p icmp ! -f -m icmp --icmp-type 0 -m state --state NEW -j ACCEPT
-A INPUT -p icmp ! -f -m icmp --icmp-type 3 -m state --state NEW -j ACCEPT
-A INPUT -p icmp ! -f -m icmp --icmp-type 4 -m state --state NEW -j ACCEPT
-A INPUT -p icmp ! -f -m icmp --icmp-type 11 -m state --state NEW -j ACCEPT
-A INPUT -p icmp ! -f -m icmp --icmp-type 12 -m state --state NEW -j ACCEPT
-A INPUT -j idrop
-A FORWARD -m state --state INVALID -j fdrop
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -j fnospoof
-A FORWARD -j fredirects
-A FORWARD -j fmodules
-A FORWARD -j ffwdrules
-A FORWARD -j fnoexternal
-A FORWARD -j fdns
-A FORWARD -j fobjects
-A FORWARD -j fglobal
-A FORWARD -p icmp ! -f -m icmp --icmp-type 8 -m state --state NEW -j ACCEPT
-A FORWARD -p icmp ! -f -m icmp --icmp-type 0 -m state --state NEW -j ACCEPT
-A FORWARD -p icmp ! -f -m icmp --icmp-type 3 -m state --state NEW -j ACCEPT
-A FORWARD -p icmp ! -f -m icmp --icmp-type 4 -m state --state NEW -j ACCEPT
-A FORWARD -p icmp ! -f -m icmp --icmp-type 11 -m state --state NEW -j ACCEPT
-A FORWARD -p icmp ! -f -m icmp --icmp-type 12 -m state --state NEW -j ACCEPT
-A FORWARD -j fdrop
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -m state --state INVALID -j odrop
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -j ointernal
-A OUTPUT -j omodules
-A OUTPUT -j oglobal
-A OUTPUT -p icmp ! -f -m icmp --icmp-type 8 -m state --state NEW -j ACCEPT
-A OUTPUT -p icmp ! -f -m icmp --icmp-type 0 -m state --state NEW -j ACCEPT
-A OUTPUT -p icmp ! -f -m icmp --icmp-type 3 -m state --state NEW -j ACCEPT
-A OUTPUT -p icmp ! -f -m icmp --icmp-type 4 -m state --state NEW -j ACCEPT
-A OUTPUT -p icmp ! -f -m icmp --icmp-type 11 -m state --state NEW -j ACCEPT
-A OUTPUT -p icmp ! -f -m icmp --icmp-type 12 -m state --state NEW -j ACCEPT
-A OUTPUT -j odrop
-A drop -j DROP
-A fdns -d xx.xx.xx.254/32 -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
-A fdns -d xx.xx.xx.254/32 -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
-A fdns -d 8.8.8.8/32 -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
-A fdns -d 8.8.8.8/32 -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
-A fdns -d 8.8.4.4/32 -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
-A fdns -d 8.8.4.4/32 -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
-A fdrop -j drop
-A ffwdrules -i eth1 -j RETURN
-A ffwdrules -d 192.168.231.42/32 -p udp -m udp --sport 142 --dport 142 -j ACCEPT
-A ffwdrules -d 192.168.231.42/32 -p tcp -m tcp --sport 142 --dport 142 -j ACCEPT
-A ffwdrules -s 10.231.0.0/24 -d 192.168.231.0/24 -j ACCEPT
-A fglobal -s 192.168.231.0/24 -d 10.231.0.0/24 -j ACCEPT
-A fglobal -j ACCEPT
-A fnoexternal -i eth0 -m state --state NEW -j fdrop
-A fnospoof -j fnospoofmodules
-A fnospoof -s xx.xx.xx.0/24 ! -i eth0 -j fdrop
-A fnospoof -s 192.168.231.0/24 ! -i eth1 -j fdrop
-A fredirects -d 192.168.231.42/32 -i eth0 -p udp -m state --state NEW -m udp --dport 1194 -j ACCEPT
-A fredirects -d 192.168.231.42/32 -i eth0 -p tcp -m state --state NEW -m tcp --dport 142 -j ACCEPT
-A ftoexternalonly -o eth0 -j ACCEPT
-A ftoexternalonly -j fdrop
-A idrop -j drop
-A iexternal -i eth1 -j RETURN
-A iexternal -i tap0 -j RETURN
-A iexternal -i tap2 -j RETURN
-A iexternal -p udp -m udp --sport 1199 -m state --state NEW -j ACCEPT
-A iexternalmodules -i eth1 -j RETURN
-A iexternalmodules -i tap0 -j RETURN
-A iexternalmodules -i tap2 -j RETURN
-A iexternalmodules -i tap0 -p udp -m udp --dport 520 -j ACCEPT
-A iexternalmodules -i tap2 -p udp -m udp --dport 520 -j ACCEPT
-A iexternalmodules -i eth0 -p udp -m udp --dport 1198 -j ACCEPT
-A iexternalmodules -p udp -m udp --dport 1199 -j ACCEPT
-A iglobal -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT
-A iglobal -p tcp -m tcp --dport 389 -m state --state NEW -j drop
-A iglobal -p tcp -m tcp --dport 6677 -m state --state NEW -j drop
-A iglobal -p udp -m udp --dport 53 -m state --state NEW -j ACCEPT
-A iglobal -p tcp -m tcp --dport 53 -m state --state NEW -j ACCEPT
-A iglobal -p udp -m udp --dport 67 -m state --state NEW -j ACCEPT
-A iglobal -p udp -m udp --dport 69 -m state --state NEW -j ACCEPT
-A iglobal -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT
-A iglobal -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT
-A imodules -i tap0 -p udp -m udp --dport 520 -j ACCEPT
-A imodules -i tap2 -p udp -m udp --dport 520 -j ACCEPT
-A inoexternal -i eth0 -m state --state NEW -j idrop
-A inospoof -j inospoofmodules
-A inospoof -s xx.xx.xx.0/24 ! -i eth0 -j idrop
-A inospoof -s 192.168.231.0/24 ! -i eth1 -j idrop
-A log -j RETURN
-A odrop -j drop
-A oglobal -m state --state NEW -j ACCEPT
-A ointernal -d xx.xx.xx.254/32 -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
-A ointernal -d xx.xx.xx.254/32 -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
-A ointernal -d 8.8.8.8/32 -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
-A ointernal -d 8.8.8.8/32 -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
-A ointernal -d 8.8.4.4/32 -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
-A ointernal -d 8.8.4.4/32 -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
-A ointernal -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
-A ointernal -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
-A omodules -o tap0 -p udp -m udp --dport 520 -j ACCEPT
-A omodules -o tap2 -p udp -m udp --dport 520 -j ACCEPT
-A omodules -p tcp -m tcp --dport 80 -j ACCEPT
COMMIT
# Completed on Wed Aug 8 13:03:18 2012
# Generated by iptables-save v1.4.4 on Wed Aug 8 13:03:18 2012
*mangle
:PREROUTING ACCEPT [12199455:9118573112]
:INPUT ACCEPT [722989:80934345]
:FORWARD ACCEPT [11456765:9036401724]
:OUTPUT ACCEPT [667638:78310483]
:POSTROUTING ACCEPT [12103342:9113377158]
:CHECKIP-TEST - [0:0]
:FAILOVER-TEST - [0:0]
-A PREROUTING -j CONNMARK --restore-mark --nfmask 0xffffffff --ctmask 0xffffffff
-A PREROUTING -m mark --mark 0x0/0xff -m mac --mac-source 00:11:43:EB:03:C6 -j MARK --set-xmark 0x2/0xffffffff
-A PREROUTING -m mark --mark 0x0/0xff -j MARK --set-xmark 0x2/0xffffffff
-A PREROUTING -j CONNMARK --save-mark --nfmask 0xffffffff --ctmask 0xffffffff
-A OUTPUT -j CONNMARK --restore-mark --nfmask 0xffffffff --ctmask 0xffffffff
-A OUTPUT -m mark --mark 0x0/0xff -j MARK --set-xmark 0x2/0xffffffff
-A OUTPUT -j CONNMARK --save-mark --nfmask 0xffffffff --ctmask 0xffffffff
-A OUTPUT -j FAILOVER-TEST
-A OUTPUT -j CHECKIP-TEST
COMMIT
# Completed on Wed Aug 8 13:03:18 2012
>[оверквотинг удален]
> --set-xmark 0x2/0xffffffff
> -A PREROUTING -m mark --mark 0x0/0xff -j MARK --set-xmark 0x2/0xffffffff
> -A PREROUTING -j CONNMARK --save-mark --nfmask 0xffffffff --ctmask 0xffffffff
> -A OUTPUT -j CONNMARK --restore-mark --nfmask 0xffffffff --ctmask 0xffffffff
> -A OUTPUT -m mark --mark 0x0/0xff -j MARK --set-xmark 0x2/0xffffffff
> -A OUTPUT -j CONNMARK --save-mark --nfmask 0xffffffff --ctmask 0xffffffff
> -A OUTPUT -j FAILOVER-TEST
> -A OUTPUT -j CHECKIP-TEST
> COMMIT
> # Completed on Wed Aug 8 13:03:18 2012Все спасибо большое, я разобрался!