Articles of 路由

Shorewall:VPN客户端可以访问LAN资源,但不能访问Internet

我在我的工作室的办公室build立了一个networking,使用Raspberry Pi作为VPN服务器,让远程客户端访问局域网资源。 路由器端口转发1194端口到RPi,所以它可以从互联网访问。 一段时间后,我成功地使用Shorewall设置了OpenVPN,以授予VPN客户端访问选定的局域网服务器的权限。 但由于某种原因,VPN客户端根本无法访问Internet。 这是我的Shorewall设置: 我在区域 , 接口和主机文件中设置了三个区域。 区 #ZONE TYPE fw firewall net ipv4 loc:net ipv4 vpn ipv4 接口 #ZONE INTERFACE OPTIONS net eth0 dhcp,tcpflags,nosmurfs,routefilter,logmartians,sourceroute=0 vpn tun0 主机 #ZONE HOSTS loc eth0:192.168.200.0/24 (LAN subnet) OpenVPN服务器的隧道文件中有一个条目: 隧道 #TYPE ZONE GATEWAY openvpnserver net 0.0.0.0/0 从VPN到eth0的数据包被伪装,因为LAN客户端的默认网关是路由器,而不是RPi。 伪装 #INTERFACE SOURCE ADDRESS eth0 10.8.0.0/24 (VPN subnet) 192.168.200.54 (local […]

如何configurationOpenVPN服务器为新客户端添加路由

我有一个连接到服务器的OpenVPN客户端(mikrotik路由器)背后的局域网,并允许连接到服务器的每个其他客户端访问局域网内的机器。 局域网有自己的子网,除了连接到这台服务器的其他客户端。 我无法configuration此客户端强制服务器添加路由,这将正确路由此子网的stream量。 目前我必须手动去服务器并运行: route del -net <client's subnet> netmask 255.255.255.0 gw <old client's ip> route add -net <client's subnet> netmask 255.255.255.0 gw <new client's ip> 有无论如何,我可以改变服务器的设置,使其自动执行? 客户的ips是dynamic的,我宁愿这样离开它。 我已经尝试添加:mikrotik路由器上的打开的VPN客户端设置是相当有限的,所以我没有太多的客户端可以做,但我希望有一些东西我可以做在服务器端设置客户端连接路由+把这条路线推送到其他客户端连接。 我实际上已经尝试添加 push “route <client's subnet> 255.255.255.0” 在服务器上,但我仍然需要在其他客户端上手动设置路由。 然而,对我来说最重要的是在客户端连接时设置OpenVPN服务器[system]路由。

如何获取与默认网关关联的本地IP地址

在服务器上可能有多个networking接口,例如lo,eth0,eth1 从路由表中,我知道eth0连接到默认网关。 默认网关的地址,例如,是192.168.1.1。 eth0的地址是192.168.1.100。 我怎样才能得到地址“192.168.1.100”? 任何方法都可以:Python,Shell,UNIX C API … 目前我只能想到一种方法: 执行命令“route”并得到最后一行(默认192.168.1.1 0.0.0.0 …) 执行命令“ifconfig”并获取地址列表(127.0.0.1,192.168.1.100,…) find与默认网关(192.168.1.1)在同一子网中的地址 那我们得到地址192.168.1.100 有更好的解决scheme吗? PS:有人build议我们可以在udp socket上调用connect(),然后调用getsockname()来得到本地地址。 但是,它只适用于部分服务器。 @EEAA 所以这是我的脚本: route -n | awk '$1 == "0.0.0.0" { print $2 }' > gateway.tmp ip -4 addr show | grep inet | awk '{ print $2 }' > addrs.tmp 第一行打印默认网关: 10.1.40.1 第二行打印接口地址列表(以cidr表示法): 127.0.0.1/8 10.1.46.122/21 […]

连接两个客户openvpn

我有两个客户端通过vpn连接到vpn服务器,另一个没有vpn。 我可以从我的服务器ping两个客户端,但我不能直接使用一个客户端到另一个。 我正在为所有这些客户端和服务器添加路由表。 请注意10.10.0.2和10.10.0.1是vpn私有ip。 所有这三个路由表是: 内核IP路由表为10.30.0.190 VPN客户端 目标网关Genmask标志度量参考使用Iface 0.0.0.0 10.30.0.1 0.0.0.0 UG 0 0 0 eth0 10.10.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0 10.20.0.0 10.10.0.1 255.255.0.0 UG 0 0 0 tun0 10.30.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 10.20.0.180专用子网连接到vpn的路由表 目标网关Genmask标志度量参考使用Iface 0.0.0.0 10.20.0.1 0.0.0.0 UG 0 0 0 eth0 10.20.0.0 0.0.0.0 255.255.255.0 U 0 […]

