하나의 호스트와 두 개의 가상 머신은 서로 ping할 수 없습니다. 그것을 다루는 방법

하나의 호스트와 두 개의 가상 머신은 서로 ping할 수 없습니다. 그것을 다루는 방법

우리는 KVM환경에서 가상 머신을 실행합니다. 하나는 등을 실행하는 개발 서버로 설정 Apache하고 다른 하나는 Windows개발 환경으로 설정했습니다.

두 환경 모두 설정되어 있고 정상적으로 실행 중입니다. 그러나 서로 ping할 수는 없습니다. 명확한 해결책이 있는지 궁금합니다.

이것이 지금 일어나고 있는 일입니다.

호스트로부터:

  Cannot ping either of 2 VM's (one `Linux`, one `Windows`)

모든 가상 머신에서:

  Cannot ping host
  Cannot ping each other

다른 네트워크 컴퓨터(예: 회사 네트워크 내의 노트북)에서

  Successfully ping host at 192.168.0.64
  Successfully ping VM1 (Linux) 192.168.0.43
  Successfully ping VM2 (Windows) 192.168.0.84

답변1

KVM 환경 외부에서 호스트와 두 가상 머신을 모두 ping할 수 있으므로 머신이 브리지 모드에서 통신하고 있다는 것은 분명합니다.

문제는 대상이 호스트의 IP 주소가 아닌 패킷을 삭제하는 커널의 스푸핑 방지 보호입니다.

런타임의 경우 호스트 서버의 명령줄에서 다음을 수행합니다.

 sudo sysctl -w net.ipv4.conf.default.rp_filter=0
 sudo sysctl -w net.ipv4.conf.all.rp_filter=0

시작 후에도 유지되도록 하려면 다음 행을 추가하십시오 /etc/sysctl.conf.

 net.ipv4.conf.default.rp_filter=0
 net.ipv4.conf.all.rp_filter=0

의견 중 /etc/sysctl.conf(약간 변경됨):

rp_filter: 스푸핑 방지(역경로 필터)를 활성화합니다.

특정 스푸핑 공격을 방지하기 위해 모든 인터페이스에서 소스 주소 검증

답변2

제가 아는 한 일반적인 연결 유형은 NAT여야 합니다. 따라서 특정 가상 머신 설정에서 마우스 오른쪽 버튼을 클릭하면 네트워크 유형을 변경할 수 있습니다.

추신: 핑을 방지하기 위해 LAN에 컴퓨터를 숨기는 것은 불가능할 것 같습니다. 하지만 한 번 볼만한 가치가 있습니다.

관련 정보