scp를 사용하여 SSH 연결에서 패킷 손실을 시뮬레이션하는 방법

scp를 사용하여 SSH 연결에서 패킷 손실을 시뮬레이션하는 방법

한 노드에서 다른 노드로 대량의 데이터를 전송할 때 macOS와 Linux 플랫폼의 불안정한 네트워크 환경에서 wireGuard라는 새로운 VPN 터널 프로토콜의 내구성을 관찰하고 싶습니다.

wireGuard는 UDP에서 작동하며 어느 정도 패킷 손실을 처리하는 방법을 알고 싶었습니다.

이 원격 복사 세션 중에 일정 비율의 패킷을 삭제하도록 네트워크 인터페이스를 설정할 수 있는 방법이 있습니까?

답변1

Linux의 경우 iptables다음과 같습니다.

iptables -A OUTPUT -m statistic --mode random --probability 0.02 -j DROP

또는

iptables -A INPUT -m statistic --mode random --probability 0.02 -j DROP

노트:

  • 위 명령은 테이블의 체인 OUTPUT(또는 INPUT각각) 에서 처리되는 모든 패킷에 영향을 줍니다 filter. 특정 연결만 대상으로 하기 위해 -p(프로토콜) 및 (예 : 대상 포트) 를 사용하고 싶을 수도 있습니다 .--dport

    iptables -A OUTPUT -p udp --dport 1234 -m …
    
  • 다양한 변형을 테스트하는 동안 불필요한 규칙을 쌓는 대신 제거하는 것을 잊지 마세요. 규칙을 제거하려면 동일한 iptables …명령을 호출하십시오. -D단, -A.


nftables나는 잘 모른다 . 나는 이것을 발견했습니다 :확률에 따라 패킷을 삭제하는 방법은 무엇입니까 nftables?


나는 macOS를 모른다조금도. 내 연구 pfctl에서 나는 dnctl. OSX에서 이것을 찾았습니다.패킷을 무작위로 삭제하는 방법. dnctl요즘 macOS에서 사용할 수 있는 답변에 사용되는지 전혀 모르겠습니다 . 죄송합니다.

"macOS 부분"을 별도의 질문으로 이동합니다.apple.stackexchange.com), 여기서는 "Linux 부분"만 남겨두는 것이 좋은 전략일 수 있습니다.

관련 정보