Zebra를 이용하여 Router를 만들고자 합니다.
글쓴이: andra3623 / 작성시간: 화, 2010/07/20 - 2:17오후
안녕하세요.
Linux에서 Zebra를 이용하여 Router를 만들고자 공부하고 있는 학생입니다.
Linux에서 Zebra 설치는 zebra 홈페이지와 웹문서를 통해 잘 설치하여 잘 돌아가고 있습니다.
이 Zebra를 이용하여 기존에 있는 RIP, OSPF, BGP 등과 같은 프로토콜을 만들어서 실행시키고자 합니다.
예를 들어 RIP의 기능과 유사한 X-RIP 데몬을 만들어서 RIP 데몬 대신 X-RIP 데몬을 이용하여 패킷을 송수신 하는 것입니다.
그래서 RIP 코드를 복사하여 X-RIP 코드로 수정하고자 하는데
어떻게 복사하고 수정하는지 웹문서나 참고할 도서가 전혀 없네요(기존의 자료들은 모두 Zebra 설치 및 RIP, OSPF, BGP 실행방법만 있어요).
어떻게 해야 하는지, 혹은 참고자료가 있으면 답변 부탁드립니다.
Forums:
zebra말고 quagga라는
zebra말고 quagga라는 프로젝트도 있습니다. zebra에서 fork되었고,
저는 quagga를 가지고 작업을 했었는데, libzebra쪽을 참조해서 각 protocol daemon들이 zebra와 어떤식으로 interfacing 하는지 살펴보시기 바랍니다.
저도 문서는 못찾았고, 그냥 열심히 삽질했었습니다.
그당시 기억을 떠올려서 대강 설명하자면,
zebra(quaaga프로젝트에서도 메인 데몬은 여전히 zebra였죠)에서는 routing 테이블 관리, ip관리 등등을 담당했습니다.
커널과 직접 통신하는 것도 이녀석이고요.
ospfd, ripd등등은 zebra와 소켓으로 연결되어서, 특정 라우팅을 삭제하거나 추가할 일이 생기면 zebra에 명령을 날립니다.
그럼 zebra에서 이녀석들에게서 온 신호를 받아서 라우팅들을 관리해주죠.
그리고 각각의 데몬들은 CLI 명령을 받는 interface가 있습니다. 이것도 도메인소켓, 혹은 IP소켓을 열고 telnet으로 접속할 수도 있습니다.
각각의 명령데몬들에 따로 접속해서 명령을 내리는게 귀찮기 때문에, vtysh라고 하는, 전체 데몬들에 명령을 다 주는 인터페이스가 있습니다.
따라서 각 프로토콜 데몬이 구현해야 할 것은
* zebra와의 통신 인터페이스
* 사용자 인터페이스
* 데몬구조
가 되겠습니다.
그리고 이것들은 libzebra 라이브러리에 들어있죠.
자세한건은 ripd를 살펴보시기 바랍니다.
언제나 삽질 - http://tisphie.net/typo/
프로그래밍 언어 개발 - http://langdev.net
언제나 삽질 - http://tisphie.net/typo/
프로그래밍 언어 개발 - http://langdev.net
댓글 달기