OpenVPN客户端无法连接到通过另一个OpenVPN B路由的地址

好吧,我有一个OpenVPN服务器A,它承载范围10.8.0.0/24和一个OpenVPN服务器B,主机10.7.0.0/24。 服务器A也是服务器B的客户端。 这是两台服务器的tun适配器的configuration。 OpenVPN服务器 inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0 inet 10.7.0.6 peer 10.7.0.5/32 scope global tun1 OpenVPN服务器B inet 10.7.0.1 peer 10.7.0.2/32 scope global tun0 OpenVPN A的客户端通过服务器A获取所有的stream量,并通过其WAN接口输出。 但是,一个IP范围192.168.0.0/24只能通过服务器B的VPN到达。我已经build立了一条通过所有192.168.0.0/24通过连接服务器A到服务器B的tun接口的路由。 ip route add 192.168.0.0/24 dev tun1 我可以在服务器A上ping 192.168.0.0/24, 但是当我在服务器A的OpenVPN客户端上时,我无法ping或达不到该范围。我可以ping通tun地址10.7.0.6的IP,但不能ping 192.168.0.0/ 24。 谁能解释一下为什么会发生这种情况?

openvpn连接不转发所有stream量

我试图连接客户端到一个VPNnetworking没有openvpn转发所有的stream量到networking。 问题的关键是我想能够连接和沟通所有其他连接的VPN机器和他们的服务,但我希望我所有的常规stream量(HTTP等)离开,并通过我的默认路由/networking进入,就像它通常会没有连接到VPN。 这里是我的configuration和路线,如果他们帮助任何(所有与tun0相关的路由都被openvpn添加): user@machine:~# ip route 0.0.0.0/1 via 10.8.0.9 dev tun0 default via 192.168.0.1 dev wlan0 proto static 10.8.0.1 via 10.8.0.9 dev tun0 10.8.0.9 dev tun0 proto kernel scope link src 10.8.0.10 xx.xx.xx.xx via 192.168.0.1 dev wlan0 128.0.0.0/1 via 10.8.0.9 dev tun0 192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.187 192.168.80.0/24 dev wlan0-1 proto […]

如何为VPN端点本身必须能够联系远程networking的IPSec VPNbuild立路由

我有一个IPSec VPN的问题相同的情况:stream量路由不正确 (但我似乎无法直接联系该用户,我也不能对这个问题发表评论 – 没有人回答过)。 我也有一台Windows 2008 R2服务器,IPSec VPN直接在服务器上结束。 服务器有一个单一的networking接口,它有一个公共IP地址(例如,我们称之为203.10.10.10)。 我希望远程专用networking(10.16.0.0/255.254.0.0)上的计算机能够连接到该服务器上的IPSec隧道末端的私有IP地址上的Windows服务器(而不是路由器在服务器前面)。 同样重要的是(这可能是困难之处),我需要服务器能够通过TCP连接到远程(10.16.0.0)networking上的设备(例如通过HTTP下载图像)。 以下是它的样子: 我为服务器select的私有IP为192.168.70.1/255.255.255.0,并且build立到远程专用networking的隧道的IPSecfilter用于源/目的地192.168.70.0/24和10.16.0.0/15。 如果我从Windows服务器ping远程networking上的一个地址,设置source参数,那么我可以build立隧道并且ping将工作(即ping -S 192.168.70.1 10.16.0.1 )。 但是,任何发送到10.16.xx地址的“正常”stream量(包括源地址强制为192.168.70.1的ping)都会通过默认路由愉快地发送到Internet,并且不会启动或进入隧道。 题 这样的设置甚至可能吗? 还是不可能让VPN端点自己发送数据在隧道上,从它的一个私人地址发出? (VPN端点是否必须位于通过隧道发送数据的设备的单独路由器上?) 如何设置Windows Server以确保与10.16.0.0networking的所有通信都将从其私有IP地址发出。 私人地址不一定是192.168.70.1 – 如果有必要可以select另一个子网(我这样说是因为我已经读过了,其他所有的东西都是相同的,Windows Vista将会使用最接近匹配的原始IP目的地 – 所以也许使用10.XXX IP作为服务器的私有地址会有帮助?) 我不能很容易地testing,因为这个VPN隧道的另一端不在我的控制之下 – 如果我select更改192.168.70.1地址,我需要另一端的networking工程师进行configuration更改。 额外的信息:我曾经试过甚么 我尝试了两种设置私有IP地址的方法(在Windows服务器上),试图使数据包正确路由并满足build立隧道的IPSec规则。 主界面上的私人地址 通过将192.168.70.1地址添加到主networking接口(除了公用IP)之外,似乎不可能定义到10.16.0.0的任何路由,这将导致窗口使用192.168.70.1作为源地址。 任何去往默认网关的stream量都将以公共IP为源。 如果在Windows上有一些我不知道的神奇的路线,我很乐意听到! 但是,命令: route add 10.16.0.0 mask 255.254.0.0 192.168.70.1 将导致添加路由如下(它在同一个接口上select公共IP作为源/链路上的网关)。 10.16.0.0 255.254.0.0 On-link 203.10.10.10 11 […]

