상황이 있습니다.
- 데비안(K)이 설치된 컴퓨터는 네트워크 192.168.1.0/24를 할당하는 라우터(A)에 연결됩니다.
- 네트워크 172.16.1.0/30을 할당하고 해당 네트워크에서 pptp 서버를 실행하며 NAT를 활성화하는 또 다른 라우터(B)("흰색" IP 있음)가 있습니다.
- pptp 클라이언트는 IP 172.16.1.2를 사용하여 ppp1 인터페이스를 생성하는 "K"에 설치됩니다(그러나 어떤 이유로 마스크 /32는 /32에서 "to node"로 향하는 Keenetic("B") 경로에도 있습니다.) .
- 연결이 설정되고 ping이 성공합니다. 문제는 "삼각형" 경로입니다(아직도 그렇다고 생각합니다).
- 네트워크 "A"에서 "K"로 연결(예: SSH)하면 모든 것이 제대로 작동합니다(eth0 - 네트워크 "A" - 기본 경로).
- 라우터 "B"에는 인터넷(특정 포트)에서 "K"로 연결을 전달하는 nat가 있습니다.
- 패킷에서 "소스"는 라우터의 소스로 변경되지 않습니다.
- 그러나 "K"에는 eth0에서 ppp1로 트래픽을 보내는 작업을 수행하는 http-proxy가 있기 때문에 이것이 문제를 완전히 해결하지는 않습니다.
- 프록시 설정(3proxy)에서 "입력" 및 "출력" IP를 지정했습니다.
어쩌면 작동해야 할 수도 있지만 그렇지 않습니다. eth0을 통해 인터넷에 액세스하는 것은 7x+이므로 기본 경로를 변경하는 것은 옵션이 아닙니다. ppp1의 연결을 허용하고 eth0 자체를 통해 연결을 생성하는 동일한 시스템에 다른 openvpn 서버를 설치할 계획입니다.
구성된 경우:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.20 netmask 255.255.255.0 broadcast 192.168.1.255
ether 02:02:20:02:47:8f txqueuelen 1000 (Ethernet)
RX packets 5248 bytes 343827 (335.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 512 bytes 54725 (53.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 37
ppp1: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1350
inet 172.16.1.2 netmask 255.255.255.255 destination 172.16.1.1
ppp txqueuelen 3 (Point-to-Point Protocol)
RX packets 8 bytes 118 (118.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 8 bytes 99 (99.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
/etc/3proxy/3proxy.cfg:
setgid 115
setuid 109
#nserver 192.168.1.1
nserver 172.16.1.1
nscache 65536
timeouts 1 5 30 60 180 1800 15 60
#In theory, from this point on, traffic should go through the ppp1 interface.
external 172.16.1.2
internal 192.168.1.20
users $/etc/3proxy/.proxyauth
daemon
log /var/log/3proxy/3proxy.log D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
auth cache strong
proxy -n -p8080 -a
그 밖에도 3proxy가 전송한 DNS 트래픽은 ppp1(tcpdump를 사용하여 모니터링)을 통해 자유롭게 전송됩니다(송신 및 수신).
답변1
이는 에이전트에 "natin" pptp를 담당하는 올바른 모듈이 없기 때문일 수 있습니다. 다음을 시도해 보십시오:
lsmod |grep nf_nat_pptp
모듈이 존재하지 않는 경우 다음을 입력해야 합니다.
modprobe nf_nat_pptp
echo 'net.netfilter.nf_conntrack_helper=1' >> /etc/sysctl.conf
sysctl -p
이러한 변경으로 인해 pptp 트래픽은 프록시를 통과해야 합니다.
나중에 다시 시작할 때 모듈을 영구적으로 활성화하려면 다음을 통해 모듈 파일에 추가해야 합니다.
echo 'nf_nat_pptp' >> /etc/modules