Туннель IPSec и DHCP Option 82

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
pfsense
рядовой
Сообщения: 44
Зарегистрирован: 2011-11-05 20:39:55

Туннель IPSec и DHCP Option 82

Непрочитанное сообщение pfsense » 2012-03-13 14:19:17

Всем доброго времени суток.

Возникла задача: организовать авторизацию абонентов по порту в удаленном от биллинга населенном пункте. Шлюзы в обоих городах и сам биллинг на FreeBSD 8.2-STABLE

Сейчас сервера еще не разнесены, поэтому шлюзы соединены напрямую пока. Для начала я создал шифрованный туннель между шлюзами с соотв. маршрутами - сетки стали видеть друг друга. Затем на шлюзе №2 я установил ISC, и пропатчил бинарник (dhcp2radius). Настроил свич и биллинг, запускаю...

В логах DHCP:

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

hermes# dhcpd em1.104 gif0 lo0
Internet Systems Consortium DHCP Server V3.0.7
Copyright 2004-2008 Internet Systems Consortium.
Patched by Chebotarev Roman. Home page: http://www.netpatch.ru/dhcp2radius.html
Patch version info: RADIUS to DHCP patch (dhcp2radius) v 0.1.1 2009.06.24
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/
PATCH: dhcp2radius ability is enabled.
Wrote 0 leases to leases file.
Listening on BPF/lo0/00:00:00:00:00:00
Sending on   BPF/lo0/00:00:00:00:00:00
Listening on BPF/gif0/00:00:00:00:00:00
Sending on   BPF/gif0/00:00:00:00:00:00
Listening on BPF/em1.104/00:04:23:ca:d3:b7
Sending on   BPF/em1.104/00:04:23:ca:d3:b7
Sending on   Socket/fallback/fallback-net
hermes# tail -f /var/log/dhcp.log
Mar 13 15:10:28 hermes dhcpd: For info, please visit http://www.isc.org/sw/dhcp/
Mar 13 15:10:28 hermes dhcpd: PATCH: dhcp2radius ability is enabled.
Mar 13 15:10:28 hermes dhcpd: Wrote 0 leases to leases file.
Mar 13 15:10:28 hermes dhcpd: Listening on BPF/lo0/00:00:00:00:00:00
Mar 13 15:10:28 hermes dhcpd: Sending on   BPF/lo0/00:00:00:00:00:00
Mar 13 15:10:28 hermes dhcpd: Listening on BPF/gif0/00:00:00:00:00:00
Mar 13 15:10:28 hermes dhcpd: Sending on   BPF/gif0/00:00:00:00:00:00
Mar 13 15:10:28 hermes dhcpd: Listening on BPF/em1.104/00:04:23:ca:d3:b7
Mar 13 15:10:28 hermes dhcpd: Sending on   BPF/em1.104/00:04:23:ca:d3:b7
Mar 13 15:10:28 hermes dhcpd: Sending on   Socket/fallback/fallback-net
Mar 13 15:10:43 hermes dhcpd: Convert DHCPDISCOVER bc:ae:c5:03:ef:9c/172.22.114.3 to RADIUS and forwarded to 172.16.112.1
Ага, запрос ушел смотрим биллинг:

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

athena# tail -f /usr/local/billing/lbarcd.log | grep DHCP
13.03.2012 15:10:27 VERBOSE     0x800806c40     [ParseBody]     VSA 'DHCP-Message-Type', vendor DHCP, value: "1"
13.03.2012 15:10:27 VERBOSE     0x800806c40     [ParseBody]     VSA 'DHCP-Relay-Agent-Information', vendor DHCP, value: "01060004000100010208000614d64dbf84d0"
13.03.2012 15:10:27 VERBOSE     0x800806c40     [ParseAttr]     Got Circuit-Id (port number) = 1 from DHCP Option 82
13.03.2012 15:10:27 VERBOSE     0x800806c40     [ParseAttr]     Got Agent-Remote-Id = "000614d64dbf84d0" from DHCP Option 82
13.03.2012 15:10:27 VERBOSE     0x800806c40     [AuthenticateDHCP]      DHCP request for vg_id = 1 (found by Option-82)
13.03.2012 15:10:27 INFO        0x800806c40     [AuthenticateDHCP]      Using IP address 172.22.0.2 for vg_id = 1
13.03.2012 15:10:27 INFO        0x800806c40     [AuthenticateDHCP]      User: 'sense', bill by traffic, unlimited session timeout (86400)
13.03.2012 15:10:27 VERBOSE     0x800806c40     [RunAuthRequest]        VSA 'DHCP-Client-Hardware-Address', vendor DHCP, value: "bcaec503ef9c"
13.03.2012 15:10:27 VERBOSE     0x800806c40     [RunAuthRequest]        VSA 'DHCP-IP-Address-Lease-Time', vendor DHCP, value: "86400"
13.03.2012 15:10:27 VERBOSE     0x800806c40     [RunAuthRequest]        VSA 'DHCP-Your-IP-Address', vendor DHCP, value: "172.22.0.2"
13.03.2012 15:10:27 VERBOSE     0x800806c40     [RunAuthRequest]        VSA 'DHCP-Subnet-Mask', vendor DHCP, value: "255.255.255.0"
13.03.2012 15:10:27 VERBOSE     0x800806c40     [RunAuthRequest]        VSA 'DHCP-Interface-Index', vendor DHCP, value: "172.22.114.3"
13.03.2012 15:10:27 VERBOSE     0x800806c40     [RunAuthRequest]        VSA 'DHCP-Gateway-IP-Address', vendor DHCP, value: "172.22.114.3"
13.03.2012 15:10:27 VERBOSE     0x800806c40     [RunAuthRequest]        VSA 'DHCP-DHCP-Server-Identifier', vendor DHCP, value: "172.22.0.1"
13.03.2012 15:10:27 VERBOSE     0x800806c40     [AddAttrs]      VSA 'DHCP-Gateway-IP-Address', vendor DHCP, value: "172.22.0.1"
13.03.2012 15:10:27 VERBOSE     0x800806c40     [AddAttrs]      VSA 'DHCP-Domain-Name-Server', vendor DHCP, value: "ac160001"
Ок. Ответ тоже ушел. Смотрим опять на втором шлюзе:

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

