在FreeBSD中安裝雙網路卡例項(轉)

gugu99發表於2007-08-11
在FreeBSD中安裝雙網路卡例項(轉)[@more@]

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

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-944547/,如需轉載,請註明出處,否則將追究法律責任。

相關文章