在上文中将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