하나의 호스트, 서로 핑할 수없는 두 개의 가상 머신. 해결하는 방법


10

우리는 KVM환경 내에서 가상 머신을 운영하고 있습니다. 하나는 개발 서버로 실행되는 dev 서버로 Apache, 다른 하나는 Windows개발 환경으로 설정했습니다.

두 환경이 설정되어 있고 제대로 실행되고 있습니다. 그러나 서로 핑할 수는 없습니다. 이것에 대한 명확한 해결책이 있는지 궁금합니다.

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

호스트에서 :

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

VM 중 하나에서 :

  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

4
가상 머신의 네트워크 구성에 대한 자세한 정보가 있습니까? 다른 네트워크 시스템이 VM을 핑 (ping) 할 때 네트워크의 다른 임의 시스템을 핑 (ping)하지 않는 것이 확실합니까? (예를 들어 브라우저로 아파치 서버를 실제로 칠 수 있습니까?).
GregHNZ

네 다리일지도 모른다 커널의 iptables는 다음과 같은 경우를 제외하고는 시스템이 자체적으로 통신하지 못하게합니다. echo "1"> / proc / sys / net / ipv4 / ip_forward; 어쨌든.
mikeserv

VM을 부팅하는 데 어떤 명령을 사용합니까?
jobin

동일한 네트워크에 다른 호스트가 있습니까 (동일한 호스트에 있지 않은)? 이 머신은 해당 머신을 핑할 수 있습니까?
Sree

1
게스트에 macvtap ( wiki.libvirt.org/page/… ) 인터페이스를 사용하십니까 ?
nkms

답변:


1

KVM 환경 외부에서 호스트와 두 VM을 핑 (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 : 스푸핑 방지 (역경로 필터)를 활성화합니다.

일부 스푸핑 공격을 방지하기 위해 모든 인터페이스에서 소스 주소 확인


나는 그 질문이 오래
Rui F Ribeiro

0

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

추신 : 근거리 통신망에서 컴퓨터가 핑되지 않도록 숨기는 것은 특히 불가능하다고 생각합니다. 그러나 그만한 가치가 있습니다.


ICMP 핑에서 컴퓨터를 숨길 수 있습니다. 커널에서 기능을 비활성화하거나 방화벽 규칙을 생성하여이를 차단합니다. 브리지 모드의 Xen 및 bhyve 호스트가 있으며 제대로 작동합니다.
Rui F Ribeiro
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.