QUAGGA는 리눅스에서 라우터 기능을 수행하는 패키지이다.
1. 패키지 다운
http://download.savannah.gnu.org/releases/quagga/
-> 현재 다운로드가 되지 않지만, 위 웹페이지 하단에 보면 다른 링크가 게시되어 있다.
http://download-mirror.savannah.gnu.org/releases/
2. 설치 (실패시 아래의 6번 항목을 참고하자)
./configure --disable-ipv6 --disable-babeld --enable-vtysh --enable-user=root --enable-group=root
make clean
make
make install
3. 설정파일 세팅
cd /usr/local/etc
cp ./ripd.conf.sample ripd.conf
cp ./bgpd.conf.sample ./bgpd.conf
cp ./isisd.conf.sample ./isisd.conf
cp ./ospfd.conf.sample ./ospfd.conf
cp ./vtysh.conf.sample ./vtysh.conf
cp ./zebra.conf.sample ./zebra.conf
4. 실행 (실패시 아래의 6번 항목을 참고하자)
3-1. zebra 데몬 실행
zebrad -d
3-2. 사용하고자 하는 프로토콜 실행 (rip, ospf, isis, bgp 등)
ripd -d
3-3. 쉘 접속
telnet localhost ripd
or
vtysh
5. 팁
각 프로토콜별로 쉘에 접속하면 해당 기능만 사용 가능하고 제한되는 명령들이 있다.
이를 해결하기 위해 vtysh로 접속하면 여러 프로토콜뿐만 아니라 모든 명령 사용 가능.
vtysh을 사용하려면 컴파일 configure시 -enable-vtysh 옵션을 사용해야한다.
IS-IS 프로토콜을 사용하려면 컴파일 configure시 -enable-isisd 옵션을 사용해야한다.
-> 0.99.24 버전 부터는 isis가 기본 빌드에 포함된다.
6. 추가
버전 : quagga-0.99.24.1
이 버전에서 위와 같이 configure를 실행하면 필요 패키지가 설치되지 않아 에러가 발생할 수 있다.
필요 패키지를 설치해주도록 하자.
configure시 에러
configure: error: GNU awk is required for lib/memtype.h made by memtypes.awk.
BSD awk complains: awk: gensub doesn't support backreferences (subst "\1")
-> apt-get install gawk mawk original-awk
configure: error: vtysh needs libreadline but was not found and usable on your system.
-> apt-get install libreadline6 libreadline6-dev libreadline6-dbg
make시 에러
MAKEINFO quagga.info
/home/quagga/quagga-0.99.24.1/missing: line 81: makeinfo: command not found
WARNING: 'makeinfo' is missing on your system.
You should only need it if you modified a '.texi' file, or
any other file indirectly affecting the aspect of the manual.
You might want to install the Texinfo package:
<http://www.gnu.org/software/texinfo/>
The spurious makeinfo call might also be the consequence of
using a buggy 'make' (AIX, DU, IRIX), in which case you might
want to install GNU make:
<http://www.gnu.org/software/make/>
make[3]: *** [quagga.info] Error 127
-> apt-get install texinfo
필자의 경우 위 에러가 발생했고 패키지 설치 후 성공했다.
설치 완료 후 실행을 위해 zebra -d ospfd -d 등의 명령을 실행 했을 때 아래와 같은 에러를 만날 수 있다.
zebra: error while loading shared libraries: libzebra.so.0: cannot open shared object file: No such file or directory
ripd: error while loading shared libraries: libzebra.so.0: cannot open shared object file: No such file or directory
ospfd: error while loading shared libraries: libospf.so.0: cannot open shared object file: No such file or directory
isisd: error while loading shared libraries: libzebra.so.0: cannot open shared object file: No such file or directory
bgpd: error while loading shared libraries: libzebra.so.0: cannot open shared object file: No such file or directory
라이브러리를 못 찾는다는 얘긴데.. 리눅스의 "ldd" 명령을 사용하면 실행파일이 사용하는 라이브러리를 확인할 수 있다.
root@RUT:/usr/local/sbin# ldd zebra
linux-gate.so.1 => (0xb7766000)
libzebra.so.0 => /usr/local/lib/libzebra.so.0 (0xb76e9000)
libcrypt.so.1 => /lib/i386-linux-gnu/libcrypt.so.1 (0xb76b8000)
librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb76ae000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb7504000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb74e9000)
/lib/ld-linux.so.2 (0xb7767000)
현재는 라이브러리 링크가 완료된 상태라 올바르게 표시하지만 라이브러리를 찾지 못 할때는
No such file or directory
뭐 이런식으로 뜰 것이다.
어쨋든, quagga 라이브러리가 설치되는 디폴트 경로에 가보면 파일들이 존재한다. (/usr/local/lib)
그럼 지금 리눅스가 설치된 라이브러리 업데이트를 못했다는건데, 시스템을 재시작하면 다시 읽어 올 것으로 예상되지만 귀찮으니 바로 적용시키는 방법을 사용한다.
"ldconfig" 라는 명령을 사용하면 라이브러리 링크를 업데이트 한다.
혹시 안된다면 파일 위치를 명시해주자.
ldconfig -f /etc/ld.so.conf
'OS' 카테고리의 다른 글
Ubuntu - DNS 고정 설정 (0) | 2016.09.01 |
---|---|
Linux - .run 확장명 사용 (0) | 2016.09.01 |
Linux - Ubuntu KVM 네트워크 설정 (0) | 2016.09.01 |
Linux - 용량 확인 명령 (0) | 2016.09.01 |
Ubuntu - 패키지 관련 명령 (apt-get) (0) | 2016.09.01 |