实路出真知 FreeBSD8下Bridge配置open科学

【.com 独家特稿】公司的办公网络是192.168.4.0/24,均只用单网卡eth0,通过Juniper防火墙映射公网IP上网,即内网内所有的机器的网关均是防火墙的固定IP-192.168.4.3,目前想通过外网拨号(科学服务器IP为192.168.4.46)进公司内部局域网进行办公,另外还要求能够连通到公司内部的192.168.10.0、192.168.20.0、192.168.21.0网段的服务器,要求比之前复杂;而同事们的拨号环境又一样,有的是小区环境,有的是ADSL,还有的是电信3G无线上网;我将大家的需求归纳了下,即:

推荐专题:企业内网开发环境部署与管理全攻略(FreeBSD+PHP)

一、要求能够在ADSL拨号或小区环境下顺利的科学到公司的open科学服务器中;

二、公司的办公环境是192.168.4.0,拨上来要求能够连到192.168.21.0,192.168.20.0,192.168.10.0的服务器网段;

三、公司的网络环境已定型,不可能在路由器或防火墙上作更改;

四、考虑到路由穿透的问题,即最低限度要做到局对局。

基于以上考虑,我们准备采取open科学的网桥模式。

公司的办公拓补很简单,如下图:

以下资料参考chinaunix网友温占考的翻译文章,特此注明。

◆使用路由还是桥接的科学?

路由和桥接的主要不同参看FAQ,桥接的详细信息参看Ethernet Bridging。总的来说,路由对大多数人来说是一种更好的方式,因为它比桥接效率更高也更容易设置(仅Open科学配置文件本身)。路由还可以给每个客户端设置不同的访问权限。推荐使用路由,除非你需要使用依赖于桥接的特性,比如:科学需要处理非IP协议,例如IPX协议。在科学上运行的程序依赖于网络广播(例如局域网游戏)。不建立Samba或WINS服务器,而允许在科学上浏览Windows共享文件。

◆TUN设备和TAP设备的不同?

TAP设备是一块虚拟的以太网卡,TUN设备是一个虚拟的点到点IP链接。

◆什么是桥接?

桥接是在一个子网上创建一个虚拟的、广域的以太网LAN一种技术。桥接的实践信息,参看Ethernet Bridging Mini-HOWTO,形象的解释就是它就是连通不同局域网的桥梁,当外网用户科学过来时,如果能够连通open科学机器,那么open科学能够连通的机器,外网用户都应该能够连通。#p#

◆桥接和路由的不同?

桥接和路由是通过科学连接系统的两种方法。

桥接的优点:广播可以穿越科学–允许依赖局域网广播的软件运行,比如Windows的NetBIOS文件共享和网上邻居。无需配置路由可以和以太网上的任何协议一起工作,包括IPv4, IPv6, Netware IPX, AppleTalk等等。

Relatively easy-to-configure solution for road warriors.

桥接的缺点:比路由效率低,扩展性不太好。

路由的优点:高效和可扩展、更好的MTU调节

路由的缺点:要使跨越科学的网络浏览工作,客户端必须使用一个WINS服务器(比如samba)。必须设置连接每一个子网的路由。依赖于广播的软件不能看到在科学另一边的机器。仅支持IPv4, 如果连接两边的tun驱动明确支持IPv6,则也支持IPv6.

◆桥接和路由在配置上有什么不同?

当客户端通过桥接方式连接远端网络时,它被分配一个远端物理以太子网的IP地址,从而能够和远端子网其它机器交互就象它是连接在本地一样。桥接需要特殊的OS-相关的工具用来将物理以太网卡和虚拟的TAP设备桥接起来。在Linux下,brtcl就是这样一个工具。

对于Windowx XP或更高版本,从”控制面板->网络连接”中选中TAP-Win32网卡和以太网卡,点击鼠标右键,选择轿接。而客户端通过路由方式连接时,它使用自己的独立子网, 并且在客户机和远端网关上都设置了路由,从而可以使数据包无缝地穿越科学。客户端可以不只是一台机子,它可以是几台机子组成的一个子网。

桥接和路由很相似,主要的不同是路由的科学不传送IP广播包,但是桥接的科学传送IP广播包。

