gnu-gnu GitHub avatar

network-fundamentals-lab

gnu-gnu

一套动手实践的网络故障排查实验系列,通过复现故障并引导观察和修复,以容器化工具(containerlab + netshoot)教授 TCP/IP 基础知识。

Stars

56

7 天增长

暂无数据

Fork 数

3

开放 Issue

0

开源协议

暂无数据

最近更新

2026-07-13

AI 仓库情报摘要
FR-AI / ANALYSIS

为什么值得关注

它将故障设为默认状态,结构化地引导用户从观察到修复,附有详细的操作记录和网页查看器,适合自定进度学习,且完全供应商中立。

适合谁使用

  • 需要夯实网络基础的网络工程师
  • 寻求实用故障排查技能的 DevOps 和 SRE 人员
  • 希望获得实际动手经验的网络初学者或学生
  • 基础设施岗位的技术培训师或入职引导团队

典型使用场景

  • 个人自学以建立核心网络诊断能力
  • 团队入职培训以统一故障排查知识体系
  • 课堂或工作坊中的交互式网络实验
  • 为认证考试或真实网络问题调试做准备

项目优势

  • 覆盖 L2、L3、传输层、NAT、MTU 和 DNS 等核心主题,且每个故障均可复现
  • 所有实验基于 containerlab 和 netshoot,在 Linux 和 macOS(通过 Docker)上均可运行
  • 每个实验配有完整命令及输出的操作记录,便于自我核对
  • 设有盲测检查点(CP-1、CP-2),无提示条件下检验理解

使用前须知

  • 需要 containerlab 和 Docker;macOS 用户需借助包装脚本和 Docker Desktop
  • 部分场景(如二层广播风暴)若未加限制可能影响宿主机性能
  • 假设用户已了解 IP 和子网表示法,对完全新手有一定门槛

README 快速开始

네트워크 트러블슈팅 시리즈 (기본기 중심)

TCP/IP 기본 원리 하나를 잡고, 그 개념이 깨졌을 때 나는 장애를 직접 재현→관찰→수정하며 체득하는 실습 시리즈. 클라우드 특정 기능이 아니라 어디서든 통하는 네트워크 기본기를 다룬다. (AWS·K8s 등은 "실무 사례"로만 인용)

철학 / 공통 포맷

각 편은 아래 순서를 따른다:

  1. 개념 한 장 — 이 편이 가르치는 원리
  2. 토폴로지 — 최소 구성
  3. 재현(고장) — 기본 상태가 "고장"
  4. 관찰tcpdump/traceroute/ip 로 증상 읽기
  5. 원인 — 왜 깨지는가
  6. 한 줄 수정(고침) — 토글 한 줄로 정상화
  7. 교훈 — 일반화된 원리

공통 환경 / 도구 (벤더 중립)

  • containerlab + nicolaka/netshoot(ip/iproute2, nftables/iptables, socat, nc, tcpdump, curl, mtr)
  • 동적 라우팅 편만 FRR(frrouting/frr)
  • 각 편 = 폴더 하나: NN-topic/ 안에 *.clab.yml + README.md(재현·수정 절차) + fix.sh + WALKTHROUGH.md
  • WALKTHROUGH.md = 모범 답안: 전체 명령을 실제 실행한 기록 — 단계마다 의도 → 실측 결과 → 해석. 권장 사용법: 먼저 README만 보고 스스로 실습 → 막히거나 끝낸 뒤 WALKTHROUGH와 대조 (처음부터 답안을 펴면 진단 근육이 안 붙는다)
  • 웹 뷰어: walkthrough.html — 전 장 모범답안을 한 페이지에서 단계별로 넘겨보기(←/→), 명령 복사 버튼 포함. 브라우저로 열면 되고, WALKTHROUGH.md 수정 후엔 python3 tools/build-walkthrough.py로 재생성.
  • 원칙: 고장이 기본값, 수정은 docker exec ... ip route replace ... 같은 한 줄로.

실행 방법

Linux (containerlab 설치된 경우)

cd 01-l2-arp && sudo containerlab deploy -t 01-l2-arp.clab.yml

macOS / containerlab 미설치 (Docker만 있으면) — clab.sh 래퍼

macOS는 containerlab이 호스트 netns/veth를 직접 다루지 못해서, containerlab을 컨테이너로 띄워 Docker Desktop VM 위에서 돌린다(clab.sh가 감싼다: --privileged --pid=host --network=host + docker.sock).

# 저장소 루트(network-lab/)에서. 토폴로지 경로는 repo 기준 상대경로.
chmod +x clab.sh                                   # 최초 1회
./clab.sh deploy   01-l2-arp/01-l2-arp.clab.yml
./clab.sh inspect  01-l2-arp/01-l2-arp.clab.yml
docker exec -it clab-01-l2-arp-h1 bash             # 노드 접속(진단)
./clab.sh destroy  01-l2-arp/01-l2-arp.clab.yml
  • 노드 이미지(netshoot 등)는 자동으로 받는다. (검증 환경: macOS/Apple Silicon + Docker Desktop)
  • 관리망 겹침 주의: 각 topo의 mgmt.ipv4-subnet 이 이미 쓰는 docker 네트워크와 겹치면 배포가 실패한다 → 겹치지 않는 좁은 /24로 변경(이 저장소는 10.99.99.0/24 사용, 회사 172.0.0.0/12 회피).

EC2 (Amazon Linux 2023) — 신입 파일럿 / 공용 실습 호스트

로컬 Docker Desktop 없이 EC2에서 그대로 돌릴 수 있다 (실측 검증됨 — clab.sh 경로 그대로, 문서 수정 없이 전 장 동일 재현).

권장 구성

항목이유
AMI / 타입AL2023, t3.medium (x86)x86이면 17장 FRR이 네이티브 (arm64는 에뮬레이션 필요)
디스크gp3 24GB이미지 캐시 포함 여유
네트워크프라이빗 서브넷 + NAT (퍼블릭 IP·SSH 키·인바운드 불필요)접속은 SSM Session Manager
IAMAmazonSSMManagedInstanceCore 붙은 인스턴스 프로파일SSM 접속/원격 실행

项目描述

Hands-on network troubleshooting labs — break, observe, and fix core TCP/IP concepts using containerlab

相关仓库与替代方案

根据分类、Topic 和编程语言匹配的相似项目。

ddosi
精选
ddosi GitHub avatar

PacketLens

PacketLens is a pure front-end, offline pcap analysis tool that runs entirely in the browser, supporting deep protocol decoding, HTTPS decryption, and million-packet instant loading without any backend.

HTML
19
ViffyGwaanl
精选
ViffyGwaanl GitHub avatar

kimi-k3-learn

An interactive learning system that turns the 47-page Kimi K3 technical report into a single offline HTML file with running algorithms, 3D visualizations, spaced repetition quizzes, and a smart highlighting QA tool.

AI 与机器学习
15
iamtechartist
精选
iamtechartist GitHub avatar

human-cell-visualizer

An interactive 3D visualization of three human cell types using Three.js, WebGL particles, and custom GLSL shaders, allowing users to rotate, zoom, morph, and explore annotated structures.

设计与创意
13