前言:我很幸运有一个具有真实 IP 的 IP 子网,因此无需 NAT。我有一个从 1.2.3.0 到 1.2.3.128 的网络。
我有一台 Debian 服务器,其 eth0 接口为 1.2.4.9。现在我想使用 openVPN 桥接此接口,并为客户端提供地址,例如从地址 1.2.3.80 到 1.2.3.90。
我需要一些 br0 接口吗?
所有教程都会在某些时候介绍 NATing,但我不需要它。
答案1
这实际上是开放VPN文档,应该很容易做到。您需要根据自己的设置修改提供的脚本。由于您有 128 个 IP 地址,我认为您的网络掩码是 25 -从这里
从中我们可以获得有关你的系统的大量信息 - 我使用了这个IP地址计算器计算得出以下信息
Address: 1.2.4.9 00000001.00000010.00000100.0 0001001
Netmask: 255.255.255.128 = 25 11111111.11111111.11111111.1 0000000
Wildcard: 0.0.0.127 00000000.00000000.00000000.0 1111111
=>
Network: 1.2.4.0/25 00000001.00000010.00000100.0 0000000 (Class A)
Broadcast: 1.2.4.127 00000001.00000010.00000100.0 1111111
HostMin: 1.2.4.1 00000001.00000010.00000100.0 0000001
HostMax: 1.2.4.126 00000001.00000010.00000100.0 1111110
Hosts/Net: 126
将这些数字插入 openvpn 文档中给出的步骤即可帮助您开始。
您需要为服务器桥接器创建启动和关闭文件,以便使用桥接接口。您还需要桥接实用程序。虽然我已经包含了基本步骤,但请仔细阅读手册,以防我遗漏了任何内容 #!/bin/bash
#################################
# Set up Ethernet bridge on Linux
# Requires: bridge-utils
#################################
# Define Bridge Interface
br="br0"
# Define list of TAP interfaces to be bridged,
# for example tap="tap0 tap1 tap2".
tap="tap0"
# Define physical ethernet interface to be bridged
# with TAP interface(s) above.
eth="eth0"
eth_ip="1.2.4.9"
eth_netmask="255.255.255.128"
eth_broadcast="1.2.4.127"
for t in $tap; do
openvpn --mktun --dev $t
done
brctl addbr $br
brctl addif $br $eth
for t in $tap; do
brctl addif $br $t
done
for t in $tap; do
ifconfig $t 0.0.0.0 promisc up
done
ifconfig $eth 0.0.0.0 promisc up
ifconfig $br $eth_ip netmask $eth_netmask broadcast $eth_broadcast
并按照文档关闭文件 - 注意 eth_ip、eth_netmask 和 eth_broadcast 的变化
您需要修改您的 openvpn 配置文件以注释掉行读取dev tun
并添加新的行读取dev tap0
并替换行读取server
并将其替换为server-bridge 1.2.4.9 255.255.255.128 1.2.3.80 1.2.3.90
- 服务器的 IP 地址、根据该计算器的网络掩码以及您想要的 IP 地址范围的开始和结束。