linux网桥的配置方法.docx
《linux网桥的配置方法.docx》由会员分享,可在线阅读,更多相关《linux网桥的配置方法.docx(62页珍藏版)》请在冰豆网上搜索。
![linux网桥的配置方法.docx](https://file1.bdocx.com/fileroot1/2023-5/21/ba87d659-2449-4f9f-b4cc-18e9fc13d6b3/ba87d659-2449-4f9f-b4cc-18e9fc13d6b31.gif)
linux网桥的配置方法
大家好,请问linux怎么搭建网桥,麻烦给个操作步骤,多谢了
我有台linux主机,上面有2块网卡,两块网卡一个是192,一个是10(这两个地址也许要搭建网桥的话,就没什么用处了,这里只是说明)
我想把两块网卡搭建一个网桥,请问应该如何做。
搭建完网桥后,br0的地址是172
ssffzz1发表于2010-09-2612:
23
brctl
bjtzq发表于2010-09-2816:
50
两种网桥的配置:
1.RHEL5下配置透明网桥
硬件:
双网卡。
如网卡不支持端口自动翻转MDIX,需要交叉网线。
从安装盘安装bridge-utils-1.1-2.i386.rpm,只需安装这一个。
运行如下命令:
#ifconfigeth00.0.0.0
#ifconfigeth10.0.0.0
#brctladdbrbri0
#brctladdifbri0eth0
#brctladdifbri0eth1
#echo1>/proc/sys/net/ipv4/ip_forward
最后一句也可以:
vi/etc/sysctl.conf
net.ipv4.ip_forward=1
#sysctl–p
启动网桥:
#ifconfigbri0up
至此,网桥实现连通。
给网桥指定ip地址:
ifconfigbri010.10.8.85broadcast10.10.255.255
或者:
dhclientbri0
以上命令写入脚本,开机时运行。
2.RHEL5下配置ARP代理网桥
1.双网卡
2.停用网卡。
两块网卡设成一样的IP配置(地址/掩码/网关等)
3.运行下面的脚本。
配置脚本:
#!
/bin/bash
modprobeip_conntrack
modprobeip_tables
echo1>/proc/sys/net/ipv4/conf/eth0/proxy_arp
echo1>/proc/sys/net/ipv4/conf/eth1/proxy_arp
iproutedel10.10.8.0/24deveth0
iproutedel10.10.8.0/24deveth1
iprouteadd10.10.8.252deveth0
iprouteadd10.10.8.0/24deveth1
echo1>/proc/sys/net/ipv4/ip_forward
4.启动网卡。
至此,网桥连通。
ARP代理网桥是伪网桥,即它不是一个二层设备,而是arp代理加上路由选择实现网桥功能。
它在功能上也不是真正的网桥,它不能转发非IP数据包。
但是ARP代理网桥和iptables工作的很好,所以透明防火墙用它最好。
桥接网桥(方法1)是真正的网桥,但是在这种网桥下,iptables不能识别PASVFTP流量。
ARP代理网桥则没有这个问题。
linux协议栈之网桥实现(从网桥配置说起
(二))
------------------------------------------
本文系本站原创,欢迎转载!
转载请注明出处:
------------------------------------------
关于网桥:
网桥是一个二层设备,在深入之前可以把它当成一个二层的交换机。
它在二层协议上转发数据。
网桥为了转发数据,维持了一个端口与MAC的对应表,通常通为CAM表。
根据这张表可以把数据送往相应的端口进行发送.
网桥的转发过程为:
1:
接收到一个包。
判断自己的CAM表中是否含包它此包的源地址.如果没有,则把源地址与端口更新至于CAM表.
2:
判断包是否是送给本机,如果是,则送往本机上层协议栈处理。
如果不是,则查寻CAM表。
找到相应的出口。
3:
如果找到出口,则将此包送至出口。
如果不存在,将会在各端口发送。
4:
如果CAM表中对应表项在规定时间之内没有得到更新,则删除此项。
网桥的配置:
Brctl是一个比较好的配置网桥的工具。
它的源代码和配置方法极其简单。
我们将从网桥的配置流程说起,看linux内核是怎样一步步管理的。
首先,创建一个网桥:
brctladdbrbr0 (建立一个br0的网桥)
然后,将接口添加进网桥:
brctladdif br0eth0 (将eth0和eth1添加进网桥br0)
brctladdif broeth1
OK,网桥现在就配置好了。
这台linux的主机可以当作交换机使用了,从eth0的包都可以转发到eth1。
现在,我们看下代码中如何进行处理
首先brctladdbr。
查看brctl的代码发现它调用了:
ioctl(br_socket_fd,SIOCBRADDBR,brname);
然后brctladdif 在brctl的代码中调用了:
ioctl(br_socket_fd,SIOCBRADDIF,&ifr);
呵呵。
Brctl的代码很简单吧,只是调用了用户空间的配置工具ioctl.
Linux网桥分析:
好了,现在就可以进入内核分析网桥模式了:
staticint__initbr_init(void) (net/brige/br.c)
{
//分配slab缓冲区
br_fdb_init();
//网桥的netfiter处理,将在以后的章节中分析
#ifdefCONFIG_BRIDGE_NETFILTER
if(br_netfilter_init())
return1;
#endif
//用户空间ioctl调用的函数
brioctl_set(br_ioctl_deviceless_stub);
//接收到数据包的处理,也就是我们在上面netif_receive_skb函数中看到的br_handle_frame_hook
br_handle_frame_hook=br_handle_frame;
#ifdefined(CONFIG_ATM_LANE)||defined(CONFIG_ATM_LANE_MODULE)
br_fdb_get_hook=br_fdb_get;
br_fdb_put_hook=br_fdb_put;
#endif
//在netdev_chain通知链表上注册。
关于通知链表,在前面已经介绍过,这里不再讨论了
register_netdevice_notifier(&br_device_notifier);
return0;
}
==================================================================================
from:
http:
//www.linux-
使用Linux创建网桥式防火墙
来源:
Linux-作者:
Webmaster时间:
2007-05-05点击:
[收藏][投稿]
作者:
HenryStilmack
原文出处:
翻译:
ideal
联合天文学中心在夏威夷岛的ManuaKea的14,000英尺高的山顶上拥有两个天文望远镜,还在Hilo市有自己的办公室及其他设施,该组织是是通过夏威夷大学连接到Internet上的,夏威夷大学在自己的B类IP地址范围内给天文中心分配了三个子网。
以前天文中心的网络安全性是由出口路由器的ACL(访问控制列表)连同Soloris或Linux系统的主机访问控制(tcpwrappers)来实现的。
最近天文中心的一个主要英国资助基金会在一次审核后强烈推荐安装防火墙来增强网络的安全性。
在对几种商业和免费的防火墙产品进行调研以后,发现它们都需要对内部网络的三个不同子网地址都重新进行分配,分配为192.168的内部地址。
内部网络的在三个子网上共有超过200个节点,某些嵌入式微处理器系统甚至需要重新烧制EEPROM以实现IP变换,这是一个非常麻烦和庞杂的任务。
因此就开始寻找透明防火墙解决方案,实现即能保持原有的地址分配,又能实现对内部网络的防护。
Linux2.2以上版本都支持以太网桥接方式。
一个网桥的一个接口接收到数据报以后,通过检查目的MAC地址以后被转发到另外一个接口上,而不去检查源或目的IP地址。
一个名为AC2I的法国公司发布了一个内核补丁实现在网桥化的接口上使用ipchains进行数据报过滤。
这种解决方案能实现透明的防火墙,同时保证对内部网络提供上层的保护和访问控制。
下面我们就讨论如何架设一个网桥式防火墙。
1.硬件配置
为了实现高效的防火墙和网络检测,系统CPU必须足够的强大和快速。
该系统架设在一台拥有256M内存和500MHz的赛扬CPU系统之上。
测试显示桥能满足一个10M以太网的速度要求,而不会出现丢包现象。
系统需要三块网卡,其中两块网卡支持网桥的实现,另外一块用来实现对防火墙的管理。
磁盘容量并不是很重要,但是所有的log信息应该被保存下来。
若希望维护某些本地logging(用于某些配置和检测工具),则需要确保拥有足够的免费空间-防火墙和入侵检测记录往往非常庞大。
2.安装Linux
下面的讨论都基于Linux2.2.16(redhat7.0)版本内核,若使用2.4内核,iptables将会替代ipchains实现内核防火墙。
首先进行标准的Linux安装,但是基本上不要选择任何应用软件包,甚至包括xinet/inetd,因为在该系统上不需要运行任何服务。
不要安装编译/开发工具,因为若系统被攻破则入侵者就不那么容易编译任何程序。
但是需要安装Perl(某些报告工具是需要的)和OpenSSH(用于远程管理)。
确保安装ipchains软件包-这对于就防火墙设置是必须的。
一个web浏览器也许会很有用处。
若你仅仅接收来自内部网络的时间更新那么安装NTP则不会有多大坏处。
你可以选择安装某些X11应用,tcpwrapper及某些网络监控包(whois,finger,tcpdump,traceroute,nc等等)。
创建一个非root账号,使用该账号登录系统。
安装时,仅仅配置一个主以太接口-该接口将是被保护网络的一个节点-为其配置一个固定的网络地址,此时应该将其连接到一个空的HUB上,在进行安全设置以后再将其连接到网络中。
当系统安装完毕并重新启动时,在lilo引导系统时键入linuxsingle以单用户模式引导进入系统,编辑/etc/hosts.allow来只允许管理机通过SSH来连接进入系统,然后重新启动按照正常模式引导进入系统。
然后再将主以太接口连接到内部网络中。
3.创建支持网桥方式的内核
按照基本的内核编译步骤进行,只不过需要关闭大多数的选项开关,而仅仅打开一些必须的内核编译开关。
进入到/usr/src目录下,拷贝内核源代码到一个新创建的linux-fw目录下:
#cd/usr/src;mkdirlinux-fw;cp-rlinux-2.2.16./linux-fw
#rmlinux;ln-s./linux-fwlinux
对linux源代码打linux_brfw2补丁,该补丁为ipchains添加了一个名为bridgein的缺省规则链。
该链将被用来存放网桥式防火墙规则,但是该规则链中的规则只能使用ACCEPT或DENY目标,使用REJECT及MASQ是没有意义的。
可以从
#patch-p0
进入/usr/src/linux目录,配置内核(这里假设你已经有编译内核的经验),和网桥式防火墙相关的配置选项开关为:
CONFIG_MODVERSIONS=N
CONFIG_FIREWALL=Y
CONFIG_FILTER=Y
CONFIG_IP_FIREWALL=Y
CONFIG_IP_FIREWALL_NETLINK=Y
CONFIG_IP_ROUTE_FWMARK=Y
CONFIG_BRIDGE=Y
然后编译内核:
#makedep;makeclean;makebzImage;makeinstall
使用新生成的内核启动系统。
4.设置网桥
登录进入防火墙系统,假设是使用eth0作为管理接口,ifconfig-a将显示系统接口情况:
brg0 Linkencap:
EthernetHWaddrFE:
FD:
04:
E0:
13:
B5
BROADCASTMULTICASTMTU:
1500Metric:
1
RXpackets:
0errors:
0dropped:
0overruns:
0frame:
0
TXpackets:
0errors:
0dropped:
0overruns:
0carrier:
0
collisions:
0txqueuelen:
0
eth0 Linkencap:
EthernetHWaddr00:
90:
27:
B3:
17:
5C
inetaddr:
NNN.NNN.NNN.253Bcast:
NNN.NNN.NNN.255Mask:
255.255.255.0
UPBROADCASTRUNNINGMULTICASTMTU:
1500Metric:
1
RXpackets:
2242346errors:
0dropped:
0overruns:
0frame:
0
TXpackets:
3616430errors:
0dropped:
0overruns:
0carrier:
0
collisions:
589902txqueuelen:
100
Interrupt:
9Baseaddress:
0xde80
eth1 Linkencap:
EthernetHWaddr00:
01:
02:
CD:
55:
38
BROADCASTRUNNINGMULTICASTMTU:
1500Metric:
1
RXpackets:
65714errors:
0dropped:
0overruns:
0frame:
0
TXpackets:
1832954errors:
0dropped:
0overruns:
0carrier:
1
collisions:
500txqueuelen:
100
Interrupt:
10Baseaddress:
0xdc00
eth2 Linkencap:
EthernetHWaddr00:
01:
02:
C1:
14:
F1
BROADCASTRUNNINGMULTICASTMTU:
1500Metric:
1
RXpackets:
2011596errors:
0dropped:
0overruns:
0frame:
0
TXpackets:
238126errors:
0dropped:
0overruns:
0carrier:
2
collisions:
666txqueuelen:
100
Interrupt:
11Baseaddress:
0xd880
lo Linkencap:
LocalLoopback
inetaddr:
127.0.0.1Mask:
255.0.0.0
UPLOOPBACKRUNNINGMTU:
3924Metric:
1
RXpackets:
1676447errors:
0dropped:
0overruns:
0frame:
0
TXpackets:
1676447errors:
0dropped:
0overruns:
0carrier:
0
collisions:
0txqueuelen:
0
使用Linux创建网桥式防火墙
来源:
Linux-作者:
Webmaster时间:
2007-05-05点击:
[收藏][投稿]
为了使网桥工作,需要安装brcfg应用。
可以从MatthewGrant的linux路由器项目地址http:
//lrp.plain.co.nz/tarballs/bridgex_0.30.tar.gz得到源代码。
编译生成二进制可执行程序,并将其拷贝到/usr/sbin/brcfg下,然后执行下面的命令来使网桥启动运行:
#ifconfigeth1promiscup
#ifconfigeth2promiscup
#brcfgstart
#brcfgdeviceeth1enable
#brcfgdeviceeth2enable
几分钟以后,当网桥学习得到了两端网端的mac地址范围以后,将能实现在两块网卡之间透明地转发数据报。
5.防火墙配置
防火墙本身是由ipchains软件包来实现的,上面的内核补丁添加了一个新的缺省规则链-bridgein,该链的规则作用于通过充当网桥的接口的数据报。
由于该链属于输入链,每个规则必须指定接口,也就是数据报是从哪个接口进入系统的。
每条链的缺省规则都被设置为ACCEPT,多条规则被加进bridgein链来实现访问策略,最后一条规则应该是DENY来限制没有明确指定允许的数据报。
防火墙的访问策略被设计为适用在如下的网络拓朴中:
防火墙的访问策略所适用在的网络拓朴
该设计的突出特色是:
*所有的公共服务器(HTTPD,FTP,SMTP,SSH)位于防火墙之外;
*所有从Internet到内部网络的数据流均经过防火墙;
*从受保护的内部网到公共服务器的数据流不做限制;
*内部受保护的网络到Internet的数据流都被允许;
*从公共服务器到受保护的内部网络的数据流进行了一定的限制,只有那些实际需要的服务数据流才允许通过(输出到内部网络的NFS、从公共邮件服务器到内部网络的SMTP数据、SSH);
*从Internet发起到内部网络的数据连接被禁止。
下面就是一个按照上面的原则生成ipchians规则的脚本:
Listing2.AnnotatedScriptforBridgingFirewallSetup
#!
/bin/sh
#####################################################################
#firewall.sh-setupipchainsrulesforabridgingfirewall
#
# Copyright(c)2000UK/Canada/NetherlandsJointAstronomyCentre
#
# Permissiontouse,copy,modify,distribute,
# andsellthissoftwareanditsdocumentation
# foranypurposeisherebygrantedwithoutfee,
# providedthattheabovecopyrightnoticeappear
# inallcopiesandthatboththatcopyrightnotice
# andthispermissionnoticeappearin
# supportingdocumentation,andthatthename
# JointAstronomyCentrenot
# beusedinadvertisingorpublicitypertaining
# todistributionofthis
# softwarewithoutspecific,writtenprior
# permission.
#
# THISSOFTWAREISPROVIDED`AS-IS'.THEJOINT
# ASTRONOMYCENTREDISCLAIMS
# ALLWARRANTIESWITHREGARDTOTHIS
# SOFTWARE,INCLUDINGWITHOUT
# LIMITATIONALLIMPLIEDWARRANTIES