다음 규칙은 패킷의 임의 오프셋에 1비트 오류를 도입하여 패킷의 5%를 손상시킵니다.
sudo tc qdisc 변경 dev ens8 루트 netem 손상 5%
하지만 최근에 다음과 같은 오류가 발생했습니다.
오류: Qdisc를 찾을 수 없습니다. 생성하려면 NLM_F_CREATE 플래그를 지정하세요.
패킷 손상을 시뮬레이션할 수 있는 다른 방법을 제공하거나 도움을 줄 수 있습니까? 오류 감지 메커니즘이 얼마나 잘 작동하는지 확인하기 위해 패킷 손상을 시뮬레이션하려고 합니다.
답변1
초기 기본값큐 디스크커널에 의해 설정된 특수 핸들은 0:
수정되거나 참조될 수 없습니다. 새 파일로만 덮어쓸 수 있습니다.큐 디스크. change
기존 참고자료 활용뿌리 큐 디스크, 그러나 이는 기본 커널의 qdisc가 될 수 없으므로 이는 버그입니다.
그래서 이번이 처음이에요네템 큐 디스크사용하는 경우 add
키워드를 사용해야 하며 이는 아마도 과거 어느 시점에 수행된 작업이었을 것입니다. 그런 다음 키워드를 통해 참조하는 것으로 충분 change
하므로 나중에 키워드를 사용하여 일부 매개변수(예: 손상 비율)를 변경할 수 있습니다 .root
바로 가기가 replace
시도되므로 change
실패하면 실행됩니다 add
.
따라서 결국 이 명령은 처음과 다음 몇 번 작동합니다.
sudo tc qdisc replace dev ens8 root netem corrupt 5%
이걸 삭제하고 싶어큐 디스크이 작업은 한 번 수행해야 합니다(기본적으로 다시 수행되므로 두 번째에는 실패합니다).큐 디스크커널에 의해 설치되며 금지됨):
sudo tc qdisc delete dev ens8 root
add
, change
, replace
(예: change
또는 else add
) 의 사용법은 delete
다른 많은 경우에서도 유사한 패턴을 따릅니다.IP 경로 2주문하다.