在FreeBSD中安裝雙網卡實例

火星人 @ 2014-03-12 , reply:0


  當我們使用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等東東
了。





[火星人 via ] 在FreeBSD中安裝雙網卡實例已經有309次圍觀

http://www.coctec.com/docs/service/show-post-73883.html