Как решить проблему со сменой МАС на порту доступа?

IPoE related questions
dimka88
Posts: 866
Joined: 13 Oct 2014, 05:51
Contact:

Re: Как решить проблему со сменой МАС на порту доступа?

Post by dimka88 »

Покажите секцию [ipoe], возможно и по reload сработает, но в любом случае, лучше работы проводить в будние дни и ночное время.
ps:// check-mac-change применяется по reload, только обязательно отключите option 82.
KovAl
Posts: 91
Joined: 26 Dec 2017, 15:35

Re: Как решить проблему со сменой МАС на порту доступа?

Post by KovAl »

dimka88 wrote: 12 May 2018, 12:34 Покажите секцию [ipoe]
Сейчас так

Code: Select all

[ipoe]
verbose=1
any-login=0
noauth=0
username=lua:is_user
password=my_pass
lua-file=/etc/accel/accel-ppp.lua
shared=0
ifcfg=1
mode=L2
proxy-arp=0
ip-unnumbered=1
start=dhcpv4
lease-time=600
renew-time=300
max-lease-time=660
attr-dhcp-client-ip=Framed-IP-Address
attr-dhcp-router-ip=DHCP-Router-IP-Address
attr-dhcp-mask=DHCP-Mask
attr-dhcp-opt82-remote-id=AccelRemoteId
attr-dhcp-opt82-circuit-id=AccelCircuitId
attr-l4-redirect=L4-Redirect
attr-l4-redirect-ipset=L4-Redirect-ipset
l4-redirect-on-reject=1800
l4-redirect-ip-pool=guest
vlan-mon=re:eth0\.3[5-9][0-9][0-9],100-2727
vlan-timeout=300
interface=re:eth0\.\d{4}\.\d{3},mtu=1500
check-mac-change=0
gw-ip-address=172.16.0.1/12
gw-ip-address=AAA.BBB.CCC.1/24
gw-ip-address=192.168.248.1/22
Как я понимаю, необходимо будет убрать из конфига

Code: Select all

attr-dhcp-opt82-remote-id=AccelRemoteId
attr-dhcp-opt82-circuit-id=AccelCircuitId
и изменить check-mac-change=0 на check-mac-change=1
KovAl
Posts: 91
Joined: 26 Dec 2017, 15:35

Re: Как решить проблему со сменой МАС на порту доступа?

Post by KovAl »

Похоже, не всё так просто..
Поэкспериментровал на "игрушечном" NAS - изменил только конфиг - option 82 в логе есть.
Пришлось отключить dhcp local relay на свитче, после чего opt 82 из лога исчезла.
Получается, что просто "запретить" accel слушать opt 82 невозможно.
В понедельник попробую на реальной сети.
dimka88
Posts: 866
Joined: 13 Oct 2014, 05:51
Contact:

Re: Как решить проблему со сменой МАС на порту доступа?

Post by dimka88 »

Если убрать attr-dhcp-opt82-remote-id=AccelRemoteId и attr-dhcp-opt82-circuit-id=AccelCircuitId то по reload не применится, нужен будет рестарт. Но это если я правильно понял код.
KovAl
Posts: 91
Joined: 26 Dec 2017, 15:35

Re: Как решить проблему со сменой МАС на порту доступа?

Post by KovAl »

dimka88 wrote: 13 May 2018, 08:23 Если убрать attr-dhcp-opt82-remote-id=AccelRemoteId и attr-dhcp-opt82-circuit-id=AccelCircuitId то по reload не применится, нужен будет рестарт.
Но это если я правильно понял код.
Не похоже. На "игрушечном" NAS я делал именно stop/start - не сработало - в лог по-прежнему записывалось содержимое option 82.

Code: Select all

[2018-05-12 20:02:57]:  info: eth1.3612.2504: recv [DHCPv4 Request xid=7511974c ciaddr=172.16.15.241 chaddr=4c:00:10:3a:3e:dc <Message-Type Request> <Client-ID 014c00103a3edc> <Host-Name master-2> <Option-81 0000006d61737465722d322e> <Vendor-Class 4d53465420352e30> <Request-List Subnet,Domain-Name,Router,DNS,44,46,47,31,Route,249,Vendor-Specific> <Vendor-Specific dc0100> <Relay-Agent {Agent-Circuit-ID _00040e1c0019} {Agent-Remote-ID _0006acf1dfa8cce0}>]
И только после отключения dhcp local relay на коммутаторе - что логично следует - эти записи исчезли.

