그래서 가상 네트워크에서 인터넷 중단을 시뮬레이션하려고 합니다.
개인 네트워크가 작동하고 로컬 콘텐츠(예: 데이터베이스)에 액세스할 수 있지만 게이트웨이가 실패하는 시나리오를 시뮬레이션하고 싶기 때문에 아래 링크에 제안된 대로 인터페이스를 끌 수 없습니다.
네트워크 케이블이 분리되었거나 서버가 다운된 것을 시뮬레이션하는 방법은 무엇입니까?
네트워크는 Docker를 사용하여 실행되며 모든 머신은 별도의 Docker 이미지입니다.
이를 수행하는 쉬운 방법이 있습니까?
답변1
첫 번째 단계는 각 도커 이미지가 자체 네트워크 네임스페이스 내에서 실행되고 있는지 확인한 다음 각 이미지를 가상 인터페이스로 채우는 것입니다. 하나의 인터페이스는 (중단되지 않는) "로컬 네트워크"용이고 다른 하나의 인터페이스는 ( 간섭) "WAN".
각 로컬 네트워크 인터페이스는 전역 네임스페이스의 자체 인터페이스에 "연결"되며 이러한 인터페이스는 모두 브리지에 추가됩니다. 이 설정은 로컬 네트워크에 "케이블 연결"을 제공합니다. 그런 다음 네트워크에 DHCP 서비스를 추가하거나 정적 할당을 사용해야 할 수도 있습니다.
각 WAN 인터페이스는 전역 네임스페이스의 자체 인터페이스에도 연결되며, 이들 모두는 "WAN" 배선을 나타내는 또 다른 브리지에 추가됩니다. 또한 브리지에는 시뮬레이션된 WAN 트래픽이 "실제" WAN으로 빠져나갈 수 있도록 하는 기본 호스트 IP가 있습니다. 이를 위해 트래픽을 지시하도록 iptables 규칙을 설정하고 해당 규칙을 간섭하도록 변경할 수 있습니다.
서로 다른 도커에 서로 다른 간섭을 적용하려는 경우 이를 하나의 브리지로 묶지 않고 별도의 채널 규칙을 갖고 개별 간섭에 대해 해당 규칙을 조작해야 합니다. 또는 이를 브리지에 도입한 다음 가상 와이어를 조작할 수 있습니다(각 와이어를 해당 네임스페이스의 동반 인터페이스에 연결).