[Kea-users] Classification by Vendor Specific Information Option [43]

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

[Kea-users] Classification by Vendor Specific Information Option [43]

Mateusz Galiński

Hey Kea DHCP users.

I have following problem. I want to match my cable modem config file by Cable Modem Software Version. Software Version is capsulated in Vendor Specific Information, suboption 6.

 

Wireshark Discover:

 

  Option: (43) Vendor-Specific Information (CableLabs)

        Length: 96

        Option 43 Suboption: (2) Device Type

            Length: 3

            Device Type: ECM

        Option 43 Suboption: (3) eSAFE Types

            Length: 4

            eSAFE Types: ECM:

        Option 43 Suboption: (4) Serial Number

            Length: 15

            Serial Number: FASBRZ79K100067

        Option 43 Suboption: (5) Hardware Version

            Length: 1

            Hardware Version: 1

        Option 43 Suboption: (6) Software Version

            Length: 8

            Software Version: 9.1.103S

        Option 43 Suboption: (7) Boot ROM version

            Length: 8

            Boot ROM version: 1.2.1.62

        Option 43 Suboption: (8) Organizationally Unique Identifier

            Length: 6

            Organizationally Unique Identifier: 0000CA

        Option 43 Suboption: (9) Model Number

            Length: 6

            Model Number: CM820S

        Option 43 Suboption: (10) Vendor Name

            Length: 25

            Vendor Name: Arris Interactive, L.L.C.

        Option 43 Suboption: (15) eSafe Config File Devices

 

 

 

I want to use something like this:

 

 

