본문 바로가기

OS

Linux - 리눅스 라우터 QUAGGA 사용법

QUAGGA는 리눅스에서 라우터 기능을 수행하는 패키지이다.


버전 : quagga-0.99.22.4

 

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