Client -> tun1 -> tun2s1 -> eth0
curl --interface tun2s1 http://site.com
, то запрос совершается верно, то есть tun2s1 подключен корректно. Проблема в подключении tun1 и tun2s1 интерфейсов.iptables -A FORWARD -o eth0 -i tun1 -s 10.8.1.1/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
echo "100 vpn" >> /etc/iproute2/rt_tables
echo 1 > /proc/sys/net/ipv4/ip_forward
export VPN_NET="10.10.10.0/24"
export VPN_IFACE="tun1"
export VPN_OFACE="tun2s1"
iptables -t nat -A PREROUTING -s $VPN_NET -i $VPN_IFACE -m conntrack --ctstate RELATED,ESTABLISHED -j CONNMARK --restore-mark --nfmask 0xffffffff --ctmask 0xffffffff
iptables -t nat -A PREROUTING -s $VPN_NET -j MARK --set-xmark 0x1/0xffffffff
iptables -t nat -A PREROUTING -s $VPN_NET -j CONNMARK --save-mark --nfmask 0xffffffff --ctmask 0xffffffff
iptables -t nat -A POSTROUTING -s $VPN_NET -o $VPN_OFACE -j MASQUERADE
ip rule add fwmark 1 table vpn
ip route add default dev $VPN_OFACE table vpn
ip route flush cache
# Включаем ip forward
echo 1 > /proc/sys/net/ipv4/ip_forward
# Маскируем трафик
iptables -t nat -A POSTROUTING -s 10.8.1.1/24 -o tun2s1 -j MASQUERADE
# Добавляем новую таблицу маршрутизации
echo "100 admin" >> /etc/iproute2/rt_tables
# Добавляем интерфейс в новую таблицу
ip route add 10.9.1.0/32 dev tun2s1 src 10.9.1.1 table admin
# Объявляем интерфейсом по-умолчанию
ip route add default via 10.9.1.1 dev tun2s1 table admin
# Создаем правило маршрутизации для tun1, направляющее трафик с tun1 в таблицу admin
ip rule add from 10.8.1.0/24 table admin
# Чистим кэш ip route для обновления правил
ip route flush cache
# Отключаем фильтр обратного пути для всех интерфейсов*
for i in /proc/sys/net/ipv4/conf/*/rp_filter ; do
echo 0 > $i
done
# Включаем пакеты с локальных источников для всех интерфейсов*
for i in /proc/sys/net/ipv4/conf/*/accept_local ; do
echo 1 > $i
done