서브넷 간 트래픽 VirtualBox

서브넷 간 트래픽 VirtualBox

VirtualBox에서 실제 네트워크의 프로토타입을 만들려고 합니다. 3가지 게스트 시스템이 있습니다.

  1. 3개의 NIC가 있는 Debian 기반 라우터:
    • enp0s3은 뛰어난 것 같습니다. (브리징)
    • enp0s8 LAN1 (내부 네트워크 1의 게이트웨이)
    • enp0s9 LAN2 (내부 네트워크 2의 게이트웨이)
  2. LAN1의 WinXP 워크스테이션.
  3. LAN2의 WinXP 워크스테이션.
/etc/sysctl.conf에서:

net.ipv4.ip_forward=1

iptables는 출력을 저장합니다.

# Generated by iptables-save v1.6.0 on Thu Mar 21 01:18:29 2019
*filter
:INPUT DROP [31:8959]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -i enp0s8 -j ACCEPT
-A INPUT -i enp0s9 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 1 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 2 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m state --state INVALID -j DROP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
-A INPUT -i enp0s3 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -m state --state INVALID -j DROP
-A FORWARD -i enp0s8 -o enp0s3 -j ACCEPT
-A FORWARD -i enp0s9 -o enp0s3 -j ACCEPT
-A FORWARD -i enp0s3 -o enp0s8 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i enp0s3 -o enp0s9 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -s 10.10.10.0/24 -d 10.10.11.0/24 -i enp0s8 -o enp0s9 -j ACCEPT
-A FORWARD -s 10.10.11.0/24 -d 10.10.10.0/24 -i enp0s9 -o enp0s8 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -o enp0s8 -j ACCEPT
-A OUTPUT -o enp0s9 -j ACCEPT
-A OUTPUT -o enp0s3 -j ACCEPT
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
COMMIT
# Completed on Thu Mar 21 01:18:29 2019
# Generated by iptables-save v1.6.0 on Thu Mar 21 01:18:29 2019
*nat
:PREROUTING ACCEPT [77:16001]
:INPUT ACCEPT [2:628]
:OUTPUT ACCEPT [2:143]
:POSTROUTING ACCEPT [2:143]
-A POSTROUTING -s 10.10.10.0/24 -o enp0s3 -j MASQUERADE
-A POSTROUTING -s 10.10.11.0/24 -o enp0s3 -j MASQUERADE
COMMIT
# Completed on Thu Mar 21 01:18:29 2019
# Generated by iptables-save v1.6.0 on Thu Mar 21 01:18:29 2019
*mangle
:PREROUTING ACCEPT [224:28224]
:INPUT ACCEPT [180:21810]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [144:17877]
:POSTROUTING ACCEPT [144:17877]
COMMIT
# Completed on Thu Mar 21 01:18:29 2019

DNSmasq는 DHCP 서버 역할을 합니다
. 질문은 LAN1의 워크스테이션이 LAN2의 워크스테이션을 볼 수 있도록 하려면 어떻게 해야 합니까? 둘 다 인터넷을 사용할 수 있으며, 워크스테이션1(10.100)은 11.1 게이트웨이에 ping을 보낼 수 있지만 11.100 시스템에 연결할 수 없으며 그 반대의 경우도 마찬가지입니다. iptables는 통계에 손실된 패킷이 없으므로 문제가 될 가능성이 없습니다. 흥미롭게도 tcpdump는 ping 요청당 2개의 패킷을 표시하며 시간 차이는 0.0000배입니다.
PS 가능하다면 클라이언트에 고정 경로를 추가하지 않는 것이 가장 좋습니다.

답변1

iptables 구성에 아무런 문제가 없습니다. 이로 인해 워크스테이션에서 실행 중인 방화벽이 트래픽 흐름을 차단하고 있다고 믿게 되었습니다.

다음 점검을 수행하십시오.

  • 워크스테이션에서 10.10.10.100다음을 실행하세요.ping -t 10.10.11.100
  • 라우터에서 다음 명령을 실행하여 ICMP 패킷이 10.10.10.100출력 인터페이스에 도착하는지 확인하세요.tcpdump -i enp0s9 icmp and host 10.10.11.100

워크스테이션에서 10.10.11.100인터넷에 접속할 수 있으므로 다음을 설치하는 것이 좋습니다.Wireshark 버전 1.10위에 (Windows XP를 지원하는 마지막 브랜치) 패킷이 실제로 가상 어댑터에 도달하는지 확인합니다.

답변2

시간을 들여서 죄송합니다. 이유는 간단하고 어리석습니다. WinXP 방화벽은 기본적으로 ICMP 패킷을 차단합니다. 더 일찍 확인했어야 했어요. 많은 관심 부탁드립니다. 다음번에는 더욱 주의하도록 하겠습니다.

관련 정보