桥接启动脚本

桥接启动脚本

我们正在尝试使用 openvpn 设置 roadwarrior vpn 设置。我们希望人们能够通过 openvpn 连接到我们的网络。我们希望他们能够看到并连接到我们网络中的机器。因此,正如我们所见,解决方案是桥接 vpn。

我对网络环境没有太多经验。我正在阅读 ubuntu(我们在其上构建了 openvpn 服务器)和 openvpn 手册。它们都有很多不足之处。

https://help.ubuntu.com/10.10/serverguide/C/openvpn.html

http://openvpn.net/howto.html

当我通过 bridge-start 脚本(openvpn 的一部分)安装桥接接口时,我的网络瘫痪了,只能在网络内部 ping。我设置了端口转发到我的 openvpn 服务器的端口 1194,该端口一直正常工作,直到我设置桥接接口。启用桥接后,我的机器与外部网络失去联系。我肯定我错过了什么事要做。

我把设置桥接之前和之后的输出放在了下面ifconfignetstat -rn下面是我的服务器配置文件和脚本。


#ifconfig 之前

eth1      Link encap:Ethernet  HWaddr 52:54:00:57:63:6e  
          inet addr:192.168.22.230  Bcast:192.168.22.255  Mask:255.255.255.0
          inet6 addr: fe80::5054:ff:fe57:636e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4857 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3199 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:518272 (518.2 KB)  TX bytes:430178 (430.1 KB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:21 errors:0 dropped:0 overruns:0 frame:0
          TX packets:21 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1804 (1.8 KB)  TX bytes:1804 (1.8 KB)


#netstat 之前

192.168.22.0  /  0.0.0.0     /    255.255.255.0 /  U         0 0    0  /  eth1

0.0.0.0       /  192.168.22.1 /   0.0.0.0       /  UG        0 0    0  /  eth1


#ifconfig 之后

br0       Link encap:Ethernet  HWaddr 52:54:00:57:63:6e  
          inet addr:192.168.22.230  Bcast:192.168.22.255  Mask:255.255.255.0
          inet6 addr: fe80::5054:ff:fe57:636e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:256 errors:0 dropped:0 overruns:0 frame:0
          TX packets:32 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:43790 (43.7 KB)  TX bytes:2328 (2.3 KB)

eth1      Link encap:Ethernet  HWaddr 52:54:00:57:63:6e  
          inet6 addr: fe80::5054:ff:fe57:636e/64 Scope:Link
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:5691 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3508 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:622570 (622.5 KB)  TX bytes:470324 (470.3 KB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:36 errors:0 dropped:0 overruns:0 frame:0
          TX packets:36 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:3980 (3.9 KB)  TX bytes:3980 (3.9 KB)

tap0      Link encap:Ethernet  HWaddr 7e:3a:03:48:ad:29  
          inet6 addr: fe80::7c3a:3ff:fe48:ad29/64 Scope:Link
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:243 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)


#netstat 之后

192.168.22.0  /  0.0.0.0  /  255.255.255.0  /  U    0 0     0  /  br0

(我知道这个表很糟糕。但我无法克服这个表,或者通过添加路线使其发挥作用。)


桥接启动脚本

br="br0"
tap="tap0"

eth="eth1"
eth_ip="192.168.22.230"
eth_netmask="255.255.255.0"
eth_broadcast="192.168.22.255"

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


答案1

问题是,当启动脚本关闭 eth0 时,它会破坏您的默认网关路由。当脚本启动接口时,您没有使用 DHCP,而是手动设置 IP 和子网。通常,您会从 DHCP 获取路由,而无需网桥。您可以注释掉脚本的某些部分,以便 br0 从 DHCP 获取 eth0 的 IP(从而获取路由),或者您可以在脚本末尾添加一行以手动添加路由:

route add default gw 192.168.22.1

答案2

为什么不使用 /etc/network/interfaces 来存档这个?

例子:

   iface br0 inet static
    bridge_ports eth0 tap0
    address 192.168.1.2
    broadcast 192.168.1.255
    netmask 255.255.255.0
    gateway 192.168.1.1
    pre-up openvpn --mktun --dev tap0

相关内容