TL;DR
- Linux용
netbad는tc와netem을 감싸 네트워크 장애를 의도적으로 적용해 소프트웨어의 대응을 시험하는 도구임. - 패킷 손실, 지연, 순서 변경, 복제, 손상, 대역폭 제한을 간단한 명령으로 설정함.
- 인터페이스 지정, 자동 복구 시간 설정, 기존 설정 대체, 드라이런을 지원함.
- 권한이 필요한 시점에
sudo를 요청하며,status,list,clear명령으로 상태를 확인하고 초기화함. - 송신 트래픽에만 영향을 주고 인터페이스의 모든 트래픽에 적용되며, 재부팅 후에는 설정이 유지되지 않음.
netbad가 필요한 이유
tc명령을 반복해서 검색하고 이해하지 않은 명령을 복사해 붙여 넣는 일을 줄이려고netbad를 만듦.netbad는 Linux의tc와netem을 감싼 도구이며 Linux에서만 작동함.- 사용 환경에 맞을 수도, 맞지 않을 수도 있는 도구임.
설치
- 저장소를 복제하고 프로그램을
/usr/local/bin/netbad에 설치함: https://github.com/arjunshajitech/netbad.git - 설치 확인은
netbad help로 수행함. - 제거 명령은
sudo rm /usr/local/bin/netbad임.
사용법
netbad drop 10%: 패킷의 10%를 손실시킴.netbad delay 100ms: 지연 시간 100밀리초를 추가함.netbad shuffle 10%: 패킷의 10%를 순서와 다르게 전달함.netbad duplicate 5%: 패킷의 5%를 두 번 전송함.netbad corrupt 1%: 패킷의 1%에서 비트를 뒤집음.netbad limit 1mbit: 대역폭을 제한함.netbad status: 현재 적용 중인 상태를 확인함.netbad list: 모든 인터페이스와 각 상태를 확인함.netbad clear: 네트워크를 정상 상태로 되돌림.- 별도의
sudo명령은 필요하지 않으며, 필요한 경우netbad가 권한을 요청함.
추가 옵션
netbad drop 10% on eth0: 적용할 인터페이스를 지정하며, 기본값은 인터넷에 연결된 인터페이스임.netbad drop 10% for 30s: 30초 후 설정을 자동으로 되돌림.netbad delay 100ms --only: 설정을 누적하는 대신 현재 적용된 설정을 대체함.netbad drop 10% --dry-run: 변경 없이 실행할tc명령을 표시함.- 장애 설정은 누적됨.
netbad drop 10%다음에netbad delay 100ms를 실행하면 두 설정이 모두 적용됨.
알아둘 점
netem의 작동 방식에 따라 송신 트래픽에만 영향을 줌.- 특정 앱이나 포트가 아니라 인터페이스의 모든 트래픽에 영향을 줌.
- SSH 연결에서 사용할 때는 주의가 필요하며, 30초로 설정하면 자동으로 복구됨.
- 설정은 재부팅 후 유지되지 않음. 잊고 남겨 둔 설정은
netbad clear all로 모두 초기화함.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요