首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果服务器在子网中耗尽了所有地址,那么分配给P接口的interface地址是否可以用于客户端的interface地址?

如果服务器在子网中耗尽了所有地址,那么分配给P接口的interface地址是否可以用于客户端的interface地址?
EN

Server Fault用户
提问于 2017-08-09 17:21:39
回答 1查看 2.1K关注 0票数 0

我有一个OpenVPN服务器,其Inet地址为10.8.0.1,为子网10.8.0.0/24提供服务。我有两个客户机连接到此服务器,状态日志(/etc/openvpn/openvpn-status.log)如下所示:

代码语言:javascript
复制
OpenVPN CLIENT LIST
Updated,Wed Aug  9 15:56:38 2017
Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since
client1,10.0.0.177:54810,4648,4853,Wed Aug  9 15:56:28 2017
client2,10.0.0.224:53999,4731,4935,Wed Aug  9 15:56:16 2017
ROUTING TABLE
Virtual Address,Common Name,Real Address,Last Ref
10.8.0.6,client1,10.0.0.177:54810,Wed Aug  9 15:56:28 2017
10.8.0.10,client2,10.0.0.224:53999,Wed Aug  9 15:56:16 2017
GLOBAL STATS
Max bcast/mcast queue length,0
END

现在,在客户机2上,当我运行(ifconfig)时,我得到了tun接口的以下内容:

代码语言:javascript
复制
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.0.10  P-t-P:10.8.0.9  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)

P内地址为10.8.0.9.该接口在子网中的位置?是在客户端还是服务器中?来自客户端的这个接口上的Traceroute提供了以下内容:

代码语言:javascript
复制
traceroute to 10.8.0.9 (10.8.0.9), 64 hops max
  1   10.8.0.1  0.348ms  0.210ms  0.163ms
  2   *  *  *
  3   *  *  *
  4   *  *  *
  5   * ^C

现在,如果这就像一个虚拟的inet,那么如果一个OpenVPN服务器的地址用完了,如果它达到254个VPN客户端的限制,那么它是否可以用于客户机呢?

提前感谢!

EN

回答 1

Server Fault用户

发布于 2017-08-09 17:28:50

您的OpenVPN服务器似乎是使用拓扑net30设置的。为了与运行在旧版本Windows上的真正老客户端兼容,需要此拓扑结构。

这个拓扑基本上是将分配给VPN的那个/24子网分解成64个带有30位掩码的子网。这意味着你最多可以有63个相连的客户。

在net30中,00 (二进制位)和11地址未使用,01地址分配给服务器上的PTP连接,10地址在客户机上使用。

因此,考虑到10.8.0.6,client1,...客户端。子网是10.8.0.4。广播地址是10.8.0.7。属于OpenVPN服务器的地址是10.8.0.5 (虽然您不会实际看到它在服务器上分配),而分配给客户端的地址是10.8.0.6

代码语言:javascript
复制
$ ipcalc 10.8.0.4/30

Address:   10.8.0.4             00001010.00001000.00000000.000001 00
Netmask:   255.255.255.252 = 30 11111111.11111111.11111111.111111 00
Wildcard:  0.0.0.3              00000000.00000000.00000000.000000 11
=>
Network:   10.8.0.4/30          00001010.00001000.00000000.000001 00
HostMin:   10.8.0.5             00001010.00001000.00000000.000001 01
HostMax:   10.8.0.6             00001010.00001000.00000000.000001 10
Broadcast: 10.8.0.7             00001010.00001000.00000000.000001 11

现在,您最好将您的服务器切换到使用topology subnet。此选项告诉OpenVPN 10.8.0.0/24为一个子网,而不是将其分解为一组较小的子网。每个客户端将只使用子网中可用的253个地址,而不是net30中的基本4个地址。

在运行-dev tun模式时,拓扑模式配置虚拟寻址拓扑。此指令在-dev抽头模式中没有任何意义,它总是使用子网拓扑。如果在服务器上设置此指令,-服务器和-服务器桥指令也将自动将所选拓扑设置推送到客户端。此指令也可以手动推送到客户端。与--dev指令一样,该指令必须始终在客户端和服务器之间兼容。模式可以是: net30 --通过为每个客户端分配一个/30子网来使用点对点拓扑.当部分或全部连接客户端可能是Windows系统时,这是为了允许点对点语义。这是OpenVPN 2.0的默认设置。子网--通过配置带有本地IP地址和子网掩码的tun接口来使用子网而不是点对点拓扑,类似于-dev抽头和以太网桥接模式中使用的拓扑。此模式为每个连接客户端分配一个IP地址,并在Windows上工作。只有当服务器和客户端是OpenVPN 2.1或更高版本,或者OpenVPN 2.0.x是手动修补-拓扑指令代码时才可用。在Windows上使用时,需要版本8.2或更高版本的TAP 32驱动程序.在*nix上使用时,需要tun驱动程序支持ifconfig(8)命令,该命令设置子网而不是远程端点IP地址。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/867772

复制
相关文章

相似问题

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