下一页 上一页 目录

2. 所需软件

以太网桥计算机上需要以下软件设置。根据我们的测试场地

2.1 特色 Linux 内核

使用 2.6 内核还不是一个好主意。是的,这令人惊讶。桥接代码为何以及在何处崩溃尚未引起我和其他人的注意,我不能推荐 2.6 系列的内核。 你有线索了吗? 确保自己获得荣誉,将解决方案邮寄给我(电子邮件地址在首页)。另请参阅内核注释以获取有关此事的更多信息。到目前为止,请使用 2.4 系列内核。
从内核版本2.4.18开始,已经内置了对以太网桥接功能的支持。到目前为止,不需要任何补丁。关于更高版本的内核,必须声明2.4.23可能不太值得推荐,尤其是在与 ebtables 和 netfilter-bridging 结合使用时。建议使用更高版本。
以下段落现在已过时 (2005-07-12),因为我们所需的一切都已存在于内核中。您可以跳过此段落,它仅为旧版本而保留
但是,如果我们打算使用 netfilter 功能(因为我们想在新的 Linux 路由器/防火墙盒子上运行 iptables),我们仍然需要应用补丁。所需的任何补丁都可以在sourceforge 以太网桥接主页上找到并下载。

root@bridge:~> cd /usr/src/
root@bridge:~> wget -c http://bridge.sourceforge.net/devel/bridge-nf/bridge-nf-0.0.7-against-2.4.18.diff
root@bridge:~> cd /usr/src/linux/
root@bridge:~> patch -p1 -i ../bridge-nf/bridge-nf-0.0.7-against-2.4.18.diff
        

假设我们希望在桥接接口上获得 netfilter 支持,并且我们已经修补了 vanilla 内核,我们现在可以激活一些必要的内核配置项。 有关如何构建私有内核映像的信息,请参阅CD-Net-Install-HOWTO, 工具箱。 哦,是的,它仍然只有德语版本。 嗯,我应该找时间修复这个问题,但是时间不够... 有志愿者吗? (死寂正在蔓延.. ;)

尽管如此,我们现在开始:在

        Code maturity level options
        
我们激活
        [*] Prompt for development and/or incomplete code/drivers
        
和在
        Loadable module support
        
        [*] Enable loadable module support  
        [*]   Set version information on all module symbols
        [*]   Kernel module loader
        
好的,到目前为止一切顺利。现在,我们转到
        Networking options
        
并标记
        [*] Network packet filtering (replaces ipchains)
        [ ]   Network packet filtering debugging
        
注意

以前,已选择上述调试选项。现在,除非您希望您的 /var/log/ 分区在短时间内被填满,否则请停用此选项。
如果激活此选项,则类似以下的消息将以数千条的数量出现在 dmesg 和 /var/log/{kern.log,debug,syslog,messages}

skb: pf=2 (unowned) dev=br0 len=52
PROTO=6 156.136.32.121:3709 192.168.101.2:112 L=52 S=0x00 I=35470 F=0x4000 T=51 
nf_hook: hook 1 already set.
skb: pf=2 (unowned) dev=br0 len=52
PROTO=6 156.136.32.121:3709 192.168.101.2:112 L=52 S=0x00 I=35470 F=0x4000 T=51 
nf_hook: hook 0 already set.
skb: pf=2 (unowned) dev=br0 len=52
PROTO=6 192.168.101.11:2828 192.168.101.2:202 L=52 S=0x10 I=63 F=0x4000 T=64 
nf_hook: hook 1 already set.
skb: pf=2 (unowned) dev=br0 len=52
PROTO=6 192.168.101.11:2828 192.168.101.2:202 L=52 S=0x10 I=63 F=0x4000 T=64 
nf_hook: hook 3 already set.
skb: pf=7 (owned) dev=eth1 len=1500
        

此外,在

          IP: Netfilter Configuration  --->
        
我们将任何需要的项目标记为模块。现在是期待已久的项目:激活
        <M> 802.1d Ethernet Bridging
        
以及
        [*]   netfilter (firewalling) support
        
注意

只有当我们成功修补内核后,以上条目才可用!

最后,我们只需要成功地

root@bridge:~> make dep clean bzImage modules modules_install
        
循环,我们就完成了。别忘了编辑 /etc/lilo.conf 并执行
root@bridge:~> lilo -t
root@bridge:~> lilo
root@bridge:~> reboot
        
,虽然。

提示

也许我们可以将我们的新内核标记为桥接内核?我们 vi 进入内核源代码的顶层 Makefile,并编辑名为 EXTRAVERSION = 的行首。 实际上我们可以将其设置为,例如 bridge? ;-)
modules_install 之后,我们在 /lib/modules/2.4.18bridge 中找到新的模块
对于 debian 用户(最终使用 export PATCH_THE_KERNEL=YES 之前,并使用 make-kpkg 添加 --added_patches your_patches)

root@bridge:~> make-kpkg --revision=tf.1.0 kernel_image
          

2.2 用户空间工具:brctl

一旦我们的内核具备执行以太网桥接和 netfilter 操作所需的功能,我们就准备用户空间工具 brctlbrctl 是我们用来设置任何满足我们需求的配置工具。

我们下载源代码压缩包,解压缩并更改目录进入它。

root@bridge:~> wget -c http://bridge.sourceforge.net/bridge-utils/bridge-utils-0.9.5.tar.gz
root@bridge:~> tar xvzf bridge-utils-0.9.5.tar.gz
root@bridge:~> cd bridge-utils-0.9.5
        
此时,阅读 READMEdoc/ 子目录中的文件。然后执行简单的 make 并将生成的 brctl/brctl 可执行文件复制到 /sbin/
root@bridge:~> make
root@bridge:~> cp -vi brctl/brctl /sbin/
        
就是这样。现在转到设置

2.3 内核注释

症状:设置期间一切正常,但数据包不再像在 2.4 中那样遍历桥接接口。
ipuk s (qasuari_ @ _yahoo.com) 写道(约 2005 年 6 月)

[...]
I have to compile my kernel from 2.4.18-14 to 2.6.0 and activate
bridge-netfilter&ebtables.
After compiling, i can't ping from a host to interface of linux box.
Linux box just have 1 interface.whats wrong with my compilation ???
[...]
        


下一页 上一页 目录