Code: Select all

[2018-05-12 20:06:37]:  info: eth1.3612.2504: recv [DHCPv4 Discover xid=c72a9f93 chaddr=4c:00:10:3a:3e:dc <Message-Type Discover> <Option-116 01> <Client-ID 014c00103a3edc> <Host-Name master-2> <Vendor-Class 4d53465420352e30> <Request-List Subnet,Domain-Name,Router,DNS,44,46,47,31,Route,249,Vendor-Specific> <Vendor-Specific dc00>]
Я тут вот что подумал - а вообще, атрибуты attr-dhcp-opt82-remote-id и attr-dhcp-opt82-circuit-id для чего предназначены?
Может они служат только для передачи радиусу содержимого option 82 и не для чего более?
Last edited by KovAl on 13 May 2018, 16:12, edited 1 time in total.
nik247
Posts: 108
Joined: 11 Oct 2014, 15:57

Re: Как решить проблему со сменой МАС на порту доступа?

Post by nik247 »

KovAl wrote: 13 May 2018, 10:51 И только после отключения dhcp local relay на коммутаторе - что логично следует - эти записи исчезли.
Для отключения opt82 только это и нужно сделать.
KovAl wrote: 13 May 2018, 10:51 Я тут вот что подумал - а вообще, атрибуты attr-dhcp-opt82-remote-id и attr-dhcp-opt82-circuit-id для чего предназначены?
Может они служат только для передачи радиусу содержимого option 82 и не для чего более?
Именно так - только для передачи радиус серверу.
KovAl
Posts: 91
Joined: 26 Dec 2017, 15:35

Re: Как решить проблему со сменой МАС на порту доступа?

Post by KovAl »

Похоже, что без option82 check-mac-change не работает. Соотв. проблема "реверса портов" не решается..
Вот результаты эксперимента с отключенным option82 и check-mac-change=1.
Active_User - это комп(доступ в Интернет есть), Blocked_User - роутер(доступ в Интернет заблокирован).
1. "Легальное" подключение :
Спойлер

Code: Select all

     ifname     |  username   |    calling-sid    |      ip       | rate-limit  |   called-sid   | state  |  uptime  | rx-bytes | tx-bytes
----------------+-------------+-------------------+---------------+-------------+----------------+--------+----------+----------+----------
 eth1.3612.2508 | Blocked_User| 00:14:d1:e2:63:4e | 172.16.0.7    | 51200/51200 | eth1.3612.2508 | active | 00:00:17 | 1.3 KiB  | 2.4 KiB
 eth1.3612.2504 | Active_User | 4c:00:10:3a:3e:dc | 172.16.15.241 | 51200/51200 | eth1.3612.2504 | active | 00:00:01 | 391 B    | 652 B

