Sebastian Majewski's repositories
PyTCP
PyTCP is a fully functional TCP/IP stack written in Python. It supports TCP stream-based transport with reliable packet delivery based on a sliding window mechanism and basic congestion control. It also supports IPv6/ICMPv6 protocols with SLAAC address configuration. It operates as a user space program attached to the Linux TAP interface.
PyBGP
PyBGP is Python / Asyncio based BGP implementation. At this time it fully supports Finite State Machine and its able to open and maintain connectivity to BGP peer in either passive or active mode. Connection collision detection is already implemented so it's able to drop less desired connection if two of them form simultaneously. Can support connectivity to multiple peers at the same time.
Linux-OSPF-lab
Goal of this project is to create fully functional OSPF lab solely using Linux virtualization. It is going to use KVM to host the router VMs and the OVS to switch traffic between them. Also i want each of the router VMs to have separate management IP address connected to my home LAN so i can connect to them from my laptop. The LAN connectivity will use existing Linux Bridge and the lab traffic will be contained in OVS. This hybrid solution is used for couple reasons... First i need to use OVS for lab because i don't want to be wasting time on creating new Linux bridge for each of the lab vlans i want to use for OSPF. With OVS i can just create single switch and plug trunk port from each router inyo it. Why not to use OVS for home LAN connectivity as well then ? Well... technically i could, but i have already existing Linux bridge configuration that i have been using to share my LAN with regular VMs. On top of that (and this is the main reason) setting up OVS with Netplan is somewhat challenging and i simply have no time for it at the moment. This project is intended to be OSPF lab not OVS/Netplan lab after all :)
Azure-PaloAlto-Automation
Azure lab configuration used for automatic deployment of PaloAlto virtual firewall appliances in HA mode into the Azure VNet. Automation process uses mix of bash scripting and Azure ARM templates. Each pair (one interface from each node) of PA interfaces is put into separate transit subnet and the actual host deployment subnets are attached to those transit subnets by appropriate configuration of subnet routing tables. Each host subnet has deployed virtual machine in it. Those are being used to test connectivity over the PA firewalls. One virtual machine is also deployed directly into WAN transit subnet to test connectivity from on-prem to the LAB before the traffic hits PAs. All virtual hosts after deployment are reconfigured by Ansible to add lab users and install diagnostic tools like Nmap or IPerf. PaloAlto firewall initial configuration at this point is loaded manually but in future this will be done by PaloAlto Bootstrap process.
NetCAT-WebApp
Web front end to NetCAT Backup system. Includes device inventory, network status (BGP, device links, DNS, etc...), IP to MAC address lookup, and MAC address to switch port lookup for the devices polled by NetCAT Backup. It can read data from local/remote MongoDB database, AWS DynamoDB or Azure CosmosDB.
NetWolf
NetWolf is a proof of concept for the distributed real time network monitoring and automation system capable of simultaneously interacting with thousands of network devices using vertical and horizontal scaling of resources. It consists of the manager program and number of agents. Agents can be spread out over multiple machines and bind separate processes to every available CPU core. Each of those processes maintains SSH connectivity to multiple network devices. To achieve high number of connections per core and the same time consume least amount of memory possible agent is internally based on Asyncio. Agent registers with manager and receives jobs that contain the hostname for the network device it's supposed to connect to and the set of commands that need execute on it. For the purpose of monitoring job can also contain filters that need to be applied to command output before its sent back to the manager.
Web-Dev-For-Beginners
24 Lessons, 12 Weeks, Get Started as a Web Developer
Blackbird
My first network related project back from 2001. Blackbird is a packet sniffer developed originally on OpenBSD UNIX system and later ported to IBM AIX and Linux. This was the very project that started my networking career. No active development, just more like vintage curiosity from the times when Wireshark was called EtherReal. Named after SR-71 Blackbird spy plane :)
NetCAT-Backup
NetCAT stands for Network Configuration Automation Tool. The set of Python programs can be used to backup configurations, poll command output status, deploy config snippets, and perform automatic software upgrades on Cisco, Palo Alto, and F5 devices. Results can be saved into either local/remote MongoDB database, AWS DynamoDB or Azure CosmosDB.
Arch-Linux-install-on-RAID-BTRFS
Installation of Arch Linux on RAID with BTRFS
AWS-Terraform-Ansible-Lab
AWS based lab designed to be automatically deployed using Terraform. All hosts inside of the lab are initially configured with CloudInit scripts and later on managed by Ansible. I am usually using this lab for acloudguru.com AWS classes. It can be quickly deployed, modified to fulfill class requirements and torn down after class. Access to the lab is possible via management host placed in one of public subnets. This is also the host that configures other VMs via ansible.
sort_speed_test
Goal of this project is to implement bubble, selection, insertion, merge and quick sort algorithms using Python, Rust, C and Assembly languages to compare the performance of each implementation. Implementations are supposed to take advantage of every available feature of each language that may speed up code execution.