README.md in netutils-0.1.1 vs README.md in netutils-0.1.2

- old
+ new

@@ -1,36 +1,92 @@ # Netutils -Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/netutils`. To experiment with that code, run `bin/console` for an interactive prompt. +Netutils is a set of utilities to operate network equipment such as routers, switches, firewalls, wireless controller and so on. +Netutils currently can: +* automatically find network equipment, +* collect configurations, +* deploy certificate files to switches, +* reboot switches in safer order, +* locate a switch and port to which a host connects to, +* add/delete a MAC address filter, +* shut down or bring up a port, and so on. -TODO: Delete this and the text above, and describe your gem +## Features +* vendor lock free +* multiple accounts support +* auto neighbor discovery using Link Layer Discovery Protocol (LLDP) and Cisco Discovery Protocol (CDP) +* static neighbor definition support + +## Acutually Tested Equipment + +* Cisco + * C1812J, catalyst 6500, 3560, 2960 +* AlaxalA + * AX8600, AX3800, AX3650, AX2530, AX2200, AX620 +* Palo Alto Networks + * PA-5220, PA-3020, PA-850 +* Aruba wireless LAN controller + * Aruba7210-JP +* NEC IX series + * IX2215, Palo Alto Networks + ## Installation -Add this line to your application's Gemfile: + $ git clone https://github.com/ohmori7/netutils + $ cd netutils + $ bundle install + $ cp config/config-sample.rb config/config.rb + $ vi config/config.rb -```ruby -gem 'netutils' -``` +## Usage -And then execute: + $ bundle exec netutils/bin/config-gets + $ bundle exec netutils/bin/alaxala-deploy + $ bundle exec netutils/bin/host-locate-on-demand + $ bundle exec netutils/bin/acl + $ bundle exec netutils/bin/port-shutdown - $ bundle +## Example -Or install it yourself as: +For example, one can locate a host of a given IP address as follows: - $ gem install netutils + $ bundle exec bin/host-locate-on-demand 10.0.0.1 + locating directly connected router for 10.0.0.1... + "tottori-c01" (192.168.0.1) + resolving MAC address for 10.0.0.1... found + 10.0.0.1 dead.beef.dead on VRF "1" VLAN1001 + locating MAC address dead.beef.dead... + tottori-c01 (192.168.0.1) GigabitEthernet 0/1 + koyama-e01 (192.168.0.2) GigabitEthernet 0/24 -## Usage +For more detailed information, please consult with a help message of a command. -TODO: Write usage instructions here +## Why not SNMP??? +Ones may think why SNMP is not used to automatically find network equipment. +The reason is that we have experienced network stalls due to SNMP. +Receiving the small number of SNMP packets, our core switch, Cisco catalyst 6500, could not forward any packets due to high CPU utilization even there was no SNMP configuration enabled. +This was a design issue that all SNMP packets were always punt to CPU of a routing engine. +We have then decided to employ LLDP and CDP instead of SNMP. + +## TODO + +* clean up code, name space issues, and switch class method abandon +* more gemification +* remove global methods +* use yaml for configuration +* out-of-band CLI output message handling (partially done but..) +* restructure class methods and variables +* introduce test codes +* more product support +* netconf or other REST API support + ## Development After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment. To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org). ## Contributing -Bug reports and pull requests are welcome on GitHub at https://github.com/ohmori7/netutils. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct. - +Bug reports and pull requests are welcome on GitHub at https://github.com/ohmori7/netutils.