"client-classes": [

                               {

                               ##Cable modem CLass

                               "name": "CM1",

                               "test": "substring(option[43].hex, x, x)=='9.1.103S '",

                               "next-server": "10.100.100.30",

                               "option-data": [

                                               { "name": "tftp-server-name", "data": "10.100.100.30" },

                                               { "name": "time-servers", "data": "10.100.100.30"},

                                               { "name": "log-servers", "data": "10.100.100.30" },

                                               { "name": "time-offset", "data": "-3600" }

                                                                               ],

                               "only-if-required": true

                               },

 

 

But my problem is that I have a lot of different cable modems, where order and amount of suboption is also different, so I cant specify nr of hex I want to analyze. So my question is, is there a solution to get text from specified Option and Suboption in class matching?


VECTOR TECHNOLOGIES SA (Joint-Stock Company) incorporated under the laws of Poland
Registered offices at 6 Krzemowa Street, Gdynia, Poland (postal code: 81-577)
Entered into the National Court Register under KRS no. 0000591577
Documents of the Company are filed at the District Court in Gdansk (postal code: 80-126)
Share capital: 5.050.000 Polish Zlotys (paid up); tax ID no./EU VAT no.: PL
9581671449



_______________________________________________
Kea-users mailing list
[hidden email]
https://lists.isc.org/mailman/listinfo/kea-users
Reply | Threaded
Open this post in threaded view
|

Re: [Kea-users] Classification by Vendor Specific Information Option [43]

mathiasAichinger
Hi Mateusz,

is it necessary for you to specify the specific device? Would it be enough for you to distinguish between docsis and mta devices? We are doing the following for our software:

        "client-classes": [
          {
            "boot-file-name": "",
            "name": "cpe",
            "next-server": "0.0.0.0",
            "option-data": [],
            "option-def": [],
            "server-hostname": "",
            "test": "not ((substring(option[60].hex,0,4) == 'pktc') or substring(option[60].hex,0,6) == 'docsis')"
          },
          {
            "boot-file-name": "",
            "name": "docsis-devices",
            "next-server": "0.0.0.0",
            "option-data": [],
            "option-def": [],
            "server-hostname": "",
            "test": "substring(option[60].hex,0,6) == 'docsis'"
          },
          {
            "boot-file-name": "",
            "name": "mta",
            "next-server": "0.0.0.0",
            "option-data": [],
            "option-def": [],
            "server-hostname": "",
            "test": "substring(option[60].hex,0,4) == 'pktc'"
          }
        ],
"shared-networks": [
          {
            "match-client-id": true,
            "name": "Docsis Test Network",
            "option-data": [],
            "rebind-timer": 0,
            "relay": {
              "ip-addresses": []
            },
            "renew-timer": 0,
            "reservation-mode": "all",
            "subnet4": [
              {
                "client-class": "docsis-devices",
                "option-data": [
                  …. some options
                ],
                "pools": [
                  {
                    … pools
                  }
                ],
                "rebind-timer": 1800,
                "relay": {
                  "ip-addresses": [
                    “relay_address"
                  ]
                },
                "subnet": "192.168.225.0/24",
              },
              {
                
                "client-class": "cpe",
                ….. 
                …..
                "subnet": "192.168.226.0/24",
              },
              {

                "next-server": “….",
                “client-class”:”mta"
                ….
                "subnet": "192.168.227.0/24",
              }
            ],
            "valid-lifetime": 0
          }


Cheers,

Mathias


EasySolutions GmbH                    

Gugenedt 2
4741 Wendling | Austria

Mobil: <a href="tel://+436605646568">+43 660 5646568

Tel:   <a href="tel://+4372090010025">+43 720 900100-25

[hidden email]

www.easysol.at


On 8. June 2018 at 15:08:02, Mateusz Galiński ([hidden email]) wrote:

Hey Kea DHCP users.

I have following problem. I want to match my cable modem config file by Cable Modem Software Version. Software Version is capsulated in Vendor Specific Information, suboption 6.

 

Wireshark Discover:

 

  Option: (43) Vendor-Specific Information (CableLabs)

        Length: 96

        Option 43 Suboption: (2) Device Type

            Length: 3

            Device Type: ECM

        Option 43 Suboption: (3) eSAFE Types

            Length: 4

            eSAFE Types: ECM:

        Option 43 Suboption: (4) Serial Number

            Length: 15

            Serial Number: FASBRZ79K100067

        Option 43 Suboption: (5) Hardware Version

            Length: 1

            Hardware Version: 1

        Option 43 Suboption: (6) Software Version

            Length: 8

            Software Version: 9.1.103S

        Option 43 Suboption: (7) Boot ROM version

            Length: 8

            Boot ROM version: 1.2.1.62

        Option 43 Suboption: (8) Organizationally Unique Identifier

            Length: 6

            Organizationally Unique Identifier: 0000CA

        Option 43 Suboption: (9) Model Number

            Length: 6

            Model Number: CM820S

        Option 43 Suboption: (10) Vendor Name

            Length: 25

            Vendor Name: Arris Interactive, L.L.C.

        Option 43 Suboption: (15) eSafe Config File Devices

 

 

 

I want to use something like this:

 

 

"client-classes": [

                               {

                               ##Cable modem CLass

                               "name": "CM1",

                               "test": "substring(option[43].hex, x, x)=='9.1.103S '",

                               "next-server": "10.100.100.30",

                               "option-data": [

                                               { "name": "tftp-server-name", "data": "10.100.100.30" },

                                               { "name": "time-servers", "data": "10.100.100.30"},

                                               { "name": "log-servers", "data": "10.100.100.30" },

                                               { "name": "time-offset", "data": "-3600" }

                                                                               ],

                               "only-if-required": true

                               },

 

 

But my problem is that I have a lot of different cable modems, where order and amount of suboption is also different, so I cant specify nr of hex I want to analyze. So my question is, is there a solution to get text from specified Option and Suboption in class matching?


VECTOR TECHNOLOGIES SA (Joint-Stock Company) incorporated under the laws of Poland
Registered offices at 6 Krzemowa Street, Gdynia, Poland (postal code: 81-577)
Entered into the National Court Register under KRS no. 0000591577
Documents of the Company are filed at the District Court in Gdansk (postal code: 80-126)
Share capital: 5.050.000 Polish Zlotys (paid up); tax ID no./EU VAT no.: PL
9581671449


_______________________________________________
Kea-users mailing list
[hidden email]
https://lists.isc.org/mailman/listinfo/kea-users

_______________________________________________
Kea-users mailing list
[hidden email]
https://lists.isc.org/mailman/listinfo/kea-users