Я установил маршрутизатор с установленным OpenWRT 15.05 (Chaos Calmer) и настроил две сети Wi-Fi, каждая из которых имеет собственный сетевой интерфейс:
Я настроил клиентское программное обеспечение OpenVPN для подключения к службе vpn vpnservice1. В системных журналах OpenWRT я вижу, что клиент openvpn успешно подключается к vpnservice1 и интерфейс tun0 открыт.
Моя цель - направить весь трафик из сети Wi-Fi-1 (10.0.2.0/24) через шлюз по умолчанию; и направлять весь интернет-трафик на Wi-Fi-2 (10.0.10.0/24) через интерфейс vpn tun0. Заметка. Я бы хотел, чтобы устройства были подключены к Wi-Fi-2 сеть (10.0.10.0/24), чтобы иметь возможность подключаться к другим устройствам в этой сети.
В текущей конфигурации - устройства на Wi-Fi-1 сеть может подключаться к Интернету через шлюз по умолчанию. Однако устройства, подключенные к Wi-Fi-2 не может подключиться к Интернету. Любая помощь приветствуется :)
Моя конфигурация описана ниже:
Конфигурация межсетевого экрана (/ etc / config / firewall):
config rule config rule
option src 'wan'
option dest 'lan'
option proto 'esp'
option target 'ACCEPT'
config rule
option src 'wan'
option dest 'lan'
option dest_port '500'
option proto 'udp'
option target 'ACCEPT'
config zone
option input 'ACCEPT'
option output 'ACCEPT'
option name 'stream'
option network 'stream'
option masq '1'
option forward 'ACCEPT'
config zone
option input 'ACCEPT'
option output 'ACCEPT'
option name 'stream_vpn'
option forward 'ACCEPT'
option network 'stream_vpn'
option masq '1'
config forwarding
option dest 'stream'
option src 'stream_vpn'
config forwarding
option dest 'stream_vpn'
option src 'stream'
Конфигурация сети (/ etc / config / network):
config interface 'lan'
option ifname 'eth1'
option force_link '1'
option type 'bridge'
option proto 'static'
option netmask '255.255.255.0'
option ip6assign '60'
option ipaddr '10.0.2.1'
config interface 'wan'
option ifname 'eth0'
option proto 'dhcp'
config interface 'stream_vpn'
option proto 'none'
option ifname 'tun0'
config interface 'stream'
option proto 'static'
option ipaddr '10.0.10.1'
option netmask '255.255.255.0'
option type 'bridge'
option _orig_ifname 'stream_lan wlan1-2'
option _orig_bridge 'true'
option ifname 'stream_lan'
Конфигурация клиента OpenVPN 'vpnservice1' (/ etc / openvpn):
config openvpn 'vpnservice1'
option dev_type 'tun'
option client '1'
option resolv_retry 'infinite'
option persist_tun '1'
option persist_key '1'
option tun_ipv6 '1'
option cipher 'AES-256-CBC'
option remote_random '0'
option route_delay '2'
option route_nopull '1'
option route '10.0.10.1 255.255.255.255'
option auth_retry 'interact'
option auth 'SHA1'
option remote_cert_tls 'server'
option reneg_sec '0'
option tls_client '1'
option verb '3'
option mute '20'
option float '1'
option ifconfig_nowarn '1'
option auth_user_pass '/etc/openvpn/vpnservice1/userpass.txt'
option port '1194'
option remote 'vpnservice1.com'
option auth_nocache '1'
option dev 'tun0'
option proto 'udp'
option comp_lzo 'adaptive'
option enabled '1'
option fast_io '1'
option tun_mtu '1500'
option tun_mtu_extra '32'
option ca '/etc/openvpn/vpnservice1/vpnservice1_com.crt'
option ping '15'
option ping_restart '0'
option tls_auth '/etc/openvpn/vpnservice1/vpnservice1_com_tls.key 1'
option script_security '2'
Список интерфейсов (ifconfig -a):
br-lan Link encap:Ethernet HWaddr C0:56:27:7A:92:D3
inet addr:10.0.2.1 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::c256:27ff:cd56:92a1/64 Scope:Link
inet6 addr: fd1d:c378:aa11::1/60 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:15469 errors:0 dropped:0 overruns:0 frame:0
TX packets:15465 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2029206 (1.9 MiB) TX bytes:9594955 (9.1 MiB)
br-vpn Link encap:Ethernet HWaddr 06:25:9C:13:97:F5
inet addr:10.0.10.1 Bcast:10.0.10.255 Mask:255.255.255.0
inet6 addr: fe80::425:cc22:ab34:22e1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:640 errors:0 dropped:0 overruns:0 frame:0
TX packets:566 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:101972 (99.5 KiB) TX bytes:71890 (70.2 KiB)
eth0 Link encap:Ethernet HWaddr C2:56:27:7A:92:D3
inet addr:10.0.1.21 Bcast:10.0.1.255 Mask:255.255.255.0
inet6 addr: fe80::c056:34ff:abcd:84d3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:13175 errors:0 dropped:0 overruns:0 frame:0
TX packets:12879 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:532
RX bytes:8697083 (8.2 MiB) TX bytes:1939234 (1.8 MiB)
Interrupt:194
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.8.134 P-t-P:10.8.8.133 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Список маршрутизации (маршрут -n):
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.1.1 0.0.0.0 UG 0 0 0 eth0
10.0.10.0 0.0.0.0 255.255.255.0 U 0 0 0 br-vpn
10.0.10.1 205.1.2.3 255.255.255.255 UGH 0 0 0 tun0
205.1.2.3 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
10.0.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.0.1.1 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 br-lan
@porchez Я попробовал предложенные вами изменения. Я установил пакет iproute2.
В / etc / iproute2 / rt_tables я добавил строчку
0 admin
Я создал новый сценарий оболочки /etc/openvpn/guest-up.sh и добавил строки
ip rule add from 10.0.10.0/24 table admin
ip route add default dev tun0 table admin
В моем конфигурационном файле openvpn (/ etc / config / openvpn) добавлены параметры
option script_security '2'
option up '/etc/openvpn/guest-up.sh'
После перезапуска сеанса VPN в записях системного журнала указывалось, что сеанс VPN был успешно подключен. Однако сеть Wi-Fi не подключается к Интернету через VPN.
Бег ip route list
показывает
0: from all lookup 128
0: from 10.0.10.0/24 lookup 1
0: from 10.0.10.0/24 lookup 2
0: from 10.0.10.0/24 lookup 3
0: from 10.0.10.0/24 lookup 4
0: from 10.0.10.0/24 lookup 5
0: from 10.0.10.0/24 lookup 6
0: from 10.0.10.0/24 lookup 7
0: from 10.0.10.0/24 lookup 8
Запуск команды ip route show table admin | grep "10.0.10.0
возвращается
10.0.10.0/24 dev br-vpn proto kernel scope link src 10.0.10.1
broadcast 10.0.10.0 dev br-vpn table local proto kernel scope link src 10.0.10.1
Извините, я новичок в сети и маршрутизации Linux.
Это должно быть возможно с пакетом iproute2:
opkg update
opkg install ip
Я только начал его использовать, так что, полагаю, могу дать только несколько подсказок и не могу дать никакого рабочего решения для вашего конкретного случая. С помощью iproute2 вы можете реализовать маршрутизацию политики (условную маршрутизацию). В вашем случае вам нужны два разных маршрута для ваших двух устройств (br-lan и br-vpn). Похоже, что для br-lan это уже сделано. Теперь вам нужно направить весь трафик от br-vpn (или подсети, которую он представляет) через ваше устройство tun0 и vpn.
Я предполагаю, что это будет примерно так (возможно, не работает, но, надеюсь, вы двинетесь в правильном направлении):
отредактируйте / etc / iproute2 / rt_tables и добавьте эту строку
0 admin
Затем:
ip rule add from 10.0.10.0/24 table admin
ip route add default dev tun0 table admin
Интуиция: вы добавляете правило для всего трафика, поступающего из вашей подсети 10.0.10.0/24, и указываете iproute2 заглянуть в таблицу администратора, чтобы узнать, как с этим справиться. Затем вы добавляете правило по умолчанию в свою административную таблицу, маршрутизируя все по умолчанию через ваш vpn.
Меня немного смущает ваша конфигурация. Вы уверены, что выходные данные "route -n" и ifconfig и / etc / config / network относятся к одному и тому же сеансу?
Обратите внимание, что эти изменения не отражаются с помощью «route -n», вместо этого посмотрите на
ip rule list
ip route show table admin