首页 > 代码库 > ospf 编译安装

ospf 编译安装


0) 安装依赖软件包(--enable-vtysh需要)
#sudo apt-get install libreadline6-dev (Ubuntu)
#sudo yum install readline-devel (CentOS)
创建用户(可选)
#sudo groupadd quagga
#sudo useradd quagga -g quagga



tar xzf quagga-0.99.21.tar.gz  
#cd quagga-0.99.21  
 
#sudo mkdir /var/run/quagga   (运行时的PID文件位置)  
#sudo chmod 777 /var/run/quagga  
 
#sudo mkdir /etc/quagga       (运行时的配置文件目录)  
#sudo chmod 777 /etc/quagga

==============================================
 root 账户:
 
 
 yum install -y readline-devel.x86_64  texinfo.x86_64
 cd /home/wls81
 tar xf quagga-1.1.1.tar.gz
 cd quagga-1.1.1
./configure --prefix=/usr/local/quagga  --enable-vtysh --localstatedir=/var/run/quagga --sysconfdir=/etc/quagga  
make && make install

ldconfig   (加载库文件路径)  
mkdir  /var/run/quagga  -p
chown  quagga /var/run/quagga/ -R
chown  quagga /var/run/quagga/ -R
ln -s /usr/local/quagga/bin/vtysh /sbin/
mv /etc/quagga/ospfd.conf.sample  /etc/quagga/ospfd.conf
(默认运行用户为quagga, 确保运行的localstatedir对用户有读写的权限,建议配置)  
sh run_quagga.sh start

 启动脚本 run_quagga.sh
 #!/bin/bash

    EXEC_DIR=/usr/local/quagga/sbin
    CONF_DIR=/etc/quagga
    LIB_DIR=/usr/local/quagga/lib
    PID_DIR=/var/run/quagga
    DAEMON=(zebra ospfd bgpd)
    USER=root
    TIME_DELAY=2

    #DAEMON=(zebra ospfd ospf6d ripd bgpd)
    #set librery path
    export LD_LIBRARY_PATH=$LIB_DIR:$LD_LIBRARY_PATH

    #
    echo make sure user \"$USER\" has read-write privileges in directory \"$PID_DIR\" !

    start()
    {
        for d in ${DAEMON[*]}; do
            $EXEC_DIR/$d -f $CONF_DIR/$d.conf -i $PID_DIR/$d.pid -u $USER -g $USER -d
            ps -ef | grep $d
            if [ $d = "zebra" ] ; then
                sleep $TIME_DELAY
            fi
        done
        echo "start (${DAEMON[*]})  finished!"
    }

    stop()
    {
        for d in ${DAEMON[*]}; do
            killall $d
            #rm -f $PID_DIR/$d.pid
        done
        rm -f $PID_DIR/*
        echo "stop (${DAEMON[*]})  finished!"
    }

    case $1 in
        start)
            start ;;
        stop)
            stop ;;
        restart)
            stop
            start  ;;
        *)
            echo "Usage: $0 start | stop | restart"
    esac
ps -ef|grep --color quagga  


问题解决

   i) 如果遇到zebra库文件未找到错误,则到目录 /etc/ld.so.conf.d下面新建个文件,
内容为quagga安装的库路径,例如: /usr/local/lib
然后 sudo ldconfig即可。
ii) 如果不能连接vtysh的话,是因为在/var/run/quagga/*.vty文件对当前执行vtysh命令的用户没有权限。
可以使用: sudo /usr/local/bin/vtysh即可。
也可以: sudo chmod 777 /var/run/quagga/* ,(当zebra都启动之后), 然后运行vtysh即可。
iii) 如果需要设置IP地址,设置路由等,则建议使用root用户身份运行Quagga(zebra/ospfd/bgpd等), 否则修改路由IP等会导致没有权限的错误。

iii)  如果路由不能转发,修改/etc/sysctl.conf文件。 启用IPv4转发功能
        net.ipv4.ip_forward = 1

     iv) 如果发生了源路由验证的路由问题,  修改/etc/sysctl.conf文件。 禁用源路由验证功能
        net.ipv4.conf.default.rp_filter = 1


     v) 如果要启用net-snmp支持,则如下:
            #sudo yum install net-snmp net-snmp-devel net-snmp-perl net-snmp-utils
            # ./configure --enable-vtysh --localstatedir=/var/run/quagga --sysconfdir=/etc/quagga  --enable-snmp=smux

ospf 编译安装