Active_User: 
[2018-05-14 12:43:32]:  info: eth1.3612.2504: recv [DHCPv4 Discover xid=cc922934 chaddr=4c:00:10:3a:3e:dc <Message-Type Discover> <Option-116 01> <Client-ID 014c00103a3edc> <Host-Name master-2> <Vendor-Class 4d53465420352e30> <Request-List Subnet,Domain-Name,Router,DNS,44,46,47,31,Route,249,Vendor-Specific> <Vendor-Specific dc00>]
[2018-05-14 12:43:32]: debug: eth1.3612.2504: radius(1): req_enter 1
[2018-05-14 12:43:32]:  info: eth1.3612.2504: send [RADIUS(1) Access-Request id=1 <User-Name "Active_User"> <NAS-Identifier "PPPoE-NAS-7"> <NAS-IP-Address 10.254.213.249> <NAS-Port 5776> <NAS-Port-Id "eth1.3612.2504"> <NAS-Port-Type Ethernet> <Calling-Station-Id "4c:00:10:3a:3e:dc"> <Called-Station-Id "eth1.3612.2504"> <User-Password 0xf42201ec370f2b7561a7cc27c9d37ee6>]
[2018-05-14 12:43:32]: debug: eth1.3612.2504: radius(1): req_exit 0
[2018-05-14 12:43:32]:  info: eth1.3612.2504: recv [RADIUS(1) Access-Accept id=1 <Framed-IP-Address 172.16.15.241> <Framed-IP-Netmask 255.255.255.255> <Session-Timeout 31536000> <Acct-Interim-Interval 60> <Service-Type Framed-User> <Cisco-AVPair "lcp:interface-config#1=rate-limit input 51200000 1200000 2400000 conform-action transmit exceed-action drop"> <Cisco-AVPair "lcp:interface-config#1=rate-limit output 51200000 1200000 2400000 conform-action transmit exceed-action drop"> <Cisco-AVPair "lcp:interface-config#1=rate-limit input access-group 1 98304000 2304000 4608000 conform-action transmit exceed-action drop"> <Cisco-AVPair "lcp:interface-config#1=rate-limit output access-group 1 98304000 2304000 4608000 conform-action transmit exceed-action drop"> <L4-Redirect 0> <L4-Redirect-ipset "Debtors">]
[2018-05-14 12:43:32]:  info: eth1.3612.2504: Active_User: authentication succeeded

Blocked_User:

[2018-05-14 12:43:16]:  info: eth1.3612.2508: recv [DHCPv4 Discover xid=dcc91168 chaddr=00:14:d1:e2:63:4e <Message-Type Discover> <Client-ID 010014d1e2634e>
<Host-Name TRENDnet> <Vendor-Class 756468637020302e392e392d707265> <Request-List Subnet,Router,DNS,Host-Name,Domain-Name,Broadcast,Route,Classless-Route,249>
]
[2018-05-14 12:43:16]: debug: eth1.3612.2508: radius(1): req_enter 1
[2018-05-14 12:43:16]:  info: eth1.3612.2508: send [RADIUS(1) Access-Request id=1 <User-Name "Blocked_User"> <NAS-Identifier "PPPoE-NAS-7"> <NAS-IP-Address 10.254.2
13.249> <NAS-Port 5775> <NAS-Port-Id "eth1.3612.2508"> <NAS-Port-Type Ethernet> <Calling-Station-Id "00:14:d1:e2:63:4e"> <Called-Station-Id "eth1.3612.2508">
 <User-Password 0x55d5f4fd5f779bcac92e1331f3d10b1a>]
[2018-05-14 12:43:16]: debug: eth1.3612.2508: radius(1): req_exit 0
[2018-05-14 12:43:16]:  info: eth1.3612.2508: recv [RADIUS(1) Access-Accept id=1 <Framed-IP-Address 172.16.0.7> <Framed-IP-Netmask 255.255.255.255> <Session-
Timeout 31536000> <Port-Limit 2> <Acct-Interim-Interval 60> <Service-Type Framed-User> <Cisco-AVPair "lcp:interface-config#1=rate-limit input 51200000 120000
0 2400000 conform-action transmit exceed-action drop"> <Cisco-AVPair "lcp:interface-config#1=rate-limit output 51200000 1200000 2400000 conform-action transm
it exceed-action drop"> <Cisco-AVPair "lcp:interface-config#1=rate-limit input access-group 1 98304000 2304000 4608000 conform-action transmit exceed-action
drop"> <Cisco-AVPair "lcp:interface-config#1=rate-limit output access-group 1 98304000 2304000 4608000 conform-action transmit exceed-action drop"> <L4-Redir
ect 1> <L4-Redirect-ipset "Debtors">]
[2018-05-14 12:43:16]:  info: eth1.3612.2508: Blocked_User: authentication succeeded

2. Выключаю роутер (комп. не трогаю), быстро меняю местами порты на коммутаторе (в течении минуты где-то), включаю роутер и..
"нелегал" - enjoy, "легал" уходит в статус "не зарегистрирован"..
Спойлер

Code: Select all

     ifname     |          username          |    calling-sid    |      ip       | rate-limit  |   called-sid   | state  |  uptime  | rx-bytes | tx-bytes
