View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
1985 | RackTables | 802.1Q VLANs | public | 2020-08-27 00:29 | 2021-01-19 16:02 |
Reporter | codename | Assigned To | infrastation | ||
Priority | normal | Severity | minor | Reproducibility | have not tried |
Status | closed | Resolution | not fixable | ||
Summary | 1985: Add new switch os to 802.1q sync | ||||
Description | Was wanting to add a new os to this. Would be for the netgears telnet interface, as it is what i am deplying. they have pretty ios like interface. just would like a direction to be pointed in, or if it is just not worth it. | ||||
Tags | No tags attached. | ||||
Generic low-level code to communicate with the device and generic high-level code to handle application data in PHP already exist, you would need to declare a new "breed" and to add some new breed-specific functions between these levels to translate requests into CLI commands and to parse data from CLI output. To make it more difficult to break these new functions it is desired to add unit tests, which essentially are declarations of the form "for this input the correct output is this". The most recent breed addition was for HP switches, please take a look here: https://github.com/RackTables/racktables/pull/225 Respective git commit IDs are: 82286a3, 39e56f2, c7a3040. It will help if you have experience with git and github.com, although neither of these is a critical requirement. It is much more important to produce clean new code that works well in your environment and does not break old code for all other users. Whichever way you do it, I can do a few rounds of review and you would need to fix or to defend the points I raise. Try to do the whole project quickly, because other things tend to get in the way, and then it takes forever to complete. |
|
The user manual from March 2020 [1] says GS728TPv2, GS728TPPv2, GS752TPv2 and GS752TPP have only two management options: browser and proprietary software. Neither telnet nor SSH are available. Could you double-check please? 1: https://www.downloads.netgear.com/files/GDC/GS728TPv2/GS728TPv2_GS728TPPv2_GS752TPv2_GS752TPP_UM_EN.pdf |
|
it is not a documented / supported feature. But there is telnet on port 60000 and once you are telnet ed in you can enable ssh i have been using it to backup my configs on a schedule. i believe it is disabled by default but the option is called remote diagnostic tools. im sure it is the same interface as there higher tier switches that support cli , but i dont have one onhand to test. |
|
looks like the cli takes input in g1 format. here is a default config file. SYSTEM CONFIG FILE ::= BEGIN ! Model: GS728TPv2 ! System Description: NETGEAR 24-Port Gigabit PoE+ Smart Managed Pro Switch with 4 SFP Ports (GS728TPv2) ! Firmware Version: 6.0.3.3 [Jan 21 2020 - 21:25:36] ! Loader Version: 1.0.0.5 [2017-12-28 09:35:22 UTC] ! Config Version: 0 ! System Name: ! MAC Address: 38:94:ED:86:46:06 ! Serial Number: 5WW303D750059 ! System Up Time: 0 days, 0 hours, 2 mins, 59 secs ! ! ! ip dhcp ip name-server ! username "admin" secret encrypted MoxI8CxBJLy38q9wrsWHWA== sntp 1 host time-b.netgear.com port 123 ver 4 sntp 2 host time-a.netgear.com port 123 ver 4 sntp 3 host 0.openwrt.pool.ntp.org port 123 ver 4 clock source sntp ! ! vlan 4088 name "Auto-VoIP" vlan 4089 name "Auto-Video" voice-vlan oui 0 0:1:e3 SIEMENS voice-vlan oui 1 0:3:6b CISCO1 voice-vlan oui 2 0:12:43 CISCO2 voice-vlan oui 3 0:60:b9 NITSUKO voice-vlan oui 4 0:d0:1e PINTEL voice-vlan oui 5 0:e0:75 VERILINK voice-vlan oui 6 0:e0:bb 3COM voice-vlan oui 7 0:4:d AVAYA1 voice-vlan oui 8 0:1b:4f AVAYA2 ! ! ! ! ! ! power inline powerup-mode staggered spanning-tree mst configuration name "38-94-ED-86-46-06" ! ! ! ! ! snmp user "admin" "AUTH" auth md5 encrypted MoxI8CxBJLy38q9wrsWHWA== ! ! ! ! ! ip telnet ! ! ! ! ! ! ! ! ! ! interface g1 ! interface g2 ! interface g3 ! interface g4 ! interface g5 ! interface g6 ! interface g7 ! interface g8 ! interface g9 ! interface g10 ! interface g11 ! interface g12 ! interface g13 ! interface g14 ! interface g15 ! interface g16 ! interface g17 ! interface g18 ! interface g19 ! interface g20 ! interface g21 ! interface g22 ! interface g23 ! interface g24 ! interface g25 ! interface g26 ! interface g27 ! interface g28 ! ! ! ! ! |
|
This could be workable, but you need to confirm this CLI is fully functional in both directions as far as VLAN configuration is concerned. The configuration text (or any other CLI output that does the job) needs to show which VLANs exist, and which interfaces are members of which VLANs in which mode. In IOS-derived syntaxes it looks similar to this: ! vlan 1,2-10,15 ! interface g5 switchport mode trunk switchport native vlan 2 switchport trunk allowed vlan 2,3,4,5 ! interface g12 switchport mode access switchport access vlan 15 ! (and the likes) Likewise, the new code would need to generate the required commands and the CLI must be able to action these commands. |
|
here is a snip from a real config interface g20 switchport hybrid pvid 100 switchport hybrid allowed vlan add 100,222 untagged switchport hybrid allowed vlan remove 1 voice-vlan lldp notification cli can fully update/print the config it is just not documented. i will work on seeing if i can implement this. |
|
I have started work and am unable to get the 802.1Q sync to work. i have gotten the lldp and port status somewhat working but am unable to get the sync to ever be happy about the data that it receives. https://github.com/CodeNameTheOnlyOne/racktables i am not sure where to go from here. the data in the sync page is always red. how do i just disable the sync for this os? i am fine with just lldp and port status, i am not needing a configuration solution at this moment, lldp will help me map my topology and that is what i am looking for. also can we create a dict entry for this "netgear os" i am not sure what to call it in my code, i have been using ngos for now but that seems to short to me. also how to i get info about the device that is calling the functions, i am needing the max and min ports for port info (have to do sh int ge 1-28 with no way to do all interfaces)? Thanks in advance, i owe you a beer |
|
I have made a look at the code. It is OK if you implement only the parts that you need, but they need to be implemented in a clean way. How exactly does the switch software identifies itself if you run "show version" or the local equivalent? So far it seems that "ngos6" or "netgear6" could be an OK name. In the code you add please use Allman style: https://wiki.racktables.org/index.php/SourceCode#PHP_code_style_guide Please review the new code and leave only the functions that you need to have and have tested to work. Provide example input and output for these functions, either in this request or in the code comments or as unit tests. Lose the case blocks in ngosTranslatePushQueue() that you do not need. Make ngosSpotConfigText() strip the text before and after the configuration text. In wwwroot/inc/dictionary.php use the next available index for the new OS entry and move it to where it belongs according to sort order. In wwwroot/inc/remote.php register only the functions you need and use the index from dictionary.php, not 50000. If you need the change in queryTerminal(), please explain it. |
|
Regarding the interface status command, which is currently "show interfaces GigabitEthernet 1-28\n", typically there is a CLI command that shows all interfaces and does not require to know beforehand what they are. Sometimes it happens to be the short version of the "show this specific interface" command, which in this case would be "show interfaces". Sometimes it is a slightly different command, such as "show interface all" or "show interface summary". Sometimes it is a completely different command along the lines "show ethernet switchport detail" or some such. Every CLI has its syntax differences, even on similar products of the same vendor. Sometimes the only way to figure it out is to look at the "interface" sections in the running-config text. |
|
Are you stuck because of some technical difficulties, or just ran out of time? | |
Closing due to no feedback. | |
Date Modified | Username | Field | Change |
---|---|---|---|
2020-08-27 00:29 | codename | New Issue | |
2020-08-29 16:48 | infrastation | Note Added: 0004155 | |
2020-08-31 19:36 | infrastation | Assigned To | => infrastation |
2020-08-31 19:36 | infrastation | Status | new => feedback |
2020-08-31 19:36 | infrastation | Note Added: 0004165 | |
2020-08-31 19:48 | codename | Note Added: 0004167 | |
2020-08-31 19:48 | codename | Status | feedback => assigned |
2020-08-31 20:02 | codename | Note Added: 0004171 | |
2020-08-31 21:38 | infrastation | Note Added: 0004175 | |
2020-08-31 21:59 | codename | Note Added: 0004177 | |
2020-09-03 04:31 | codename | Note Added: 0004179 | |
2020-09-03 14:20 | infrastation | Note Added: 0004181 | |
2020-09-03 14:27 | infrastation | Note Added: 0004183 | |
2020-09-24 20:42 | infrastation | Note Added: 0004189 | |
2021-01-19 16:02 | infrastation | Status | assigned => closed |
2021-01-19 16:02 | infrastation | Resolution | open => not fixable |
2021-01-19 16:02 | infrastation | Note Added: 0004265 |