3개의 서브넷이 있는 AWS VPC의 Ubuntu 12.04에서 실행되는 OpenVPN 서버가 있습니다. 내 클라이언트를 연결할 수 있고 문제 없이 서버(10.8.0.1)를 ping할 수 있지만 내 클라이언트에서 VPC에 있는 다른 시스템에 연결할 수 없습니다.
일부 배경 정보:
서버 자체에서 ping을 보낼 수 있습니다.
클라이언트에서 서버에 ping을 보낼 수 있습니다.
서버에서 클라이언트를 핑할 수 없습니다.
서버에서 VPC의 머신에 ping을 보낼 수 있습니다.
내 클라이언트에서 VPC(서버 이외)의 시스템을 핑할 수 없습니다.
서버에서 IPV4 전달을 활성화했습니다.
소스/대상 확인을 비활성화했습니다.
10.8.0.0/16 트래픽을 OpenVPN 인스턴스로 라우팅하기 위해 VPC에 라우팅 테이블을 설정했습니다.
VPC 서브넷:
10.0.0.0/24
10.0.1.0/24
10.0.2.0/24
OpenVPN 서버는 10.0.2.0/24에서 실행되고 있으며 다른 서브넷에 있는 모든 서버를 핑할 수 있습니다. 해당 클라이언트는 서브넷의 아무 것도 연결할 수 없습니다.
서버 회의:
port 80
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key # This file should be kept secret
dh dh1024.pem
server 10.8.0.0 255.255.0.0
ifconfig-pool-persist ipp.txt
push "route 10.0.0.0 255.0.0.0"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
tls-auth ta.key 0 # This file is secret
comp-lzo
max-clients 100
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
log openvpn.log
verb 6
mute 20
클라이언트 구성:
client
dev tun
proto tcp
remote xx.xx.xxx.xxx 80
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert olo-imac.crt
key olo-imac.key
tls-auth ta.key 1
comp-lzo
verb 3
서버 경로:
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.0.2.1 0.0.0.0 UG 100 0 0 eth0
10.0.2.0 * 255.255.255.0 U 0 0 0 eth0
10.8.0.0 10.8.0.2 255.255.0.0 UG 0 0 0 tun0
10.8.0.2 * 255.255.255.255 UH 0 0 0 tun0
클라이언트 경로:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.36.1 192.168.36.120 10
10.0.0.0 255.0.0.0 10.8.0.5 10.8.0.6 30
10.8.0.1 255.255.255.255 10.8.0.5 10.8.0.6 30
10.8.0.4 255.255.255.252 On-link 10.8.0.6 286
10.8.0.6 255.255.255.255 On-link 10.8.0.6 286
10.8.0.7 255.255.255.255 On-link 10.8.0.6 286
127.0.0.0 255.0.0.0 On-link 127.0.0.1 306
127.0.0.1 255.255.255.255 On-link 127.0.0.1 306
127.255.255.255 255.255.255.255 On-link 127.0.0.1 306
192.168.36.0 255.255.255.0 On-link 192.168.36.120 266
192.168.36.120 255.255.255.255 On-link 192.168.36.120 266
192.168.36.255 255.255.255.255 On-link 192.168.36.120 266
224.0.0.0 240.0.0.0 On-link 127.0.0.1 306
224.0.0.0 240.0.0.0 On-link 192.168.36.120 266
224.0.0.0 240.0.0.0 On-link 10.8.0.6 286
255.255.255.255 255.255.255.255 On-link 127.0.0.1 306
255.255.255.255 255.255.255.255 On-link 192.168.36.120 266
255.255.255.255 255.255.255.255 On-link 10.8.0.6 286
답변1
위의 CIGuy 의견에 대한 답변입니다.
OpenVPN 서버에서 tcpdump를 실행하세요. 패킷이 실제로 서버에서 원격 네트워크의 다른 호스트로 전달되고 있는지 확인할 수 있어야 합니다.
다음과 같은 것 :
tcpdump -i any -v host <ip>
핑하려는 IP는 어디에 있습니까? 추가하여 Wireshark에서 나중에 분석하기 위해 패킷 캡처를 파일에 쓸 수도 있습니다.
-s0 -w somefile.pcap
tcpdump의 일부 버전은 자체적으로 chroot를 수행하므로 somefile.pcap이 예상한 위치를 표시하지 않으면 /var/lib/tcpdump/를 확인하십시오.