----------------+----------------------------+-------------------+---------------+-------------+----------------+--------+----------+----------+----------
 eth1.3612.2504 | Active_User                | 4c:00:10:3a:3e:dc | 172.16.15.241 | 51200/51200 | eth1.3612.2504 | active | 00:02:14 | 870 B    | 1.7 KiB
 eth1.3612.2508 | 36122508:4c:00:10:3a:3e:dc | 4c:00:10:3a:3e:dc | 192.168.252.2 |             | eth1.3612.2508 | active | 00:00:09 | 483 B    | 652 B


Active_User-чужой порт:

[2018-05-14 12:45:36]:  info: eth1.3612.2508: recv [DHCPv4 Discover xid=45d0d804 chaddr=4c:00:10:3a:3e:dc <Message-Type Discover> <Option-116 01> <Client-ID 014c00103a3edc> <Host-Name master-2> <Vendor-Class 4d53465420352e30> <Request-List Subnet,Domain-Name,Router,DNS,44,46,47,31,Route,249,Vendor-Specific> <Vendor-Specific dc00>]
[2018-05-14 12:45:36]: debug: eth1.3612.2508: radius(1): req_enter 1
[2018-05-14 12:45:36]:  info: eth1.3612.2508: send [RADIUS(1) Access-Request id=1 <User-Name "36122508:4c:00:10:3a:3e:dc"> <NAS-Identifier "PPPoE-NAS-7"> <NAS-IP-Address 10.254.213.249> <NAS-Port 5775> <NAS-Port-Id "eth1.3612.2508"> <NAS-Port-Type Ethernet> <Calling-Station-Id "4c:00:10:3a:3e:dc"> <Called-Station-Id "eth1.3612.2508"> <User-Password 0x81bf9b160b9d2d383063a97bde833789>]
[2018-05-14 12:45:37]: debug: eth1.3612.2508: radius(1): req_exit 0
[2018-05-14 12:45:37]:  info: eth1.3612.2508: recv [RADIUS(1) Access-Reject id=1]
[2018-05-14 12:45:37]:  info: eth1.3612.2508: 36122508:4c:00:10:3a:3e:dc: authentication failed
[2018-05-14 12:45:37]:  info: eth1.3612.2508: 36122508:4c:00:10:3a:3e:dc: start temporary session (l4-redirect)
[2018-05-14 12:45:37]:  info: eth1.3612.2508: send [DHCPv4 Offer xid=45d0d804 yiaddr=192.168.252.2 chaddr=4c:00:10:3a:3e:dc <Message-Type Offer> <Server-ID 192.168.252.1> <Lease-Time 600> <T1 300> <Router 192.168.252.1> <Subnet 255.255.252.0> <DNS AAA.BBB.CCC.DDD,AAA.BBB.CCC.DD1>]
[2018-05-14 12:45:37]:  info: eth1.3612.2508: recv [DHCPv4 Request xid=45d0d804 chaddr=4c:00:10:3a:3e:dc <Message-Type Request> <Client-ID 014c00103a3edc> <Request-IP 192.168.252.2> <Server-ID 192.168.252.1> <Host-Name master-2> <Option-81 0000006d61737465722d322e> <Vendor-Class 4d53465420352e30> <Request-List Subnet,Domain-Name,Router,DNS,44,46,47,31,Route,249,Vendor-Specific> <Vendor-Specific dc0100>]
[2018-05-14 12:45:37]: debug: eth1.3612.2508: ipoe: activate session
[2018-05-14 12:45:37]:  info: eth1.3612.2508: ipoe: session started
[2018-05-14 12:45:37]:  info: eth1.3612.2508: send [DHCPv4 Ack xid=45d0d804 yiaddr=192.168.252.2 chaddr=4c:00:10:3a:3e:dc <Message-Type Ack> <Server-ID 192.168.252.1> <Lease-Time 600> <T1 300> <Router 192.168.252.1> <Subnet 255.255.252.0> <DNS AAA.BBB.CCC.DDD,AAA.BBB.CCC.DD1>]

Blocked_User-чужой порт:

