우리는 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에 컴퓨터를 숨기는 것은 불가능할 것 같습니다. 하지만 한 번 볼만한 가치가 있습니다.