Мне нужно направить трафик на какой-то хост в Интернете через VPN-сервер.
Конфигурация:
Компьютер: ubuntu-12.04
eth0 - x.x.x.x / 24
tun0 - inet адрес: 10.8.0.6 P-t-P: 10.8.0.5 Маска: 255.255.255.255
Есть сервер OpenVPN (Amazon):
убунту-12.04
eth0 - г.г.г.г / 24
tun0 - inet адрес: 10.8.0.1 P-t-P: 10.8.0.2 Маска: 255.255.255.255
В Интернете есть хост: q.q.q.q
Я хочу, чтобы трафик на q.q.q.q пошел кидать OpenVPN сервер. Для этого я делаю:
iptables:
Отмечу пакеты в таблице mangle:
sudo iptables -t mangle -A OUTPUT -d q.q.q.q -j MARK --set-mark 2
Отправляю трафик на q.q.q.q кидаю tun0:
sudo iptables -t nat -A POSTROUTING -d q.q.q.q -j SNAT --to-source 10.8.0.6
iproute2:
Я делаю таблицу "100" в / etc / iproute2 / rt_tables
sudo ip rule add fwmark 2 table 100
sudo ip route add default via 10.8.0.5 table 100
tcpdump на 1-м компьютере:
14: 22: 04.554399 IP 10.8.0.6> q-q-q-q.clodo.ru: эхо-запрос ICMP, id 11717, seq 1, длина 64
14: 22: 04.681918 IP q-q-q-q.clodo.ru> 10.8.0.6: эхо-ответ ICMP, id 11717, seq 1, длина 64
14: 22: 05.562577 IP 10.8.0.6> q-q-q-q.clodo.ru: эхо-запрос ICMP, id 11717, seq 2, длина 64
14: 22: 05.690240 IP q-q-q-q.clodo.ru> 10.8.0.6: эхо-ответ ICMP, id 11717, seq 2, длина 64
Но пинга нет. 2 пакета передано, 0 получено, 100% потеря пакетов ..
Маркировать пакеты не нужно. Для того, что вы планируете, вам потребуется следующее
в конфигурационном файле сервера добавьте следующее:
"push route q.q.q.q 255.255.255.255"
Вышеупомянутое продвинет маршрут на сторону клиента, поэтому весь трафик, отправленный от клиента на этот ip, будет отправляться через туннель openvpn.
Также на стороне сервера вам необходимо принимать входящий трафик от клиента, вы можете принимать весь трафик, поступающий из подсети клиента, как показано ниже
iptables -A INPUT -s 10.8.0.0/24 -j ACCEPT
вам также может понадобиться это не уверен:
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
Вам необходимо настроить входящий трафик от клиента к серверу [сделайте это на стороне сервера]
iptables -t nat -A POSTROUTING -d q.q.q.q -j SNAT --to-source PUBLIC_IP_OR_YOUR_VPN_SERVER
И вам не нужны iproute2 или таблица mangle.
Порядок правил имеет значение, поэтому просьба их выполнить перед подходящим правилом сброса.