[2018-05-14 12:46:14]:  info: eth1.3612.2504: recv [DHCPv4 Discover xid=dcc91168 chaddr=00:14:d1:e2:63:4e <Message-Type Discover> <Client-ID 010014d1e2634e><Host-Name TRENDnet> <Vendor-Class 756468637020302e392e392d707265> <Request-List Subnet,Router,DNS,Host-Name,Domain-Name,Broadcast,Route,Classless-Route,249>]
[2018-05-14 12:46:14]:  info: eth1.3612.2504: send [DHCPv4 Offer xid=dcc91168 yiaddr=172.16.15.241 chaddr=00:14:d1:e2:63:4e <Message-Type Offer> <Server-ID 172.16.0.3> <Lease-Time 600> <T1 300> <Router 172.16.0.3> <Subnet 255.240.0.0> <DNS AAA.BBB.CCC.DDD,AAA.BBB.CCC.DD1>]
[2018-05-14 12:46:14]:  info: eth1.3612.2504: recv [DHCPv4 Request xid=dcc91168 chaddr=00:14:d1:e2:63:4e <Message-Type Request> <Client-ID 010014d1e2634e> <Host-Name TRENDnet> <Vendor-Class 756468637020302e392e392d707265> <Request-IP 172.16.15.241> <Server-ID 172.16.0.3> <Request-List Subnet,Router,DNS,Host-Name,Domain-Name,Broadcast,Route,Classless-Route,249>]
[2018-05-14 12:46:14]:  info: eth1.3612.2504: send [DHCPv4 Ack xid=dcc91168 yiaddr=172.16.15.241 chaddr=00:14:d1:e2:63:4e <Message-Type Ack> <Server-ID 172.16.0.3> <Lease-Time 600> <T1 300> <Router 172.16.0.3> <Subnet 255.240.0.0> <DNS AAA.BBB.CCC.DDD,AAA.BBB.CCC.DD1>]
Т.о. происходит ровно обратное желаемому - "честный юзер" - в "нелегалы", "гадёныш" - в "честные юзеры".. :(
Есть ещё какие-либо варианты решения проблемы, или кроме как "доступ в ящик под амбарный замок" ничего уже не придумать?
dimka88
Posts: 866
Joined: 13 Oct 2014, 05:51
Contact:

Re: Как решить проблему со сменой МАС на порту доступа?

Post by dimka88 »

Все верно тут сработано, если бы вы проверяли в биллинге (ifname+calling-sid) оно же для лигального eth1.3612.2504+4c:00:10:3a:3e:dc, то "нелегал" не получил бы доступ, но и у легального увы, доступа в интернет тоже бы не было.
Как вариант можно выйти из данной ситуации, выдавать всем "нелегальным" или не авторизованным гостевую сеть и отправлять авторизовываться на captive portal, после успешной идентификации пользователя отправлять PoD и у легального снова будет интернет, а "нелегал" так и останется в чужом порту без интернета.
KovAl
Posts: 91
Joined: 26 Dec 2017, 15:35

Re: Как решить проблему со сменой МАС на порту доступа?

Post by KovAl »

dimka88 wrote: 14 May 2018, 20:51 Все верно тут сработано, если бы вы проверяли в биллинге (ifname+calling-sid) оно же для лигального eth1.3612.2504+4c:00:10:3a:3e:dc, то "нелегал" не получил бы доступ, но и у легального увы, доступа в интернет тоже бы не было.
Нет, НЕ верно!
В биллинге ИМЕННО эта связка и проверяется, но в данном случае accel НЕ направляет в биллинг! Он просто отдаёт "действующий" IP "чужому" МАС.
Посмотрите внимательно лог, там где "нелегал" отправляет Discovery и получает при этом "чужой" IP ("Blocked_User - чужой порт").
По-моему это всё же баг accel.
dimka88 wrote: 14 May 2018, 20:51 Как вариант можно выйти из данной ситуации, выдавать всем "нелегальным" или не авторизованным гостевую сеть и отправлять авторизовываться на captive portal.
Именно так и сделано, только в роли captive portal выступает ЛК абонента.

НО! Ещё раз повторюсь - в данном случае accel НЕ направляет клиента на авторизацию..
dimka88
Posts: 866
Joined: 13 Oct 2014, 05:51
Contact:

Re: Как решить проблему со сменой МАС на порту доступа?

Post by dimka88 »

KovAI, вы правы. На стенде воспроизвел проблему, нужно подумать как исправлять.
Post Reply