Я использую устройство под управлением openwrt (chaos_calmer 15.05)
Я пытаюсь перенаправить сетевой трафик с двух разных SSID на два разных vps, на которых запущен openvpn
Моя установка работает только с одним интерфейсом Wi-Fi / Tun. Кажется невозможным работать с двумя VPN (клиентом openvpn) одновременно.
Я не понимаю, почему: / Я думаю, что это не очень сложная установка. Надеюсь, кто-нибудь может мне помочь, раз уж вы - сетевые эксперты.
Я думаю, что это проблема маршрутизации, но я не уверен. Кто-нибудь может помочь мне исправить это, пожалуйста?
Чтобы упростить это, моя установка выглядит так:
eth0 (internet link) <===== tun0 <==== wifi-A
eth0 (internet link) <===== tun1 <==== wifi-B
Обратите внимание на следующие утверждения
Мое устройство openwrt получает интернет-соединение с интерфейсом eth0 с использованием DHCP
Я создал мост на своем интерфейсе wlan0, чтобы иметь возможность транслировать два SSID: (wifi-a и wifi-b)
На wifi-a: на DHCP-сервере работает пул 172.17.42.100-200 gw 172.18.42.1
На wifi-b: на DHCP-сервере работает пул 172.18.42.100-200 gw 172.18.42.1
У меня два VPS, на которых я установил openvpn: PublicIP-1 и PublicIP-2
Я запускаю на своем устройстве два клиента openvpn на общедоступный IP-1 (tun0) и на общедоступный IP-2 (tun1)
Наконец, я подключил подсеть wifi-a к tun0 и подсеть wifi-b к tun1 со следующими правилами iptables:
iptables -t nat -A POSTROUTING -s 172.17.42.0/24 -o tun0 -j MASQUERADE iptables -A FORWARD -s 172.17.42.0/24 -o tun0 -j ACCEPT iptables -A FORWARD -d 172.17.42.0/24 -m состояние --state УСТАНОВЛЕНО, СВЯЗАННО -i tun0 -j ACCEPT
iptables -t nat -A POSTROUTING -s 172.18.42.0/24 -o tun1 -j MASQUERADE
iptables -A FORWARD -s 172.18.42.0/24 -o tun1 -j ACCEPT iptables -A
FORWARD -d 172.18.42.0/24 -m state --state ESTABLISHED,RELATED -i tun1 -j ACCEPT
Ниже мои детали интерфейса:
eth0 inet адрес: 192.168.0.10 Bcast: 192.168.0.255 Маска: 255.255.255.0
br-wifi-a inet адрес: 172.17.42.1 Bcast: 172.17.42.255 Маска: 255.255.255.0
br-wifi-b inet адрес: 172.18.42.1 Bcast: 172.18.42.255 Маска: 255.255.255.0
tun0 inet адрес: 10.8.0.6 P-t-P: 10.8.0.5 Маска: 255.255.255.255
tun1 inet адрес: 10.9.0.6 P-t-P: 10.9.0.5 Маска: 255.255.255.255
Моя таблица маршрутов:
Шлюз назначения Флаги Genmask Метрическая ссылка
Используйте Ifaceпо умолчанию 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
10.8.0.1 10.8.0.5 255.255.255.255 UGH 0 0 0 tun0 10.8.0.5 * 255.255.255.255 UH 0 0 0 tun0 10.9.0.1 10.9.0.5 255.255.255.255 UGH 0 0 0 tun1 10.9.0.5 * 255.255.255.255 UH 0 0 0 тун1
PublicIP-1 192.168.0.1 255.255.255.255 UGH 0 0 0 eth0
PublicIP-2 192.168.0.1 255.255.255.255 UGH 0 0 0 eth0
172.17.42.0 * 255.255.255.0 U 0 0 0 бр.
172.22.42.0 * 255.255.255.0 U 0 0 0 br-lan 192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
Быстрая отладка:
ping google.com -I tun1 PING google.fr (108.177.119.94): 56 байтов данных 64 байта из 108.177.119.94: seq = 0 ttl = 43 time = 29,665 мс
ping google.com -I tun0 PING google.fr (108.177.119.94): 56 байтов данных 64 байта из 108.177.119.94: seq = 0 ttl = 43 time = 30,277 мс
ping google.com -I eth0 PING google.fr (108.177.119.94): 56 байтов данных 64 байта из 108.177.119.94: seq = 0 ttl = 42 time = 17,860 мс ^ C
Вы знаете, в чем я ошибаюсь? Спасибо за помощь ребята,
Кроме того, я попробовал следующее, чтобы добавить gw по умолчанию для моих интерфейсов tun:
echo "1 vpna" >> /etc/iproute2/rt_tables
echo "2 vpnb" >> /etc/iproute2/rt_tables
ip rule add from 10.8.0.0/24 dev tun0 table vpna
ip rule add from 10.9.0.0/24 dev tun1 table vpnb
ip route add default via 10.8.0.5 dev tun0 table vpna
ip route add default via 10.9.0.5 dev tun1 table vpnb