feat: add get_route_to() via ip route show; family-Feld für IPv4/IPv6

Initial commit mit bestehendem Code inkl. neuem get_route_to():
- Parsed ip -4 route show und ip -6 route show
- Protokoll-Map: kernel/dhcp/ra/boot→connected, static→static, ospf→ospf, bgp→bgp
- family-Feld aus Netzadresse oder Next-Hop (: = ipv6)
- default/default6 → 0.0.0.0/0 / ::/0; Host-Routen ohne Prefix bekommen /32

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Christian Manivong
2026-06-06 15:50:02 +02:00
co-authored by Claude Sonnet 4.6
commit 2712389818
8 changed files with 2500 additions and 0 deletions
+28
View File
@@ -0,0 +1,28 @@
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [0.1.0] – 2026-05-29
### Added
- Initial release
- `LinuxDriver` inheriting from `napalm_device_types.OSDriver`
- SSH transport via Netmiko `linux` device type
- Auto-detection of package manager: `apt`, `dnf`, `yum`, `apk`, `pacman`
- Standard NAPALM methods: `get_facts()`, `get_interfaces()`, `get_interfaces_ip()`,
`get_arp_table()`, `get_config()`, `ping()`
- OS-specific methods: `get_packages()`, `get_pending_updates()`, `apply_updates()`,
`get_services()`, `get_users()`, `get_processes()`, `get_cron_jobs()`
- `apply_updates()` validates all package names against `^[a-zA-Z0-9_\-\+\.]+$`
to prevent shell injection before passing them to the package manager
- SysV fallback for `get_services()` on non-systemd systems
- Unit tests with mocked SSH connections
[Unreleased]: https://github.com/chrismanivong/napalm-linux/compare/v0.1.0...HEAD
[0.1.0]: https://github.com/chrismanivong/napalm-linux/releases/tag/v0.1.0