首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenVPN on OpenWRT:通过VPN隧道路由特定的子网

OpenVPN on OpenWRT:通过VPN隧道路由特定的子网
EN

Server Fault用户
提问于 2016-05-10 12:03:39
回答 1查看 16K关注 0票数 2

我安装了一个安装了OpenWRT 15.05 (混沌平静)的路由器,并配置了两个wi网络,每个网络都有自己的网络接口:

  • wi-fi-1:接口br-lan ip地址10.0.2.1;地址范围10.0.2.0/24
  • wi 2:接口br-vpn ip地址10.0.10.1;地址范围10.0.10.0/24

我将OpenVPN客户端软件配置为连接到vpn服务vpnservice1。在OpenWRT系统日志中,我可以看到openvpn客户机成功地连接到vpnservice1并打开了接口tun0。

我的目标是通过默认网关从网络wi 1 (10.0.2.0/24)路由所有流量;并通过vpn接口tun0路由wi 2 (10.0.10.0/24)上的所有互联网连接流量。请注意。我仍然希望连接到wi 2网络(10.0.10.0/24)的设备能够连接到这个网络上的其他设备。

按照我目前的配置,With 1网络上的设备可以通过默认网关连接到因特网。然而,连接到wi 2的设备不能连接到互联网。欢迎提供任何援助:)

我的配置描述如下:

  1. 防火墙配置(/etc/config/防火墙):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'
  2. 网络配置(/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'
  3. 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'

  1. 接口清单(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)
  2. 路由列表(路由-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/I 2/rt_table中,我添加了行

代码语言:javascript
复制
0 admin

我创建了一个新的shell脚本/etc/openvpn/客服-up.sh,并添加了行

代码语言:javascript
复制
ip rule add from 10.0.10.0/24 table admin
ip route add default dev tun0 table admin 

在我的openvpn配置文件(/etc/ config /openvpn)中添加了选项

代码语言:javascript
复制
option script_security '2'
option up '/etc/openvpn/guest-up.sh'

重新启动VPN会话后,syslog条目指示成功连接的vpn会话。然而,wi网络并没有通过vpn连接到互联网上。

运行ip route list显示

代码语言:javascript
复制
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返回

代码语言:javascript
复制
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网络和路由非常陌生。

EN

回答 1

Server Fault用户

发布于 2016-05-16 11:18:39

使用iproute2包应该是可能的:

代码语言:javascript
复制
opkg update
opkg install ip

我刚刚开始使用它,所以我想我只能给出一些提示,并且没有具体的解决方案。使用iproute2,您可以实现策略路由(条件路由)。在您的情况下,您需要两个不同的路由为您的两个设备(br-lan和br-vpn)。对于br-lan来说,这似乎已经到位了。现在,您需要通过您的tun0设备和vpn从br(或它所代表的子网)路由所有流量。

我的猜测是这样的(可能不起作用,但希望能让你朝着正确的方向前进):

编辑/etc/iproute2 2/rt_table并添加以下行

代码语言:javascript
复制
0 admin 

然后:

代码语言:javascript
复制
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路由所有内容。

我被你的配置弄糊涂了。您确定“路由-n”输出和ifconfig和/etc/config/网络输出来自同一会话吗?

请注意,这些更改没有用“路由-n”来反映,而是使用

代码语言:javascript
复制
ip rule list
ip route show table admin 
票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/775865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档