Saya punya dua VPS, mesin pertama ( proxy dari sekarang) untuk proxy dan mesin kedua ( dock dari sekarang) adalah host buruh pelabuhan. Saya ingin mengarahkan semua lalu lintas yang dihasilkan di dalam wadah buruh pelabuhan itu sendiri melalui proxy , untuk tidak mengekspos mesin dok IP publik.
Karena koneksi antara VPS melalui internet, tidak ada koneksi lokal, membuat terowongan di antara mereka dengan ip tunnel sebagai berikut:
Pada proxy :
ip tunnel add tun10 mode ipip remote x.x.x.x local y.y.y.y dev eth0
ip addr add 192.168.10.1/24 peer 192.168.10.2 dev tun10
ip link set dev tun10 mtu 1492
ip link set dev tun10 up
Di dermaga :
ip tunnel add tun10 mode ipip remote y.y.y.y local x.x.x.x dev eth0
ip addr add 192.168.10.2/24 peer 192.168.10.1 dev tun10
ip link set dev tun10 mtu 1492
ip link set dev tun10 up
PS: Tidak tahu apakah ip terowongan dapat digunakan untuk produksi, itu adalah pertanyaan lain, tetap berencana untuk menggunakan libreswan atau openvpn sebagai terowongan antara VPS.
Setelah itu, tambahkan aturan SNAT ke iptables di kedua VPS dan beberapa aturan perutean sebagai berikut:
Pada proxy :
iptables -t nat -A POSTROUTING -s 192.168.10.2/32 -j SNAT --to-source y.y.y.y
Di dermaga :
iptables -t nat -A POSTROUTING -s 172.27.10.0/24 -j SNAT --to-source 192.168.10.2
ip route add default via 192.168.10.1 dev tun10 table rt2
ip rule add from 192.168.10.2 table rt2
Dan yang tak kalah pentingnya menciptakan jaringan buruh pelabuhan dengan satu wadah uji yang melekat padanya sebagai berikut:
docker network create --attachable --opt com.docker.network.bridge.name=br-test --opt com.docker.network.bridge.enable_ip_masquerade=false --subnet=172.27.10.0/24 testnet
docker run --network testnet alpine:latest /bin/sh
Sayangnya semua ini berakhir tanpa hasil. Jadi pertanyaannya adalah bagaimana cara men-debug itu? Apakah itu cara yang benar? Bagaimana Anda akan melakukan redirection melalui proxy?
Beberapa kata tentang teori: Lalu lintas yang berasal dari 172.27.10.0/24 subnet hits iptables aturan SNAT, sumber perubahan IP ke 192.168.10.2. Dengan aturan routing, rute melalui perangkat tun10, itu adalah terowongan. Dan mengenai aturan SNAT iptables lain yang mengubah IP menjadi yyyy dan akhirnya pergi ke tujuan.
apk add curl
curl 'http://ipecho.net/plain'
Ini harus mengembalikan yyyy