Всем здравствуйте. Суть проблемы такова.
В локальной сети есть сервер OpenVPN стоит на FreeBSD 10 amd64, через главный шлюз прокинут udp 1194 до него. На нем одна сетевая карта сеть 192.168.122.0/24, его ip 192.168.122.4.
Сеть OpenVPN 172.16.0.0/24, клиенты подключаются но локальную сеть не видят, только сеть OpenVPN.
Настроить маршрутизацию ipfw не получилось.Конфиг rc.conf
ifconfig_vtnet0="inet 192.168.122.4 netmask 255.255.255.0"
defaultrouter="192.168.122.1"
firewall_enable="YES"
firewall_nat_enable="YES"
firewall_script="/etc/ipfw"Скрипт IPFW сейчас выглядит так:
i="/sbin/ipfw -q"
int="vtnet0"
ext="tun0"
ip_int="192.168.122.4/24"
ip_ext="172.16.0.1/24"
${i} -f flush
${i} add 100 allow ip from any to any via lo0
${i} add 200 deny ip from any to 127.0.0.0/8
${i} add 300 deny ip from 127.0.0.0/8 to any
${i} add 400 allow all from any to any via ${ext}
${i} add 500 allow all from any to any via ${int}
#${i} nat 1 config log if ${int} reset same_ports deny_in
#${i} add pass ip from any to any via ${ext}
#${i} add pass udp from any to ${ip_int} 1194 in via ${int}
#${i} add pass udp from any 123 to any
#${i} add pass tcp from any to ${ip_int} 22 in via ${int}
#${i} add pass ip from ${ip_ext} to ${ip_int} out via ${ext}
#${i} add pass ip from ${ip_int} to ${ip_ext} in via ${ext}
#${i} add 10030 nat 1 ip from any to any via ${int}Конфиг OpenVPN выглядит так:
dev tun
local 192.168.122.4
port 1194
proto udp
server 172.16.0.0 255.255.255.0
push "route 172.16.0.0 255.255.255.0"
client-config-dir ccd
client-to-client
tls-server
dh /usr/local/etc/openvpn/key/dh1024.pem
ca /usr/local/etc/openvpn/key/ca.crt
cert /usr/local/etc/openvpn/key/server.crt
key /usr/local/etc/openvpn/key/server.key
tls-auth /usr/local/etc/openvpn/key/ta.key 0
#comp-lzo
duplicate-cn
keepalive 10 120
tun-mtu 1500
mssfix 1450
persist-key
persist-tun
user nobody
group nobody
verb 3Фаил ccd/home клиента так:
push "route 192.168.122.0 255.255.255.0"Помогите с этим всем разобраться!
>[оверквотинг удален]
> tun-mtu 1500
> mssfix 1450
> persist-key
> persist-tun
> user nobody
> group nobody
> verb 3
> Фаил ccd/home клиента так:
> push "route 192.168.122.0 255.255.255.0"
> Помогите с этим всем разобраться!nat убрали, а 192.168.122.0/24 о 172.16.0.0/24 знает?
>[оверквотинг удален]
>> mssfix 1450
>> persist-key
>> persist-tun
>> user nobody
>> group nobody
>> verb 3
>> Фаил ccd/home клиента так:
>> push "route 192.168.122.0 255.255.255.0"
>> Помогите с этим всем разобраться!
> nat убрали, а 192.168.122.0/24 о 172.16.0.0/24 знает?Я его второй день пытаюсь заставить узнать, но они всё не как не хотят этого.
>[оверквотинг удален]
>>> persist-tun
>>> user nobody
>>> group nobody
>>> verb 3
>>> Фаил ccd/home клиента так:
>>> push "route 192.168.122.0 255.255.255.0"
>>> Помогите с этим всем разобраться!
>> nat убрали, а 192.168.122.0/24 о 172.16.0.0/24 знает?
> Я его второй день пытаюсь заставить узнать, но они всё не как
> не хотят этого.что значит не хотят, маршрут прописывали?
>[оверквотинг удален]
>>>> user nobody
>>>> group nobody
>>>> verb 3
>>>> Фаил ccd/home клиента так:
>>>> push "route 192.168.122.0 255.255.255.0"
>>>> Помогите с этим всем разобраться!
>>> nat убрали, а 192.168.122.0/24 о 172.16.0.0/24 знает?
>> Я его второй день пытаюсь заставить узнать, но они всё не как
>> не хотят этого.
> что значит не хотят, маршрут прописывали?В ipfw или в openvpn?
>[оверквотинг удален]
>>>>> group nobody
>>>>> verb 3
>>>>> Фаил ccd/home клиента так:
>>>>> push "route 192.168.122.0 255.255.255.0"
>>>>> Помогите с этим всем разобраться!
>>>> nat убрали, а 192.168.122.0/24 о 172.16.0.0/24 знает?
>>> Я его второй день пытаюсь заставить узнать, но они всё не как
>>> не хотят этого.
>> что значит не хотят, маршрут прописывали?
> В ipfw или в openvpn?клиент подключается к vpn, получает ip- 172.16.0.10 и пытается подключится к 192.168.122.20. 192.168.122.20 должен отправить ответ на 172.16.0.10. Как пойдет ответ с 192.168.122.20 если на нем нет маршрута к 172.16.0.10, пойдет на шлюз по умолчанию если он прописан, если и на шлюзе нет маршрута к 172.16.0.10, то ответный пакет уйдет к провайдеру. В общем для начала tcptump на интерфейсах на vpn-сервере
>[оверквотинг удален]
>>>> Я его второй день пытаюсь заставить узнать, но они всё не как
>>>> не хотят этого.
>>> что значит не хотят, маршрут прописывали?
>> В ipfw или в openvpn?
> клиент подключается к vpn, получает ip- 172.16.0.10 и пытается подключится к 192.168.122.20.
> 192.168.122.20 должен отправить ответ на 172.16.0.10. Как пойдет ответ с 192.168.122.20
> если на нем нет маршрута к 172.16.0.10, пойдет на шлюз по
> умолчанию если он прописан, если и на шлюзе нет маршрута к
> 172.16.0.10, то ответный пакет уйдет к провайдеру. В общем для начала
> tcptump на интерфейсах на vpn-сервереКогда делаю tcpdump про сеть openvpn не слова. tcpdump -i tun0 тишина.
>[оверквотинг удален]
>>>>> не хотят этого.
>>>> что значит не хотят, маршрут прописывали?
>>> В ipfw или в openvpn?
>> клиент подключается к vpn, получает ip- 172.16.0.10 и пытается подключится к 192.168.122.20.
>> 192.168.122.20 должен отправить ответ на 172.16.0.10. Как пойдет ответ с 192.168.122.20
>> если на нем нет маршрута к 172.16.0.10, пойдет на шлюз по
>> умолчанию если он прописан, если и на шлюзе нет маршрута к
>> 172.16.0.10, то ответный пакет уйдет к провайдеру. В общем для начала
>> tcptump на интерфейсах на vpn-сервере
> Когда делаю tcpdump про сеть openvpn не слова. tcpdump -i tun0 тишина.с vpn-клиента 192.168.122.4 и ip vpn-сервера пингуется?
>[оверквотинг удален]
>>>>> что значит не хотят, маршрут прописывали?
>>>> В ipfw или в openvpn?
>>> клиент подключается к vpn, получает ip- 172.16.0.10 и пытается подключится к 192.168.122.20.
>>> 192.168.122.20 должен отправить ответ на 172.16.0.10. Как пойдет ответ с 192.168.122.20
>>> если на нем нет маршрута к 172.16.0.10, пойдет на шлюз по
>>> умолчанию если он прописан, если и на шлюзе нет маршрута к
>>> 172.16.0.10, то ответный пакет уйдет к провайдеру. В общем для начала
>>> tcptump на интерфейсах на vpn-сервере
>> Когда делаю tcpdump про сеть openvpn не слова. tcpdump -i tun0 тишина.
> с vpn-клиента 192.168.122.4 и ip vpn-сервера пингуется?C vpn клиента пингуется шлюз openvpn сервера 172.16.0.1, а с сервера клиент не пингуется адрес клиента 172.16.0.6. Так же с основного шлюза 192.168.122.1 я вижу шлюз openvpn 172.16.0.1, а клиента 172.16.0.6 нет.
>[оверквотинг удален]
>>>> 192.168.122.20 должен отправить ответ на 172.16.0.10. Как пойдет ответ с 192.168.122.20
>>>> если на нем нет маршрута к 172.16.0.10, пойдет на шлюз по
>>>> умолчанию если он прописан, если и на шлюзе нет маршрута к
>>>> 172.16.0.10, то ответный пакет уйдет к провайдеру. В общем для начала
>>>> tcptump на интерфейсах на vpn-сервере
>>> Когда делаю tcpdump про сеть openvpn не слова. tcpdump -i tun0 тишина.
>> с vpn-клиента 192.168.122.4 и ip vpn-сервера пингуется?
> C vpn клиента пингуется шлюз openvpn сервера 172.16.0.1, а с сервера клиент
> не пингуется адрес клиента 172.16.0.6. Так же с основного шлюза 192.168.122.1
> я вижу шлюз openvpn 172.16.0.1, а клиента 172.16.0.6 нет.смотрите firewall на клиенте и запустите сниффер на клиенте когда пингуете с сервера
и не FreeBSD разрешите пересылку сетевых пакетов
>[оверквотинг удален]
>>>>> 172.16.0.10, то ответный пакет уйдет к провайдеру. В общем для начала
>>>>> tcptump на интерфейсах на vpn-сервере
>>>> Когда делаю tcpdump про сеть openvpn не слова. tcpdump -i tun0 тишина.
>>> с vpn-клиента 192.168.122.4 и ip vpn-сервера пингуется?
>> C vpn клиента пингуется шлюз openvpn сервера 172.16.0.1, а с сервера клиент
>> не пингуется адрес клиента 172.16.0.6. Так же с основного шлюза 192.168.122.1
>> я вижу шлюз openvpn 172.16.0.1, а клиента 172.16.0.6 нет.
> смотрите firewall на клиенте и запустите сниффер на клиенте когда пингуете с
> сервера
> и не FreeBSD разрешите пересылку сетевых пакетовНа клиенте firewall отключен, да и сниффер молчит.
На сервере форвардинг разрешён, в sysctl.conf стоит net.inet.ip.forwarding=1
>[оверквотинг удален]
>>>>> Когда делаю tcpdump про сеть openvpn не слова. tcpdump -i tun0 тишина.
>>>> с vpn-клиента 192.168.122.4 и ip vpn-сервера пингуется?
>>> C vpn клиента пингуется шлюз openvpn сервера 172.16.0.1, а с сервера клиент
>>> не пингуется адрес клиента 172.16.0.6. Так же с основного шлюза 192.168.122.1
>>> я вижу шлюз openvpn 172.16.0.1, а клиента 172.16.0.6 нет.
>> смотрите firewall на клиенте и запустите сниффер на клиенте когда пингуете с
>> сервера
>> и не FreeBSD разрешите пересылку сетевых пакетов
> На клиенте firewall отключен, да и сниффер молчит.
> На сервере форвардинг разрешён, в sysctl.conf стоит net.inet.ip.forwarding=1а если в файл клиента ccd/home добавить
ifconfig-push 172.16.0.2 172.16.0.1это изменит ip клиента.
или попробуйте перейти с tun на tap
>[оверквотинг удален]
>>>> я вижу шлюз openvpn 172.16.0.1, а клиента 172.16.0.6 нет.
>>> смотрите firewall на клиенте и запустите сниффер на клиенте когда пингуете с
>>> сервера
>>> и не FreeBSD разрешите пересылку сетевых пакетов
>> На клиенте firewall отключен, да и сниффер молчит.
>> На сервере форвардинг разрешён, в sysctl.conf стоит net.inet.ip.forwarding=1
> а если в файл клиента ccd/home добавить
> ifconfig-push 172.16.0.2 172.16.0.1
> это изменит ip клиента.
> или попробуйте перейти с tun на tapЗаменил tun на tap и создал мост что бы они были в едином адресном пространстве. Но так и не получилось завести.
Вот что добавил в конфиг openvpn:
dev tap
server-bridge 192.168.122.4 255.255.255.0 192.168.122.10 192.168.122.200В rc.conf добавил следующее:
cloned_interfaces="tap0 bridge0"
ifconfig_bridge0="addm vtnet0 addm tap0 up"
openvpn_if="tap bridge"
Исправил, надо было назначить локальный адрес интерфейсу tap0. Пинги всюду пошли.
Осталось решить проблему firewall на сервере
>[оверквотинг удален]
> tun-mtu 1500
> mssfix 1450
> persist-key
> persist-tun
> user nobody
> group nobody
> verb 3
> Фаил ccd/home клиента так:
> push "route 192.168.122.0 255.255.255.0"
> Помогите с этим всем разобраться!А если я отключу ipfw, сервисы будут открыты? Сейчас ходят только icmp пакеты. А хочеться открыть все протоколы!
>[оверквотинг удален]
> tun-mtu 1500
> mssfix 1450
> persist-key
> persist-tun
> user nobody
> group nobody
> verb 3
> Фаил ccd/home клиента так:
> push "route 192.168.122.0 255.255.255.0"
> Помогите с этим всем разобраться!Помогите разобраться с маршрутизацией, клиенты подключаются к серверу, icmp пакеты ходят, а остальной трафик нет. Сейчас настроено так:
dev tap
local 192.168.122.4
port 1194
proto udp
server-bridge 192.168.122.5 255.255.255.0 192.168.122.10 192.168.122.200
client-config-dir ccd
client-to-client
tls-server
dh /usr/local/etc/openvpn/key/dh1024.pem
ca /usr/local/etc/openvpn/key/ca.crt
cert /usr/local/etc/openvpn/key/server.crt
key /usr/local/etc/openvpn/key/server.key
tls-auth /usr/local/etc/openvpn/key/ta.key 0
comp-lzo
duplicate-cn
keepalive 10 120
tun-mtu 1500
mssfix 1450
persist-key
persist-tun
user nobody
group nobody
verb 3В rc.conf такие настройки:
ifconfig_vtnet0="inet 192.168.122.4 netmask 255.255.255.0"
ifconfig_tap0="up"
defaulrouter="192.168.122.1"
cloned_interfaces="bridge0 tap0"
ifconfig_bridge0="addm vtnet0 addm tap0 up"firewall_enable="YES"
firewall_type="open"openvpn_enable="YES"
openvpn_if="tap bridge"
> Помогите разобраться с маршрутизацией, клиенты подключаются к серверу, icmp пакеты ходят,
> а остальной трафик нет. Сейчас настроено так:С маршрутизацией обычно помогает разобраться tcpdump.
Попробуйте обратиться к нему.
> Помогите разобраться с маршрутизацией, клиенты подключаются к серверу, icmp пакеты ходят,
> а остальной трафик нет.если icmp проходит где нужно, то дело наверно не в маршрутизации