内核3.10的IPv6邻居发现/路由失败

愚蠢的错误导致所有这一切,阅读更新5 我正在尝试使用IPv6设置Linux路由器(LXC,3.10.0-123.el7.x86_64)。 提供者是赫茨纳,我有2个子网,一个/ 56和一个/ 64。 他们已经build立了路由到我的LL地址,我的默认网关是fe80 :: 1。 我在sysctl.conf中启用了ipv6和ipv4转发: net.ipv4.ip_forward = 1 net.ipv6.conf.all.forwarding = 1 我configurationIPTables接受一切。 我知道ICMPv6是在IPv6中用于路由select的主要工具 – 所以不会被阻止;-)。 我还加了-A FORWARD -j ACCEPT 。 我已经将my / 56子网的第二个(:: 2)IPconfiguration到eth1,将/ 64的第二个(:: 2)configuration到eth0。 eth0是上行链路接口eth1是lan接口 所以现在到了主要的问题。 来自/ 56的ipv6地址的内部客户端不能ping通外部世界,但是数据包和响应正确地路由,直到我的路由器丢弃数据包而没有任何提示。 例如ping6 ipv6.google.com会导致超时 但在路由器的上行链路上,我得到: 20:43:13.350932 IP6 client-ipv6-ip > fra07s64-in-x00.1e100.net: ICMP6, echo request, seq 1, length 64 20:43:13.355143 IP6 fra07s64-in-x00.1e100.net > client-ipv6-ip: ICMP6, […]

使用VPN路由两个DC

我有两台远程服务器通过VPN连接本地局域网。 一些更多的细节,包括路由表在这里https://ghostbin.com/paste/6sv3w 192.168.1.1是router1,其中lan 192.168.1.0/24,VPN IP 10.10.10.1 192.168.200.1是router2,lan 192.168.200.0/24,VPN地址10.10.10.2 如何使192.168.1.0/24从192.168.200.0/24访问没有伪装的NAT? 如果我使用NAT并添加伪装,我将丢失源客户端IP,当我尝试从192.168.200.0/24发出请求时,所有东西都会收到10.10.10.2作为IP地址。 我的目标是通过VPN连接时保留客户端IP地址。 谢谢! 编辑: 添加ghostbin内容。 192.168.1.1 is a DMZ host that gets internet from 192.168.1.11 router1 – 192.168.1.0/24, vpn 10.10.10.1 routing table ————- Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.11 0.0.0.0 UG 3 0 0 eth0 10.10.10.0 10.10.10.2 255.255.255.0 UG 0 0 0 […]

不能在环回地址上访问服务器,只能在私有地址上访问

我在端口80上运行一个绑定到0.0.0.0的rails web应用服务器,如下所示: sudo rails s –port=80 –bind=0.0.0.0 我可以在我的私人地址http://192.168.0.13/访问它,通常我可以在回送地址http://127.0.0.1 / http://localhost 。 但是由于某些原因,回送地址并不指向这个专用地址。 我认为这个问题与我的机器上configuration的虚拟机有关,因为在安装虚拟机之后,这个问题就开始发生了。 stream浪的虚拟机设置(我没有configuration)运行第二个Web应用服务器,我可以在http://127.0.0.1访问。 但是,即使当我closures这个stream浪VM,我仍然无法访问上面提到的在回环地址这个rails web应用服务器。 什么是stream浪虚拟机做configuration到自己的回环? 如何configuration环回地址指向的私有地址? 这是我的ifconfig如果有帮助: lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 options=3<RXCSUM,TXCSUM> inet6 ::1 prefixlen 128 inet 127.0.0.1 netmask 0xff000000 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 nd6 options=1<PERFORMNUD> gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280 stf0: flags=0<> mtu 1280 en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether 4c:8d:79:d7:a9:e4 inet6 […]