要使用桥接方式,连接的两端都必须使用–dev tap,如果使用路由方式,可以使用–dev tap也可以使用–dev tun,但是连接的两端必须一致. 对于路由方式而言,–dev tun的效率要更高一些。

Ethernet Bridging 

桥接概览

以太网桥接将一个以太网接口和一个或多个虚拟TAP接口结合(combine)并将它们桥接为一个桥接接口。以太网桥接代表一个物理以太网交换机 (switch)的软件模拟,以太网桥可以 认为是在一台机器上共享一个IP子网连接多个以太网卡(物理的或虚拟的)的软件交换机,

通过将在不同地方的一个物理以太网卡和一个Open科学的TAP接口桥接,可以将两个以太网络在逻辑上合并为好象是一个以太子网。

一、这里交待下open科学的操作系统及网络分配等。

open科学服务器采用64bit的FreeBSD8,分配的IP为192.168.4.46,通过防火墙NAT上网,网关为192.168.4.3,单网卡,无公网IP;Freebsd8下配置网卡跟linux一样,用脚本控制较简单,脚本如下:

[root@open科学 ~]# cat /root/addbr0.sh
#!/bin/sh
kldload if_tap
ifconfig bridge0 create
ifconfig bridge0 addm re0
ifconfig bridge0 192.168.4.241  netmask 255.255.255.0  broadcast 192.168.4.255
/usr/local/sbin/open科学 --config /usr/local/etc/server.conf --daemon open科学
ifconfig bridge0 addm tap0

ifconfig bridge0 deletem tap0
/usr/local/sbin/open科学 --config /usr/local/etc/server.conf --daemon open科学
ifconfig bridge0 addm tap0

#p#

这里说明一下,跟bridge0分配的也是192.168.4.0网段的机器,这里我看网上大部分的文章都是用IP,即192.168.4.46,我建议另一个IP配置,这个IP不能跟局域网的IP发生冲突,脚本成功运行后,可用命令ifconfig 检查下,成功的配置应该如下:

二、安装过程我简略带过,不会的朋友请参考googel的相关搜索结果或我的上一篇文章《实路出真知 配置open科学时应该注意的事项》,Server端的配置如下,这是重头戏,相关语法我会详细介绍。

[root@open科学 ~]# cat /usr/local/etc/server.conf | grep -v "^#" | grep -v "^;"  | sed '/^$/d'
port 1194
proto udp
dev tap0
ca   /usr/local/src/open科学-2.0.9/easy-rsa/2.0/keys/ca.crt
cert /usr/local/src/open科学-2.0.9/easy-rsa/2.0/keys/server.crt
key  /usr/local/src/open科学-2.0.9/easy-rsa/2.0/keys/server.key  # This file should be kept secret
dh /usr/local/src/open科学-2.0.9/easy-rsa/2.0/keys/dh1024.pem
ifconfig 192.168.4.241  255.255.255.0
server-bridge 192.168.4.241 255.255.255.0 192.168.4.244 192.168.4.246
push "redirect-gateway"
client-to-client
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status open科学-status.log
log-append  open科学.log
verb 3

以上脚本运行时已成功启动了open科学,并分配了网桥bridge0地址–192.168.4.241,可用命令lsof  -i:1194检验下。#p#

 

这里我将server.conf详细参数说明下,这里也是用bridge配置的重点

;locala.b.c.d ##申明本机使用的IP地址,也可以不说明
port1194 ##申明使用的端口,默认1194
;prototcp ##申明使用的协议,默认使用UDP,如果使用HTTP proxy,必须使用TCP协议
proto udp
dev tap ##申明使用的设备可选tap和tun,tap是二层设备,支持链路层协议。#tun是ip层的点对点协议,限制稍微多一些,本人习惯使用TAP设备
;devtun
;dev-nodeMyTap #windows下需要像这样指定设备名
##Open科学使用的ROOT CA,使用build-ca生成的,用于验证客户是证书是否合法
ca /user/local/src/open科学-2.0.9/easy-rsa/keys/ca.crt
#Server使用的证书文件
cert /usr/local/src/open科学-2.0.9/easy-rsa/keys/server.crt
#Server使用的证书对应的key,注意文件的权限,防止被盗
key /usr/local/src/open科学-2.0.9/easy-rsa/keys/server.key
#This file should be kept secret
#CRL文件的申明,被吊销的证书链,这些证书将无法登录
crl-verify 科学crl.pem
#上面提到的生成的Diffie-Hellman文件
dh /user/local/src/open科学-2.0.9/easy-rsa/keys/dh1024.pem
#防止open科学重新启动后"忘记"Client曾经使用过的IP地址
ifconfig-pool-persistipp.txt
#Bridge状态下类似DHCPD的配置,为客户分配地址,由于这里工作在桥接模式
server-bridge 192.168.4.241 255.255.255.0 192.168.4.244 192.168.4.246
#open科学中有个参数是push,它表示通过科学 Server往Client push路由,
client通过pull指令获得Server push的所有选项并应用(这一点很重要,这样其他服务器添加一下路由就可以登陆了,
否则无效,这个最好和你的内网断一至,否则也不生效),但在网桥模式下这个就不需要配置了,这个主要用于其路由模式。


