Ipoe и lua

IPoE related questions
truten
Posts: 23
Joined: 30 Oct 2014, 12:32

Ipoe и lua

Post by truten »

Добрый день.
Пытаюсь понять, что написать в accel-ppp.lua. Есть оборудование OLT BDCOM Option 82 в Remote-ID передается мак адреес ONU, это мне более чем подходит. Accel прекрасно его различает:

Code: Select all

[2014-11-05 16:39:48.811] em1.20: : recv [DHCPv4 Discover xid=542802c9 giaddr=192.168.6.253 chaddr=00:18:f3:e6:e1:54 <Message-Type Discover> <Request-IP 192.168.6.3> <Host-Name vv-laptop> <Request-List Subnet,Broadcast,Time-Offset,Router,Domain-Name,DNS,119,Host-Name,44,47,MTU,Classless-Route,NTP,Classless-Route,249,252,NTP> <Relay-Agent {Agent-Circuit-ID _0014000701} {Agent-Remote-ID _fcfaf7c57e03} {Option-9 _00000cf8080106537769746368}>]
Что нужно прописать в lua что-бы передавать в радиус вместо MAC PC, MAC ONU, по идее мне нужно только двоеточия рассавить, но как это сделать?
P.S. в wiki ничего не нашел http://accel-ppp.org/wiki/doku.php?id=ipoe_dhcp_lua
Dmitry
Администратор
Posts: 954
Joined: 09 Oct 2014, 10:06

Re: Ipoe и lua

Post by Dmitry »

как-то так:

Code: Select all

#!lua
function username(pkt)
    v,b1,b2,b3,b4,b5,b6=string.unpack(pkt:agent_remote_id(),'bbbbbb')
    local username=b1..':'..b2..':'..b3..':'..b4..':'..b5..':'..b6
    return username
end
truten
Posts: 23
Joined: 30 Oct 2014, 12:32

Re: Ipoe и lua

Post by truten »

Accel тепер циферки передает, формат не тот как я понял

Code: Select all

send [RADIUS(1) Access-Request id=1 <User-Name "252:250:247:197:126:3"> 
Dmitry
Администратор
Posts: 954
Joined: 09 Oct 2014, 10:06

Re: Ipoe и lua

Post by Dmitry »

Code: Select all

#!lua
function username(pkt)
    v,b1,b2,b3,b4,b5,b6=string.unpack(pkt:agent_remote_id(),'bbbbbb')
    return string.format("%02x:%02x:%02x:%02x:%02x:%02x", b1,b2,b3,b4,b5,b6)
end
truten
Posts: 23
Joined: 30 Oct 2014, 12:32

Re: Ipoe и lua

Post by truten »

Спасибо большое, работает четко!
adeep
Posts: 11
Joined: 06 Nov 2014, 12:51

Re: Ipoe и lua

Post by adeep »

truten wrote:Спасибо большое, работает четко!
Поделитесь, пожалуйста конфигом олта/ону?
truten
Posts: 23
Joined: 30 Oct 2014, 12:32

Re: Ipoe и lua

Post by truten »

Скинул в личку
kycherr
Posts: 48
Joined: 10 Dec 2014, 12:59

Re: Ipoe и lua

Post by kycherr »

truten wrote:Скинул в личку
А можно и мне?
Очень надо конф та же проблема!
Зарание спасибо!
truten
Posts: 23
Joined: 30 Oct 2014, 12:32

Re: Ipoe и lua

Post by truten »

Извиняюсь за некропост..
Начальство купило китайские ОНУшки, они первые несколько пакетов (4-5) шлют без опции 82, бывает вылитает accel:

Code: Select all

em2.73: : ipoe: lua: /etc/accel-ppp.lua:2: bad argument #1 to 'unpack' (string expected, got nil)
Решил устроить проверку, lua не знаю вообще пишу:

Code: Select all

function username(pkt)
    if agent_remote_id() ~= nil then
    v,b1,b2,b3,b4,b5,b6=string.unpack(pkt:agent_remote_id(),'bbbbbb')
    return string.format("%02x:%02x:%02x:%02x:%02x:%02x", b1,b2,b3,b4,b5,b6)
    end
end
В ответ:

Code: Select all

em2.29: : ipoe: lua: /etc/accel-ppp.lua:2: attempt to call global 'agent_remote_id' (a nil value)
Что делаю не так? Как можно это правильно написать?
truten
Posts: 23
Joined: 30 Oct 2014, 12:32

Re: Ipoe и lua

Post by truten »

Сделал так, работает

Code: Select all

function username(pkt)
    if pkt:agent_remote_id() ~= nil then
        v,b1,b2,b3,b4,b5,b6=string.unpack(pkt:agent_remote_id(),'bbbbbb')
        return string.format("%02x:%02x:%02x:%02x:%02x:%02x", b1,b2,b3,b4,b5,b6)
    else return string.format("00:00:00:00:00:00")
    end
end
Post Reply