常州五颜六色网络技术有限公司 -> 技术文档 -> 在FreeBSD中安装双网卡实例 登录 -> 注册 -> 回复主题 -> 发表主题

deserts 2007-06-01 20:57
    当我们使用FreeBSD作网关或防火墙时,会要求在系统中安装两块网卡,分别跨越两个网络, 一块卡用于外部网络,而另一块用于内部网络。好了,就象大家知道的那样,现在需要让系 统支持这些新设备,而对于网络适配器,FreeBSD是通过定制内核来支持的。当然,首先要让 内核了解设备所用的硬件资源,对于使用PCI接口的网卡,我只能说,拥有高科技真是幸福, 因为这类网卡在PCI PnP BOIS的支持下,只要在内核中多添一个设备配置就可在新内核引导 时自动检测并启动;而对于ISA的卡,就没有这样简单了,不过只要去PnP用jumpless模式, 用卡所带的设置程序设好适当的资源,就可以在内核中用相应的配置来通知系统在引导时按 这样的资源来启动设备。

   我们来看看具体步骤:

1、定制新内核以适应新设备 

   这里有一个问题需要注意一下,众所周知,定制内核至少需要在系统上安装原代码中的"内 核原代码"(FreeBSD Kernel Sources)部分,先前没有安装的可以用 /stand/sysinstall添 加这部分。

   对于PCI网卡,例如你用的是Realtek 8139,可以在内核配置文件中添加一行: 

   device de0 <---- 你原有的DC21040 Ethernet adapters 
   device rl0 <---- 新加入的Realtek 8139,因为是PCI卡,系统会自动检测卡资源 

   对于ISA网卡,例如你用的是NE2000兼容卡,同样在内核配置文件中添加与已设定资源相符合的描述行:

   device de0 <---- 你原有的DC21040 Ethernet adapters 
   device ed0 at isa? port 0x300 net irq 3 iomem 0xd8000 vector edintr 

   上面第二行是新加入的NE2000兼容网卡,因为是ISA卡,所以一定要指定卡所用的资源以便 系统可以在引导时检测到。可能你会问,如果用的都是同样芯片类型的卡,该如何配置呢? 

   可以这样做:

   device ed0 at isa? port 0x300 net irq 3 iomem 0xd8000 vector edintr
   device ed1 at isa? port 0x320 net irq 10 iomem 0xd8000 vector edintr 

   可以看到,有多个同样类型的设备时,按照UNIX的编号习惯依次就是ed0、ed1……。不过, 在上面的配置中两块卡的BOOTROM资源会发生冲突,但不影响启动,你可以根据情况用卡所 带设置程序把它们适当设开即可。

   此时已经按要求定制好了新的内核配置,现在就可以按FreeBSD handbook中的描述把新内核 编译并安装好。编译工作一切顺利的话我们的系统就已经支持了新的网卡设备,接下来就是为新网卡配置相应的网络接口。

2、添加新网络接口 

   比较简单直观的方法是用/stand/sysinstall来对新设备配置新接口的一系列参数,当然BSD 的传统方法是以修改相应的配置文件来达到目的的,编辑/etc/rc.conf: 

   hostname="example.host.net" 
   network_interfaces="ed0 ed1 lo0" 

                   ~~~在这里加入新的网络接口以便在引导时用后面ifconfig配置的
                   参数进行初始化

   ifconfig_ed0="inet 192.168.0.1 netmask 255.255.255.0" #原有的网络接口参数 
   ifconfig_ed1="inet 192.168.1.1 netmask 255.255.255.0" #新网络接口参数
   defaultroute="xxx.xxx.xxx.xxx" #原有的网络默认路由

好了,安装双网卡的工作就完成了,以后可以根据具体使用情况自行配置NAT、GATEWAY等东东了。


查看完整版本: [-- 在FreeBSD中安装双网卡实例 --] [-- top --]



Copyright © 2005-2014 5y6s Inc. 苏ICP备05001866号 Powered by PHPWind 5.0.1
Time 0.022542 second(s),query:5 Gzip enabled