Hi folks,
I have some questions concerning CableLabs option code 122 for DHCP server (the one for MTA's)...
Does anyone know for some good and possibly open source dhcp server that support it, but not that I need to enter it in hex form (prefferably with some frontend or config file where I could input it in normal forms via suboptions, and then the dhcp server would calculate the option on it own).
If not, maybe someone know for any good option code 122 calculator, because the one that we programmed don't calculate it good, and we still haven't found the error in it, it's made on RFC 3495 specifications.
We have Motorola CMTS system's.
Thank you, in advance.
Bunch of drunk idiots [/b]
isc dhcpd should work with it
class "xxxxxxxxxx" {
match if option agent.remote-id = x:xx:xx:xx:xx:xx;
}
pool {
range x.x.x.x x.x.x.x;
allow members of "xxxxxxxxxxxx";
}
Cisco Broadband Access Center works correct with option 122.
http://cisco.com/en/US/products/sw/netmgtsw/ps529/products_administration_guide_chapter09186a0080347938.html
Quote:
BACC supports both PacketCable DHCP option 122 (as specified in RFC 3495 and 3594) and the deprecated PacketCable DHCP option 177. BACC does not ignore DHCP requests when it cannot populate option 122 and/or 177 content. Whatever option 122/177 content is available is populated and the decision to ignore the option is left to the EMTA.
But it is far not freeeware :)
Though low performance issue, ISC DHCP server, but it's free!!!
You can try this:
## Define MTA's class
class "MTA-CPE"
{
match if substring (option vendor-class-identifier, 0, 5) = "pktc1";
}
option space TSP;
option TSP.prov-server code 3 = string;
option TSP.kerberos code 6 = string;
option TSP-encap code 122 = encapsulate TSP;
option TSP.prov-server 00:09:70:72:6f:76:69:73:69:6f:6e:06:73:65:72:76:65:72:06:64:6f:6d:61:69:6e:04:6e:61:6d:65:00;
# provision.server.domain.name in hex
# 00+9(length)+provision+6+server+6+domain+4+name+00
option TSP.kerberos 05:42:41:53:49:43:01:31:00;
# BASIC.1 No Auth.
hi, i've been trying to do the same and everywhere says the i have to do it just like that, but it doesn't work. this is my dhcpd.conf:
ddns-update-style none;
ignore client-updates;
option space docsis-mta;
option docsis-mta.dhcp-server-1 code 1 = ip-address;
option docsis-mta.dhcp-server-2 code 2 = ip-address;
option docsis-mta.provision-server code 3 = { integer 8, string };
option docsis-mta.as-req-as-rep-1 code 4 = { integer 32, integer 32, integer 32 };
option docsis-mta.as-req-as-rep-2 code 5 = { integer 32, integer 32, integer 32 };
option docsis-mta.krb-realm-name code 6 = string;
option docsis-mta.tgs-util code 7 = boolean;
option docsis-mta.timer code 8 = integer 8;
option docsis-mta-pkt code 122 = encapsulate docsis-mta;
group {
filename "cm-128";
option dhcp.bootfile-name "cm-128";
host 001225004fb4 { hardware ethernet 00:12:25:00:4f:b4; }
...
}
group {
filename "cm-256";
option dhcp.bootfile-name "cm-256";
host 001225004f9e { hardware ethernet 00:12:25:00:4f:9e; }
...
}
group {
filename "cm-512";
option dhcp.bootfile-name "cm-512";
host 0012253e0974 { hardware ethernet 00:12:25:3e:09:74; }
...
}
group {
filename "cm-1024";
option dhcp.bootfile-name "cm-1024";
host 00122540d016 { hardware ethernet 00:12:25:40:d0:16; }
...
}
group {
filename "cm-V2";
option dhcp.bootfile-name "cm-V2";
host 0016b5db5c16 { hardware ethernet 00:16:b5:db:5c:16; }
...
}
group {
filename "cm-noservice";
option dhcp.bootfile-name "cm-noservice";
host 00122542707a { hardware ethernet 00:12:25:42:70:7a; }
...
}
class "cm" {
match if substring(option vendor-class-identifier,0,6) = "docsis";
spawn with option agent.remote-id;
default-lease-time 604800;
max-lease-time 604800;
min-lease-time 302400;
option time-offset -10800;
next-server AA.AA.AA.44;
option tftp-server-name "AA.AA.AA.44";
option time-servers AA.AA.AA.44;
option log-servers AA.AA.AA.44;
option domain-name "cm.mydomain.com";
ddns-updates off;
option docsis-mta.dhcp-server-1 AA.AA.AA.44;
option docsis-mta.dhcp-server-2 AA.AA.AA.44;
}
subclass "cm" 00:12:25:00:4f:b4;
...
class "MTA" {
match if substring(option vendor-class-identifier,0,5) = "pktc1";
spawn with option agent.remote-id;
default-lease-time 21600;
max-lease-time 21600;
min-lease-time 10800;
option time-offset 0;
option domain-name "mta.mydomain.com";
ddns-updates off;
option domain-name-servers AA.AA.AA.17, AA.AA.AA.18;
filename "mta.bin";
option log-servers AA.AA.AA.44;
option time-servers AA.AA.AA.44;
option tftp-server-name "AA.AA.AA.44";
next-server AA.AA.AA.44;
option time-servers AA.AA.AA.44;
option time-offset -10800;
option docsis-mta.provision-server 0 "\005kunka\006domain\003com\000";
option docsis-mta.krb-realm-name "\005BASIC\0011\000";
}
subclass "MTA" 00:16:b5:db:5c:16;
...
class "NAT" {
match pick-first-value (option agent.remote-id,hardware);
default-lease-time 21600;
max-lease-time 21600;
min-lease-time 10800;
option time-offset 0;
option domain-name "cpe.mydomain.com";
ddns-updates off;
option domain-name-servers AA.AA.AA.17, AA.AA.AA.18;
}
subclass "NAT" 00:12:25:00:4f:b4;
...
class "PUB" {
match pick-first-value (option agent.remote-id,hardware);
default-lease-time 21600;
max-lease-time 21600;
min-lease-time 10800;
option time-offset 0;
option domain-name "cpe.mydomain.com";
ddns-updates off;
option domain-name-servers AA.AA.AA.17, AA.AA.AA.18;
}
subclass "PUB" 00:12:25:da:e4:fa;
...
class "TELE" {
match pick-first-value (option agent.remote-id,hardware);
default-lease-time 21600;
max-lease-time 21600;
min-lease-time 10800;
option time-offset 0;
option domain-name "cpe.mydomain.com";
ddns-updates off;
option domain-name-servers AA.AA.AA.17, AA.AA.AA.18;
}
subclass "TELE" 00:12:25:00:4f:9e;
...
class "LIB" {
match pick-first-value (option agent.remote-id,hardware);
default-lease-time 21600;
max-lease-time 21600;
min-lease-time 10800;
option time-offset 0;
option domain-name "cpe.mydomain.com";
ddns-updates off;
option domain-name-servers AA.AA.AA.17, AA.AA.AA.18;
}
subclass "LIB" 00:13:71:17:55:2a;
...
shared-network local {
subnet AA.AA.AA.32 netmask 255.255.255.240 {
not-authoritative;
}
}
shared-network salta {
subnet 10.2.0.0 netmask 255.255.248.0 {
pool {
option routers 10.2.0.1;
range 10.2.0.2 10.2.7.254;
allow members of "cm";
}
}
subnet 10.202.0.0 netmask 255.255.248.0 {
pool {
option routers 10.202.0.1;
range 10.202.0.2 10.202.7.254;
allow members of "NAT";
}
}
subnet BB.BB.BB.0 netmask 255.255.255.0 {
pool {
option routers BB.BB.BB.1;
range BB.BB.BB.2 BB.BB.BB.254;
allow members of "PUB";
allow members of "MTA";
}
}
subnet CC.CC.CC.0 netmask 255.255.254.0 {
pool {
option routers CC.CC.CC.1;
range CC.CC.CC.2 CC.CC.CC.254;
allow members of "TELE";
}
}
subnet DD.DD.DD.0 netmask 255.255.255.192 {
pool {
option routers DD.DD.DD.1;
range DD.DD.DD.2 DD.DD.DD.62;
allow members of "LIB";
}
}
}
$ the mta.bin:
Main
{
MtaConfigDelimiter 1;
SnmpMibObject pktcSigDefCallSigTos.0 Integer 26 ;
SnmpMibObject pktcSigDefMediaStreamTos.0 Integer 46 ;
SnmpMibObject pktcSigTosFormatSelector.0 Integer 2;
SnmpMibObject pktcNcsEndPntConfigCallAgentId.9 String "[AA.AA.AA.44]" ;
SnmpMibObject pktcNcsEndPntConfigCallAgentId.10 String "[AA.AA.AA.44]" ;
SnmpMibObject pktcMtaDevCmsIpsecCtrl.'[AA.AA.AA.44]' Integer 2;
SnmpMibObject pktcMtaDevEnabled.0 Integer 1;
SnmpMibObject pktcMtaDevCmsKerbRealmName.'[AA.AA.AA.44]' String "BASIC.1" ;
SnmpMibObject pktcMtaDevRealmOrgName.'BASIC.1' String "MyDomain Test Phone Company" ;
SnmpMibObject pktcNcsEndPntConfigCallAgentUdpPort.9 Integer 2427 ;
SnmpMibObject pktcNcsEndPntConfigCallAgentUdpPort.10 Integer 2427 ;
SnmpMibObject pktcNcsEndPntConfigMWD.9 Integer 2 ;
SnmpMibObject pktcNcsEndPntConfigMWD.10 Integer 2 ;
SnmpMibObject pktcSigDevRgCadence.0 HexString 0x003ff00000000000 ;
MtaConfigDelimiter 255;
}
$ and the bin for the cm with mta:
Main
{
NetworkAccess 1;
MaxCPE 4;
MaxClassifiers 20;
GlobalPrivacyEnable 0;
UsServiceFlow
{
UsServiceFlowRef 3;
QosParamSetType 7;
TrafficPriority 1;
MaxRateSustained 256000;
}
DsServiceFlow
{
DsServiceFlowRef 4;
QosParamSetType 7;
TrafficPriority 1;
MaxRateSustained 1000000;
}
}
i'm using sbv5120 and bsr1000 (both from motorola). what i'm doing wrong? perhaps the service flows on the cmts? my brain is on fire :twisted: . thanks
I have a good option122(sub 1,2,3,6) tool for windows(write by myself),if you have interesting,please give me mail.
any chance to send me on e-mail yz7rly@freemail.hu ?
tnx in advance
I have the same problem, please help me fytsp@waimax.net
I'm using docsis server . It is possible to run sbv5120E on this server?
kevin wrote:hi, i've been trying to do the same and everywhere says the i have to do it just like that, but it doesn't work. this is my dhcpd.conf:
i'm using sbv5120 and bsr1000 (both from motorola). what i'm doing wrong? perhaps the service flows on the cmts? my brain is on fire :twisted: . thanks
Did you figure this out?
Frank
yes, i (stupidily) forgot to pass the option 'hostname' to the mtas, so just add:
use-host-decl-names on;
at the beginning of the configuration, and:
group {
filename "cm-mta";
option dhcp.bootfile-name "cm-mta";
host 0016b5db5c18 { hardware ethernet 00:16:b5:db:5c:18; }
...
}
after the other groups. i' should try to prepare something cleaner (with ldap would be nice) but i don't have much time right now.
Glad to hear...getting my DHCP configuration correct the first time (I was complete newbie) took me a small week or two on and off. It takes just one setting to be off to not work at all.
The encapsulation of the DHCP 122 options was what troubled me the most. The ISC-DHCP listserv helped me out there.
Frank
can you pls send me that subnet calculator on jdjurici@gmail.com
I used isc dhcpd capabilities, but now I've implemented docsis server on a test network so I would really need that calculator?
Ty
If someone's gonna need option 122 subnet calculator, I've built one for linux, since nobody have one.
hrguille@gmail.com
can have too ?
sonny420@gmail.com
Hello everyone,
I have been experimenting with trying to boot an Aris voip cable modem using docsis server, but so far I have not been able to make it work. The MTA I have been using requires DHCP option 122 suboption 1. I have added this information to the config_opts table, but the modem still will not boot. Using Ethereal to capture the transaction between the server, and modem I get:
Option: (122) CableLabs Client Configuration
Length: 4
Value: 0C24AF09
subopt 12: unknown/reserved:
No matter what the sub_option value is set to in the config_options table, ethereal always shows "suboption 12". This incorrect suboption value is undoubtedly causing the problem. Has anyone been able to get suboption 122 to work from docsis server?
We have built a basic php web interface to provision modems, and clients in docsis server. It is still a bit rough but it includes many features found in high end provisioning systems.
* Add, delete, and modify modem, and dhcp leases.
* Search by host Mac, modem Mac, ip addresses, or customer name
* Search Log tables
* Poll real time modem and host information via docsis diag, and isg tools.
* Reset Modems and hosts
If you would like a copy of the web interface let me know.
Thank for your help!
Shen
Shen
We are using docsis_server too, I am interested in your php web interface.
We are starting to test the MTA options, without any luck.
I have some scripts in bash and perl for cacti, if you have some interest, let me know.
I was able to run the Arris TM402P MTA in sip mode with dhcpd, but I prefer to use docsis_server.
If have any progress will post findings.
edit
I made my own php web interface, I am still unable to run the MTA with docsis_server, any luck ???
Thanks
/edit
Thanks
Demian
Hi I was reading your post. A couple weeks back we were looking for alternatives to web based provisioning. Do you think I could get a copy of your source? Like to see what you have.
Thanks
Is this web interface for docsis-server (or any others developed since) still available from anyone out there?
We would be very grateful for access if so. Many thanks in advance. I can be emailed directly at
poge at oberlin dot net.
Kind regards,
psmit
Hi,
read my thread here: http://docsis.org/node/486
I wrote a patch for docsis_server_35 and it works great.
regards,
Michael