OpenVPN 포트를 NAT의 XEN domU로 전달하는 방법

OpenVPN 포트를 NAT의 XEN domU로 전달하는 방법

XEN에 OpenVPN domU를 설치하고 싶습니다. Dom0과 domU는 Debian Squeeze를 실행하고 있으며 모든 domU는 NAT 전용 네트워크 10.0.0.1/24에 있습니다. 내 VPN-Gate는 von 10.0.0.1이고 실행 중입니다. dom0 공용 IP에서 액세스할 수 있도록 하려면 어떻게 해야 합니까?

iptables를 사용하여 포트 전달을 시도했지만 성공하지 못했습니다.

내가 한 일은 다음과 같습니다.

~ # iptables -L -n -v
Chain INPUT (policy ACCEPT 1397 packets, 118K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 930 packets, 133K bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED PHYSDEV match --physdev-out vif5.0 
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           PHYSDEV match --physdev-in vif5.0 udp spt:68 dpt:67 
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED PHYSDEV match --physdev-out vif5.0 
    0     0 ACCEPT     all  --  *      *       10.0.0.1             0.0.0.0/0           PHYSDEV match --physdev-in vif5.0 
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED PHYSDEV match --physdev-out vif3.0 
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           PHYSDEV match --physdev-in vif3.0 udp spt:68 dpt:67 
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED PHYSDEV match --physdev-out vif3.0 
    0     0 ACCEPT     all  --  *      *       10.0.0.5             0.0.0.0/0           PHYSDEV match --physdev-in vif3.0 
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED PHYSDEV match --physdev-out vif2.0 
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           PHYSDEV match --physdev-in vif2.0 udp spt:68 dpt:67 
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED PHYSDEV match --physdev-out vif2.0 
    0     0 ACCEPT     all  --  *      *       10.0.0.2             0.0.0.0/0           PHYSDEV match --physdev-in vif2.0 
  147  8236 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:80 
   13   546 ACCEPT     udp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           udp dpt:1194 

Chain OUTPUT (policy ACCEPT 1000 packets, 99240 bytes)
 pkts bytes target     prot opt in     out     source               destination  


~ # iptables -L -t nat -n -v

Chain PREROUTING (policy ACCEPT 324 packets, 23925 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  139  7824 DNAT       tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80 to:10.0.0.5:80 
    1    42 DNAT       udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:1194 to:10.0.0.1:1194 

Chain POSTROUTING (policy ACCEPT 92 packets, 5030 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  863 64983 MASQUERADE  all  --  *      eth0    0.0.0.0/0            0.0.0.0/0           
    0     0 MASQUERADE  all  --  *      eth0    0.0.0.0/0            0.0.0.0/0           
    0     0 MASQUERADE  all  --  *      eth0    0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT 180 packets, 13953 bytes)
 pkts bytes target     prot opt in     out     source               destination   

답변1

나는 그것을 작동시킬 수 있었다. 실수는 패키지 전달 내부가 아니라 IP 라우팅 내부에 있었습니다. VPN 클라이언트가 10.0.0.0/24 네트워크를 찾을 수 있는 위치를 알고 있는지 확인해야 했습니다. OpenVPN의 push-route.

관련 정보