在上文中將mpls編譯進了linux內核,現在需要安裝iprouter,安裝過程如下:
1) 下載兩個文件iproute2-2.6.39.tar.gz和iproute2-v2.6.39-mpls.patch。
iproute2-2.6.39.tar.gz下載地址:
iproute2-v2.6.39-mpls.patch下載地址:
2)將iprouter解壓到/usr/src/linux-2.6.35目錄下,同時將iproute2-v2.6.39-mpls.patch也拷貝到該目錄下。
$ sudo cp iproute2-2.6.39.tar.gz /usr/src/linux-2.6.35 $ sudo cp iproute2-v2.6.39-mpls.patch /usr/src/linux-2.6.35 $ cd /usr/src/linux-2.6.35 $ sudo tar –zxf iproute2-2.6.39.tar.gz
3)將patch文件打進iprouter中
# cd /usr/src/linux-2.6.35/iprouter2-2.6.39 # patch–p1 < ../iproute2-v2.6.39-mpls.patch
4)對iprouter進行編譯
$ cd /usr/src/linux-2.6.35/iprouter2-2.6.39 $ sudo ./configure
///***********此過程可能出現的問題*********
Problem:iptables modules directory: not found!
Solution: 將configure文件中的以下部分:
then
Ehco“using iptables”
TABLES=”iptables” -------------->將此處的iptables改成xtables
Else
TABLES=”xtables” -------------->將此處的xtables改成iptables(此處也可以不改)
****************************///
$ sudo make
///*********可能出現的問題***********
在執行此命令之前需要先安裝bison,flex。
sudo apt-get install bison
sudo apt-get install flex
Problem: fatal error: db_185.h: no such file or directory
Solution:
安裝db-4.6.18.tar.gz,下載鏈接:
下載完成后解壓安裝,其過程如下:
$ tar -zxf db-4.6.18.tar.gz
$ cd db-4.6.18
$ cd build_unix
$ sudo ../dist/configure --prefix=$INSTALLPATH --enable-compat185
$ sudo make
$ sudo make install
查找文件:
$ sudoupdated //在查找文件之前先手動更新索引
$ locate db_185.h //查找db_185.h文件
Problem:error: db_185.h: No such file or directory
Solution:
編譯MakeFile文件,然后找到:
#Path to db_185.h include
DBM_INCLUDE:={ROOTDIR}/usr/include
//將此路徑進行修改,改成db_185.h所在的目錄,db_185.h所在的目錄可以使用locate定位,假如db_185.h的所在位置為:/usr/src/db-4.6.18/build_unix/db_185.h,則這時將以上代碼改為:
DBM_INCLUDE:=/usr/src/db-4.6.18/build_unix/
****************************///
$ sudo make install
最后插入完成,現在可以測試一下安裝的mpls是否成功,可以在終端輸入: mpls, 若找不到此命令,則沒有安裝成功,若有此命令,但也不一定成功。
現在可以進行一些簡單的配置來測試一下。使用ifconfig查看網卡配置。對一個路由器進行配置的樣例 如下所示:
$ifup eth1
$ifconfig eth1 192.168.1.2/24
$mpls nhlfe add key 0 instructions push gen 100 nexthop eth1 ipv4 192.168.2.2
$ip route add 192.168.7.0/24 via 192.168.2.2 mpls 0x02 //每次輸入這個命令,電腦立刻死機,可能是內核沖突,此問題還未解決
$mpls labelspace set dev eth1 labelspace 0
$mpls ilm add label gen 200 labelspace 0
$mpls nhlfe add key 0 instructions nexthop eth0 ipv4 192.168.1.1
$mpls xc add ilm_label gen 200 ilm_labelspace 0 nhlfe_key 0x03