hermes# tcpdump -i gif0 -vv -s0 host 172.16.113.1
tcpdump: listening on gif0, link-type NULL (BSD loopback), capture size 65535 bytes
15:13:48.671417 IP (tos 0x0, ttl 30, id 27992, offset 0, flags [none], proto IPIP (4), length 187)
    172.16.113.1 > 172.16.113.222: IP (tos 0x0, ttl 63, id 55919, offset 0, flags [none], proto UDP (17), length 167)
    172.16.112.1.2812 > 172.22.0.1.bootps: [udp sum ok] BOOTP/DHCP, Reply, length 139, htype 250, hlen 0, hops 139, xid 0x6fa9b69d, secs 30376, Flags [Broadcast] (0x9fc5)
          Client-IP 102.90.149.23
          Your-IP 19.250.146.66
          Server-IP 26.15.0.0
          Gateway-IP 0.54.1.11
          file "^GM-,^V" [|bootp]
Ответ приходит, правда со странными параметрами... но не в этом суть. dhcpd отказывается его видеть, и вместо заветного

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

Convert RADIUS-reply for ...
он продолжает отсылать запросы и не получать ответы.

Есть мнение, что это может быть из-за инкапсуляции пакетов. Но точно не знаю. Как мне это победить?

Конфиги какие и схему соединений могу выложить при необходимости... спасибо!

Хостинговая компания 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/

pfsense
рядовой
Сообщения: 44
Зарегистрирован: 2011-11-05 20:39:55

Re: Туннель IPSec и DHCP Option 82

Непрочитанное сообщение pfsense » 2012-03-14 8:13:08

За ночь родилась мысль о том, что все бы работало, если разнести функции организации туннеля и DHCP на разные серверы. Только мне это не очень подходит. Нужно, чтобы он извлекал исходный пакет и "клал" себе на интерфейс назначения... как-то так...

pfsense
рядовой
Сообщения: 44
Зарегистрирован: 2011-11-05 20:39:55

Re: Туннель IPSec и DHCP Option 82

Непрочитанное сообщение pfsense » 2012-03-14 12:59:55

Продолжаю сам с собой...

Плюнул я на этот туннель пока. Решил напрямую пакеты запустить, теперь ответы приходят, но сразу же валится dhcpd:

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

hermes# dhcpd -d em1.104 em0 lo0
Internet Systems Consortium DHCP Server V3.0.7
Copyright 2004-2008 Internet Systems Consortium.
Patched by Chebotarev Roman. Home page: http://www.netpatch.ru/dhcp2radius.html
Patch version info: RADIUS to DHCP patch (dhcp2radius) v 0.1.1 2009.06.24
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/
PATCH: dhcp2radius ability is enabled.
Wrote 0 leases to leases file.
Listening on BPF/lo0/00:00:00:00:00:00
Sending on   BPF/lo0/00:00:00:00:00:00
Listening on BPF/em0/00:04:23:ca:d3:b6
Sending on   BPF/em0/00:04:23:ca:d3:b6
Listening on BPF/em1.104/00:04:23:ca:d3:b7
Sending on   BPF/em1.104/00:04:23:ca:d3:b7
Sending on   Socket/fallback/fallback-net
Convert DHCPDISCOVER bc:ae:c5:03:ef:9c/172.22.114.3 to RADIUS and forwarded to xxx.xxx.xxx.xxx
Segmentation fault (core dumped)
hermes# gdb /usr/local/sbin/dhcpd dhcpd.core
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "amd64-marcel-freebsd"...
Core was generated by `dhcpd'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /lib/libc.so.7...done.
Loaded symbols for /lib/libc.so.7
Reading symbols from /libexec/ld-elf.so.1...done.
Loaded symbols for /libexec/ld-elf.so.1
#0  0x0000000000000000 in ?? ()
(gdb)
Все, дальше я совсем не знаю, что делать... помогите...