#如果可以让科学 Client之间相互访问直接通过open科学程序转发
client-to-client
#NAT后面使用科学,如果科学长时间不通信,NAT Session可能会失效,
#导致科学连接丢失,为防止之类事情的发生,keepalive提供一个类似于ping的机制,
#下面表示每10秒通过科学的Control通道ping对方,如果连续120秒无法ping通,
#认为连接丢失,并重新启动科学,重新连接
#(对于mode server模式下的open科学不会重新连接)。
keepalive10 120
#对数据进行压缩,注意Server和Client一致
comp-lzo
#定义最大连接数
max-clients100
#定义运行open科学的用户
usernobody
groupnobody
#通过keepalive检测超时后,重新启动科学,不重新读取keys,保留第一次使用的keys
persist-key
#通过keepalive检测超时后,重新启动科学,一直保持tun或者tap设备是linkup的,
#否则网络连接会先linkdown然后linkup
persist-tun
#定期把open科学的一些状态信息写到文件中,以便自己写程序计费或者进行其他操作
statusopen科学-status.log
#记录日志,每次重新启动open科学后删除原有的log信息
log
open科学.log
#相当于debug level,具体查看manual
verb3
客户端的配置文件较简单, 我们这里就不能详细阐述了,如下:
[root@open科学]# cat client.txt | grep -v "^;" | grep -v "^#" | sed '/^$/d'
client
dev tap0
proto udp
remote 192.168.4.46 1194
#内网通过防火墙NAT作的DMZ映射出去
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert zacharyz.crt
key zacharyz.key
comp-lzo
verb 3

测试结果:

我们测试时分配的是联通的公网IP,测试时发现只要一拨号,无论是ADSL还是小区环境,结果只要能连通192.168.4.46的机器,它所能连通的网段均都能连通,由于 我只需要ssh环境即可完成日常工作,但其它同事需要远程桌面环境,所以准备将其更改完电信的公网IP;另整个环境部署工作完成时,得到了我们部门经理Manager Z的帮助,这里 表示感谢。这篇文章主要介绍的是桥接模式下的open科学,如果只需要路由模式,请参考我在51cto的另一篇open科学相关文章,请注意二者的区别;整个open科学在64bit的Freebsd8下完成。

实际投入运用结果:

将open科学映射的外网改成电信IP后,发现丢包现象完全没有了;通过ADSL拨号上来,192.168.21.0/192.168.4.0/192.168.10.0/10.0.0.0这些网段的服务机和客户机全通了;比路由模式确实简单方便多了,如果有open科学网桥需求的同志可参考这篇线上环境文章。

整个环境搭配总结:

一、同事们的上网环境不一样,有的是长城带宽,还有的是广电网,我是天翼3G,还有的是ADSL共享上网,使用效果大家还是非常满意的,open科学的穿透非常强,什么的硬件防火墙或路由器都穿透了;

二、电信服务器对应电信的拨号客户端效果不错,如果是联通对电信,那就是个杯具了;

三、尽量让环境搭得让大家舒服些,我在服务器添加了”push dns”选项,就是可以让大家一边上内网,一边聊QQ,工作和娱乐两不误;

四、以后有环境的话我会用open科学作机房的网关,用于多机房的科学连接。

【.com独家特稿,非经授权谢绝转载!合作媒体转载请注明原文出处及出处!】

 

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/133628.html<

(0)
运维的头像运维
上一篇2025-02-28 18:53
下一篇 2025-02-28 18:54

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注