그래서 저는 3개의 가상머신(가상박스)을 가지고 있습니다.
하나는 라우터/방화벽입니다. snort + snortsam을 실행하고 있습니다.
이 머신은 tomcat에서 웹 애플리케이션을 실행합니다.
이 컴퓨터에서 컴퓨터 2의 웹앱에 액세스하려고 합니다.
머신 1과 2는 내부 네트워크를 통해 연결됩니다. 기계 1과 3은 동일합니다.
머신 3에서 머신 2의 웹앱에 액세스하고 싶지만 할 수 없습니다.
지금까지 머신 1에는 다음과 같은 iptables 구성이 있습니다.
iptables -A forward -p tcp -d <machine_2_ip> --dport http -j ACCEPT
iptables -A forward -p tcp -d <machine_2_ip> --dport https -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
머신 1에서 tcpdump를 사용하여 얻은 정보는 다음과 같습니다.
ARP, Request who-has <machine_2_ip> tell <machine_3_ip>, length 46
누구든지 도와줄 수 있나요?
관심을 가져주셔서 감사합니다.
v2 편집
v3 편집
따라서 해결책은 M1과 M3에 기본 게이트웨이를 추가하는 것이었고 작동했지만 항상 그런 것은 아닙니다. 때때로 내 iptables는 다음과 같습니다.
그러나 그것은 진실이 아니다. 다음이 표시된 경우에만 작동합니다: cpe-192 대신 목적지->192.136.200.3... 이 문제를 해결하는 방법을 아는 사람이 있습니까?
답변1
이 ARP 요청은 M3가 M2가 게이트웨이 M1 뒤에 있는 것이 아니라 동일한 서브넷에 있다고 잘못 믿고 있음을 의미합니다.
거의 확실하게 다음 두 가지 중 하나입니다.
- M3의 서브넷 마스크가 (적어도) 잘못되었습니다.
- 예를 들어 M1/M3 및 M1/M2 네트워크에서 동일한 서브넷을 사용했습니다.
다이어그램이 유효한 내용을 보여주기 때문에 이는 이상하지만 다이어그램이 실제로 구성한 내용을 반영하지 않는다고 확신합니다. 세 개의 (더미) 상자를 모두 선택하여 ip addr ls
확인하십시오 ip route ls
.