zebosarsinstall
TRANSCRIPT
IP Infusion Confidential
ZebOS® Intelligent Network Software
Version 7.2.8
Advanced Routing Suite (ARS) Installation Guide
July 2005
ii IP Infusion Confidential
© 2001-2005 IP Infusion Inc. All Rights Reserved.
This documentation is subject to change without notice. The software described in this document and this documentation are furnished under a license agreement or nondisclosure agreement. The software and documentation may be used or copied only in accordance with the terms of the applicable agreement. No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or any means electronic or mechanical, including photocopying and recording for any purpose other than the purchaser's internal use without the written permission of IP Infusion Inc.
IP Infusion Inc. 111 W. St. John Street, Suite 910San Jose, CA 95113
(408) 794-1500 - main(408) 278-0521 - fax
For support, questions, or comments via E-mail, contact:[email protected]
Trademarks:
ZebOS is a registered trademark, and IP Infusion and the ipinfusion logo are trademarks of IP Infusion Inc.All other trademarks are trademarks of their respective companies.
©2001-2005 IP Infusion Inc. Confidential iii
Table of Contents
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
CHAPTER 1 ZebOS Advanced Routing Suite Overview . . . . . . . . . . . . . . . . 1Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1ZebOS ARS Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1Technical Inquiries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2Obtaining ZebOS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2Sales Inquiries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
CHAPTER 2 Installation on Linux Systems . . . . . . . . . . . . . . . . . . . . . . . . . . 3Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
ZebOS Daemons on Linux platforms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3Before Installing ZebOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
Hardware Platform Preparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4Special Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
Layer-2 Software Forwarder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6MPLS Forwarder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6Multicast Forwarder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6VPN (Virtual Private Network) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6VR (Virtual Routing) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
Installing ZebOS ARS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7Uncompressing ZebOS ARS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
Applying Kernel Patches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7Before Configuring the Build Environment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7Configuring the Build Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8Building the Configuration Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9Compiling the Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16Building Kernel Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
CHAPTER 3 Installation on MontaVista-Linux Systems . . . . . . . . . . . . . . . . 19Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
ZebOS daemons on MontaVista Linux platforms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19Before Installing ZebOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
Hardware Platform Preparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20Special Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
Layer-2 Software Forwarder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20MontaVista-IPNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21MPLS Forwarder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21VPN (Virtual Private Network) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21VR (Virtual Routing) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
Installing ZebOS ARS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
Table of Contents
iv ©2001-2005 IP Infusion Inc. Confidential
Uncompressing ZebOS ARS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Applying Kernel Patches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Before Configuring the Build Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Configuring the Build Environment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Building the Configuration Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Compiling the Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Building Kernel Modules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
CHAPTER 4 Installation on MontaVista-Broadcom . . . . . . . . . . . . . . . . . . . .33System Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Running ZebOS on MontaVista-Broadcom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Set up the Environment Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Configure the TFTP Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Modifying the Kernel Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Build the Broadcom Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35Configure the DHCP Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35Configure NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Configure the Build Environment for ZebOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Compile ZebOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Boot the Target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
CHAPTER 5 Installation on NetBSD Systems . . . . . . . . . . . . . . . . . . . . . . . .39Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
ZebOS Daemons on NetBSD Platforms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39Before Installing ZebOS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39Special Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
PIM-SM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40Installing ZebOS ARS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Uncompressing ZebOS ARS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40Before Configuring the Build Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41Configuring the Build Environment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Building the Configuration Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42Compiling the Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48Current Problems and Workarounds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
CHAPTER 6 Installation on VxWorks Systems . . . . . . . . . . . . . . . . . . . . . . .51ZebOS Daemons on VxWorks platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Multicast Support on VxWorks Native . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Special Requirement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52Hardware platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Installation on VxWorks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52Limitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52Setting Environment Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53Copying the ZebOS Source and Setting up the Build Environment . . . . . . . . . . . . . . . . . . 53Before Configuring the Build Environment for Target and Host . . . . . . . . . . . . . . . . . . . . . 54Configuring the Build Environment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54Building the Configuration Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Table of Contents
©2001-2005 IP Infusion Inc. Confidential v
Compiling the Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60Linking ZebOS with VxWorks BSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61Building the FTP Image--vxworks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61Booting the System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62Configuring the Physical IP Addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62
CHAPTER 7 Configuring Router for SNMP . . . . . . . . . . . . . . . . . . . . . . . . . 63Obtaining SNMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63SNMP with SMUX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63
Installing Net-SNMP Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63Configuring SMUX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64Enabling SNMP in the Source Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64
SNMP with AgentX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65Installing Net-SNMP Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65Configuring AgentX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65Enabling AgentX in the Source Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65
SNMP Utilities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67OSPF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67OSPFv3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68ISIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68BGP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68RIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69PIM-SM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69LDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69NSM (LSR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70NSM (FTN). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71
SNMP TRAPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .72BGP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .72OSPF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .72PIM-SM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73ISIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73
CHAPTER 8 Initial Daemon Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . 75Before starting ZebOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75Starting and Stopping ZebOS Daemons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75
Unix-based Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75VxWorks Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76
Loading the Configuration File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77Accessing sample configuration files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77
Configuring the NSM Daemon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78Configuring the RIP Daemon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79Configuring the OSPF Daemon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80Configuring the BGP Daemon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80Configuring the LDP Daemon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81Configuring the RSVP Daemon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82Configuring the ISIS Daemon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82
Table of Contents
vi ©2001-2005 IP Infusion Inc. Confidential
Configuring the PIM Daemon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83Configuring the DVMRP Daemon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84Configuring the RIPng Daemon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84Configuring the OSPF6 Daemon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85Configuring Basic Access Networking Services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85Configuring Layer 2 Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Mapping Port Numbers to Daemon Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
CHAPTER 9 Validating the Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . .91Validating Daemon Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Final Verification Step. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92Error Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92Bug Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
CHAPTER 10 ZebOS Directory Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . .93
CHAPTER 11 Configuring and Compiling the Linux Kernel. . . . . . . . . . . . . . .95Verifying the Kernel Source Code Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95Configuring the Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95Compiling the Linux Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Appendix A Applying Kernel Patches. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99Patch Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99Applying Patch on Linux Kernel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99Applying Patch on MontaVista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Appendix B Installing MontaVista Linux . . . . . . . . . . . . . . . . . . . . . . . . . . .103Before you Begin Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103Installing MontaVista Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Appendix C Compiling ZebOS on VxWorks-Broadcom . . . . . . . . . . . . . . .109Building ZebOS on Broadcom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Appendix D Platform-Specific Considerations . . . . . . . . . . . . . . . . . . . . . .111Linux Systems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111
Increasing the Size of Kernel Routing Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111Performing all Routing in the VR Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111Adding VLAN Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111
NetBSD Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112Adding VLAN Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112
Appendix E Copyright Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113Third-party Copyright and License Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Index - 1
©2001-2005 IP Infusion Inc. Confidential v
Preface
About this ManualUse this manual to install, compile, and build the ZebOS®Advanced Routing Suite (ARS) software; and to configure initial settings for the ZebOS daemons.
This manual consists of a chapter on an overview of ZebOS, and separate chapters for each platform, containing complete information on ZebOS installation on that platform. Followed by that are chapters on daemon configuration, validation, and the ZebOS directory structure.
Conventions Used in this ManualConventions for the syntax and procedures describing how to enter information, and how information is displayed on the console, are given in the following table.
Note: Unless otherwise stated, press Enter after each command entry.
Convention Description
Italics Italic text highlights concepts and referenced publications.
monospaced type The syntax and parameters for the commands and APIs use the following convention:NSM_MSG_ROUTE_FLAG_ADD
Forward slashes (/) Forward slashes indicate path names for a file or directory, for example,/usr/local/etc
System prompts and command entries
Entries you make in response to system prompts, for example,make install
Note: Indicates that you should take note. Notes contain special instructionsor helpful suggestions or warnings.
[ ] Variable term for which appropriate values are to be substituted. For example, in the following statement, [PATH] is to be substituted with an absolute path, and not the word PATH.patch -p0 [PATH]/ZebOS/...
Preface
vi ©2001-2005 IP Infusion Inc. Confidential
©2001-2005 IP Infusion Inc. Confidential 1
CHAPTER 1 ZebOS Advanced Routing Suite Overview
ArchitectureZebOS® Advanced Routing Suite (ARS) manages IP-based routing protocols. ZebOS software supports the BGP4, RIPv1, RIPv2, OSPFv2, OSPFv3, LDP, RSVP-TE, PIM-SM, PIM-DM, DVMRP, and ISIS protocols. Unlike traditional, monolithic architectures, and even the so-called “modular architectures” that remove the burden of processing routing functions from the CPU, and utilize special application-specific integrated circuits (ASIC chips); instead, ZebOS software offers true modularity.
ZebOS is intended to be used as a route server and a route reflector. ZebOS provides full-routing capability under a new architecture.
ZebOS ARS Features
ModularityThe multi-process nature of the ZebOS software is easily upgraded and maintained. Each protocol can be upgraded separately, leaving the other protocols and the router online. This saves network administrators time in upgrading and maintenance.
Speed and CapacityZebOS software enables routers to take advantage of the IPv6 address space without giving up compatibility with the IPv4 standard. The need for the ability to transfer large amounts of data is increasing, as the Internet grows, and global networks form. ZebOS software helps meet this need.
ReliabilityIn the event of any failure of any of the ZebOS ARS modules, the router can remain online, and the other protocol daemons will continue to operate. The failure can then be diagnosed and corrected without taking the router offline.
FlexibilityDue to a unique, multi-process architecture, the ZebOS ARS is easily upgraded and maintained. It contains the source code for enterprise extension, modification, and compilation.
ZebOS Advanced Routing Suite Overview
2 ©2001-2005 IP Infusion Inc. Confidential
Technical InquiriesIP Infusion provides wide-ranging technical assistance through a Support Web Site, allowing simple access to online resources:
• ClearQuest Web (a support call database) - IP Infusion offers technical support through a browser-based interface to ClearQuest Web. The ClearQuest Web allows you to track defects, and change requests, with an intuitive and easy-to-use interface. You can open technical support calls, update open calls with new information, and review the status of both open and closed calls.
• FAQs - find answers to product-related frequently asked questions.
• Product Documentation - download technical documentation.
• Product Updates - check out weekly bugs-fixed lists, downloads, and patches.
• Customer Satisfaction Survey - provide feedback by completing this survey.
To access the Support Web Site, log in at http://www.ipinfusion.com/support/login.html.
Obtaining ZebOSVisit the IP Infusion Inc. Website for more information about ZebOS ARS:
http://www.ipinfusion.com/
To download the software (a password is required for downloading):
ftp.ipinfusion.com
Contact IP Infusion at:
IP Infusion Inc.111 West St. John, Suite 910San Jose, CA 95113
(408) 794-1500 - main(408) 278-0521 - fax
Sales InquiriesE-mail: [email protected]
©2001-2005 IP Infusion Inc. Confidential 3
CHAPTER 2 Installation on Linux Systems
OverviewThis chapter describes the system requirements, installation, and compilation of ZebOS Advanced Routing Suite (ZebOS ARS) on Linux-based systems. When finished with the tasks in this chapter, continue with the Initial Daemon Configuration chapter.
For a first-time installation, perform all steps. As the system expands, compile the software, and make the target. For more information on customizing, refer to the ZebOS Developer Guides. Refer to Chapter 10 for an illustration of the complete ZebOS Directory Structure.
Note: The installation is not shell dependent; use any convenient Linux shell.
ZebOS Daemons on Linux platformsLinux kernels 2.4.10 (or higher)
The following ZebOS daemons support the IPv4 network protocols on Linux platforms:
• bgpd manages the BGP4 (Border Gateway Protocol) protocol.
• ripd manages the RIPv1, v2 (Routing Information Protocol).
• ospfd manages the OSPFv2 (Open Shortest Path First) and the CSPF (Constrained Shortest Path First) protocols.
• ldpd manages the LDP (Label Distribution Protocol) and the Layer-2 Virtual Circuit module.
• rsvpd manages the RSVP-TE (Resource Reservation Protocols-Traffic Engineering) protocol.
• isisd manages the ISIS (Intermediate System to Intermediate System) protocol.
• pimd manages the PIM-SM (Protocol Independent Multicasting - Sparse Mode) protocol.
• pdmd manages the PIM-DM (Protocol Independent Multicasting - Dense Mode) protocol.
• dvmrpd manages the DVMRP (Distance Vector Multicast Routing) protocol.
• nsm updates the kernel routing table, redistributes routing information between the protocol modules listed above, and manages the VR and VRRP modules.
The following ZebOS daemons support the IPv6 network protocols on Linux platforms:
• ripngd manages the RIPng protocol.
• ospf6d manages the OSPFv3 protocol.
• bgpd manages the BGP4+ protocol.
• isis6d manages the ISIS IPv6 protocol.
The following ZebOS daemons support the Layer-2 protocols on Linux platforms (GNU/Red Hat Linux 9.0):
• stpd manages the Spanning Tree protocol.
• rstpd manages the Rapid Spanning Tree protocol.
• authd manages the 802.1x authentication module.
• lacpd manages the Link Aggregation protocol.
Installation on Linux Systems
4 ©2001-2005 IP Infusion Inc. Confidential
Before Installing ZebOS Before beginning ZebOS installation on Linux, look in autoconf.h (in the installed kernel directory) to ensure that the Linux kernel has the following kernel options:
ZebOS uses the Netlink socket for communicating with the kernel.
Hardware Platform Preparation
Compilation Environment (minimum requirement)• make version 3.79.1
• gcc version 3.2.x or higher
• autoconf version 2.54
IPv4 Stack InstallationThe IPv4 stack is already enabled as a basic component of most Linux systems.
IPv6 Stack Installation
1. Install the Linux 2.4.10 (or higher) kernel with IPv6 support.
2. Enable the following Linux kernel Networking options:The IPv6 protocol (EXPERIMENTAL)IPv6: enable EUI-64 token format (NEW)IPv6: disable provider based addresses (NEW)
3. Rebuild the kernel, then reboot the machine.
4. Run the following command to view the IPv6 address and interface configuration information:ifconfig IFNAME
where IFNAME is the name of the interface.
The following is a sample output of this command showing the IPv6 site-local address for the eth0 interface:
router# ifconfig eth0
Option Entry (in autoconf.h) Notes
CONFIG_IP_MULTICAST #define CONFIG_IP_MULTICAST
CONFIG_IP_ADVANCED_ROUTER #define CONFIG_IP_ADVANCED_ROUTER
CONFIG_RTNETLINK #define CONFIG_RTNETLINK
CONFIG_NETLINK #define CONFIG_NETLINK
CONFIG_IPV6 (required for IPv6) #define CONFIG_IPV6 Required for IPv6.
CONFIG_PACKET #define CONFIG_PACKET 1
CONFIG_IP_PIMSM_V2 #define CONFIG_IP_PIMSM_V2 1 Required for ZebOS PIM-SM.
Installation on Linux Systems
©2001-2005 IP Infusion Inc. Confidential 5
eth0 Link encap:Ethernet HWaddr 00:B0:D0:DA:92:37 inet addr:10.10.0.21 Bcast:10.10.0.255 Mask:255.255.255.0 inet6 addr: fe80::2b0:d0ff:feda:9237/10 Scope:Link inet6 addr: fec0::3333:b0:b0:92:37/10 Scope:Site UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:1 frame:0 TX packets:133 errors:0 dropped:0 overruns:0 carrier:132 collisions:0 txqueuelen:100 Interrupt:5 Base address:0xec00
5. To add an IPv6 address to an interface, use the following command:ifconfig ifname add address/prefixlength
Following is an example adding a site-local address of prefix length 10.
router# ifconfig eth0 add fec0::3333:b0:b0:92:37/10
6. To validate the IPv6 configuration, verify the routing table of the Linux box by using the following command:router# netstat -rn -A inet6
Sample output showing the Kernel IPv6 Routing Table:
Destination NextHop Flags Metric Ref Use Iface
::1/128 :: U 0 0 0 lo
3ffe:501:ffff:1002::1/128 :: U 0 0 0 lo
3ffe:501:ffff:1002::/64 :: UA 256 0 0 eth0
fe80::250:56ff:fe01:0/128 :: U 0 0 0 lo
fe80::2b0:d0ff:feda:9237/128 :: U 0 13420 1 lo
fe80::a00:20ff:fefd:5dad/128 fe80::a00:20ff:fefd:5dad UAC 0 3 0 eth0
fe80::/10 :: UA 256 0 0 eth0
fe80::/10 :: UA 256 0 0 vmnet1
fe80::/10 :: UA 256 0 0 vmnet2
ff02::5/128 ff02::5 UAC 0 361 1 eth0
ff00::/8 :: UA 256 0 0 eth0
ff00::/8 :: UA 256 0 0 vmnet1
ff00::/8 :: UA 256 0 0 vmnet2
Installation on Linux Systems
6 ©2001-2005 IP Infusion Inc. Confidential
Special Considerations
Layer-2 Software ForwarderMake sure to enable the following configuration option to use the Software Forwarder provided by IPI:
--enable-hal--enable-swfwdr
MPLS ForwarderMake sure to enable the following configuration option to use the MPLS Forwarder provided by IPI:
--enable-mpls-fwd
Multicast ForwarderSince the mroute.h file that comes with Red Hat Linux is incomplete, an updated mroute.h file is required to compile the ZebOS multicast protocols. Before compiling any ZebOS multicast module (PIM-SM, PIM-DM, DVMRP) on a Red Hat Linux distribution, download a standard kernel from www.kernel.org, and copy the mroute.h file from the <Standard Linux Source Path>/include/linux/mroute.h to the /usr/include/linux directory. If you have already copied the mroute.h file to the /usr/include/linux directory for an earlier release, skip this section.
Note: The mroute.h file is not required for running the ZebOS multicast modules. It is required only for their compilation.
• Make a copy of the mroute.h file, and save it with a different name:
mv /usr/include/linux/mroute.h /usr/include/linux/mroute.h.orig
• Copy the mroute.h file to the /usr/include/linux directory:
cp mroute.h /usr/include/linux
VPN (Virtual Private Network)• To build the VPN feature, and enable VRF, enable the following options while compiling:
--enable-netlink
--enable-vrf
--enable-mpls-fwd (applicable only when using ZebOS MPLS Forwarder)
• To establish a Virtual Private Network, BGP, OSPF (or RIP), LDP and the NSM daemon must be running.
VR (Virtual Routing)• For Virtual Routing, enable the following options while compiling:
--enable-vr
• Enabling VR automatically enables VRF support for the NSM, as well as, the VR support for LIB, NSM, OSPF and BGP.
Installation on Linux Systems
©2001-2005 IP Infusion Inc. Confidential 7
Setting up the System for Virtual Routing Ensure that your Linux system is installed with all of the Advanced Routing options turned on. For testing purposes, it is also useful to ensure that the IPROUTE2 utility package is installed.
Installing ZebOS ARSInstalling the ZebOS ARS on a Linux system consists of uncompressing the source files from the tar ball, compiling the source, and installing the object files. After the installation process is complete, the build engine copies the executables to /usr/local/sbin and sample configurations to /usr/local/etc.
Uncompressing ZebOS ARSPerform the following steps before beginning the installation process.
1. Log on as root user.
Note: The operating system displays an error message when certain steps are attempted by a non-root user.
2. Create a working directory, for example /var/ipi:mkdir /var/ipi
3. Change to the directory that has the ZebOS tarball.
4. Copy the software to a working directory:
cp TARFILE /var/ipi
TARFILE = ZebOSxxx.date.platform.customer-name.tar.gz
where xxx is the current ZebOS ARS version number. For example, the following name is for ZebOS version 7.2.1, dated 04/04/05, Linux platform, and a company named Sample:
ZebOS721.040405.linux.Sample.tar.gz
5. Extract the ZebOS software from the tarball:tar -xvzf TARFILE
where TARFILE is the name of the ZebOS tar file. Refer to the explanation above.
Note: For information on uncompressing ZebOS source files from a CD-ROM, contact [email protected].
Applying Kernel PatchesMake sure to apply the required patches to the kernel before configuring the build environment for ZebOS. Refer to the Applying Kernel Patches appendix for a list of all the patches available and instructions on how to apply patches.
Before Configuring the Build Environment Make sure to read this section before configuring the ZebOS build environment.
Installation on Linux Systems
8 ©2001-2005 IP Infusion Inc. Confidential
IMPORTANT INFORMATION
To assist users in compiling ZebOS, and to troubleshoot compilation issues, IPI provides the following files with the ZebOS ARS software:
config.sh enables and disables configuration options depending on the ZebOS modules purchased. It is a unique script that is used for generating the software delivered to you. IPI strongly recommends verifying the enabled/disabled configuration options in your software before configuring the ZebOS build environment.
Note: The configure shell script attempts to determine correct values for various system-dependent variables used during compilation. It might create one or more .h files containing system-dependent definitions.
compile.out contains compiler output (useful mainly for debugging).
config.log contains messages generated by the compiler when the configure shell script (config.sh) is run.
builds.log contains the Bill of Materials (BOM). This includes information about the relevant operating system, shipped protocols, directory structure, and files delivered.
Configuring the Build EnvironmentYou can configure the ZebOS build environment manually, or run the config.sh script provided by IPI.
The ZebOS configuration script automatically detects most host configurations. Perform the following steps to configure the build environment. Running configure, takes some time. While running, the script generates messages explaining which features it is checking.
Running config.sh
1. Make sure to verify that all enabled and disabled configure options match with your requirements. Refer to the Before Configuring the Build Environment section above for more details about the config.sh script.
2. Change to the directory containing the package's source code.cd ZebOS
3. Set the variable, IP_ZEBOS_PLATFORM to the Linux platform. This step is not mandatory, but recommended.export IPI_ZEBOS_PLATFORM=linux
4. At the command prompt, type the following to run the config.sh script provided by IPI:
./config.sh
Running this script executes the configure command, and enables/disables configuration options, depending on the ZebOS modules purchased.
Configuring Manually
If you decide to select configure options manually, make sure to verify the config.sh script before you start configuring. Remember that there are certain options that are already enabled in the software provided to you.
1. Change to the directory containing the package's source code.cd ZebOS
2. Set the variable IP_ZEBOS_PLATFORM to the Linux platform. This step is not mandatory, but recommended.export IPI_ZEBOS_PLATFORM=linux
3. Choose the configure options to be disabled. Refer to the config.sh script to view the list of options enabled by default.
4. Choose the configure options to be enabled from the list provided in the Building the Configuration Options section. Certain configure options have dependencies, and if all the required options are not enabled with a protocol
Installation on Linux Systems
©2001-2005 IP Infusion Inc. Confidential 9
module, you might get an error when you run the make command. For example, if you have enabled the OSPFv6 option, not enabled the IPv6 option, and run the make command, you might see:
[root@bb2]# make ospf6d nsm Make aborted : Unable to find ../../ospf6d/Makefile make: *** [ospf6d] Error 1
5. Configure the package for the system: ./configure <options>
where <options> are any build configuration options that you have chosen to enable or disable. For example, --enable-nsm, --disable-ipv6.
The following sample demonstrates how the system responds:
[root@db1]# cd ZebOS-7.2[root@db1 ZebOS-7.2]# ./configurecreating cache ./config.cachechecking for a BSD compatible install... /usr/bin/install -cchecking whether build environment is sane... yeschecking whether make sets ${MAKE}... yeschecking for working aclocal... foundchecking for working autoconf... foundchecking for working automake... foundchecking for working autoheader... foundchecking for working makeinfo... found
....
ZebOS configuration-------------------ZebOS version : 7.2Build number : 10122003host operating system : linux-gnusource code location : .compiler : gcccompiler flags : -g -O2directory for pid files : /var/run
Building the Configuration OptionsBefore using the configure command, use this list to determine the configuration options required for this installation. Specify any combination of these options when invoking the configure script. The default settings are derived from the >$OPTIONS_FILE list in the configure script.
Please note that options noted as (Default) are defaults for the most common features of ZebOS. To disable a feature for any reason, including not having purchased a feature, use the disable option for that feature.
BGP
Option flag Description
--enable-bgpd Build the BGP daemon bgpd. (Default Linux)
--disable-bgpd Do not build BGP daemon bgpd.
Installation on Linux Systems
10 ©2001-2005 IP Infusion Inc. Confidential
Hardware Integration
IMI
--enable-bgp-announce Build bgpd with the Route Announcement feature. (Default)
--disable-bgp-announce Build bgpd without the Route Announcement feature. This feature is suited for using bgpd as the BGP announcement listener.
Option flag Description
--enable-broadcom Build the Broadcom Hardware Services Layer.
--disable-broadcom Do not build the Broadcom Hardware Services Layer.
--enable-hal Build the Hardware Abstraction Layer (HAL).
--disable-hal Do not build the Hardware Abstraction Layer (HAL).
Option flag Description
--disable-acl Disable ACL for Basic Access.
--enable-basic-access Enable the Basic Access features (DHCP, DNS, NAT and ACL).
--enable-dhcp-client Enable the DHCP client for IMI.
--disable-dhcp-client Disable the DHCP client for IMI. (Default)
--enable-dhcp-server Enable the DHCP server for IMI.
--disable-dhcp-server Disable the DHCP server for IMI. (Default)
--enable-dhcp-update-style Enable the DHCP server update style.
--disable-dhcp-update-style Disable the DHCP server update style. (Default)
--enable-dns-client Enable the DNS client for IMI.
--disable-dns-client Disable the DNS client for IMI. (Default)
--enable-imi Enable the Integrated Management Interface (IMI). Enabling IMI does not enable IMISH automatically.
--disable-imi Disable the Integrated Management Interface. (Default)
--enable-imish Enable Integrated Management Interface (IMI) and IMI Shell (IMISH).
--disable-imish Disable IMI Shell (IMISH). (Default)
--enable-imi-sysconfig Enable Read system configurations on startup.
--disable-imi-sysconfig Disable Read system configurations on startup. (Default)
--enable-nat Enable Network Address Translation for IMI.
--disable-nat Disable Network Address Translation for IMI. (Default)
Option flag Description
Installation on Linux Systems
©2001-2005 IP Infusion Inc. Confidential 11
IPv6
IS-IS
Label Distribution Protocol (LDP)
Layer-2
--disable-ntp Disable Network Time Protocol.
--enable-pppoe-client Enable the PPPoE client for IMI.
--disable-pppoe-client Disable the PPPoE client for IMI. (Default)
Option flag Description
--enable-ipv6 Enable the IPv6 related features and daemons. (Default)
--disable-ipv6 Disable the IPv6 related features and daemons.
--enable-ipv6-transit Enable IPv4 to IPv6 transition
--disable-ipv6-transit Enable IPv4 to IPv6 transition
--enable-mip6 Enable the Mobile IPv6 feature. (Default)
--disable-mip6 Disable the Mobile IPv6 feature.
Option flag Description
--enable-isisd Build the ISIS daemon. (Default Linux)
--disable-isisd Do not build the ISIS daemon.
--enable-multi-topology Enable IS-IS multi-topology support.
--disable-multi-topology Disable IS-IS multi-topology support. (Default)
Option flag Description
--enable-ldpd Enable the LDP daemon. (Default Linux)
--disable-ldpd Do not build LDP daemon
Option flag Description
--enable-authd Make the 802.1x authentication module.
--disable-authd Do not make the 802.1x authentication module (Default)
--enable-gmrp Make the GARP Multicast Registration Protocol (GMRP) feature.
--disable-gmrp Do not make the GMRP feature. (Default)
--enable-gvrp Make the GARP VLAN Registration Protocol (GVRP) feature.
Option flag Description
Installation on Linux Systems
12 ©2001-2005 IP Infusion Inc. Confidential
Memory Manager
MPLS
--disable-gvrp Do not make the GVRP feature. (Default)
--enable-igmp-snoop Enable the Internet Group Management Protocol (IGMP) snooping) feature.
--disable-igmp-snoop Disable the IGMP snooping feature. (Default)
--enable-lacpd Make the Link Aggregation Control Protocol (LACP).
--disable-lacpd Do not make the LACP. (Default)
--enable-mstpd Make the Multiple Spanning Tree Protocol (MSTP).
--disable-mstpd Do not make the MSTP. (Default)
--enable-rate-limit Enable the rate limiting feature (broadcast storm control command and feature).
--disable-rate-limit Disable the rate limiting feature.
--enable-rstpd Make the Rapid Spanning Tree Protocol (RSTP).
--disable-rstpd Do not make the RSTP. (Default)
--enable-stpd Make the Spanning Tree Protocol (STP).
--disable-stpd Do not make STP. (Default)
--enable-swfwdr Enable the Layer 2 software forwarder.
--disable-swfwdr Disable the Layer 2 software forwarder.(Default)
--enable-vlan Enable VLAN-aware bridging with either STP, RSTP, or MSTP.
--disable-vlan Disable VLAN-aware bridging.
--enable-wmi Enable Web Management Interface (the ZebOS Element Manager).
--disable-wmi Disable Web Management Interface (the ZebOS Element Manager).
Option flag Description
--enable-memmgr Enable the use of all allocation methods for various mtypes.
--disable-memmgr Disable allows only the heap method. (Default)
Option flag Description
--enable-diffserv Enable MPLS Diffserv support.
--disable-diffserv Disable MPLS Diffserv support. (Default)
--enable-dste Enable MPLS Diffserv TE support.
--disable-dste Enable MPLS Diffserv TE support. (Default)
Option flag Description
Installation on Linux Systems
©2001-2005 IP Infusion Inc. Confidential 13
Multicast
--enable-mpls Enable the MPLS (Multi Protocol Label Switching) feature. This option, supported in NSM, is automatically turned on if any of the MPLS-specific options (LDP, RSVP, MPLS-VC, VPLS, MPLS Forwarder, VRF, CSPF and TE) are selected.
--disable-mpls Disable the MPLS (Multi Protocol Label Switching) feature supported in the NSM. (Default) Do not disable the MPLS with this option if any MPLS options are selected.
--enable-mpls-frr Enable the Fast Reroute feature of RSVP-TE.
--disable-mpls-frr Disable the Fast Reroute feature of RSVP-TE. (Default)
--enable-mpls-fwd Enable the MPLS (Multi Protocol Label Switching) forwarder support.
--disable-mpls-fwd Disable the MPLS (Multi Protocol Label Switching) forwarder support. (Default)
--enable-mpls-vc Enable the MPLS-based Virtual Circuit feature.
--disable-mpls-vc Disable the MPLS-based Virtual Circuit feature. (Default)
--enable-vpls Enable the MPLS based Virtual Private LAN Service (VPLS) feature.
--disable-vpls Disable the MPLS based VPLS feature. (Default)
Option flag Description
--enable-dvmrpd Build the Distance Vector Multicast Routing Protocol (DVMRP) daemon (Default).
--disable-dvmrpd Do not build the DVMRP daemon.
--enable-mcast-ipv4 Enable IPv4 MRIB (Multicast Routing Information Base) in NSM.
--disable-mcast-ipv4 Disable IPv4 MRIB (Multicast Routing Information Base) in NSM. (Default)
--enable-mcast-ipv6 Enable IPv6 MRIB (Multicast Routing Information Base) in NSM.
--disable-mcast-ipv6 Disable IPv6 MRIB (Multicast Routing Information Base) in NSM. (Default)
--enable-pimd Build the PIM-SM daemon (Default).
--disable-pimd Do not build the PIM-SM daemon.
--enable-pim6d Build the PIM-SMv6 daemon. (Default)
--disable-pim6d Do not build the PIM-SMv6 daemon.
--enable-pdmd Build the PIM-DM daemon. (Default)
--disable-pdmd Do not build the PIM-DM daemon.
Option flag Description
Installation on Linux Systems
14 ©2001-2005 IP Infusion Inc. Confidential
OSPF
RIP
System Options
Option flag Description
--enable-ospfd Build the OSPF daemon. (Default Linux)
--disable-ospfd Do not build the OSPF daemon.
--enable-ospf6d Build the OSPF6 daemon. (Default Linux with IPv6)
--disable-ospf6d Do not build the OSPF6 daemon.
--enable-pece-ospf Adds support for draft-ishiguro-ppvpn-pe-ce-ospf-01.txt, which specifies the method of using multiple instances of OSPF on the PE to CE link to support multiple customer networks, when provisioning BGP-MPLS VPNs. Linux only.
--disable-pece-ospf Disable support for draft-ishiguro-ppvpn-pe-ce-ospf-01.txt. (Default) Linux only.
Option flag Description
--enable-pece-rip Enable RIP as the CE/PE protocol to support VPN. Linux only.
--disable-pece-rip Disable RIP as the CE/PE protocol. (Default) Linux only.
--enable-ripd Build the RIP daemon. (Default Linux)
--disable-ripd Do not build RIP daemon.
--enable-ripngd Build the RIPng daemon. (Default Linux with IPv6)
--disable-ripngd Do not build RIPng daemon.
Option flag Description
--enable-bigendian Enable Big Endian support.
--disable-bigendian Disable Big Endian support.
--enable-hostname-change Enable the changing hostname through hostname command. Linux only.
--disable-hostname-change Disable the host name change feature. (Default) Linux only.
--enable-restart Enable Graceful and Hitless Restart features.
--disable-restart Disable Graceful and Hitless Restart features. (Default)
--enable-static Enable linking of the library statically. Prevents linking with the shared libraries (on systems supporting dynamic linking).
--disable-static Disable linking of the library statically. (Default)
--with-ipnet2 Use IPNet for IPv6 support.
Installation on Linux Systems
©2001-2005 IP Infusion Inc. Confidential 15
Traffic Engineering
Virtual Routing/Forwarding
VRRP
ZebOS (NSM) Daemon
Option flag Description
--enable-isis-cspf Enable the CSPF feature and all the TE options for ISIS.
--disable-isis-cspf Disable the CSPF feature and all the TE options for ISIS. (Default)
--enable-ospf-cspf Enable the CSPF feature and all the TE options for OSPF.
--disable-ospf-cspf Disable the CSPF feature and all the TE options for OSPF. (Default)
--enable-rsvpd Enable the RSVP daemon. (Default Linux)
--disable-rsvpd Do not build the RSVP daemon.
--enable-te Enable TE for IS-IS, OSPF, RSVP, and QoS Module Stub in the NSM.
--disable-te Disable TE support. (Default)
Option flag Description
--enable-vrf To enable the VRF feature.
Note: If you have Enabled VR, you do not need to Enable VRF. Enabling VR automatically enables VRF support.
--disable-vrf To disable the VRF feature.(Default)
Option flag Description
--enable-vrrp Enable Virtual Router Redundancy Protocol (VRRP). When used alone, this enables the RFC 2338 compliant version
--enable-vrrp-vmac Enable VRRP Virtual MAC address. This flag is enabled by default. Disable on platforms which have only one unicast MAC address for an interface. To disable this feature: --disable-vrrp-vmac.
--disable-vrrp Disable Virtual Router Redundancy Protocol (VRRP). (Default)
Option flag Description
--enable-agentx Enable AgentX protocol. The --enable-snmp configuration option is a prerequisite for this option.
--disable-agentx Disable AgentX protocol. (Default)
--enable-flash Enable flash.
--disable-flash Disable flash. (Default)
--enable-if-unnumbered Enable the NSM IPv4/IPv6 unnumbered interface feature.
Installation on Linux Systems
16 ©2001-2005 IP Infusion Inc. Confidential
Compiling the SoftwareAfter configuring the build environment, set the environment variable.
1. Change directory to: cd platform/linux
2. Run the make clean utility:make clean
3. Run the make utility. You can use make all for all available modules, or just make specific protocols by specifying the protocols. Note that make install, implies make all:
make <protocol>|allmake bgpdmake install
Note: If you have chosen to make independent modules, and not run the make all or make install command, run the make all-mpls command to build the MPLS Forwarder.
--disable-if-unnumbered Disable the NSM IPv4/IPv6 unnumbered interface feature. (Default)
--enable-ipv4-tunnel Enable IPv4 tunneling
--disable-ipv4-tunnel Disable IPv4 tunneling (Default)
--enable-multiple-fib Enable the Multiple FIB kernel support.
--disable-multiple-fib Disable the Multiple FIB kernel support. (Default)
--enable-netlink Enable GNU/Linux-NetLink interface. The ZebOS configure script detects the NetLink interface by checking the header file. When the header file does not match to the current running kernel, the configure script will not turn on NetLink support.
--disable-netlink Disable the NetLink interface. (Default)
--enable-nsm Build the NSM daemon. (Default)
--disable-nsm Do not build the NSM daemon.
--enable-rtadv Enable the Router Advertisement feature. (Default)
--disable-rtadv Disable the Router Advertisement feature.
--enable-snmp Enable SNMP support for: bgp, isis, ldp, nsm, ospfd, pim, ripd. (Default)
--disable-snmp Disable SNMP support.
--enable-tcp-message Enable TCP/IP socket connection between daemons.
--disable-tcp-message Disable TCP/IP socket connection between daemons. (Default)
--prefix=PREFIX Installs all binaries in PREFIX/sbin.For example --prefix=abc/myfile installs all binaries in abc/myfile/sbin and the configuration files in /abc/myfile/etc. By default, the executable files are in /usr/local/sbin and the configuration files in /usr/local/etc.
Option flag Description
Installation on Linux Systems
©2001-2005 IP Infusion Inc. Confidential 17
The makefile displays the available make targets. You can make these targets in individual directories by entering make target-directory. For example:
make all-palmake all-libmake nsm
The following is a list of the makefile commands:
4. Daemons are created in the platform/linux/bin directory.
Building Kernel Modules
Building Layer-2 Kernel Module
1. Make sure you have enabled the following configuration option if you want to use the Software Forwarder provided by IPI.
--enable-hal--enable-swfwdr
2. After configuring the build environment, change directory:cd platform/linux
3. Enable the following make utility to build the Layer-2 module:make all-layer2
This builds a layer2_module.o file under the platform/linux/bin directory.
4. Install the Layer-2 module using the following command in the platform/linux/bin directory:insmod layer2-module.o
5. Run the following command to ensure that the Layer-2 kernel module is gracefully removed in the event of a reboot or shutdown:
rmmod layer-2-module.o
Building MPLS Kernel Module
1. Make sure you have enabled the following configuration option if you want to use the MPLS Forwarder provided by IPI.
--enable-mpls-fwd
Make Targets Function Comments
distclean removes all working files not in distribution Applies only at the top level
install installs binaries and samples (makes first) Applies only at the top level
all makes all available modules Applies to the top level and to all available modules
dep makes all dependencies Applies to the top level and to all available modules
forcedep forces all dependencies to be remade Applies to the top level and to all available modules
clean cleans up from a previous make Applies to the top level and to all available modules
protocol makes the specified protocol daemon nsm, bgpd, isisd, ospfd, ospf6d, pimd, ripd, ldpd, ripngd, imish and rsvpd
Installation on Linux Systems
18 ©2001-2005 IP Infusion Inc. Confidential
2. After configuring the build environment, change directory:cd platform/linux
3. Make sure you have run the following make utility to build the MPLS module:
make all
make all-mpls (if you do not want to run make all)
This builds an mpls_module.o file under the platform/linux/bin directory.
4. Install the MPLS module using the following command in the platform/linux/bin directory:insmod mpls_module.o
5. Run the following command to ensure that the MPLS Forwarder kernel module is gracefully removed in the event of a reboot or shutdown:
rmmod mpls_module.o
©2001-2005 IP Infusion Inc. Confidential 19
CHAPTER 3 Installation on MontaVista-Linux Systems
OverviewThis chapter describes the system requirements, installation, and compilation of ZebOS Advanced Routing Suite (ZebOS ARS) on MontaVista-Linux systems. When finished with the tasks in this chapter, continue with the Initial Daemon Configuration chapter.
For a first-time installation, perform all steps. As the system expands, compile the software, and make the target. For more information on customizing, refer to the ZebOS Developer Guides. Refer to Appendix A for an illustration of the complete ZebOS Directory Structure.
Note: The installation is not shell dependent; use any convenient Linux shell.
ZebOS daemons on MontaVista Linux platformsZebOS daemons supported on MontaVista Linux Professional Edition 3.1:
• bgpd manages the BGP4 (Border Gateway Protocol) protocol.
• ripd manages the RIPv1, v2 (Routing Information Protocol).
• ospfd manages the OSPFv2 (Open Shortest Path First) and the CSPF (Constrained Shortest Path First) protocols.
• ldpd manages the LDP (Label Distribution Protocol) and the Layer-2 Virtual Circuit module.
• rsvpd manages the RSVP-TE (Resource Reservation Protocols-Traffic Engineering) protocol.
• isisd manages the ISIS (Intermediate System to Intermediate System) protocol.
• pimd manages the PIM-SM (Protocol Independent Multicasting - Sparse Mode) protocol.
• pdmd manages the PIM-DM (Protocol Independent Multicasting - Dense Mode) protocol.
• dvmrpd manages the DVMRP (Distance Vector Multicast Routing) protocol.
• nsm updates the kernel routing table, redistributes routing information between the protocol modules listed above, and manages the VR and VRRP modules.
The following ZebOS daemons support the IPv6 network protocols on MontaVista platforms:
• ripngd manages the RIPng protocol.
• ospf6d manages the OSPFv3 protocol.
• bgpd manages the BGP4+ protocol
Installation on MontaVista-Linux Systems
20 ©2001-2005 IP Infusion Inc. Confidential
Before Installing ZebOS Before beginning ZebOS installation on MontaVista Linux, look in autoconf.h (in the installed kernel directory) to ensure that the Linux kernel has the following kernel options:
ZebOS uses the Netlink socket for communicating with the kernel.
Hardware Platform Preparation
Compilation Environment (minimum requirement)• make version 3.79.1
• gcc version 3.2.x or higher
• autoconf version 2.54
IPv4 Stack InstallationThe IPv4 stack is already enabled as a basic component of most Linux systems.
IPv6 Stack Installation
1. Enable the following Linux kernel Networking options:The IPv6 protocol (EXPERIMENTAL)IPv6: enable EUI-64 token format (NEW)IPv6: disable provider based addresses (NEW)
2. Build the kernel.
Special Considerations
Layer-2 Software ForwarderMake sure to enable the following configuration option to use the Software Forwarder provided by IPI:
Option Entry (in autoconf.h) Notes
CONFIG_IP_MULTICAST #define CONFIG_IP_MULTICAST
CONFIG_IP_ADVANCED_ROUTER #define CONFIG_IP_ADVANCED_ROUTER
CONFIG_RTNETLINK #define CONFIG_RTNETLINK This option is not required for MontaVista.
CONFIG_NETLINK #define CONFIG_NETLINK
CONFIG_IPV6 (required for IPv6) #define CONFIG_IPV6 Required for IPv6.
CONFIG_PACKET #define CONFIG_PACKET 1
CONFIG_IP_PIMSM_V2 #define CONFIG_IP_PIMSM_V2 1 Required for ZebOS PIM-SM.
Installation on MontaVista-Linux Systems
©2001-2005 IP Infusion Inc. Confidential 21
--enable-hal--enable-swfwdr
MontaVista-IPNetMake sure to enable the following configuration option to enable IPNet for IPv6 support on MontaVista systems:
--with-ipnet2
For installing ZebOS on MontaVista-IPNet, you can use the instructions in this chapter, but make sure to refer to the following Readme file for IPNet-specific instructions:
ZebOS5/kernel/montavista/IPCOM-LKM-HOWTO.TXT
MPLS ForwarderMake sure to enable the following configuration option to use the MPLS Forwarder provided by IPI:
--enable-mpls-fwd
VPN (Virtual Private Network)• To build the VPN feature and to enable VRF, enable the following options while compiling:
--enable-netlink
--enable-vrf
--enable-mpls-fwd (applicable only when using ZebOS MPLS Forwarder)
• To establish a Virtual Private Network, BGP, OSPF (or RIP), LDP and the NSM daemon are required to be running.
VR (Virtual Routing)• For Virtual Routing, enable the following options while compiling:
--enable-vr
• Enabling VR automatically enables VRF support for the NSM, as well as, the VR support for LIB, NSM, OSPF and BGP.
Setting up the System for Virtual Routing Ensure that your Linux system is installed with all of the Advanced Routing options turned on. For testing purposes, it is also useful to ensure that the IPROUTE2 utility package is installed.
Installing ZebOS ARSInstalling the ZebOS ARS on a Linux system consists of uncompressing the source files from the tar ball, compiling the source, and installing the object files. After the installation process is complete, the build engine copies the executables to /usr/local/sbin and sample configurations to /usr/local/etc.
Uncompressing ZebOS ARSPerform the following steps before beginning the installation process.
Installation on MontaVista-Linux Systems
22 ©2001-2005 IP Infusion Inc. Confidential
1. Log on as root user.
Note: The operating system displays an error message when certain steps are attempted by a non-root user.
2. Create a working directory, for example, /var/ipi.mkdir /var/ipi
3. Change to the directory that has the ZebOS tarball.
4. Copy the software to a working directory:
cp TARFILE /var/ipi
TARFILE = ZebOSxxx.date.platform.customer-name.tar.gz
where xxx is the current ZebOS ARS version number. For example, the following name is for ZebOS version 7.2.1, dated 04/04/05, Linux platform, and a company named Sample:
ZebOS721.040405.linux.Sample.tar.gz
5. Extract the ZebOS software from the tarball:
tar -xvzf TARFILE
where TARFILE is the name of the ZebOS tar file. Refer to the explanation above.
Note: For information on uncompressing ZebOS source files from a CD-ROM, contact [email protected].
Applying Kernel PatchesMake sure to apply required patches to the kernel before configuring the build environment for ZebOS. Refer to the Applying Kernel Patches appendix for a list of all patches available, and instructions on how to apply patches.
Before Configuring the Build Environment Make sure to read this section before configuring the ZebOS build environment.
IMPORTANT INFORMATION
To assist users in compiling ZebOS, and to troubleshoot compilation issues, IPI provides the following files with the ZebOS ARS software:
config.sh enables and disables configuration options, depending on the ZebOS modules purchased. It is a unique script that is used for generating the software delivered to you. IPI strongly recommends verifying the enabled/disabled configuration options in your software before configuring the ZebOS build environment.
Note: The configure shell script attempts to determine correct values for various system-dependent variables used during compilation. It might create one or more .h files containing system-dependent definitions.
compile.out contains compiler output (useful mainly for debugging).
config.log contains messages generated by the compiler when the configure shell script (config.sh) is run.
builds.log contains the Bill of Materials (BOM). This includes information about the relevant operating system, shipped protocols, directory structure, and files delivered.
Configuring the Build EnvironmentYou can choose to configure the ZebOS build environment manually, or decide to run the config.sh script provided by IPI.
Installation on MontaVista-Linux Systems
©2001-2005 IP Infusion Inc. Confidential 23
The ZebOS configuration script automatically detects most host configurations. Perform the following steps to configure the build environment. Running configure takes some time. While running, the script generates messages explaining which features it is checking.
Running config.sh
1. Make sure to verify all enabled and disabled configure options match with your requirements. Refer to the Before Configuring the Build Environment section above for more details about the config.sh script.
2. Change to the directory containing the package's source code.cd ZebOS
3. Set the variable, IP_ZEBOS_PLATFORM to the Linux platform. This step is not mandatory, but recommended.export IPI_ZEBOS_PLATFORM=linux
4. Type the following at the command prompt to run the config.sh script provided by IPI:
./config.sh
Running this script executes the configure command, and enables/disables configuration options depending on ZebOS modules that you have purchased.
Configuring Manually
If you decide to select configure options manually, make sure to verify the config.sh script before you start configuring. Remember, there are some options that are already enabled in the software provided to you.
1. Change to the directory containing the package's source code.cd ZebOS
2. Set the variable, IP_ZEBOS_PLATFORM to the Linux platform. This step is not mandatory, but recommended.export IPI_ZEBOS_PLATFORM=linux
3. Choose the configure options to be disabled. Refer to the config.sh script to view the list of options enabled by default.
4. Choose the configure options to be enabled from the provided list in the Building the Configuration Options section. Some configure options have dependencies, and if all of the required options are not enabled with a protocol module, you might get an error when you run the make command. For example, if you have enabled the OSPFv6 option, not enabled the IPv6 option, and run the make command, you might see:
[root@bb2]# make ospf6d nsm Make aborted : Unable to find ../../ospf6d/Makefile make: *** [ospf6d] Error 1
5. Configure the package for the system: ./configure <options>
where <options> are any build configuration options that you have chosen to enable or disable. For example, --enable-nsm, --disable-ipv6.
The following sample demonstrates how the system responds:
[root@db1]# cd ZebOS-7.2[root@db1 ZebOS-7.2]# ./configurecreating cache ./config.cachechecking for a BSD compatible install... /usr/bin/install -cchecking whether build environment is sane... yeschecking whether make sets ${MAKE}... yeschecking for working aclocal... found
Installation on MontaVista-Linux Systems
24 ©2001-2005 IP Infusion Inc. Confidential
checking for working autoconf... foundchecking for working automake... foundchecking for working autoheader... foundchecking for working makeinfo... found
....
ZebOS configuration-------------------ZebOS version : 7.2Build number : 10122003host operating system : linux-gnusource code location : .compiler : gcccompiler flags : -g -O2directory for pid files : /var/run
Building the Configuration OptionsBefore using the configure command, use this list to determine the configuration options required for this installation. Specify any combination of these options when invoking the configure script. The default settings are derived from the >$OPTIONS_FILE list in the configure script.
Note: Options noted as (Default) are defaults for the most common features of ZebOS. To disable a feature for any reason, including not having purchased a feature, use the disable option for that feature.
BGP
Hardware Integration
Option flag Description
--enable-bgpd Build the BGP daemon bgpd. (Default Linux)
--disable-bgpd Do not build BGP daemon bgpd.
--enable-bgp-announce Build bgpd with the Route Announcement feature. (Default)
--disable-bgp-announce Build bgpd without the Route Announcement feature. This feature is suited for using bgpd as the BGP announcement listener.
Option flag Description
--enable-broadcom Build the Broadcom Hardware Services Layer.
--disable-broadcom Do not build the Broadcom Hardware Services Layer.
--enable-hal Build the Hardware Abstraction Layer (HAL).
--disable-hal Do not build the Hardware Abstraction Layer (HAL).
Installation on MontaVista-Linux Systems
©2001-2005 IP Infusion Inc. Confidential 25
IMI
IPv6
Option flag Description
--disable-acl Disable ACL for Basic Access.
--enable-basic-access Enable the Basic Access features (DHCP, DNS, NAT and ACL).
--enable-dhcp-client Enable the DHCP client for IMI.
--disable-dhcp-client Disable the DHCP client for IMI. (Default)
--enable-dhcp-server Enable the DHCP server for IMI.
--disable-dhcp-server Disable the DHCP server for IMI. (Default)
--enable-dhcp-update-style Enable the DHCP server update style.
--disable-dhcp-update-style Disable the DHCP server update style. (Default)
--enable-dns-client Enable the DNS client for IMI.
--disable-dns-client Disable the DNS client for IMI. (Default)
--enable-imi Enable the Integrated Management Interface (IMI). Enabling IMI does not automatically enable IMISH.
--disable-imi Disable the Integrated Management Interface. (Default)
--enable-imish Enable Integrated Management Interface (IMI) and IMI Shell (IMISH).
--disable-imish Disable IMI Shell (IMISH). (Default)
--enable-imi-sysconfig Enable Read system configurations on startup.
--disable-imi-sysconfig Disable Read system configurations on startup. (Default)
--enable-nat Enable Network Address Translation for IMI.
--disable-nat Disable Network Address Translation for IMI. (Default)
--disable-ntp Disable Network Time Protocol.
--enable-pppoe-client Enable the PPPoE client for IMI.
--disable-pppoe-client Disable the PPPoE client for IMI. (Default)
Option flag Description
--enable-ipv6 Enable the IPv6 related features and daemons. (Default)
--disable-ipv6 Disable the IPv6 related features and daemons.
--enable-ipv6-transit Enable IPv4 to IPv6 transition
--disable-ipv6-transit Enable IPv4 to IPv6 transition
Installation on MontaVista-Linux Systems
26 ©2001-2005 IP Infusion Inc. Confidential
IS-IS
Label Distribution Protocol (LDP)
Layer-2
--enable-mip6 Enable the Mobile IPv6 feature. (Default)
--disable-mip6 Disable the Mobile IPv6 feature.
Option flag Description
--enable-isisd Build the ISIS daemon. (Default Linux)
--disable-isisd Do not build the ISIS daemon.
--enable-multi-topology Enable IS-IS multi-topology support.
--disable-multi-topology Disable IS-IS multi-topology support. (Default)
Option flag Description
--enable-ldpd Enable the LDP daemon. (Default Linux)
--disable-ldpd Do not build LDP daemon
Option flag Description
--enable-authd Make the 802.1x authentication module.
--disable-authd Do not make the 802.1x authentication module (Default)
--enable-gmrp Make the GARP Multicast Registration Protocol (GMRP) feature.
--disable-gmrp Do not make the GMRP feature. (Default)
--enable-gvrp Make the GARP VLAN Registration Protocol (GVRP) feature.
--disable-gvrp Do not make the GVRP feature. (Default)
--enable-igmp-snoop Enable the Internet Group Management Protocol (IGMP) snooping) feature.
--disable-igmp-snoop Disable the IGMP snooping feature. (Default)
--enable-lacpd Make the Link Aggregation Control Protocol (LACP).
--disable-lacpd Do not make the LACP. (Default)
--enable-mstpd Make the Multiple Spanning Tree Protocol (MSTP).
--disable-mstpd Do not make the MSTP. (Default)
--enable-rate-limit Enable the rate limiting feature (broadcast storm control command and feature).
--disable-rate-limit Disable the rate limiting feature.
Option flag Description
Installation on MontaVista-Linux Systems
©2001-2005 IP Infusion Inc. Confidential 27
Memory Manager
MPLS
--enable-rstpd Make the Rapid Spanning Tree Protocol (RSTP).
--disable-rstpd Do not make the RSTP. (Default)
--enable-stpd Make the Spanning Tree Protocol (STP).
--disable-stpd Do not make STP. (Default)
--enable-swfwdr Enable the Layer 2 software forwarder.
--disable-swfwdr Disable the Layer 2 software forwarder.(Default)
--enable-vlan Enable VLAN-aware bridging with either STP, RSTP, or MSTP.
--disable-vlan Disable VLAN-aware bridging.
Option flag Description
--enable-memmgr Enable the use of all allocation methods for various mtypes.
--disable-memmgr Disable allows only the heap method. (Default)
Option flag Description
--enable-diffserv Enable MPLS Diffserv support.
--disable-diffserv Disable MPLS Diffserv support. (Default)
--enable-dste Enable MPLS Diffserv TE support.
--disable-dste Enable MPLS Diffserv TE support. (Default)
--enable-mpls Enable the MPLS (Multi Protocol Label Switching) feature. This option, supported in NSM, is automatically turned on if any of the MPLS-specific options (LDP, RSVP, MPLS-VC, VPLS, MPLS Forwarder, VRF, CSPF and TE) are selected.
--disable-mpls Disable the MPLS (Multi Protocol Label Switching) feature supported in the NSM. (Default) Do not disable the MPLS with this option if any MPLS option is selected.
--enable-mpls-frr Enable the Fast Reroute feature of RSVP-TE.
--disable-mpls-frr Disable the Fast Reroute feature of RSVP-TE. (Default)
--enable-mpls-fwd Enable the MPLS (Multi Protocol Label Switching) forwarder support.
--disable-mpls-fwd Disable the MPLS (Multi Protocol Label Switching) forwarder support. (Default)
--enable-mpls-vc Enable the MPLS-based Virtual Circuit feature.
--disable-mpls-vc Disable the MPLS-based Virtual Circuit feature. (Default)
Option flag Description
Installation on MontaVista-Linux Systems
28 ©2001-2005 IP Infusion Inc. Confidential
Multicast
OSPF
--enable-vpls Enable the MPLS based Virtual Private LAN Service (VPLS) feature.
--disable-vpls Disable the MPLS based VPLS feature. (Default)
Option flag Description
--enable-dvmrpd Build the Distance Vector Multicast Routing Protocol (DVMRP) daemon (Default).
--disable-dvmrpd Do not build the DVMRP daemon.
--enable-mcast-ipv4 Enable IPv4 MRIB (Multicast Routing Information Base) in NSM.
--disable-mcast-ipv4 Disable IPv4 MRIB (Multicast Routing Information Base) in NSM. (Default)
--enable-mcast-ipv6 Enable IPv6 MRIB (Multicast Routing Information Base) in NSM.
--disable-mcast-ipv6 Disable IPv6 MRIB (Multicast Routing Information Base) in NSM. (Default)
--enable-pimd Build the PIM-SM daemon (Default).
--disable-pimd Do not build the PIM-SM daemon.
--enable-pim6d Build the PIM-SMv6 daemon. (Default)
--disable-pim6d Do not build the PIM-SMv6 daemon.
--enable-pdmd Build the PIM-DM daemon. (Default)
--disable-pdmd Do not build the PIM-DM daemon.
Option flag Description
--enable-ospfd Build the OSPF daemon. (Default Linux)
--disable-ospfd Do not build OSPF daemon.
--enable-ospf6d Build the OSPF6 daemon. (Default Linux with IPv6)
--disable-ospf6d Do not build OSPF6 daemon.
--enable-pece-ospf Adds support for draft-ishiguro-ppvpn-pe-ce-ospf-01.txt, which specifies the method of using multiple instances of OSPF on the PE to CE link to support multiple customer networks, when provisioning BGP-MPLS VPNs. Linux only.
--disable-pece-ospf Disable support for draft-ishiguro-ppvpn-pe-ce-ospf-01.txt. (Default) Linux only.
Option flag Description
Installation on MontaVista-Linux Systems
©2001-2005 IP Infusion Inc. Confidential 29
RIP
System Options
Traffic Engineering
Option flag Description
--enable-pece-rip Enable RIP as the CE/PE protocol to support VPN. Linux only.
--disable-pece-rip Disable RIP as the CE/PE protocol. (Default) Linux only.
--enable-ripd Build the RIP daemon. (Default Linux)
--disable-ripd Do not build RIP daemon.
--enable-ripngd Build the RIPng daemon. (Default Linux with IPv6)
--disable-ripngd Do not build RIPng daemon.
Option flag Description
--enable-bigendian Enable Big Endian support.
--disable-bigendian Disable Big Endian support.
--enable-hostname-change Enable the changing host name through the hostname command. Linux only.
--disable-hostname-change Disable the host name change feature. (Default) Linux only.
--enable-restart Enable Graceful and Hitless Restart features.
--disable-restart Disable Graceful and Hitless Restart features. (Default)
--enable-static Enable linking of the library statically. Prevents linking with the shared libraries (on systems supporting dynamic linking).
--disable-static Disable linking of the library statically. (Default)
--with-ipnet2 Use IPNet for IPv6 support.
Option flag Description
--enable-isis-cspf Enable the CSPF feature and all TE options for ISIS.
--disable-isis-cspf Disable the CSPF feature and all TE options for ISIS. (Default)
--enable-ospf-cspf Enable the CSPF feature and all TE options for OSPF.
--disable-ospf-cspf Disable the CSPF feature and all TE options for OSPF. (Default)
--enable-rsvpd Enable RSVP daemon. (Default Linux)
--disable-rsvpd Do not build the RSVP daemon.
--enable-te Enable TE for IS-IS, OSPF, RSVP, and QoS Module Stub in the NSM.
--disable-te Disable TE support. (Default)
Installation on MontaVista-Linux Systems
30 ©2001-2005 IP Infusion Inc. Confidential
Virtual Routing/Forwarding
VRRP
ZebOS (NSM) Daemon
Option flag Description
--enable-vrf Enable the VRF feature.
Note: If you have Enabled VR, you do not need to Enable VRF. Enabling VR automatically enables VRF support.
--disable-vrf To Disable the VRF feature.(Default)
Option flag Description
--enable-vrrp Enable Virtual Router Redundancy Protocol (VRRP). When used alone, this enables the RFC 2338 compliant version
--disable-vrrp Disable Virtual Router Redundancy Protocol (VRRP). (Default)
Option flag Description
--enable-flash Enable flash.
--disable-flash Disable flash. (Default)
--enable-if-unnumbered Enable the NSM IPv4/IPv6 unnumbered interface feature.
--disable-if-unnumbered Disable the NSM IPv4/IPv6 unnumbered interface feature. (Default)
--enable-ipv4-tunnel Enable IPv4 tunneling
--disable-ipv4-tunnel Disable IPv4 tunneling (Default)
--enable-multiple-fib Enable the Multiple FIB kernel support.
--disable-multiple-fib Disable the Multiple FIB kernel support. (Default)
--enable-netlink Enable GNU/Linux-NetLink interface. The ZebOS configure script detects netlink interface by checking the header file. When the header file does not match to the current running kernel, the configure script will not turn on netlink support.
--disable-netlink Disable the NetLink interface. (Default)
--enable-nsm Build the NSM daemon. (Default)
--disable-nsm Do not build the NSM daemon.
--enable-rtadv Enable the Router Advertisement feature. (Default)
--disable-rtadv Disable the Router Advertisement feature.
--enable-snmp Enable SNMP support for: bgp, isis, ldp, nsm, ospfd, pim, ripd. (Default)
--disable-snmp Disable SNMP support.
--enable-tcp-message Enable TCP/IP socket connection between daemons.
Installation on MontaVista-Linux Systems
©2001-2005 IP Infusion Inc. Confidential 31
Compiling the SoftwareAfter configuring the build environment, set the environment variable.
1. Change directory to: cd platform/linux
2. Run the make clean utility:make clean
3. Run the make utility. You can use make all for all available modules or just make specific protocols by specifying the protocols. Please note that make install, implies make all:
make <protocol>|allmake bgpdmake install
Note: If you have chosen to make independent modules and not run the make all or make install command run the make all-mpls command to build the MPLS Forwarder.
4. The makefile displays the available make targets. You can make these targets in individual directories by entering make target-directory. For example
make all-palmake all-libmake nsm
The following is a list of the makefile commands:
5. Daemons are created in the platform/linux/bin directory.
--disable-tcp-message Disable TCP/IP socket connection between daemons. (Default)
--prefix=PREFIX Installs all binaries in PREFIX/sbin.For example --prefix=abc/myfile installs all binaries in abc/myfile/sbin and the configuration files in /abc/myfile/etc. By default, the executable files are in /usr/local/sbin and the configuration files in /usr/local/etc.
Make Targets Function Comments
distclean removes all working files not in distribution Applies only at the top level
install installs binaries and samples (makes first) Applies only at the top level
all makes all available modules Applies to the top level and to all available modules
dep makes all dependencies Applies to the top level and to all available modules
forcedep forces all dependencies to be remade Applies to the top level and to all available modules
clean cleans up from a previous make Applies to the top level and to all available modules
protocol makes the specified protocol daemon nsm, bgpd, isisd, ospfd, ospf6d, pimd, ripd, ldpd, ripngd, imish and rsvpd
Option flag Description
Installation on MontaVista-Linux Systems
32 ©2001-2005 IP Infusion Inc. Confidential
Building Kernel Modules
Building Layer-2 Kernel Module
1. Make sure you have enabled the following configuration option if you want to use the Software Forwarder provided by IPI.
--enable-hal--enable-swfwdr
2. After configuring the build environment, change directory:cd platform/linux
3. Enable the following make utility and build the Layer-2 module:make all-layer2
This builds a layer2_module.o file under the platform/linux/bin directory.
4. Install the Layer-2 module using the following command in the platform/linux/bin directory:insmod layer2-module.o
5. Run the following command to ensure that the Layer-2 kernel module is gracefully removed in the event of a reboot or shutdown:
rmmod layer-2-module.o
Building MPLS Kernel Module
1. Make sure you have enabled the following configuration option if you want to use the MPLS Forwarder provided by IPI.
--enable-mpls-fwd
2. After configuring the build environment, change directory:cd platform/linux
3. Make sure you have run the following make utility and build the MPLS module:
make all
make all-mpls (if you do not want to run make all)
This builds a mpls_module.o file under the platform/linux/bin directory.
4. Install the MPLS module using the following command in the platform/linux/bin directory:insmod mpls_module.o
5. Run the following command to ensure that the MPLS Forwarder kernel module is gracefully removed in the event of a reboot or shutdown:
rmmod mpls_module.o
©2001-2005 IP Infusion Inc. Confidential 33
CHAPTER 4 Installation on MontaVista-Broadcom
This chapter describes the system requirements, installation and compilation of ZebOS Advanced Routing Suite (ZebOS ARS) on MontaVista-Broadcom systems. The ZebOS ARS currently exists on VxWorks-Broadcom for the ZebOS NSM, Layer-2, Layer-3 and Multicast (IPv4) modules.
Make sure to refer to the README file for updates on versions, filenames and directory names. The README file is located in the following directory:
ZebOS5/kernel/montavista/broadcom
System Requirements• MontaVista 3.1 Professional - MIPS processor
• Broadcom SDK version 5.1.2
Running ZebOS on MontaVista-Broadcom
Set up the Environment VariablesMake sure to set up the following environment variables before building ZebOS:
• KERNEL_SOURCE Points to the MontaVista Linux Kernel Source. An example:
KERNEL_SOURCE=/opt/mips/montavista/pro/devkit/lsp/broadcom_nsx/linux-2.4.20_mvl31
• BROADCOM_SDK Points to the Broadcom SDK. An example:
BROADCOM_SDK=/opt/broadcom/sdk-5.1.2
• SDK Points to the Broadcom SDK. An example:
BROADCOM_SDK=$SDK
• COMPILER_DIR Points to MontaVista Linux compiler directory. An example:
COMPILER_DIR=/opt/mips/montavista/pro/devkit/mips/fp_be/bin
• COMPILER_PREFIX Contains the prefix for the MontaVista Linux compiler toolchain. An example:
COMPILER_PREFIX=mips_fp_be-
Configure the TFTP ServerConfigure the TFTP Server on RedHat Linux with the TFTP Server path to /tftpboot. Refer to the RedHat documentation for details on configuring the TFTP Server.
Installation on MontaVista-Broadcom
34 ©2001-2005 IP Infusion Inc. Confidential
Modifying the Kernel SourceYou must make the following changes to the MontaVista supplied kernel for the CPU board (either 4704 or Broadcom 1250 or Broadcom 1125).
• Increment NPROTO to 60 in the $MONTAVISTA_KERNEL_PATH/linux/net.h file:
#define NPROTO 60
• Add the following lines to the $MONTAVISTA_KERNEL_PATH/net/netsyms.c file to export the symbols for the ZebOS HSL kernel module:
extern int inet_rtm_newaddr(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg);
extern int inet_rtm_deladdr(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg);
extern int inet_rtm_newroute(struct sk_buff *skb, struct nlmsghdr* nlh, void *arg);
extern int inet_rtm_delroute(struct sk_buff *skb, struct nlmsghdr* nlh, void *arg);
extern int arp_req_set(struct arpreq *r, struct net_device * dev);
extern int arp_req_delete(struct arpreq *r, struct net_device * dev);
extern int vif_add (struct vifctl *cifc, int mrtsock);
extern int vif_delete (int vifi);
extern int ipmr_mfc_add (struct mfcctl *mfc, int mrtsock);
extern int ipmr_mfc_delete (struct mfcctl *mfc);
extern int mroute_do_assert;
extern int mroute_do_pim;
EXPORT_SYMBOL(inet_rtm_delroute);
EXPORT_SYMBOL(inet_rtm_newroute);
EXPORT_SYMBOL(inet_rtm_newaddr);
EXPORT_SYMBOL(inet_rtm_deladdr);
EXPORT_SYMBOL(arp_req_set);
EXPORT_SYMBOL(arp_req_delete);
EXPORT_SYMBOL(vif_add);
EXPORT_SYMBOL(vif_delete);
EXPORT_SYMBOL(ipmr_mfc_delete);
EXPORT_SYMBOL(ipmr_mfc_add);
EXPORT_SYMBOL(mroute_do_assert);
EXPORT_SYMBOL(mroute_do_pim);
• Select the options to be configured in the kernel using one of the following options:
$MONTAVISTA_KERNEL_PATH/make xconfig
$MONTAVISTA_KERNEL_PATH/make menuconfig
Note: Make sure to configure NFS support in the kernel.
• Build the vmlinux MontaVista kernel by using the make utility:
$MONTAVISTA_KERNEL_PATH/make clean
Installation on MontaVista-Broadcom
©2001-2005 IP Infusion Inc. Confidential 35
$MONTAVISTA_KERNEL_PATH/make dep
$MONTAVISTA_KERNEL_PATH/make
• Copy the vmlinux MontaVista kernel to the TFTP server root-path
Build the Broadcom ModulesTo build the required Broadcom modules and user space application:
Run the following commands in the $BROADCOM_SDK_PATH/systems/linux/kernel/$YOUR_PLATFORM file:
$ make MIPS_TOOLS_DIR=/opt/montavista/previewkit/mips/fp_be/bin
MIPS_CROSS_COMPILE=mips_fp_be- LINUX_INCLUDE=$MONTAVISTA_KERNEL_PATH
Note:This example is for the MIPs based BCM91125 processor
This builds the following modules:
bcm.user.proxy
linux-bcm-diag-full.o
linux-bcm-net.o
linux-uk-proxy.o
linux-bcm-core.o
linux-bcm-diag.o
linux-kernel-bde.o
Copy these modules into the root-path directory of the TFTP Server.
Configure the DHCP ServerThe DHCP Server can be configured using the one available from www.isc.org.
For the target board for Broadcom, extract the MAC address of the management interface from the board. Configure the DHCP server for the board to boot using BOOTP (Bootstrap Protocol).
MontaVista provides the target file system for the board. This has to be defined as the root-path for the kernel during boot.
A sample DHCP configuration file (/etc/dhcpd.conf) is as follows:
#/etc/dhcpd.conf start
deny unknown-clients;
ddns-update-style none;
allow bootp;
subnet 10.10.10.0 netmask 255.255.255.0 {
default-lease-time 1209600; # two weeks
max-lease-time 31557600; # one year
option routers 10.10.10.10;
group {
host ipi.com {
Installation on MontaVista-Broadcom
36 ©2001-2005 IP Infusion Inc. Confidential
#hardware ethernet 00:10:18:80:01:c3;
hardware ethernet 00:10:18:82:05:42;
fixed-address 10.10.10.88;
filename "vmlinux";
option host-name "broadcom";
option root-path "/opt/montavista/pro/devkit/mips/fp_be/target";
}
}
}
# /etc/dhcpd.conf end
Configure NFSOn the Redhat system, export the following directories for mounting:
• Target file system provided by MontaVista
• TFTP root-path. An example of the /etc/exports file is as follows:
/opt/montavista/pro/devkit/mips/fp_be/target *(rw,sync,no_root_squash)
/tftpboot *(rw,sync,no_root_squash)
$ cd /etc/init.d
$ ./portmap restart
$ ./nfs restart
Configure the Build Environment for ZebOSWhen cross-compiling on a Redhat Linux system:
• Use the following configuration options to enable ZebOS for cross-compiling.
cd ZebOS
./configure
--build=i586-linux
--host=mips-linux
--target=mips-linux
--enable-imish
--enable-hal
--enable-broadcom
Installation on MontaVista-Broadcom
©2001-2005 IP Infusion Inc. Confidential 37
--enable-bigendian (Only needed if target is a bigendian CPU.)
• Add any Layer-2 and Layer-3 options, as required. For a list of configuration options, refer to the “Installation on MontaVista Linux Systems” chapter.
Note:Currently, IPI supports only unicast protocols in Layer-3.
Compile ZebOS• To compile ZebOS, change to the following directory:
cd platform/linux
make all-hsl (For building the HSL kernel module)
make nsm
make imi
make <protocol>
where <protocol> is a protocol module, such as, imi, imish, stpd, rstpd etc. You can select the protocol module based on the configuration options that you have chosen from configure script.
• Copy all the built binaries to the TFTP server root-path.
Boot the Target1. Connect the serial link to the target.
2. Connect the management ethernet link to the Redhat system used for mounting.
3. Boot the target.
On the serial console, the BootROM prompt appears. When using the CFE (provided by Broadcom) the following prompt appears.
CFE> printenv
CFE> setenv -p LINUX_CMDLINE "root=/dev/nfs rw console=ttyS0,9600n8
ip=bootp mem=240M"
CFE> boot -elf $REDHAT_LINUX_IP_ADDRESS:vmlinux
The kernel boots up.
Option Description Example
--host Specifies the host build machine --host=i686-linux
--target Specifies the target platform. --target=mips-linux
--build Specifies the build platform. --target=mips-linux
--enable-broadcom Specifies use of Broadcom.
--enable-hal Specifies use of Hardware Abstraction Layer (HAL).
--enable-bigendian Specifies endianness of a target. Only needed if the target is a bigendian CPU.
Installation on MontaVista-Broadcom
38 ©2001-2005 IP Infusion Inc. Confidential
4. Login and run the following commands:
mount $REDHAT_LINUX_IP_ADDRESS:/tftpboot /mnt
cd /mnt
insmod linux-kernel-bde.o debug=2
insmod linux-uk-proxy.o
insmod linux-bcm-diag-full.o debug=2
5. Make sure there are no errors after loading. However, you can ignore any warning regarding tainted modules.
6. Start the bcm.user.proxy application
./bcm.user.proxy
7. Copy the rc.soc file, which is used for initializing the hardware to the /tftpboot directory.
8. Initialize the hardware:
BCM.0> rcload rc.soc
Note:Some messages will appear about the initialization process.
BCM.0> exit
9. Load the HSL kernel module:
insmod hsl.o
10. Start NSM and ZebOS protocols and start configuration.
©2001-2005 IP Infusion Inc. Confidential 39
CHAPTER 5 Installation on NetBSD Systems
OverviewThis chapter describes how to install and compile ZebOS Advanced Routing Suite (ZebOS ARS) on NetBSD systems. When finished with the tasks in this chapter, continue with the Initial Daemon Configuration chapter.
For a first-time installation, perform all steps. As the system expands, repeat the build and run steps. For more information on customizing, refer to the ZebOS Developer Guide. Refer to Appendix A for an illustration of the complete ZebOS Directory Structure.
Note: The installation is not shell dependent; use any convenient UNIX shell.
ZebOS Daemons on NetBSD PlatformsThe following ZebOS daemons support the IPv4 network protocols on NetBSD platforms:
• bgpd manages the BGP4 (Border Gateway Protocol) protocol.
• ripd manages the RIPv1, v2 (Routing Information Protocol).
• ospfd manages the OSPFv2 (Open Shortest Path First) protocol and the CSPF (Constrained Shortest Path First) module.
• ldpd manages the LDP (Label Distribution Protocol) and the Layer-2 Virtual Circuit module.
• rsvpd manages the RSVP-TE (Resource Reservation Protocols-Traffic Engineering) protocol.
• isisd manages the ISIS (Intermediate System to Intermediate System) protocol.
• pimd manages the PIM-SM (Protocol Independent Multicasting - Sparse Mode) protocol.
• pdmd manages the PIM-DM (Protocol Independent Multicasting - Dense Mode) protocol.
• nsm updates the kernel routing table and redistributes routing information between the protocol modules listed above.
The following ZebOS daemons support the IPv6 network protocols on NetBSD platforms:
• ripngd manages the RIPng protocol.
• ospf6d manages the OSPFv3 protocol.
• bgpd manages the BGP4+ protocol
Before Installing ZebOS
Check Compilation Environment• make version 3.79.1
• gcc version 3.2.x or higher
• autoconf version 2.54
Installation on NetBSD Systems
40 ©2001-2005 IP Infusion Inc. Confidential
IPv6The IPv6 stack is already enabled as a basic component of most NetBSD systems.
Special Considerations
PIM-SMOn NetBSD systems, the kernel does not support multicast forwarding. To run the ZebOS PIM-SM (Protocol Independent Multicasting - Sparse Mode) module on NetBSD, you need to apply a USC patch:
1. Download the patch from
http://netweb.usc.edu/pim/pimd/pimkern-tmp
2. Follow instructions provided in the INSTALL.pimkern file and apply the patch.
3. After applying the USC patch, you must rebuild the NetBSD kernel. Follow instructions provided in the NetBSD documentation available at http://www.netbsd.org.
Installing ZebOS ARSInstalling the ZebOS ARS on a NetBSD system consists of uncompressing the source files from the tar ball, compiling the source, and installing the object files. After the installation process is complete, the build engine copies the executables to /usr/local/sbin and sample configurations to /usr/local/etc.
Uncompressing ZebOS ARSPerform the following steps before beginning the installation process.
1. Log on as root user.
Note: The operating system displays an error message when certain steps are attempted by a non-root user.
2. Create a working directory, for example /var/ipi:mkdir /var/ipi
3. Change to the directory that has the ZebOS tarball.
4. Copy the software to a working directory:
cp TARFILE /var/ipi
TARFILE = ZebOSxxx.date.platform.customer-name.tar.gz
where xxx is the current ZebOS ARS version number. For example, the following name is for ZebOS version 7.2.1, dated 04/04/05, Linux platform and a company named Sample:
ZebOS721.040405.linux.Sample.tar.gz
5. Extract the ZebOS software from tarball:
tar -xvzf TARFILE
where TARFILE is the name of the ZebOS tar file. Refer to the explanation above.
Installation on NetBSD Systems
©2001-2005 IP Infusion Inc. Confidential 41
Note: For information on uncompressing ZebOS source files from a CD-ROM please contact [email protected].
Before Configuring the Build Environment Make sure to read this section before beginning to configure the ZebOS build environment.
IMPORTANT INFORMATION
To assist users in compiling ZebOS, and to troubleshoot compilation issues, IPI provides the following files with the ZebOS ARS software:
config.sh enables and disables configuration options depending on the ZebOS modules purchased. It is a unique script that is used for generating the software delivered to you. IPI strongly recommends verifying the enabled/disabled configuration options in your software, before configuring the ZebOS build environment.
Note: The configure shell script attempts to determine correct values for various system-dependent variables used during compilation. It might create one or more .h files containing system-dependent definitions.
compile.out contains compiler output (useful mainly for debugging).
config.log contains messages generated by the compiler when the configure shell script (config.sh) is run.
builds.log contains the Bill of Materials (BOM). This includes information about the relevant operating system, shipped protocols, directory structure and files delivered.
Configuring the Build EnvironmentYou can choose to configure the ZebOS build environment manually, or decide to run the config.sh script provided by IPI.
The ZebOS configuration script automatically detects most host configurations. Perform the following steps to configure the build environment. Running configure, takes some time. While running, the script generates messages explaining for which features it is checking.
Running config.sh
1. Make sure to verify all the enabled and disabled configure options match with your requirements. Refer to the “Before Configuring the Build Environment” section above for more details about the config.sh script.
2. Change to the directory containing the package's source code.cd ZebOS
3. Set the variable IP_ZEBOS_PLATFORM to the NetBSD platform. This step is not mandatory but recommended.export IPI_ZEBOS_PLATFORM=netbsd
4. Type the following on the command prompt, to run the config.sh script provided by IPI:
./config.sh
Running this script, executes the configure command and enables/disables configuration options depending on ZebOS modules that you have purchased.
Configuring Manually
In case you decide to select configure options manually, make sure to verify the config.sh script before you start configuring. Remember there are some options that are already enabled in the software provided to you.
1. Change to the directory containing the package's source code.cd ZebOS
Installation on NetBSD Systems
42 ©2001-2005 IP Infusion Inc. Confidential
2. Set the variable IP_ZEBOS_PLATFORM to the NetBSD platform. This step is not mandatory but recommended.export IPI_ZEBOS_PLATFORM=netbsd
3. Choose the configure options to be disabled. Refer to the config.sh script to view the list of options enabled by default.
4. Choose the configure options to be enabled, from the provided list in the “Building the Configuration Options” section. Some configure options have dependencies and if all the required options are not enabled with a protocol module, you might get an error when you run the make command. For example, if you have enabled the OSPFv6 option, not enabled the IPv6 option, and run the make command, you might see:
[root@bb2]# make ospf6d nsm Make aborted : Unable to find ../../ospf6d/Makefile make: *** [ospf6d] Error 1
5. Configure the package for the system: ./configure <options>
where <options> are any build configuration options that you have chosen to enable or disable. For example, --enable-nsm, --disable-ipv6.
The following sample demonstrates how the system responds:
[root@db1]# cd ZebOS-7.2[root@db1 ZebOS-7.2]# ./configurecreating cache ./config.cachechecking for a BSD compatible install... /usr/bin/install -cchecking whether build environment is sane... yeschecking whether make sets ${MAKE}... yeschecking for working aclocal... foundchecking for working autoconf... foundchecking for working automake... foundchecking for working autoheader... foundchecking for working makeinfo... found
6. If aclocal, autoconf and automake are not found, please install the following files from the GNU Website:aclocal version 1.6autoconf version 2.54gnumake version 3.79.1
Building the Configuration OptionsBefore using the configure command, use this list to determine the configuration options needed for this installation. Specify any combination of these options when invoking the configure script. The default settings are derived from the >$OPTIONS_FILE list in the configure script.
Please note that options noted as (Default) are defaults for the most common features of ZebOS. To disable a feature for any reason, including not having purchased a feature, use the disable option for that feature.
BGP
Option flag Description
--enable-bgpd Build the BGP daemon bgpd. (Default Linux)
--disable-bgpd Do not build BGP daemon bgpd.
Installation on NetBSD Systems
©2001-2005 IP Infusion Inc. Confidential 43
IMI
--enable-bgp-announce Build bgpd with the Route Announcement feature. (Default)
--disable-bgp-announce Build bgpd without the Route Announcement feature. This feature is suited for using bgpd as the BGP announcement listener.
Option flag Description
--disable-acl Disable ACL for Basic Access.
--enable-basic-access Enable the Basic Access features (DHCP, DNS, NAT and ACL).
--enable-dhcp-client Enable the DHCP client for IMI.
--disable-dhcp-client Disable the DHCP client for IMI. (Default)
--enable-dhcp-server Enable the DHCP server for IMI.
--disable-dhcp-server Disable the DHCP server for IMI. (Default)
--enable-dhcp-update-style Enable the DHCP server update style.
--disable-dhcp-update-style Disable the DHCP server update style. (Default)
--enable-dns-client Enable the DNS client for IMI.
--disable-dns-client Disable the DNS client for IMI. (Default)
--enable-imi Enable the Integrated Management Interface (IMI). Enabling IMI does not enable IMISH automatically.
--disable-imi Disable the Integrated Management Interface. (Default)
--enable-imish Enable Integrated Management Interface (IMI) and IMI Shell (IMISH).
--disable-imish Disable IMI Shell (IMISH). (Default)
--enable-imi-sysconfig Enable Read system configurations on startup.
--disable-imi-sysconfig Disable Read system configurations on startup. (Default)
--enable-nat Enable Network Address Translation for IMI.
--disable-nat Disable Network Address Translation for IMI. (Default)
--disable-ntp Disable Network Time Protocol.
--enable-pppoe-client Enable the PPPoE client for IMI.
--disable-pppoe-client Disable the PPPoE client for IMI. (Default)
Option flag Description
Installation on NetBSD Systems
44 ©2001-2005 IP Infusion Inc. Confidential
IPv6
IS-IS
Label Distribution Protocol (LDP)
Memory Manager
MPLS
Option flag Description
--enable-ipv6 Enable the IPv6 related features and daemons. (Default)
--disable-ipv6 Disable the IPv6 related features and daemons.
--enable-ipv6-transit Enable IPv4 to IPv6 transition
--disable-ipv6-transit Enable IPv4 to IPv6 transition
--enable-mip6 Enable the Mobile IPv6 feature. (Default)
--disable-mip6 Disable the Mobile IPv6 feature.
Option flag Description
--enable-isisd Build the ISIS daemon. (Default Linux)
--disable-isisd Do not build the ISIS daemon.
--enable-multi-topology Enable IS-IS multi-topology support.
--disable-multi-topology Disable IS-IS multi-topology support. (Default)
Option flag Description
--enable-ldpd Enable the LDP daemon. (Default Linux)
--disable-ldpd Do not build LDP daemon
Option flag Description
--enable-memmgr Enable the use of all allocation methods for various mtypes.
--disable-memmgr Disable allows only the heap method. (Default)
Option flag Description
--enable-diffserv Enable MPLS Diffserv support.
--disable-diffserv Disable MPLS Diffserv support. (Default)
--enable-dste Enable MPLS Diffserv TE support.
--disable-dste Enable MPLS Diffserv TE support. (Default)
Installation on NetBSD Systems
©2001-2005 IP Infusion Inc. Confidential 45
Multicast
--enable-mpls Enable the MPLS (Multi Protocol Label Switching) feature. This option, supported in NSM, is automatically turned on if any of the MPLS-specific options (LDP, RSVP, MPLS-VC, VPLS, MPLS Forwarder, VRF, CSPF and TE) is selected.
--disable-mpls Disable the MPLS (Multi Protocol Label Switching) feature supported in the NSM. (Default) Do not disable the MPLS with this option if any MPLS option is selected.
--enable-mpls-frr Enable the Fast Reroute feature of RSVP-TE.
--disable-mpls-frr Disable the Fast Reroute feature of RSVP-TE. (Default)
--enable-mpls-fwd Enable the MPLS (Multi Protocol Label Switching) forwarder support.
--disable-mpls-fwd Disable the MPLS (Multi Protocol Label Switching) forwarder support. (Default)
--enable-mpls-vc Enable the MPLS-based Virtual Circuit feature.
--disable-mpls-vc Disable the MPLS-based Virtual Circuit feature. (Default)
--enable-vpls Enable the MPLS based Virtual Private LAN Service (VPLS) feature.
--disable-vpls Disable the MPLS based VPLS feature. (Default)
Option flag Description
--enable-dvmrpd Build the Distance Vector Multicast Routing Protocol (DVMRP) daemon (Default).
--disable-dvmrpd Do not build the DVMRP daemon.
--enable-mcast-ipv4 Enable IPv4 MRIB (Multicast Routing Information Base) in NSM.
--disable-mcast-ipv4 Disable IPv4 MRIB (Multicast Routing Information Base) in NSM. (Default)
--enable-mcast-ipv6 Enable IPv6 MRIB (Multicast Routing Information Base) in NSM.
--disable-mcast-ipv6 Disable IPv6 MRIB (Multicast Routing Information Base) in NSM. (Default)
--enable-pimd Build the PIM-SM daemon (Default).
--disable-pimd Do not build the PIM-SM daemon.
--enable-pim6d Build the PIM-SMv6 daemon. (Default)
--disable-pim6d Do not build the PIM-SMv6 daemon.
--enable-pdmd Build the PIM-DM daemon. (Default)
--disable-pdmd Do not build the PIM-DM daemon.
Option flag Description
Installation on NetBSD Systems
46 ©2001-2005 IP Infusion Inc. Confidential
OSPF
RIP
System Options
Option flag Description
--enable-ospfd Build the OSPF daemon. (Default Linux)
--disable-ospfd Do not build OSPF daemon.
--enable-ospf6d Build the OSPF6 daemon. (Default Linux with IPv6)
--disable-ospf6d Do not build OSPF6 daemon.
--enable-pece-ospf Adds support for draft-ishiguro-ppvpn-pe-ce-ospf-01.txt, which specifies the method of using multiple instances of OSPF on the PE to CE link to support multiple customer networks, when provisioning BGP-MPLS VPNs. Linux only.
--disable-pece-ospf Disable support for draft-ishiguro-ppvpn-pe-ce-ospf-01.txt. (Default) Linux only.
Option flag Description
--enable-pece-rip Enable RIP as the CE/PE protocol to support VPN. Linux only.
--disable-pece-rip Disable RIP as the CE/PE protocol. (Default) Linux only.
--enable-ripd Build the RIP daemon. (Default Linux)
--disable-ripd Do not build RIP daemon.
--enable-ripngd Build the RIPng daemon. (Default Linux with IPv6)
--disable-ripngd Do not build RIPng daemon.
Option flag Description
--enable-bigendian Enable Big Endian support.
--disable-bigendian Disable Big Endian support.
--enable-hostname-change Enable the changing hostname through hostname command. Linux only.
--disable-hostname-change Disable the host name change feature. (Default) Linux only.
--enable-restart Enable Graceful and Hitless Restart features.
--disable-restart Disable Graceful and Hitless Restart features. (Default)
--enable-static Enable linking of the library statically. Prevents linking with the shared libraries (on systems supporting dynamic linking).
--disable-static Disable linking of the library statically. (Default)
--with-ipnet2 Use IPNet for IPv6 support.
Installation on NetBSD Systems
©2001-2005 IP Infusion Inc. Confidential 47
Traffic Engineering
Virtual Routing/Forwarding
ZebOS (NSM) Daemon
Option flag Description
--enable-isis-cspf Enable the CSPF feature and all the TE options for ISIS.
--disable-isis-cspf Disable the CSPF feature and all the TE options for ISIS. (Default)
--enable-ospf-cspf Enable the CSPF feature and all the TE options for OSPF.
--disable-ospf-cspf Disable the CSPF feature and all the TE options for OSPF. (Default)
--enable-rsvpd Enable RSVP daemon. (Default Linux)
--disable-rsvpd Do not build the RSVP daemon.
--enable-te Enable TE for IS-IS, OSPF, RSVP, and QoS Module Stub in the NSM.
--disable-te Disable TE support. (Default)
Option flag Description
--enable-vrf To Enable the VRF feature.
Note: If you have Enabled VR, you do not need to Enable VRF. Enabling VR automatically enables VRF support.
--disable-vrf To Disable the VRF feature.(Default)
Option flag Description
--enable-flash Enable flash.
--disable-flash Disable flash. (Default)
--enable-if-unnumbered Enable the NSM IPv4/IPv6 unnumbered interface feature.
--disable-if-unnumbered Disable the NSM IPv4/IPv6 unnumbered interface feature. (Default)
--enable-ipv4-tunnel Enable IPv4 tunneling
--disable-ipv4-tunnel Disable IPv4 tunneling (Default)
--enable-multiple-fib Enable the Multiple FIB kernel support.
--disable-multiple-fib Disable the Multiple FIB kernel support. (Default)
--enable-netlink Enable GNU/Linux-NetLink interface. The ZebOS configure script detects netlink interface by checking the header file. When the header file does not match to the current running kernel, the configure script will not turn on netlink support.
--disable-netlink Disable the NetLink interface. (Default)
--enable-nsm Build the NSM daemon. (Default)
Installation on NetBSD Systems
48 ©2001-2005 IP Infusion Inc. Confidential
Compiling the SoftwareAfter configuring the build environment, set the environment variable.
1. Change directory to: cd platform/netbsd
2. Run the make clean utility:make clean
3. Run the make utility. You can use make all for all available modules or just make specific protocols by specifying the protocols. Please note that make install, implies make all:
make <protocol>|allmake bgpdmake install
The makefile displays the available make targets. You can make these targets in individual directories by entering make target-directory. For example
make all-palmake all-libmake nsm
The following is a list of the makefile commands:
--disable-nsm Do not build the NSM daemon.
--enable-rtadv Enable the Router Advertisement feature. (Default)
--disable-rtadv Disable the Router Advertisement feature.
--enable-snmp Enable SNMP support for: bgp, isis, ldp, nsm, ospfd, pim, ripd. (Default)
--disable-snmp Disable SNMP support.
--enable-tcp-message Enable TCP/IP socket connection between daemons.
--disable-tcp-message Disable TCP/IP socket connection between daemons. (Default)
--prefix=PREFIX Installs all binaries in PREFIX/sbin.For example --prefix=abc/myfile installs all binaries in abc/myfile/sbin and the configuration files in /abc/myfile/etc. By default, the executable files are in /usr/local/sbin and the configuration files in /usr/local/etc.
Make Targets Function Comments
distclean removes all working files not in distribution Applies only at the top level
install installs binaries and samples (makes first) Applies only at the top level
all makes all available modules Applies to the top level and to all available modules
dep makes all dependencies Applies to the top level and to all available modules
forcedep forces all dependencies to be remade Applies to the top level and to all available modules
Option flag Description
Installation on NetBSD Systems
©2001-2005 IP Infusion Inc. Confidential 49
4. Daemons are created in the platform/netbsd/bin directory.
Current Problems and Workarounds
Multicast route entriesMulticasting does not work in NetBSD if the multicasting routing entry is not present in the routing table. Add the following multicast routing entries to the routing table for multicast to work. Use the route command provided by NetBSD as follows:
route add 224.0.0.2 127.0.0.1route add 224.0.0.4 127.0.0.1route add 224.0.0.5 127.0.0.1route add 224.0.0.6 127.0.0.1route add 224.0.0.9 127.0.0.1
clean cleans up from a previous make Applies to the top level and to all available modules
protocol makes the specified protocol daemon nsm, bgpd, isisd, ospfd, ospf6d, pimd, ripd, ldpd, ripngd, imish and rsvpd
Make Targets Function Comments
Installation on NetBSD Systems
50 ©2001-2005 IP Infusion Inc. Confidential
©2001-2005 IP Infusion Inc. Confidential 51
CHAPTER 6 Installation on VxWorks Systems
This chapter describes the system requirements, installation and compilation of ZebOS Advanced Routing Suite (ZebOS ARS) on VxWorks-based systems with Native and IPNet2 VxWorks stacks. The ZebOS ARS currently exists on VxWorks for the ZebOS Network Services Module, RIPv1 and RIPv2, OSPFv2, BGP, VRRP and following layer 2 protocols: STP, RSTP, MSTP, LACP and 802.1x. Other protocols are not fully supported, but are available by using the PAL layer. It has been certified on Intel (Pentium) and Power PC Certified Reference platforms.
Additionally, if you understand the difference between your own RTOS and VxWorks, this chapter provides a guide to the necessary changes required for the routers to work under your own RTOS.
Of the eight VxWorks-supported targets, IP Infusion does not plan to certify ARM, i960, CPU32, 68K, MIPS nor SPARC; however, IPI does not see any significant difficulties in supporting these platforms.
VxWorks IPNet2 and VxWorks Native Stacks:
The ZebOS ARS installation procedure on VxWorks-based systems with IPNet2 and Native stacks involves similar steps. The process described in this chapter can be used for both types of systems. However, for each of the systems you must make sure to specify the system name (vxworks or vxworks-ipnet2) during compilation.
ZebOS Daemons on VxWorks platformsThe following ZebOS daemons support the IPv4 network protocols on VxWorks platforms:
• bgpd manages the BGP4 (Border Gateway Protocol) protocol.
• ripd manages the RIPv1, v2 (Routing Information Protocol).
• ospfd manages the OSPFv2 (Open Shortest Path First) protocol.
• nsm (Network Services Module) updates the kernel routing table and redistributes routing information between the protocol modules listed above. In addition it interacts with the kernel to receive interface events, route events, and to provide interface management.
• imi (Integrated Management Interface) an advanced management plane, integrates all features of the ZebOS ARS Layer 2 and Layer 3 components, key operating system components, and other third-party applications.
• rsvpd manages the RSVP-TE (Resource Reservation Protocol-Traffic Engineering) protocol.
• ldpd manages the LDP (Label Distribution Protocol) protocol.
The following ZebOS daemons support Layer 2 protocols on VxWorks platforms:
• stpd manages the Spanning Tree protocol.
• rstpd manages the Rapid Spanning Tree protocol.• mstpd manages the Multiple Spanning Tree protocol.
• authd manages the 802.1x authentication module.
• lacpd manages the Link Aggregation protocol.
Multicast Support on VxWorks NativeIPI provides patches to support Multicast on VxWorks Native versions 5.4 and 5.5. Instructions on applying these patches are available in README files in the following directories:
Installation on VxWorks Systems
52 ©2001-2005 IP Infusion Inc. Confidential
Special Requirement
For VxWorks on Windows SystemsTo build ZebOS, make sure to upgrade the following utilities:
make Upgrade to version 3.80
sed Upgrade to version 4.14
Hardware platformsZebOS ARS supports following hardware platforms:
Broadcom®: Strata
Marvell®: EX116, EX126 and Value Blade.
Note: Each hardware platform requires Vendor’s SDK.
Installation on VxWorksThe VxWorks project image currently is shipped on a CD-ROM or as a WinZip zipped file. Installation on VxWorks comprises of the following steps.
• Setting up the Environment Variables.
• Configuring the Build Environment for Target & HOST
• Enabling the Build Configuration Options
• Compiling the software
• Copying the ZebOS Source and Setting up the Build Environment
• Linking ZebOS with VxWorks BSP
• Building the FTP Image--vxworks
• Booting the System
• Configuring the Physical IP Addresses
• Operating the Router
Limitation You must disable the following configuration option while compiling ZebOS for VxWorks:
Version Location Description
VxWorks 5.4 kernel/vxworks/5.4 This directory contains the Multicast and RECVIF patches for VxWorks 5.4.
VxWorks 5.5 kernel/vxworks/5.5.1 This directory contains the Route-Alert, Multicast, and RECVIF patches for VxWorks 5.5.1.
Installation on VxWorks Systems
©2001-2005 IP Infusion Inc. Confidential 53
--disable-isisd
Setting Environment VariablesDuring cross-compilation for VxWorks, set the following environment variables. The vxworks.config script is interactive and prompts you to set the environment variables and suggests the default value.
The following is a section of the script prompting user to set the tornado installation directory or choose the default location /usr/tornadoppc.
Copying the ZebOS Source and Setting up the Build Environment1. Obtain the following items from WindRiver:
• Tornado VxWorks License for Architecture-Family.
• OEM Project License and BSP for the Processor-Family.
• Target License for each shipped product.
2. Copy the software to a working directory:
cp TARFILE /var/ipi
TARFILE = ZebOSxxx.date.platform.customer-name.tar.gz
where xxx is the current ZebOS ARS version number. For example, the following name is for ZebOS version 7.2.1, dated 04/04/05, Linux platform and a company named Sample:
ZebOS721.040405.linux.Sample.tar.gz
3. Extract the ZebOS software from tarball:tar -xvzf TARFILE
where TARFILE is the name of the ZebOS tar file. Refer to the explanation above.
WIND_BASE tornado installation directory
WIND_HOST_TYPE compilation host type
SRCROOT location of ZebOS software
CPU Specify CPU. For example, PPC603, PPC604 or PPC860.
PLATFORM Specify the Platform. For example, Intel, Marvell or Broadcom.
Note: Needed only if compiling for a Hardware target.
HW_SDK SDK location. For example, MARVELL_SDK=/home/user/PSS
Note: Needed only if the Intel, Marvell or Broadcom environment is used.
Installation on VxWorks Systems
54 ©2001-2005 IP Infusion Inc. Confidential
Note: For information on uncompressing ZebOS source files from a CD-ROM please contact [email protected].
Before Configuring the Build Environment for Target and HostMake sure to read this section before beginning to configure the ZebOS build environment.
IMPORTANT INFORMATION
To assist users in compiling ZebOS, and to troubleshoot compilation issues, IPI provides the following files with the ZebOS ARS software:
config.sh enables and disables configuration options depending on the ZebOS modules purchased. It is a unique script that is used for generating the software delivered to you. IPI strongly recommends verifying the enabled/disabled configuration options in your software, before configuring the ZebOS build environment.
Note: The configure shell script attempts to determine correct values for various system-dependent variables used during compilation. It might create one or more .h files containing system-dependent definitions.
compile.out contains compiler output (useful mainly for debugging).
config.log contains messages generated by the compiler when the configure shell script (config.sh) is run.
builds.log contains the Bill of Materials (BOM). This includes information about the relevant operating system, shipped protocols, directory structure and files delivered.
Configuring the Build EnvironmentYou can choose to configure the ZebOS build environment manually, or decide to run the config.sh script provided by IPI.
The ZebOS configuration script automatically detects most host configurations. Perform the following steps to configure the build environment. Running configure, takes some time. While running, the script generates messages explaining for which features it is checking.
Running config.sh
1. Make sure to verify all the enabled and disabled configure options match with your requirements. Refer to the “Before Configuring the Build Environment” section above for more details about the config.sh script.
2. Change to the directory containing the package's source code.cd ZebOS
3. Set the variable IP_ZEBOS_PLATFORM to the vxworks platform. This step is not mandatory but recommended.
export IPI_ZEBOS_PLATFORM=vxworks (for VxWorks-Native)
export IPI_ZEBOS_PLATFORM=vxworks_ipnet2 (for VxWorks-IPNet2)
4. Type the following on the command prompt, to run the config.sh script provided by IPI:
./config.sh
Running this script, executes the configure command and enables/disables configuration options depending on ZebOS modules that you have purchased.
Configuring Manually
In case you decide to select configure options manually, make sure to verify the config.sh script before you start configuring. Remember there are some options that are already enabled in the software provided to you.
1. Change to the directory containing the package's source code.
Installation on VxWorks Systems
©2001-2005 IP Infusion Inc. Confidential 55
cd ZebOS
2. Set the variable IP_ZEBOS_PLATFORM to the vxworks platform. This step is not mandatory but recommended.
export IPI_ZEBOS_PLATFORM=vxworks (for VxWorks-Native)
export IPI_ZEBOS_PLATFORM=vxworks_ipnet2 (for VxWorks-IPNet2)
3. Choose the configure options to be disabled. Refer to the config.sh script to view the list of options enabled by default.
4. Choose the configure options to be enabled, from the provided list in the “Building the Configuration Options” section. Some configure options have dependencies and if all the required options are not enabled with a protocol module, you might get an error when you run the make command. For example, if you have enabled the OSPFv6 option, not enabled the IPv6 option, and run the make command, you might see:
[root@bb2]# make ospf6d nsm Make aborted : Unable to find ../../ospf6d/Makefile make: *** [ospf6d] Error 1
5. Configure the package for the system: ./vxworks.config <options>
where <options> are any build configuration options that you have chosen to enable or disable. For example, --enable-stpd, --disable-ipv6.
The following sample demonstrates how the system responds:
[root@db1]# cd ZebOS-7.2[root@db1 ZebOS-7.2]# ./vxworks.config --disable-isisdcreating cache ./config.cachechecking for a BSD compatible install... /usr/bin/install -cchecking whether build environment is sane... yeschecking whether make sets ${MAKE}... yeschecking for working aclocal... foundchecking for working autoconf... foundchecking for working automake... foundchecking for working autoheader... foundchecking for working makeinfo... found
....ZebOS configuration-------------------ZebOS version : 7.2Build number : 10122003host operating system : vxworkssource code location : .compiler : gcccompiler flags : -g -O2directory for pid files : /var/run
Building the Configuration OptionsBefore using the configure command, use this list to determine the configuration options needed for this installation. Specify any combination of these options when invoking the configure script. The default settings are derived from the >$OPTIONS_FILE list in the configure script.
Installation on VxWorks Systems
56 ©2001-2005 IP Infusion Inc. Confidential
Please note that options noted as (Default) are defaults for the most common features of ZebOS. To disable a feature for any reason, including not having purchased a feature, use the disable option for that feature.
BGP
IMI
IPv6
Label Distribution Protocol (LDP)
Layer-2
Option flag Description
--enable-bgpd Build the BGP daemon bgpd. (Default Linux)
--disable-bgpd Do not build BGP daemon bgpd.
--enable-bgp-announce Build bgpd with the Route Announcement feature. (Default)
--disable-bgp-announce Build bgpd without the Route Announcement feature. This feature is suited for using bgpd as the BGP announcement listener.
Option flag Description
--enable-imi Enable the Integrated Management Interface (IMI). Enabling IMI does not enable IMISH automatically.
--disable-imi Disable the Integrated Management Interface. (Default)
Option flag Description
--enable-ipv6 Enable the IPv6 related features and daemons. (Default)
--disable-ipv6 Disable the IPv6 related features and daemons.
--enable-mip6 Enable the Mobile IPv6 feature. (Default)
--disable-mip6 Disable the Mobile IPv6 feature.
Option flag Description
--enable-ldpd Enable the LDP daemon. (Default Linux)
--disable-ldpd Do not build LDP daemon
Option flag Description
--enable-authd Make the 802.1x authentication module.
--disable-authd Do not make the 802.1x authentication module (Default)
--enable-gmrp Make the GARP Multicast Registration Protocol (GMRP) feature.
--disable-gmrp Do not make the GMRP feature. (Default)
Installation on VxWorks Systems
©2001-2005 IP Infusion Inc. Confidential 57
Memory Manager
MPLS
--enable-gvrp Make the GARP VLAN Registration Protocol (GVRP) feature.
--disable-gvrp Do not make the GVRP feature. (Default)
--enable-igmp-snoop Enable the Internet Group Management Protocol (IGMP) snooping) feature.
--disable-igmp-snoop Disable the IGMP snooping feature. (Default)
--enable-lacpd Make the Link Aggregation Control Protocol (LACP).
--disable-lacpd Do not make the LACP. (Default)
--enable-mstpd Make the Multiple Spanning Tree Protocol (MSTP).
--disable-mstpd Do not make the MSTP. (Default)
--enable-rate-limit Enable the rate limiting feature (broadcast storm control command and feature).
--disable-rate-limit Disable the rate limiting feature.
--enable-rstpd Make the Rapid Spanning Tree Protocol (RSTP).
--disable-rstpd Do not make the RSTP. (Default)
--enable-stpd Make the Spanning Tree Protocol (STP).
--disable-stpd Do not make STP. (Default)
--enable-vlan Enable VLAN-aware bridging with either STP, RSTP, or MSTP.
--disable-vlan Disable VLAN-aware bridging.
--enable-vlan-class Enable the VLAN classification feature. Currently, available only for Broadcom integrations.
--disable-vlan-class Disable the VLAN classification feature.
--enable-vlan-stack Enable the VLAN stacking feature. Currently, available only for Broadcom integrations.
--disable-vlan-stack Disable the VLAN stacking feature.
Option flag Description
--enable-memmgr Enable the use of all alloc methods for various mtypes.
--disable-memmgr Disable allows only the heap method. (Default)
Option flag Description
--enable-diffserv Enable MPLS Diffserv support.
--disable-diffserv Disable MPLS Diffserv support. (Default)
Option flag Description
Installation on VxWorks Systems
58 ©2001-2005 IP Infusion Inc. Confidential
Multicast
--enable-dste Enable MPLS Diffserv TE support.
--disable-dste Enable MPLS Diffserv TE support. (Default)
--enable-mpls Enable the MPLS (Multi Protocol Label Switching) feature. This option, supported in NSM, is automatically turned on if any of the MPLS-specific options (LDP, RSVP, MPLS-VC, VPLS, MPLS Forwarder, VRF, CSPF and TE) is selected.
--disable-mpls Disable the MPLS (Multi Protocol Label Switching) feature supported in the NSM. (Default) Do not disable the MPLS with this option if any MPLS option is selected.
--enable-mpls-frr Enable the Fast Reroute feature of RSVP-TE.
--disable-mpls-frr Disable the Fast Reroute feature of RSVP-TE. (Default)
--enable-mpls-fwd Enable the MPLS (Multi Protocol Label Switching) forwarder support.
--disable-mpls-fwd Disable the MPLS (Multi Protocol Label Switching) forwarder support. (Default)
--enable-mpls-vc Enable the MPLS-based Virtual Circuit feature.
--disable-mpls-vc Disable the MPLS-based Virtual Circuit feature. (Default)
--enable-vpls Enable the MPLS based Virtual Private LAN Service (VPLS) feature.
--disable-vpls Disable the MPLS based VPLS feature. (Default)
Option flag Description
--enable-dvmrpd Build the Distance Vector Multicast Routing Protocol (DVMRP) daemon (Default).
--disable-dvmrpd Do not build the DVMRP daemon.
--enable-mcast-ipv4 Enable IPv4 MRIB (Multicast Routing Information Base) in NSM.
--disable-mcast-ipv4 Disable IPv4 MRIB (Multicast Routing Information Base) in NSM. (Default)
--enable-mcast-ipv6 Enable IPv6 MRIB (Multicast Routing Information Base) in NSM.
--disable-mcast-ipv6 Disable IPv6 MRIB (Multicast Routing Information Base) in NSM. (Default)
--enable-pimd Build the PIM-SM daemon (Default).
--disable-pimd Do not build the PIM-SM daemon.
--enable-pim6d Build the PIM-SMv6 daemon. (Default)
--disable-pim6d Do not build the PIM-SMv6 daemon.
--enable-pdmd Build the PIM-DM daemon. (Default)
--disable-pdmd Do not build the PIM-DM daemon.
Option flag Description
Installation on VxWorks Systems
©2001-2005 IP Infusion Inc. Confidential 59
OSPF
RIP
System Options
Option flag Description
--enable-ospfd Build the OSPF daemon. (Default Linux)
--disable-ospfd Do not build OSPF daemon.
--enable-ospf6d Build the OSPF6 daemon. (Default Linux with IPv6)
--disable-ospf6d Do not build OSPF6 daemon.
--enable-pece-ospf Adds support for draft-ishiguro-ppvpn-pe-ce-ospf-01.txt, which specifies the method of using multiple instances of OSPF on the PE to CE link to support multiple customer networks, when provisioning BGP-MPLS VPNs. Linux only.
--disable-pece-ospf Disable support for draft-ishiguro-ppvpn-pe-ce-ospf-01.txt. (Default) Linux only.
Option flag Description
--enable-pece-rip Enable RIP as the CE/PE protocol to support VPN. Linux only.
--disable-pece-rip Disable RIP as the CE/PE protocol. (Default) Linux only.
--enable-ripd Build the RIP daemon. (Default Linux)
--disable-ripd Do not build RIP daemon.
--enable-ripngd Build the RIPng daemon. (Default Linux with IPv6)
--disable-ripngd Do not build RIPng daemon.
Option flag Description
--enable-bigendian Enable Big Endian support.
--disable-bigendian Disable Big Endian support.
--enable-restart Enable Graceful and Hitless Restart features.
--disable-restart Disable Graceful and Hitless Restart features. (Default)
--enable-storage-dev Enable Storage Device support. (Default)
--disable-storage-dev Disable Storage Device support.
--with-ipnet2 Use IPNet for IPv6 support.
--with-pne22 Build with PNE 2.2.
Installation on VxWorks Systems
60 ©2001-2005 IP Infusion Inc. Confidential
Traffic Engineering
Virtual Routing/Forwarding
ZebOS (NSM) Daemon
Compiling the SoftwareAfter configuring the build environment, set the environment variable.
1. Change directory to:
cd platform/vxworks (for VxWorks-Native)
Option flag Description
--enable-ospf-cspf Enable the CSPF feature and all the TE options for OSPF.
--disable-ospf-cspf Disable the CSPF feature and all the TE options for OSPF. (Default)
--enable-rsvpd Enable RSVP daemon. (Default Linux)
--disable-rsvpd Do not build the RSVP daemon.
--enable-te Enable TE for IS-IS, OSPF, RSVP, and QoS Module Stub in the NSM.
--disable-te Disable TE support. (Default)
Option flag Description
--enable-vrf To Enable the VRF feature.
Note: If you have Enabled VR, you do not need to Enable VRF. Enabling VR automatically enables VRF support.
--disable-vrf To Disable the VRF feature.(Default)
Option flag Description
--enable-if-unnumbered Enable the NSM IPv4/IPv6 unnumbered interface feature.
--disable-if-unnumbered Disable the NSM IPv4/IPv6 unnumbered interface feature. (Default)
--enable-nsm Build the NSM daemon. (Default)
--disable-nsm Do not build the NSM daemon.
--enable-rtadv Enable the Router Advertisement feature. (Default)
--disable-rtadv Disable the Router Advertisement feature.
--enable-snmp Enable SNMP support for: bgp, isis, ldp, nsm, ospfd, pim, ripd. (Default)
--disable-snmp Disable SNMP support.
--enable-tcp-message Enable TCP/IP socket connection between daemons.
--disable-tcp-message Disable TCP/IP socket connection between daemons. (Default)
Installation on VxWorks Systems
©2001-2005 IP Infusion Inc. Confidential 61
cd platform/vxworks-ipnet2 (for VxWorks-IPNet2)
2. Run the make clean utility:
make clean
3. Run the make utility. You can use make all for all available modules or just make specific protocols by specifying the protocols. Please note that make install, implies make all:
make <protocol>|all
make bgpd
make module (to compile ZebOS ARS as a module)
The following is a list of the makefile commands:
4. Daemons are created in the platform/linux/bin directory.
Linking ZebOS with VxWorks BSPZebOS can be linked into VxWorks by using any of the following two methods:
1. Load zebos.o using ld<zebos.o on Target shell or Host shell.
2. Use the Board Support Package (BSP) makefile to create the VxWorks Image, and Boot image to bring up VxWorks.
Add zebos.o in the platform/vxworks/bin directory to the MACH_EXTRA make variable of your BSP. The image creation depends upon the BSP you want the build for. Please refer to your BSP for the details on image creation.
Building the FTP Image--vxworksFor details on building an FTP image go to the following directory:
$(WIND_BASE)/target/config/your_bsp
For example:
• In your BSP directory add the following lines to the makefile:# The ZebOS module to be added to the image.MACH_EXTRA += zebosvxw/platform/vxworks/bin/zebos.o
• If you have your own USER_APPL_INIT defined remove the file userAppInit.c in the (CPU)/ directory.
• Perform make vxWorks.st for building an image with symbol table built in.
You can compile the image and symbol table separately. Please refer to the VxWorks documentation for details.
Make Targets Function Comments
all makes all available modules Applies to the top level and to all available modules
dep makes all dependencies Applies to the top level and to all available modules
clean cleans up from a previous make Applies to the top level and to all available modules
protocol makes the specified protocol daemon nsm, bgpd, ospfd, ospf6d, pimd, ripd, ldpd, ripngd, rsvpd
modules makes all available modules Applies to the top level and to all available modules
Installation on VxWorks Systems
62 ©2001-2005 IP Infusion Inc. Confidential
Note: Besides FTP you can build other forms of the image on ROM, Hard Disk or Flash.
Booting the System• Boot the system using the target boot ROM method available.
• After your target systems boots up from the floppy, change your boot configuration. The time available to start this is 5 seconds. Use the following commands to change the boot configuration:
c to change configuration
@ to boot system from ftp server
Configuring the Physical IP Addresses • After VxWorks image is loaded off tftp server, configure the physical IP addresses for the target system and start
ZebOS routing services. Use the following commands after the prompt:ifAddrSet "fei0", "xxx.xxx.xxx.xxx"ifAddrSet "fei1", "yyy.yyy.yyy.yyy"ifMaskSet "fei0", 0xffffff00ifMaskSet "fei1", 0xffffff00ifBroadcastSet "fei0", "xxx.xxx.xxx.255"ifBroadcastSet "fei1", "yyy.yyy.yyy.255"
• To start ZebOS routing services, enter zebos at the VxWorks console.
Note: If you are using IP Infusion’s usrAppInit.c, ZebOS starts at the start of VxWorks.
©2001-2005 IP Infusion Inc. Confidential 63
CHAPTER 7 Configuring Router for SNMP
IPI supports the SMUX (RFC 1227) and AgentX (RFC 2257) protocols, which are used by SNMP agents to query variables maintained by another user-level process. This chapter provides instructions on how to install and configure SMUX and AgentX protocols. It also describes various SNMP utilities.
Note: You cannot use SMUX and AgentX protocols simultaneously. Make sure to use the instructions provided in this chapter according to the protocol you are using.
Obtaining SNMPDownload Net-SNMP software (net-snmp-5.0.8.tar.gz) from www.net-snmp.org web-site. Install and configure the software by following the instructions given in the INSTALL file, which comes with the software.
In the IPI lab, SNMP has been tested on most of the Unix/Linux systems. All ZebOS protocol modules are tested using Net-SNMP version 5.0.8 for SMUX and AgentX.
SNMP with SMUX
Installing Net-SNMP SoftwarePerform the following steps to install and configure the SNMP software (refer to the above mentioned INSTALL file for the latest instructions):
Note: Before compiling SNMP, check the SMUX_MAX_PEERS macro in smux.h. This value decides the allowed number of unique peers in SNMP. Each change in smux peer OID is counted as a new peer. IPI recommends a minimum value of 25. If your usage requires changes in smux OID reserve a bigger value.
1. Change to the directory containing the SNMP source code.cd snmp
2. Type the following command to configure SNMP for your system:./configure --with-mib-modules=“smux” --enable-shared
Note: Press enter at all prompts during snmpd configuration.
3. After configuring the environment, to compile the software for your system, issue the make command in the root of the source directory:
makeumask 022
4. Install the build components by entering the following command:make installldconfig
Note: Make sure to start snmpd before any protocol that will communicate with SNMP. Although you can start nsm before or after snmpd.
Configuring Router for SNMP
64 ©2001-2005 IP Infusion Inc. Confidential
Configuring SMUXWhen ZebOS is started, each daemon tries to connect to the SNMP daemon using the default smux peer ID. The SNMP daemon is configured with the default smux peer ID, when ZebOS is started, the connection is established and protocol daemons can talk to the SNMP daemon. Users must make sure to configure the SNMP daemon with the default smux peer ID only.
To configure SMUX:
1. Create a file snmpd.conf under the /usr/local/share/snmp/directory. This is the default location. When SNMP daemon starts, by default, it loads the configuration file from the default location. It can also load the configuration file from another directory. To load the snmpd.conf file from a different location (not default) use the following command:
snmpd -d -c <PATH>/snmpd.conf -C
where <PATH> is the directory from where the snmpd.conf file is to be loaded.
2. Add the following lines at the end of the file:
The smuxpeer is for communication between snmpd and the routing protocols. The smuxpeer values listed above are smuxpeer IDs assigned by IANA (Internet Assigned Numbers Authority). The smuxpeer values correspond with ZebOS routing protocols RIP, OSPF, BGP and PIM-SM. These values should not be modified.
The string rwcommunity test is the community setting between snmpd (agent) and actual SNMP management station (client). The string test is a community string (the authentication key) used for authentication between the agent and the client. The community string test may be changed for security purposes.
Enabling SNMP in the Source Code1. Install the router software on the machine and upzip the source-code tar file.
2. Change to the ZebOS directory (snmp option is enabled by default), run configure and compile the code:./configure
3. Change directory to platform/PLATFORM
where PLATFORM is the platform being used. For example, Linux, NetBSD etc.
make allmake install
smuxpeer 1.3.6.1.4.1.3317.1.2.3 (For RIP)
smuxpeer 1.3.6.1.4.1.3317.1.2.5 (For OSPF)
smuxpeer 1.3.6.1.4.1.3317.1.2.2 (For BGP)
smuxpeer 1.3.6.1.4.1.3317.1.2.8 (For PIM-SM)
smuxpeer 1.3.6.1.4.1.3317.1.2.6 (For LDP)
smuxpeer 1.3.6.1.4.1.3317.1.2.10 (For NSM)
smuxpeer 1.3.6.1.4.1.3317.1.2.11 (For OSPFv3)
smuxpeer 1.3.6.1.4.1.3317.1.2.7 (For ISISv4/v6)
smuxpeer 1.3.6.1.4.1.3317.1.2.9 (For RSVP-TE)
rwcommunity test
Configuring Router for SNMP
©2001-2005 IP Infusion Inc. Confidential 65
SNMP with AgentX
Installing Net-SNMP SoftwarePerform the following steps to install and configure the SNMP software (refer to the above mentioned INSTALL file for the latest instructions):
1. Change to the directory containing the SNMP source code.
2. Type the following command to configure AgentX for your system:./configure --with-mib-modules="agentx"
Note: The configure command configures the agent to use the AgentX protocol. This is an IETF defined protocol that allows a master/client relationship between agents and subagents.
3. After configuring the environment, compile the software for your system. Issue the make command in the root of the source directory:
makeumask 022
4. Install the build components by entering the following command: make install
Configuring AgentXWhen ZebOS is started, each daemon connects to the Master Agent running as SNMP daemon, by giving requests to the master agent. Once the request is accepted by the master agent, a session is established between the subagent at the ZebOS protocol daemon and the master agent running at the SNMP daemon. This session is used by the protocol daemons to communicate with the SNMP daemon.
To configure AgentX:
1. Create a file snmpd.conf under /usr/local/share/snmp/ directory. This is the default location. When SNMP daemon starts, by default, it loads the configuration file from the default location. It can also load the configuration file from another directory. To load the snmpd.conf file from a different location (not default) use the following command:
snmpd -x localhost:705 -c <PATH>/snmpd.conf -C
where <PATH> is the directory from where the snmpd.conf file is located.
2. Add the following lines:
• At the end of the file, add rwcommunity test. This is your community string.
• On a new line at the end of the file add master agentx. This tells the agents to behave as the master in the master/client AgentX protocol.
The string rwcommunity test is the community setting between snmpd (agent) and actual SNMP Management Station (client). The string test is a community string (the authentication key) used for authentication between the agent and the client. The community string test may be changed for security purposes.
Enabling AgentX in the Source Code1. Install the router software on the machine and unzip the source-code tar file.
Configuring Router for SNMP
66 ©2001-2005 IP Infusion Inc. Confidential
2. Change to the ZebOS directory, run configure with Agentx enabled (apart from the other options) and compile the code:
./configure -enable-agentx
3. Change directory to platform/PLATFORM
cd platform/PLATFORM
where PLATFORM is the platform being used. For example, Linux, NetBSD etc.
make all
make install
Note: If AgentX is not enabled the code is built with SMUX by default.
Configuring Router for SNMP
©2001-2005 IP Infusion Inc. Confidential 67
SNMP UtilitiesThis section applies to both SMUX and AgentX.
In the following examples:
-c is an option specifying community string
test is the community string
10.10.10.50 is the agent machine’s IP address.(it can be a localhost)
i = is used to set an integer value
a = is used to set an IP address
s = is used to set a string value
TYPE = i|a|s
VALUE = Value of the specified Type. For example i 20 sets an integer value of 20.
This topology has been used in the following examples:
OSPFsnmpget
From the client or management, execute snmpget to get the value from the OSPF MIB.
snmpget -c test 10.10.10.50 .1.3.6.1.2.1.14.1.1.0
.1.3.6.1.2.1.14.1.1.0 is the object ID of the variable ospfRouterIdsnmpgetnext
From the client or management, execute snmpgetnext to get the next value from the OSPF MIB.
snmpgetnext -c test 10.10.10.50 .1.3.6.1.2.1.14.1.1.0
Executing this command returns ospfAdminStat .1.3.6.1.2.1.14.1.2.0, the next Object ID from ospfGeneralGroup table.
snmpset
From the management station execute snmpset to set the router ID value to 1.1.1.1. This command is also used to create and delete the variable in MIB.
snmpset -c test 10.10.10.50 .1.3.6.1.2.1.14.1.1.0 a 1.1.1.1
snmpwalk
SNMP ManagementStation
Router 110.10.10.5410.10.10.50
Agent AgentRouter2
Configuring Router for SNMP
68 ©2001-2005 IP Infusion Inc. Confidential
Execute snmpwalk to walk through each table in the OSPF MIB.
snmpwalk -c test 10.10.10.50 .1.3.6.1.2.1.14.7.1.6.10.10.10.50.3
.1.3.6.1.2.1.14.7.1.6.10.10.10.50.3 is the Object ID of the variable ospfIfRtrPriority.
OSPFv3snmpget
From the client or management, execute snmpget to get the value from the OSPFv3 MIB.
snmpget -c test 10.10.10.50 .1.3.6.1.3.122.1.1.2.0
.1.3.6.1.3.122.1.1.2.0 is the Object ID of the variable ospfAdminStat.snmpgetnext
From the client or management, execute snmpgetnext to get the next value from the OSPFv3 MIB.
snmpgetnext -c test 10.10.10.50 .1.3.6.1.3.122.1.1.1.0
Executing this command returns ospfAdminStat .1.3.6.1.3.122.1.1.2.0, the next Object ID from ospfGeneralGroup table.
snmpwalk
Execute snmpwalk to walk through each table in the OSPFv3 MIB.
snmpwalk -c test 10.10.10.50 .1.3.6.1.3.122.1.1.3.0
.1.3.6.1.3.122.1.1.3.0 is the Object ID for the variable ospfVersionNumber.
ISIS snmpget
The following command gets the value of isissysinstance from the ISISSysTable.
snmpget -c test 10.10.10.50 .1.3.6.1.3.37.1.1.1.1.1.1
snmpwalk
The following command walks through the ISISSysTable.
snmpwalk -c test 10.10.10.50 .1.3.6.1.3.37.1.1
snmpset
From the management station execute snmpset to set isisSysType to be Level-2-only.
snmpset -c test 10.10.10.68 .1.3.6.1.3.37.1.1.1.1.3.1 i 2
BGPsnmpget
The following command gets the value of bgpVersion.
snmpget -c test 10.10.10.50 .1.3.6.1.2.1.15.1.0
snmpset
The following command sets the value of bgpPeerMinRouteAdvertisementInterval.
snmpset -c test 10.10.10.50 .1.3.6.1.2.1.15.3.1.23.10.10.10.52 i 40
Configuring Router for SNMP
©2001-2005 IP Infusion Inc. Confidential 69
snmpwalk
The following command walks through bgpPeerTable.
snmpwalk -c test 10.10.10.50 .1.3.6.1.2.1.15.1
RIPsnmpget
The following command gets the value of rip2GlobalRouteChanges.
snmpget -c test 10.10.10.50 .1.3.6.1.2.1.23.1.1.0
snmpwalk
The following command walks through ripInterfaceTable.
snmpwalk -c test 10.10.10.50 .1.3.6.1.2.1.23.1
snmpset
The following command sets the value of rip2IfConfSend
snmpset -c test 10.10.10.50 .1.3.6.1.2.1.23.3.1.5.10.10.11.50 i 1
PIM-SMsnmpget
The following command gets the value of pimJoinPruneInterval which is the default interval at which PIM-SM Join/Prune messages are to be sent.
snmpget -c test 10.10.10.50 .1.3.6.1.3.61.1.1.1.0
snmpset
The following command sets the value of pimJoinPruneInterval which is the default interval at which PIM-SM Join/Prune messages are to be sent.
snmpset -c test 10.10.10.50 .1.3.6.1.3.61.1.1.1.0 i 30
snmpwalk
The following command walks through the PIM Interface table
snmpwalk -c test 10.10.10.50 1.3.6.1.3.61.1.1.2
LDPsnmpget
snmpget on LDP returns mplsLdpLsrId from mplsLdpLsrObjects:
snmpget -c test 10.10.10.10 .1.3.6.1.2.1.10.1.4.1.1.1.0
Output:
transmission.1.4.1.1.1.0 = Hex: C0 A8 00 2A
snmpwalk
snmpwalk on LDP returns mplsLdpEntityGenericObjects from mplsLdpEntityObjects:
snmpwalk -c test 10.10.10.10 .1.3.6.1.2.1.10.1.4.1.2.5
Configuring Router for SNMP
70 ©2001-2005 IP Infusion Inc. Confidential
Output:
transmission.1.4.1.2.5.1.1.3.192.168.0.42.0.0.1.16.1048575 = 0transmission.1.4.1.2.5.1.1.4.192.168.0.42.0.0.1.16.1048575 = 2transmission.1.4.1.2.5.1.1.5.192.168.0.42.0.0.1.16.1048575 = 1
snmpgetnext
snmpgetnext on LDP returns mplsLdpLsrLoopDetectionCapable from mplsLdpLsrObjects:
snmpgetnext -c test 10.10.10.10 .1.3.6.1.2.1.10.1.4.1.1.1.0
Output:
transmission.1.4.1.1.2.0 = 5
NSM (LSR)snmpget
snmpget on LSR MIB returns mplsInterfaceLabelMaxOut from mplsInterfaceConfTable.
snmpget -c test 10.10.10.100 .1.3.6.1.2.1.10.1.2.1.1.1.3.1
Output:
transmission.1.2.1.1.1.3.1 = 1048575
snmpwalk
snmpwalk on LSR MIB returns the mplsInterfaceConfTable:
snmpwalk -c test 10.10.10.10 .1.3.6.1.2.1.10.1.2.1.1
Sample Output
transmission.1.2.1.1.1.2.0 = 16transmission.1.2.1.1.1.2.2 = 16transmission.1.2.1.1.1.2.3 = 16transmission.1.2.1.1.1.2.4 = 16transmission.1.2.1.1.1.3.0 = 1048575transmission.1.2.1.1.1.3.2 = 1048575transmission.1.2.1.1.1.3.3 = 1048575transmission.1.2.1.1.1.3.4 = 1048575transmission.1.2.1.1.1.4.0 = 16transmission.1.2.1.1.1.4.2 = 16transmission.1.2.1.1.1.4.3 = 16transmission.1.2.1.1.1.4.4 = 16transmission.1.2.1.1.1.5.0 = 1048575transmission.1.2.1.1.1.5.2 = 1048575transmission.1.2.1.1.1.5.3 = 1048575transmission.1.2.1.1.1.5.4 = 1048575transmission.1.2.1.1.1.6.2 = 0transmission.1.2.1.1.1.6.3 = 100000transmission.1.2.1.1.1.6.4 = 100000transmission.1.2.1.1.1.7.2 = 0transmission.1.2.1.1.1.7.3 = 100000transmission.1.2.1.1.1.7.4 = 100000transmission.1.2.1.1.1.8.0 = 1transmission.1.2.1.1.1.8.2 = 1
Configuring Router for SNMP
©2001-2005 IP Infusion Inc. Confidential 71
transmission.1.2.1.1.1.8.3 = 1transmission.1.2.1.1.1.8.4 = 1
snmpgetnext
snmpgetnext on LSR MIB returns the next value from mplsInterfaceConfTable:
snmpgetnext -c test 10.10.10.100 .1.3.6.1.2.1.10.1.2.1.1.1.3.1
Output:
transmission.1.2.1.1.1.3.2 = 1048575
NSM (FTN)snmpwalk
snmpwalk on FTN MIB returns the entire FTN MIB:
snmpwalk -c test 10.10.10.10 .1.3.6.1.2.1.10.1.5
Output:
transmission.1.5.1.2.1.2.1 = 1transmission.1.5.1.2.1.3.1 = ""transmission.1.5.1.2.1.4.1 = 1transmission.1.5.1.2.1.5.1 = 1transmission.1.5.1.2.1.6.1 = ""transmission.1.5.1.2.1.7.1 = ""transmission.1.5.1.2.1.8.1 = "1.1.1.1"transmission.1.5.1.2.1.9.1 = "1.1.1.1"transmission.1.5.1.2.1.10.1 = 0transmission.1.5.1.2.1.11.1 = 0transmission.1.5.1.2.1.12.1 = 0transmission.1.5.1.2.1.13.1 = 0transmission.1.5.1.2.1.14.1 = 0transmission.1.5.1.2.1.15.1 = 2transmission.1.5.1.2.1.16.1 = "mplsFTNTable.1.0.0.1"transmission.1.5.1.2.1.17.1 = 0transmission.1.5.1.2.1.18.1 = 2transmission.1.5.1.4.1.1.1 = 0transmission.1.5.1.4.1.2.1 = 0transmission.1.5.1.4.1.3.1 = 0transmission.1.5.1.4.1.4.1 = 0
snmpget
snmpget on FTN MIB returns mplsFTNDestipv4AddrMin from mplsFTNEntry:
snmpget -c test 10.10.10.100 .1.3.6.1.2.1.10.1.5.1.2.1.8.1Output:
transmission.1.5.1.2.1.8.1 = "1.1.1.1"
snmpgetnext
snmpgetnext on FTN MIB returns mplsFTNDestipv4AddrMax from mplsFTNEntry:
snmpgetnext -c test 10.10.10.10 .1.3.6.1.2.1.10.1.5.1.2.1.8.1Output:
Configuring Router for SNMP
72 ©2001-2005 IP Infusion Inc. Confidential
transmission.1.5.1.2.1.9.1 = "1.1.1.1"
SNMP TRAPSSNMP traps are sent by the SNMP agent to the Management Station when an unusual event occurs. The Management Station then catches these traps using the snmptrapd utility.
To configure SNMP traps, specify the destination for the traps in the snmpd.conf file by using the trapsink A.B.C.D command. Where A.B.C.D is the IP address of the Management Station:
smuxpeer 1.3.6.1.4.1.3317.1.2.2 smuxpeer 1.3.6.1.4.1.3317.1.2.3 smuxpeer 1.3.6.1.4.1.3317.1.2.5 smuxpeer 1.3.6.1.4.1.3317.1.2.7 smuxpeer 1.3.6.1.4.1.3317.1.2.8 rwcommunity test trapsink 10.10.11.10
After configuring the trapsink make sure that the trapsink is reachable.
To view trap messages, use the following command on the Management Station. This command runs SNMP trap daemon on the foreground:
snmptrapd -f -P
You might also configure the snmptrapd utility to send email notification when a trap event occurs.
BGPThere are two types of SNMP traps for BGP:
• bgpEstablished: Is generated when the BGP FSM enters the established state.
• bgpBackwardTransition: Is generated when the BGP FSM moves from a higher state to a lower state.
Both of these traps have 3 objects. The values of these Objects give information about the BGP connection state:
• bgpPeerRemoteAddress 15.1.3.1.7 (indicates the IP Address of the Peer)
• bgpPeerLastError 15.3.1.14 (indicates the Last Error)
• bgpPeerState 15.3.1.2 (indicates the State is established or idle)
When the value of bgpPeerState is 1 it indicates an idle state and when value is 6 it indicates an established state.
Sample Output
2002-08-07 15:26:00 10.10.10.50 [10.10.10.50] (via 10.10.11.50 [10.10.11 iso.org.dod.internet.snmpV2.snmpModules.snmpMIB
Enterprise Specific Trap (2) Uptime: 20:16:05.57
15.3.1.7.10.10.11.52 = IpAddress: 10.10.11.52
15.3.1.14.10.10.Hex: 00 00
15.3.1.2.10.10.11.52 = 1
OSPFThere are sixteen OSPF traps defined in RFC1850. Currently, IPI implements the following (12) OSPF traps:
Configuring Router for SNMP
©2001-2005 IP Infusion Inc. Confidential 73
• ospfIfStateChange (trap 16)
• ospfCirtIfStateChange (trap 1)
• ospfNbrStateChange (trap 2)
• ospfVirtNbrStateChange (trap 3)
• ospfIfConfigError (trap 4)
• ospfCirtIfConfigError (trap 5)
• ospfIfAuthFailure (trap 6)
• ospfVirtIfAuthFailure (trap 7)
• ospfOriginateLsa (trap 12)
• ospfMaxAgeLsa (trap 13)
• ospfLsdbOverflow (trap 14)
• ospfLsdbApproachingOverflow (trap 15)
Note: Please refer to RFC1850 for details on Object groups and OSPF trap descriptions.
The following is a sample output from ospfNbrStateChange trap.
Sample Output
ZebOS# ./snmptrapd -P -f2003-05-05 17:36:14 anvl.ipinfusion.com [10.10.0.11] (via 10.10.11.60[10.10.11.60]) TRAP, SNMP v1, community public 14.16.2 Enterprise Specific Trap (2) Uptime: 0:01:23.95 14.1.1.0 = IpAddress: 10.10.11.60 14.10.1.1.10.10.11.50.0 =IpAddress: 10.10.11.50 14.10.1.2.10.10.11.50.0 = 014.10.1.3.10.10.11.50.0 = IpAddress: 10.10.11.50 14.10.1.6.10.10.11.50.0 = 1
PIM-SMThe SNMP trap for PIM-SM defines the following object:
pimNeighborLoss This trap denotes the loss of an adjacency with a neighbor. It is generated when the neighbor time expires and the router has no other neighbors on the same interface with a lower IP address than itself.
Sample Output
2002-12-16 19:40:50 UCD-snmp version 4.2.6 Started.
2002-12-16 19:42:46 anvl.ipinfusion.com [10.10.0.11] (via 10.10.11.50
[10.10.11.50]) TRAP, SNMP v1, community public
61 Enterprise Specific Trap (1) Uptime: 1 day, 7:23:34.82
61.1.1.3.1.2.10.10.10.10 = 3
ISISIPI implements all of the 17 isisNotificationGroup traps defined in the IETF draft <draft-ietf-isis-wg-mib-10.txt>. The following traps are under the ISIS Notification Group:
• isisDatabaseOverload (trap 1)
• isisManualAddressDrops (trap 2)
• isisCorruptedLSPDetected (trap 3)
Configuring Router for SNMP
74 ©2001-2005 IP Infusion Inc. Confidential
• isisAttemptToExceedMaxSequence (trap 4)
• isisIDLenMismatch (trap 5)
• isisMaxAreaAddressesMismatch (trap 6)
• isisOwnLSPPurge (trap 7)
• isisSequenceNumberSkip (trap 8)
• isisAuthenticationTypeFailure (trap 9)
• isisAuthenticationFailure (trap 10)
• isisVersionSkew (trap 11)
• isisAreaMismatch (trap 12)
• isisRejectedAdjacency (trap 13)
• isisLSPTooLargeToPropagate (trap 14)
• isisOriginatingLSPBufferSizeMismatch (trap 15)
• isisProtocolsSupportedMismatch (trap 16)
• isisAdjacencyChange (trap 17)
Note: Please refer to IETF draft <draft-ietf-isis-wg-mib-10.txt> for details on Object groups and ISIS trap descriptions.
The following is a sample output from the isisAdjacencyChange (Trap 17) trap. Trap 17 contains:
OBJECTS { isisSystemInstance, isisSystemLevel, isisCircIfIndex, isisPDUFragment }
This trap is sent when a Level 2 IS is created by the second IS instance and the CircuitIFIndex 3 is DOWN.
Sample Output
ZebOS# ./snmptrapd -P -f iso.3.6.1.3.37.2.0 Enterprise Specific Trap (13) Uptime: 2 days, 23:27:39.59 iso.3.6.1.3.37.1.10.1.1.1.2 = INTEGER: 2 iso.3.6.1.3.37.1.10.1.1.2.2 = INTEGER: 2 iso.3.6.1.3.37.1.3.1.1.2.2.1 = INTEGER: 3 iso.3.6.1.3.37.1.10.1.1.4.2 = Hex-STRING:
83 1B 01 00 10 01 00 00
©2001-2005 IP Infusion Inc. Confidential 75
CHAPTER 8 Initial Daemon Configuration
This chapter includes instructions on how to start, stop and configure ZebOS daemons and how to map port numbers to daemon names. It also provides sample configurations for each of the protocols.
Before starting ZebOSMake sure you read this section completely before starting ZebOS. When starting the ZebOS routing process, it is important to start the daemons in a particular order.
1. Start NSM (Network Services Module) before other protocol daemons; protocol daemons depend on the NSM for certain services, such as, route updates, QoS services and interface information. If you stop NSM, make sure to restart all protocol daemons when you restart NSM.
2. If you use SNMP, start the SNMP daemon before any of the ZebOS daemons.
3. After starting NSM and SNMP, you can start the protocol daemons in any order. However, there is one exception. To start RSVP-TE you must start the OSPF or ISIS protocol daemon first. Since OSPF and ISIS act as the server daemon for RSVP-TE (client daemon), they must be started before the client daemon.
4. Make the necessary configuration changes (refer to the sample configuration files section) and save these changes using commands:
write filewrite memory
Remember, if the daemons are terminated before running these commands, the configuration changes are lost.
Using the write command saves the configuration changes directly into the configuration file that was used to bring up the daemon. For example, if you start the NSM with the default configuration file /usr/local/etc/nsm.conf, the write file/memory command writes the configuration to the /usr/local/etc/nsm.conf file.
Starting and Stopping ZebOS Daemons
Unix-based Systems• Start the ZebOS daemons from the command prompt by using the binary name and appropriate runtime flags:
If you have not enabled the IMI configuration option before compiling ZebOS:
./nsm -d
./<protocol> -d
If you have enabled the IMI configuration option (not enabled IMISH option) before compiling ZebOS:
./nsm -d
./<protocol> -d
./imi -d
Initial Daemon Configuration
76 ©2001-2005 IP Infusion Inc. Confidential
If you have enabled the IMISH configuration option (also enables IMI) before compiling ZebOS:
./nsm -d
./<protocol> -d
./imi -d
./imish
Note: Skip the next step of starting the telnet session, if you have enabled the IMISH configuration options before compiling ZebOS. Using IMISH you cannot telnet to the protocol daemons using the port number.
• Start a telnet session:
telnet <IPADDRESS/localhost> <PORT>
where IPADDRESS is the address of the machine with the protocol daemons. Use <localhost> if protocol daemons are running on the same machine. <PORT> is the port number of the protocol daemon. Refer to Mapping Port Numbers to ZebOS daemons section for details.
Note: When IMI is enabled, to start a telnet session, use port 2650 and access all protocols and NSM.
• Stop a ZebOS daemon by simply terminating the process of the daemon:
kill <pid>
where <pid> is the Process ID of the daemon that is to be stopped. Use the Unix command ps to learn about the process ID of a specific daemon.
Note: Remember that if you stop NSM, you must restart all the other routing daemons with NSM.
VxWorks Systems• On the Windshell, start the ZebOS protocol daemons from the command prompt by running the following
commands:
start_zebos() Starts ZebOS.
start_nsm() Starts the Network Services Module (NSM).
start_protocolname() Starts a ZebOS protocol daemon. For example:
start_ospf() Starts the OSPF protocol daemon.
start_auth() Starts the AUTH (802.1x) protocol daemon.
start_lacp() Starts the LACP protocol daemon.
• On the Windshell, stop the ZebOS protocol daemons by using the following commands.
stop_zebos() Stops ZebOS.
stop_nsm() Stops the Network Services Module (NSM).
stop_protocolname() Stops a ZebOS protocol daemon. For example:
stop_ospf() Stops the OSPF protocol daemon.
stop_auth() Stops the AUTH (802.1x) protocol daemon.
stop_lacp() Stops the LACP protocol daemon.
• Start a telnet session:
telnet <IPADDRESS> <PORT>
Initial Daemon Configuration
©2001-2005 IP Infusion Inc. Confidential 77
where IPADDRESS is the address of the machine with the protocol daemons. <PORT> is the port number of the protocol daemon. Refer to Assigning Port Numbers to ZebOS daemons section for details.
Loading the Configuration FileThis section does not apply to VxWorks users, on VxWorks the configuration file cannot be specified dynamically. On Unix-based operating systems, the option -f can be used to load configuration from a specific file. The criteria used for reading the configuration file is as follows:
Without -f optionWhen the daemon is started without using the -f option:
• It reads from the configuration file in the current working directory. For example, if NSM is started:./nsm -d
it will read from the configuration file, nsm.conf in the current working directory.
• If the configuration file (in this example nsm.conf) is not present in the current directory, the daemon reads the configuration file from the HAVE_SYSCONFDIR (/usr/local/etc) directory.
Note: Similarly, when the IMI daemon is started without the -f option, IMI reads the configuration from the ZebOS.conf configuration file in the current working directory. If the ZebOS.conf file is not present in the current working directory, then IMI reads the configuration from the /usr/local/etc directory.
With -f optionWhen the daemon is started using the -f option:
• If the file is specified with an absolute path (for example, ./nsm -d -f /etc/nsm.conf), the daemon reads the configuration from the specified file.
• If the file is specified as a relative path (for example ./nsm -d -f ../nsm.conf), the daemon reads the specified file by concatenating it with the current working directory.
• If the file does not contain the PAL_FILE_SEPARATOR (for example, ./nsm -d -f nsm.conf), the daemon reads the specified configuration file by concatenating it with the current working directory.
Accessing sample configuration files After installing ZebOS, edit the following configuration files as necessary to configure each daemon. Use the samples to start:
Daemon Configuration File (Unix)
(located with daemon modules)
Daemon Configuration File (VxWorks)
(located with daemon modules)
Sample Configuration File(On Unix: under /usr/local/etc)(On VxWorks: under protocol directory - ZebOS/nsm)
nsm.conf nsm.cfg nsm.conf.sample
ripd.conf ripd.cfg ripd.conf.sample
ripngd.conf ripngd.cfg ripngd.conf.sample
ospfd.conf ospfd.cfg ospfd.conf.sample
ospf6d.conf ospf6d.cfg ospf6d.conf.sample
Initial Daemon Configuration
78 ©2001-2005 IP Infusion Inc. Confidential
Configuring the NSM Daemon To edit the NSM daemon configuration file, perform the following steps:
1. Copy the NSM sample file to the NSM configuration file:cp nsm.conf.sample nsm.conf
Note: On VxWorks systems, first copy the sample file to the configuration file (cp nsm.conf.sample nsm.cfg) and then copy the configuration file to the target.
2. Edit the configuration file using the sample configuration file as a guide. % vi nsm.conf
Following is a copy of the NSM configuration sample file:
!hostname Routerpassword zebraenable password zebra!! VRF definition!!ip vrf test1!ip vrf test2!! Interface's description. !!interface lo! description test of desc.!!interface sit0! multicast
bgpd.conf bgpd.cfg bgpd.conf.sample.
ldpd.conf ldpd.cfg ldpd.conf.sample
rsvpd.conf rsvpd.cfg rsvpd.conf.sample
isisd.conf isisd.cfg isisd.conf.sample
pimd.conf pimd.cfg pimd.conf.sample
dvmrpd.conf dvmrpd.cfg dvmrpd.conf.sample
stpd.conf stpd.cfg stpd.conf.sample
mstp.conf mstpd.cfg mstp.conf.sample
rstp.conf rstpd.cfg rstp.conf.sample
authd.conf authd.cfg authd.conf.sample
lacpd.conf lacpd.cfg lacpd.conf.sample
Daemon Configuration File (Unix)
(located with daemon modules)
Daemon Configuration File (VxWorks)
(located with daemon modules)
Sample Configuration File(On Unix: under /usr/local/etc)(On VxWorks: under protocol directory - ZebOS/nsm)
Initial Daemon Configuration
©2001-2005 IP Infusion Inc. Confidential 79
!!interface eth0! ip vrf forwarding test1! ip address 10.0.0.1/30!! Static default route sample.!! ip route 0.0.0.0/0 203.181.89.241!! ip route vrf test1 10.0.5.0/24 10.0.0.2 eth0 !! If you are running OSPF on *BSD stack machines, uncomment the line.!! ip route 224.0.0.5/32 127.0.0.1!!log file zebra.log
3. Change the necessary information to conform to your network.
Note: In the case of BSD implementations, add these static routes to the nsm.conf: (OSPF/RIP multicast does not function without these routes)
ip route 224.0.0.2/32 127.0.0.1ip route 224.0.0.4/32 127.0.0.1ip route 224.0.0.5/32 127.0.0.1ip route 224.0.0.6/32 127.0.0.1ip route 224.0.0.9/32 127.0.0.1ip route 224.0.0.18/32 127.0.0.1
Note: Add this line to the nsm.conf file for the IP multicast address group: (for the LDP daemon)
ip route 224.0.0.2/32 127.0.0.1
Configuring the RIP Daemon To edit the RIP daemon configuration file, perform the following steps:
1. Copy the ripd sample file to the ripd configuration file:cp ripd.conf.sample ripd.conf
Note: On VxWorks systems, first copy the sample file to the configuration file (cp ripd.conf.sample ripd.cfg) and then copy the configuration file to the target.
2. Edit the configuration file using the sample configuration file as a guide. % vi ripd.conf
Following is a copy of the ripd sample configuration file:
!hostname ripdpassword zebra!! debug rip events! debug rip packet!router rip! network 11.0.0.0/8! network eth0! route 10.0.0.0/8
Initial Daemon Configuration
80 ©2001-2005 IP Infusion Inc. Confidential
! distribute-list private-only in eth0!!access-list private-only permit 10.0.0.0/8!access-list private-only deny any! !log file ripd.log!log stdout
3. Change the necessary information to conform to your network.
Configuring the OSPF DaemonTo edit the OSPF daemon configuration file, perform the following steps:
1. Copy the ospfd sample file to the ospfd configuration file:cp ospfd.conf.sample ospfd.conf
Note: On VxWorks systems, first copy the sample file to the configuration file (cp ospfd.conf.sample ospfd.cfg) and then copy the configuration file to the target.
2. Edit the configuration file using the sample configuration file as a guide. % vi ospfd.conf
Following is a copy of the ospfd sample configuration file:
!hostname ospfdpassword zebra!enable password please-write-here!!router ospf! network 192.168.1.0/24 area 0!log stdout
3. Change the necessary information to conform to your network.
Configuring the BGP DaemonTo edit the BGP daemon configuration file, perform the following steps:
1. Copy the bgpd sample file to the bgpd configuration file:cp bgpd.conf.sample bgpd.conf
Note: On VxWorks systems, first copy the sample file to the configuration file (cp bgpd.conf.sample bgpd.cfg) and then copy the configuration file to the target.
2. Edit the configuration file using the sample configuration file as a guide. % vi bgpd.conf
Following is a copy of the bgpd sample file:
!hostname bgpdpassword zebralog stdout!
Initial Daemon Configuration
©2001-2005 IP Infusion Inc. Confidential 81
debug bgpdebug bgp eventsdebug bgp updatesdebug bgp fsm!router bgp 11 bgp router-id 10.10.10.50 neighbor 10.10.10.15 remote-as 11 neighbor 10.10.10.15 interface eth0 neighbor 10.10.10.20 remote-as 11 neighbor 10.10.10.20 interface eth0 neighbor 10.10.10.25 remote-as 11 neighbor 10.10.10.25 interface eth0 neighbor 10.10.10.30 remote-as 4 neighbor 10.10.10.30 interface eth0 neighbor 10.10.10.30 ebgp-multihop 255 neighbor 10.10.10.30 dont-capability-negotiate neighbor 10.10.10.35 remote-as 4 neighbor 10.10.10.35 interface eth0 neighbor 10.10.10.35 ebgp-multihop 255 neighbor 10.10.10.35 dont-capability-negotiate neighbor 10.10.11.15 remote-as 43 neighbor 10.10.11.15 interface eth1 neighbor 10.10.11.15 ebgp-multihop 255 neighbor 10.10.11.15 dont-capability-negotiate neighbor 10.10.11.20 remote-as 40 neighbor 10.10.11.20 interface eth1 neighbor 10.10.11.20 ebgp-multihop 255 neighbor 10.10.11.20 dont-capability-negotiate!line vty exec-timeout 0 0!
3. Change the necessary information to conform to your network.
Configuring the LDP DaemonTo edit the LDP daemon configuration file, perform the following steps:
1. Copy the ldpd sample file to the ldpd configuration file:cp ldpd.conf.sample ldpd.conf
Note: On VxWorks systems, first copy the sample file to the configuration file (cp ldpd.conf.sample ldpd.cfg) and then copy the configuration file to the target.
2. Edit the configuration file using the sample configuration file as a guide. % vi ldpd.conf
Following is a copy of the ldpd sample file:
!password zebra!interface eth0 enable-ldp!interface lo
Initial Daemon Configuration
82 ©2001-2005 IP Infusion Inc. Confidential
!interface vmnet1!!router ldp!line vty
3. Change the necessary information to conform to your network.
Configuring the RSVP DaemonTo edit the RSVP daemon configuration file, perform the following steps:
1. Copy the rsvpd sample file to the rsvpd configuration file:cp rsvpd.conf.sample rsvpd.conf
Note: On VxWorks systems, first copy the sample file to the configuration file (cp rsvpd.conf.sample rsvpd.cfg) and then copy the configuration file to the target.
2. Edit the configuration file using the sample configuration file as a guide. % vi rsvpd.conf
Following is a copy of the rsvpd sample file:
!password zebra!interface eth0 enable-rsvp!interface lo!interface vmnet1!!router rsvp!line vty
3. Change the necessary information to conform to your network.
Configuring the ISIS DaemonTo edit the ISIS daemon configuration file, perform the following steps:
1. Copy the isisd sample file to the isisd configuration file:cp isisd.conf.sample isisd.conf
Note: On VxWorks systems, first copy the sample file to the configuration file (cp isisd.conf.sample isisd.cfg) and then copy the configuration file to the target.
2. Edit the configuration file using the sample configuration file as a guide. % vi isisd.conf
Following is a copy of the isisd sample file:
!hostname isisdpassword zebra
Initial Daemon Configuration
©2001-2005 IP Infusion Inc. Confidential 83
!!interface eth0! ip router isis!!router isis! net 49.0001.0000.0000.0110.00!
3. Change the necessary information to conform to your network.
4. To edit the ISIS daemon configuration file for IPv6 enabled routing use the following configuration: !hostname isisdpassword zebra!!interface eth0! ipv6 router isis!!router isis! net 49.0001.0000.0000.0110.00!
Configuring the PIM DaemonTo edit the PIM daemon configuration file, perform the following steps:
1. Copy the pimd sample file to the pimd configuration file:cp pimd.conf.sample pimd.conf
Note: On VxWorks systems, first copy the sample file to the configuration file (cp pimd.conf.sample pimd.cfg) and then copy the configuration file to the target.
2. Edit the configuration file using the sample configuration file as a guide. % vi pimd.conf
Following is a copy of the pimd sample file:
!pimd.conf.sample,!hostname zpimdpassword pimd!debug pim events! debug pim packet!ip multicast-routing! interface eth0 ip pim sparse-mode !interface eth1 ip pim sparse-mode !log stdout
3. Change the necessary information to conform to your network.
Initial Daemon Configuration
84 ©2001-2005 IP Infusion Inc. Confidential
Configuring the DVMRP Daemon To edit the DVMRP daemon configuration file, perform the following steps:
1. Copy the dvmrpd sample file to the dvmrpd configuration file:cp dvmrpd.conf.sample dvmrpd.conf
Note: On VxWorks systems, first copy the sample file to the configuration file (cp dvmrpd.conf.sample dvmrpd.cfg) and then copy the configuration file to the target.
2. Edit the configuration file using the sample configuration file as a guide. % vi dvmrpd.conf
Following is a copy of the dvmrpd sample configuration file:
dvmrpd sample configuration file! dvmrpd.conf.sample,!hostname dvmrppassword dvmrp!debug dvmrp eventsdebug dvmrp packet!interface eth0 ip dvmrp enable!interface eth1 ip dvmrp enable !log stdout
3. Change the necessary information to conform to your network.
Configuring the RIPng DaemonTo edit the RIPng daemon configuration file, perform the following steps:
1. Copy the ripngd sample file to the ripngd configuration file:cp ripngd.conf.sample ripngd.conf
Note: On VxWorks systems, first copy the sample file to the configuration file (cp ripngd.conf.sample ripngd.cfg) and then copy the configuration file to the target.
2. Edit the configuration file using the sample configuration file as a guide. % vi ripngd.conf
Following is a copy of the ripngd sample file:
!! RIPngd sample configuration file!! $Id: ripngd.conf.sample,v 1.1 2002/10/02 01:18:12 venu Exp $!hostname ripngdpassword zebra!! debug ipv6 rip events
Initial Daemon Configuration
©2001-2005 IP Infusion Inc. Confidential 85
! debug ipv6 rip packet!interface eth0! ipv6 router rip!router ipv6 rip! distribute-list local-only out eth0!!ipv6 access-list local-only permit 3ffe:506::0/32!ipv6 access-list local-only deny any!log stdout
Configuring the OSPF6 DaemonTo edit the OSPF6 daemon configuration file, perform the following steps:
1. Copy the ospf6d sample file to the ospf6d configuration file:cp ospf6d.conf.sample ospf6d.conf
Note: On VxWorks systems, first copy the sample file to the configuration file (cp ospf6d.conf.sample ospf6d.cfg) and then copy the configuration file to the target.
2. Edit the configuration file using the sample configuration file as a guide. % vi ospf6d.conf
Following is a copy of the ospf6d sample file:
!hostname ospf6dpassword zebra!!enable password please-set-at-here!!interface lo0!!interface eth0! ipv6 router ospf area 0!!router ipv6 ospf! router-id 192.168.0.1log stdout!
Configuring Basic Access Networking Services
DNS!ip domain-name ipinfusion.comip domain-list ipinfusion.comip name-server 10.10.0.2ip name-server 10.10.0.88ip domain-lookup
Initial Daemon Configuration
86 ©2001-2005 IP Infusion Inc. Confidential
!
DHCPip dhcp pool defaultnetwork 10.55.0.0 255.255.255.0range 10.55.0.90 10.55.0.95lease 0 1 30
!interface eth1ip address 10.55.0.1/24
ip address dhcp client-id eth1!
NAT!interface eth0ip address 10.10.0.19/24ip nat outside
!interface eth1ip address 10.55.0.1/24ip nat inside
!access-list zebos permitall permit any any any!ip nat pool natpool 10.10.0.19 10.10.0.19 255.255.255.0ip nat inside source list permitall pool natpool!
NTPntp authenticatentp authentication-key 10 md5 zebos_ntp_syncntp authentication-key 5 md5 zebos_trusted_keyntp trusted-key 5ntp trusted-key 10ntp master 5!
NAT & Firewall (denying ICMP packet forwarding) !interface eth0ip address 10.10.0.19/24ip nat outside
!interface eth1ip address 10.55.0.1/24ip nat inside
Initial Daemon Configuration
©2001-2005 IP Infusion Inc. Confidential 87
ip access-group denyicmp forward !access-list zebos denyicmp deny icmp any anyaccess-list zebos permitall permit any any any!ip nat pool natpool 10.10.0.19 10.10.0.19 255.255.255.0ip nat inside source list permitall pool natpool!
Virtual-server!interface eth0ip address 10.10.0.19/24ip nat outside!interface eth1ip address 10.55.0.1/24ip nat inside!ip nat pool natpool 10.10.0.19 10.10.0.19 255.255.255.0!virtual-server tcp 5000 10.55.0.2 8080 webserver!
Configuring Layer 2 Protocols
AUTHhostname authpassword ipi! dot1x system-auth-control radius-server key SOMEKEY radius-server host HOST interface eth1 dot1x port-control auto! log file auth.log
log stdout
LACPhostname ipinfusionpassword ipi! set lacp-channel system-priority 1 set port lacp-channel IFNAME-1 mode active set port lacp-channel IFNAME-2 mode active! log file lacp.log
Initial Daemon Configuration
88 ©2001-2005 IP Infusion Inc. Confidential
!log stdout
MSTPhostname mstppassword ipi! debug mstp protocol debug mstp protocol detail debug mstp cli debug mstp timer debug mstp timer detail debug mstp packet tx debug mstp packet rx debug mstp all no debug mstp all! log file mstp.log!log stdout
RSTPhostname rstppassword ipi! debug rstp protocol debug rstp protocol detail debug rstp cli debug rstp timer debug rstp timer detail debug rstp packet tx debug rstp packet rx debug rstp all no debug rstp all! log file rstp.log!log stdout
STPhostname stppassword ipi! debug stp all no debug stp all! log file stp.log!log stdout
Initial Daemon Configuration
©2001-2005 IP Infusion Inc. Confidential 89
Mapping Port Numbers to Daemon NamesThe ZebOS daemons have their own terminal interface or VTY. After installation, bind the protocol name with each daemon's port number to connect to each port. This allows you to telnet using the protocol names (associated with ports) instead of the port numbers. For example, you can use nsm instead of using 2601.
Note: If you are using IMISH to access the ZebOS daemons, you do not need to perform this step.
Add the following entries to the /etc/services file:
nsmsrv 2600/tcp nsm 2601/tcp ripd 2602/tcp ripngd 2603/tcp ospfd 2604/tcp bgpd 2605/tcp ospf6d 2606/tcp ldpd 2607/tcp rsvpd 2608/tcpisisd 2609/tcppimd 2610/tcpdvmrpd 2611/tcpauthd 2612/tcpstpd 2613/tcprstpd 2616/tcpmstpd 2618/tcplacpd 2619/tcpimi 2650/tcp
Note: For VxWorks the entries given in the list above are already added to /etc/services. If you specify a port number when starting the daemon, these entries are not required.
Initial Daemon Configuration
90 ©2001-2005 IP Infusion Inc. Confidential
©2001-2005 IP Infusion Inc. Confidential 91
CHAPTER 9 Validating the Installation
Validating Daemon Configuration Use the material in this section to validate the various protocol daemons configurations.
1. Start the ZebOS and the routing daemon:/usr/local/sbin/nsm -d/usr/local/sbin/DAEMON -d
where DAEMON is the daemon name. For example nsm, ospfd, bgpd, ripd, pimd, dvmrpd, isisd, rsvpd, ripngd or ospf6d.
2. To see if the daemon is running use the following commands:ps -e | grep nsmps -e | grep DAEMON
where DAEMON is the daemon name. For example nsm, ospfd, bgpd, ripd, pimd, dvmrpd, isisd, rsvpd, ripngd or ospf6d.
3. Run a telnet session on the local host to check the status of the daemon:# telnet localhost DAEMON
where DAEMON is the daemon name. For example nsm, ospfd, bgpd, ripd, pimd, dvmrpd, isisd, rsvpd, ripngd or ospf6d.
The system responds with:Trying 127.0.0.1...Connected to localhost.Escape character is '^]'.Hello, this is zebos (version 5.2-UNH-5)Copyright 2001,2002 IP Infusion, Inc.
4. Enter the password: (zebra is used as the password in this example.)Password:zebra
5. To verify that the daemon is running, type the following command: router> show ip PROTOCOL
where PROTOCOL is the name of the protocol. For example, rip, ospf, bgp, rsvp, isis, pim, dvmrp, ripng or ospf6.
6. At anytime during the procedure, to view a list of available commands, type:router> list
Validating the Installation
92 ©2001-2005 IP Infusion Inc. Confidential
Final Verification StepAfter the installation is complete, verify that the relevant conf. files exist in the /usr/local/etc directory.
• bgpd.conf.sample • bgpd.conf.sample2• isisd.conf.sample• ospfd.conf.sample • ospf6d.conf.sample• pimd.conf.sample • dvmrpd.conf.sample• ripd.conf.sample• ripngd.conf.sample• rsvpd.conf.sample• nsm.conf.sample
Error MessagesIn the event of an error message, consult the guide for the particular operating system you are using.
Bug ReportsIf you think that you have found a bug in the ZebOS software, send a bug report to:
To send a bug report, use the following format:
• Indicate which OS you are using. If you use the IPv6 stack note this as well.
• Include the results of running netstat -rn and ifconfig -a from the kernel.
• To better report a problem when you observe anomalous behavior on a router running ZebOS software, send the outputs of the following commands from the CLI:
show ip <protocolname> route show ip <protocolname> interfaceshow ip <protocolname> databaseshow ip <protocolname> neighborshow ip routeshow interface
where <protocolname> is the name of the protocol such as, ospf, bgp and so on. Please note that some of these commands not available in all protocols. Refer to the respective Command Reference for details on these commands.
• Send the protocol configuration file with the report. If you specify arguments to the configure script, send us those too.
Bug reports help us analyze and improve the quality of ZebOS.
©2001-2005 IP Infusion Inc. Confidential 93
CHAPTER 10 ZebOS Directory Structure
ZebOS
Platform
dummy
linux
netbsd
vxworks
vxworks_ipnet2
Continued on the next page...
authd
bgpd
dvmrpd
imi
imish
isisd
ldpd
mpls
mstpd
ospfd
ospf6d
pdmd
pimd
ripd
ripngd
rstpdrsvpd
stpd
Rules.optionRules.optionsOs-specific initialization filesSignal handling ...
nsm
L2
garp
gmrp
gvrp
mcast
tunnel
mcast6
igmp _snoop
kernel
layer 2
snmp
ZebOS Directory Structure
94 ©2001-2005 IP Infusion Inc. Confidential
ZebOS
PAL
dummy
linux
netbsd
vxworks
vxworks_ipnet2
API
HAL
L2L3broadcom
marvell
HSL
L2
L3
L2
L3
L2
L3
HSLL2 swfwdr
Prototypes for OSs. Prototype implementations, such as:Socket APIs, Math Libraries, File System Logging, Kernel APIs
L2
L3
Linux
VxworksL2
L3
L2L3
Linux
Vxworks
ipnet2
windnet
L2
L3
ipnet2
windnet
config.sh
builds.logcompile.out
config.log(enables / disables configuration options)
(compiler generated messages)
(compiler outputs)
(bill of material)
lib (ZebOS library)
©2001-2005 IP Infusion Inc. Confidential 95
CHAPTER 11 Configuring and Compiling the Linux Kernel
This appendix provides instructions on configuring and recompiling the Linux kernel to support ZebOS. The Linux kernel options must be correctly configured on the Linux server for the ZebOS software to operate properly.
Verifying the Kernel Source Code InstallationTo verify that the Linux kernel source code is installed on your machine, type:
ls /usr/src/linux
If your system displays an error message like ls: /usr/src/linux: No such file or directory, there could be two reasons for it:
1. The Linux kernel source code is not installed. In this case, you need to download and install the source code before continuing with these instructions.
2. The Linux kernel source code is in a different directory /usr/src/<linux-base> (where linux-base is the name of a Linux directory such as Linux-2.4). In this case, create a soft link Linux pointing to the <linux-base> directory. For example:
# ln -s linux-2.4.20-6 linux (Creates the linux symbolic link to linux-2.4.20-6)
Configuring the KernelFollow these instructions to configure the kernel.
1. To configure the kernel, open the Linux kernel source code folder by typing:
cd /usr/src/linux
2. Open the kernel configuration window by typing:
make xconfig
Note: If make xconfig is not supported, use make menuconfig or make config to configure Linux kernel settings.
3. A Linux Kernel Configuration window is displayed. The ZebOS software requires that the IP Multicast, Netlink and RTNetlink settings be enabled (these settings are enabled by default in Linux Kernel 2.4.16 and higher).
4. Enable/Disable Linux Kernel options according to the modules you want to install:.
OptionsEnable/Disable Comment
Code Maturity Level Options Y To enable Experimental Options. For IPv6 support.
Networking Options
Configuring and Compiling the Linux Kernel
96 ©2001-2005 IP Infusion Inc. Confidential
5. Select appropriate drivers for your interface card from the Network Device Support field.
6. Save kernel configuration and exit.
7. Once you have completed these steps, compile the Linux kernel
Unix Domain Sockets Y (Enabled by Default)
TCP/IP Networking Y (Enabled by Default)
IP: multicasting Y (Enabled by Default)
IP: multicast routing Y For PIM-SM support
IP: PIM-SM version 1 support Y For PIM-SM support
IP: PIM-SM version 2 support Y For PIM-SM support
IP: TCP RFC2385 MD5 Support Y For MD5 support
The IPv6 Protocol (Experimental) Y For IPv6 support
IPv6: enable EUI-64 token format (NEW) Y For IPv6 support
IPv6: disable provider based addresses (NEW) Y For IPv6 support
IPV6:ISATAP Interface Support (Experimental) Y For ISATAP support
IP: Tunneling Y For IPIP tunnel support
IP: GRE Tunnels over IP Y For GRE tunnel support
IP: Broadcast GRE over IP Y
802.1Q VLAN Support Y For VLAN support
Kernel/User Netlink Socket Y For MPLS Forwarder Support
Routing Messages Y For MPLS Forwarder Support
IPI 802.1x Port Authentication Entity Y For Layer-2 support
IPI Vlan-Aware Bridge Forwarder Y For Layer-2 support
IPI Link Aggregation Control Protocol Y For Layer-2 support
Loadable Module Support Option
Set version information on all module symbols N Disable for MPLS Forwarder Support
OptionsEnable/Disable Comment
Configuring and Compiling the Linux Kernel
©2001-2005 IP Infusion Inc. Confidential 97
Compiling the Linux KernelThe Linux kernel must be compiled in order for kernel configuration changes or applied kernel patches to take effect. Compiling the kernel can take up to 20 minutes depending upon the processor speed and amount of RAM in the Linux server.
1. From the /usr/src/linux/ folder, type the following command to identify kernel dependencies:make dep
2. To compile the kernel, type:make bzImage
3. To compile kernel modules, such as network drivers, type:make modules
4. To move the module object files into the correct directory, type:make modules_install
Note: If you are using grub.conf for your boot loader on a RH 9 Linux distribution 2-4-20-6 kernel, you can run make install and skip the following steps (5, 6, 7 and 8). The make install utility copies the kernel image and sets up GRUB automatically.
5. To move the new kernel into the correct directory, open the Linux boot image folder by typing:cd /usr/src/linux/arch/i386/boot
6. Copy the new kernel image to the boot folder and rename the kernel image file name by typing:cp bzImage /boot/[new kernel image name]
The newly created Linux kernel should be saved in the /boot/ folder.
7. To boot the new kernel at boot time, add the new kernel information to the lilo.conf file. Open the /etc/ folder and type:
vi lilo.conf
Note: The lilo.conf file may be modified when the new kernel is created. If the new kernel is properly defined as the default kernel, skip the next two steps.
8. To modify the lilo.conf file to run the new kernel at boot up, edit the file to add the new kernel information.
• The bold font indicates text that you must add. Observe the syntax parameters of the previous image and modify only the image and label fields. Replace [new kernel image name] by the path name for the new image and replace [new kernel label] by a unique label name. It is recommended that you choose a self-explanatory name for the label, such as, label=linux-pim. You will see this label in the list of labels after you reboot the system.
• The grey font indicates you have the option to add. Modify [default kernel label]only if you want to start the new image by default.
boot=/dev/hdamap=/boot/mapinstall=/boot/boot.bprompttimeout=50default=[default kernel label]
image=/boot/[new kernel image name]label=[new kernel label]
Configuring and Compiling the Linux Kernel
98 ©2001-2005 IP Infusion Inc. Confidential
read-onlyroot=/dev/hda5image=/boot/[old kernel file]label=[old kernel label]read-onlyroot=/dev/hda5
9. After the lilo.conf file has been edited and saved, type the following command to make the editing changes take effect:
/sbin/lilo
10. Once you have completed these steps, you can reboot the server to load the new Linux kernel by selecting the [new kernel label] you have defined in the lilo.conf file.
©2001-2005 IP Infusion Inc. Confidential 99
Appendix A Applying Kernel Patches
This appendix describes all the patches provided by IPI and the instructions for applying these patches on Linux and MontaVista.
Patch Description
Applying Patch on Linux KernelThe following table provides a list of all the patches provided by IPI for Linux systems. After you untar the tar file provided by IPI, the relevant patches (according to the software you purchased) are available in the location displayed in this table.
Protocol Patch Name Description
Layer-2 l2kernel_linux-2.4.diff This patch is for RedHat kernel 2.4.20-6 (9.0).
Layer-2 rx_hook_linux-2.4.diff This patch is for updating kernels missing rx_hook to support 802.1x.
MPLS linux-2.4.20-ipi-mpls.diff This patch adds MPLS Forwarder support.
MD5 linux-2.4.20-tcp-md5.diff This patch adds support for MD5 authentication on TCP.
ISATAP linux-2.4.20-isatap-redhat.diff This patch is required for providing the ZebOS ISATAP interface support.
MCAST linux-2.4.20-ipi-multicast.diff This patch adds multicast support.
RAW linux-2.4.20-ipi-raw-fragment.diff This patch adds support for raw packet fragmentation.
Protocol Patch Location Patch Command Patch Name
Layer-2 ZebOS/kernel/linux/2.4.20-6 patch -Np2 -i l2kernel_linux-2.4.diff
Layer-2 ZebOS/kernel/linux/2.4.20-6 patch -Np2 -i rx_hook_linux-2.4.diff
MPLS ZebOS/kernel/linux/2.4.20-6 patch -Np0 -i linux-2.4.20-ipi-mpls.diff
MD5 ZebOS/kernel/linux/2.4.20-6 patch -Np1 -i linux-2.4.20-tcp-md5.diff
ISATAP ZebOS/kernel/linux/2.4.20-6 patch -Np1 -i linux-2.4.20-isatap-redhat.diff
Applying Kernel Patches
100 ©2001-2005 IP Infusion Inc. Confidential
1. Install Linux 2.4.20-6 (Fully tested and supported).
2. Change to the source directory:
cd /usr/src
3. Backup your kernel source:
tar cvfz linux-2.4.20-6.tar.gz linux-2.4.20-6
4. Change to your kernel source directory:
cd /usr/src/linux-2.4 (This is a soft link pointing to linux-2.4.20-6)
5. Copy the patch to the kernel source directory:
cp /PATH/PATCH ./
where
PATH = is the location of the patch. Refer to the above table to learn the location of the patch.
PATCH = The name of the patch provided IPI. Refer to the above table to learn the name of the patch.
For example to apply the MPLS patch:
cp /yourZebOSpath/ZebOS/kernel/linux/2.4.20/linux-2.4.20-ipi-mpls.diff ./
6. Apply the kernel patch to Linux source code using the following command:patch -Npnum -i PATCH
where
-N Ignores reversed or applied patches
-p Strips the “num” of slashes in the Patch file. For example -p2 strips 2 slashes in the patch file.
-i Reads patch from the patch file.
PATCH is the name of the patch. Refer to the above table for patch names.
For example to apply the MPLS patch:
patch -Np1 -i linux-2.4.20-ipi-mpls.diff
7. Check for Hunk failures, if present, note them and contact IPI Technical Support team ([email protected]).
8. Run menu configuration using the following command:make menuconfig
9. Enable and disable the required Linux kernel Networking options for the patch. Refer to the “Configuring and Compiling the Linux Kernel” appendix for required options for different modules.
10. Use other options as required for the hardware.
MCAST ZebOS/kernel/linux/2.4.20-6 patch -Np1 -i linux-2.4.20-ipi-multicast.diff
RAW ZebOS/kernel/linux/2.4.20-6 patch -Np1 -i linux-2.4.20-ipi-raw-fragment.diff
Protocol Patch Location Patch Command Patch Name
Applying Kernel Patches
©2001-2005 IP Infusion Inc. Confidential 101
11. Recompile the kernel. Refer to “Compiling the Linux Kernel” appendix for instructions on how to compile the Linux kernel.
12. Reboot the machine with the new kernel.
Applying Patch on MontaVistaThe following table provides a list of all the patches provided by IPI for MontaVista systems. After you untar the tar file provided by IPI, the relevant patches (according to the software you purchased) are available in the location displayed in this table.
1. Install Linux 2.4.20-6 (Fully tested and supported).
2. Change to the source directory:
cd /usr/src
3. Backup your kernel source:
tar cvfz linux-2.4.20_mvl31.tar.gz linux-2.4.20_mvl31
4. Change to your kernel source directory:
cd /usr/src/linux-2.4 (This is a soft link pointing to linux-2.4.20-6)
5. Copy the patch to the kernel source directory:
cp /PATH/PATCH ./
where
PATH = is the location of the patch. Refer to the above table to learn the location of the patch.
PATCH = The name of the patch provided IPI. Refer to the above table to learn the name of the patch.
For example to apply the MPLS patch:
cp /yourZebOSpath/ZebOS/kernel/montavista/ipi-mpls.diff ./
6. Apply the kernel patch to Linux source code using the following command:patch -Npnum -i PATCH
where
-N Ignores reversed or applied patches
-p Strips the “num” of slashes in the Patch file. For example -p2 strips 2 slashes in the patch file.
-i Reads patch from the patch file.
PATCH is the name of the patch. Refer to the above table for patch names.
Protocol Location Patch Command Patch Name
Layer-2 ZebOS/kernel/montavista patch -Np2 -l l2kernel_linux-2.4.diff
Layer-2 ZebOS/kernel/montavista patch -Np2 -l rx_hook_linux-2.4.diff
MPLS ZebOS/kernel/montavista patch -Np1 -l ipi-mpls.diff
MD5 ZebOS/kernel/montavista patch -Np1 -l ipi-md5.diff
Applying Kernel Patches
102 ©2001-2005 IP Infusion Inc. Confidential
For example to apply the MPLS patch:
patch -Np1 -i ipi-mpls.diff
7. Run menu configuration using the following command:make menuconfig
8. Enable and disable the required Linux kernel Networking options for the patch. Refer to the “Configuring and Compiling the Linux Kernel” appendix for required options for different modules.
10. Use other options as required for the hardware.
11. Recompile the kernel. Refer to “Compiling the Linux Kernel” appendix for instructions on how to compile the Linux kernel.
12. Reboot the machine with the new kernel.
©2001-2005 IP Infusion Inc. Confidential 103
Appendix B Installing MontaVista Linux
Before you Begin Installation Obtain the following MontaVista CDs:
Installing MontaVista Linux
Host CD
1. Login as a root user.
2. Place the Host CD in the drive and start the installation by typing:
/mnt/cdrom/install
This step allows you to change CDs during the installation process.
3. Using a Web browser, continue the installation process by typing the following URL:
http://localhost:9999
4. On the Welcome page for Installation of MontaVista Professional Edition, click Install to begin the installation process.
5. The Installer displays the End User License Agreement page, read the agreement and click Accept, if you wish to continue.
6. On the Installation Path page, type the complete installation path as described on the page and click Next to continue:
Name Details
1 Host Installation start - host tools
2 Development Environment Development tools
3 LSP Linux Support Package for a specific platform
4 Cross Cross compile tools for a specific platform
5 Target Target code for a specific platform
Installing MontaVista Linux
104 ©2001-2005 IP Infusion Inc. Confidential
7. On the Installation Options page, select the Full Installation option and click Next to continue:
Installing MontaVista Linux
©2001-2005 IP Infusion Inc. Confidential 105
1. The Installer displays the Installation Summary page, read and click Next to continue:
Development CD
1. Insert the Environment Development CD, enter the path for the CD and click Next to continue:
2. The Installer displays the Java End User License Agreement page, read the agreement and click Accept, if you wish to continue.
3. The Installer displays the Installation Summary page, read and click Next to continue.
Installing MontaVista Linux
106 ©2001-2005 IP Infusion Inc. Confidential
LSP CD
1. Insert the Linux Support Package media CD. Enter the path for the LSP CD and click Next to continue:
2. On the Target Selection page, select the targets to install. The options will depend on the chosen platform. Click Next to continue.
Cross CD
1. Insert the Cross CD.
2. Enter the path for the Cross CD and click Next to continue:
Installing MontaVista Linux
©2001-2005 IP Infusion Inc. Confidential 107
Target CD
1. Insert the Target CD and click Next to continue:
2. The installer displays an installation summary. Read and click Next to continue:
3. The installer prompts you to insert additional software. If you want to install additional software, insert the CD for it. Otherwise, click Skip to continue.
4. The software is now installed. On completing the installation, the installer displays a thank you page.
Installing MontaVista Linux
108 ©2001-2005 IP Infusion Inc. Confidential
©2001-2005 IP Infusion Inc. Confidential 109
Appendix C Compiling ZebOS on VxWorks-Broadcom
This section displays the actual build environment and options chosen when compiling ZebOS on VxWorks-Broadcom in the IP Infusion lab. Make changes to the parameters according to your own environment. Refer to the Installation on VxWorks-IPNET Systems chapter for other details.
Building ZebOS on BroadcomThe following was added to the VxWorks Build Environment:
# Tornado environment
WIND_HOST_TYPE=sun4-solaris2
WIND_BASE=/usr/tornadoppc71
WIND_REGISTRY=solaris8sj1
PATH=$PATH:$WIND_BASE/host/$WIND_HOST_TYPE/bin
export WIND_HOST_TYPE WIND_BASE WIND_REGISTRY WIND_HOST_TYPE PATH
export CPU=PPC603
# Location of Broadcom SDK
export BROADCOM_SDK=/home/broadcom/sdk-5.1.1
export SRCDIR=$WIND_BASE/target/config
export SDK=$BROADCOM_SDK
# Changed to point to top of ZebOS source
export SRCROOT=/var/tmp/ZebOS
The following was added to the Makefile located at $BROADCOM_SDK/firmware/systems/bmw/mpc824x:
MACH_EXTRA += $(SRCROOT)/platform/vxworks/bin/zebos.o
Changed directory to vxworks:
cd ZebOS/platform/vxworks
Typed:
make all
cd $BROADCOM_SDK/systems/vxworks/bmw
make clean
cd..
make
Images created are:
bcm.bmw
bcm.bmw.sym
Compiling ZebOS on VxWorks-Broadcom
110 ©2001-2005 IP Infusion Inc. Confidential
©2001-2005 IP Infusion Inc. Confidential 111
Appendix D Platform-Specific Considerations
Linux Systems
Increasing the Size of Kernel Routing TablesBy default, Linux systems allow installing 4096 numbers of routes (IPv4 or IPv6) in the kernel. To change this limit, edit the max-size file:
For IPv4:
/proc/sys/net/ipv4/route/max-size
For IPv6:
/proc/sys/net/ipv6/route/max-size
The maximum numbers of routes allowed in the kernel are 2147482645.
Performing all Routing in the VR ModeThe RedHat Linux implementation installs all routes in FIB 0 even when routes are installed in VR-specific FIBs. IPI recommends that VR 0 must be reserved for management purposes and not used for routing. All routing must be performed in the VR mode.
Adding VLAN Interfaces
Currently, VLAN is not part of the Linux kernel distribution. To create VLAN interfaces, you must insert the 802.1Q VLAN module.
• To configure VLAN interfaces, use the vconfig utility to attach each VLAN to a physical device: vconfig add eth1 VLANID
where VLANID is the VLAN identifier (0-4095) you have chosen. For example, the following commands define VLANs 6 and 7 on interface eth1:
vconfig add eth1 6vconfig add eth1 7
The vconfig utility creates two VLAN interfaces, with names, eth1.6 and eth1.7.
• Once the virtual interfaces are defined, they can be used in the same way as other interfaces. You can list VLAN interfaces using the ifconfig -a command.
• To remove a VLAN interface, use the following command:vconfig rem V_IFNAME
where V_IFNAME is the name of the VLAN interface, for example, eth1.6.
Platform-Specific Considerations
112 ©2001-2005 IP Infusion Inc. Confidential
NetBSD Systems
Adding VLAN InterfacesThe NetBSD kernel supports 802.1Q VLANs. This allows more than one virtual LAN on one physical network interface.
• To configure a VLAN interface on NetBSD, you must first create the interface and then specify the VLAN identifier and the physical interface associated with this VLAN:
ifconfig V_IFNAME create vlan VLANID vlanif IFNAME
where V_IFNAME is the name that you assign to the new VLAN interface, VLANID is the VLAN Identifier and IFNAME is the name of the physical interface associated with this VLAN.
In the following example, a VLAN interface with the name vlan10 is created with a VLAN ID 10 on the physical interface ex1.
ifconfig vlan10 create vlan 10 vlanif ex1
Note: To avoid confusion, IPI recommends using a VLAN interface name that matches the VLAN ID. In the above example, VLAN interface name vlan10 matches the VLAN ID 10.
• To remove a VLAN interface on NetBSD, use the following command:ifconfig V_IFNAME destroy
where V_IFNAME is the name of the VLAN interface you want to remove, for example, vlan10.
©2001-2005 IP Infusion Inc. Confidential 113
Appendix E Copyright Information
Third-party Copyright and License Information
NET-SNMP Software Copyright 1989, 1991, 1992 by Carnegie Mellon University Derivative Work - 1996, 1998-2000
Copyright 1996, 1998-2000 The Regents of the University of California All Rights Reserved
Permission to use, copy, modify and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appears in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of CMU and The Regents of the University of California not be used in advertising or publicity pertaining to distribution of the software without specific written permission.
CMU AND THE REGENTS OF THE UNIVERSITY OF CALIFORNIA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL CMU OR THE REGENTS OF THE UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM THE LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Copyright (c) 2001, Networks Associates Technology, Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
• Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
• Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
• Neither the name of the NAI Labs nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Portions of this code are copyright (c) 2001, Cambridge Broadband Ltd. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
• Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
• Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
Copyright Information
114 ©2001-2005 IP Infusion Inc. Confidential
• The name of Cambridge Broadband Ltd. may not be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Copyright Information for MD5 Authentication Software Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All rights reserved.
License to copy and use this software is granted provided that it is identified as the "RSA Data Security, Inc. MD5 Message-Digest Algorithm" in all material mentioning or referencing this software or this function.
License is also granted to make and use derivative works provided that such works are identified as "derived from the RSA Data Security, Inc. MD5 Message-Digest Algorithm" in all material mentioning or referencing the derived work.
RSA Data Security, Inc. makes no representations concerning either the merchantability of this software or the suitability of this software for any particular purpose. It is provided "as is" without express or implied warranty of any kind.
These notices must be retained in any copies of any part of this documentation and/or software.
Copyright Information for Libedit BSD Software Library $NetBSD: chared.c,v 1.14 2001/05/17 01:02:17 christos Exp $
Copyright (c) 1992, 1993 The Regents of the University of California. All rights reserved.
This code is derived from software contributed to Berkeley by Christos Zoulas of Cornell University.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
3. All advertising materials mentioning features or use of this software must display the following acknowledgement:
4. This product includes software developed by the University of California, Berkeley and its contributors.
5. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
Copyright Information
©2001-2005 IP Infusion Inc. Confidential 115
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Linux Kernel PatchesCopyright (C) 2002 IP Infusion Inc. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA' or visit http://www.gnu.org/licenses/gpl.html.
In accordance with the GNU Public License, IP Infusion offers to make source code for these Linux Kernel patches available to the customer upon request for a charge no more than our cost of physically performing the distribution.
Copyright Information
116 ©2001-2005 IP Infusion Inc. Confidential
©2001-2005 IP Infusion Inc. Confidential Index - 1
Index
Aabout this manual vaccessing sample configuration files 77accessing ZebOS daemons 76adding VLAN interfaces
Linux systems 111NetBSD systems 112
Advanced Routing Suite 1applying patches
Linux 99MontaVista-Linux 99
assigning port number to daemons 89autoconf version 2.54 4, 20
Bbefore starting ZebOS 75BGP
snmpget 68snmpset 68snmpwalk 68
BGP SNMP traps 72bgpPeerMinRouteAdvertisementInterval 68bgpPeerTable 69bgpVersion 68Booting the System
VxWorks 62Building the FTP Image--vxworks 61
Cchange installation prefix 16, 31, 48change location of
configuration files 16, 31, 48executable files 16, 31, 48
Code Maturity Options 95compiling on Monta Vista Linux 21compiling the Linux kernel 97Compiling ZebOS
on Linux 16, 31on NetBSD 48
compiling ZebOSVxWorks-Broadcom 109
configurationediting daemons 77script for
Linux 8, 23NetBSD 41VxWorks 54
shell script forLinux 8, 22
NetBSD 41VxWorks 54
configuration optionsLinux 9, 24
configuring the linux kernel 95configuring the physical IP addresses
VxWorks 62conventions used in this manual vCross CD 103
Ddaemons, editing for configuration 77dep 17, 31, 61development CD, LSP CD 103directory structure
ZebOs 93Distance Vector Multicast Routing Protocol see DVMRPdistclean 17, 31DVMRP
introduction
Fforcedep 17, 31
Ggcc version 3.2.x 4, 20
Hhost CD 103how to access ZebOS daemons 76how to increase size of routing tables 111how to install MontaVista 103how to start and stop ZebOS daemons 75how to start ZebOS 75how to use VTY Shell to access ZebOS 77
Iincreasing the size of kernel routing tables 111installation
troubleshooting 92VxWorks 52
Installation of ZebOS onLinux systems 7, 21NetBSD systems 40VxWorks systems 52
copy the ZeboS Source 61link ZebOS with VxWorks BSP 61
Index - 2 ©2001-2005 IP Infusion Inc. Confidential
Index
set up the build environment 61Installing MontaVista Linux 103installing on Monta Vista 19IP multicast routing 96IP multicasting networking option 96IP_ZEBOS_PLATFORM 8, 23, 54, 55ISIS
snmpget 68snmpwalk 68
isissysinstance 68ISISSysTable 68
Kkernel configurations
code maturity options 95IP multicasting networking option 96networking options 95TCP/IP Networking option 96unix domain sockets 96
kernel source codeis it installed 95
LLinux
hardware platform preparation 4IPv4 Stack installation 4, 20IPv6 Stack installation 4, 20kernel options 4
Linux configuration options 9, 24Linux kernel
configure 95
Mmake all-lib 17, 31make all-pal 17, 31make nsm 17, 31make version 3.79.1 4, 20makefile 17, 31, 61makefile commands 17, 31, 61manual
conventions, procedures and syntax vMonta Vista 19Monta Vista Linux
compiling 21hardware platform preparation 20kernel options 20ZebOS daemons 19
montavista installation 103MontaVista-Broadcom
running ZebOS on MontaVista-Broadcom 33system requirements 33
multi-process nature of ZebOS 1
Nnetwork protocols supported
Linux 3Linux IPv4 3MontaVista Linux 19NetBSD 39NetBSD IPv4 39
networking options 95
Oorder for starting ZebOS protocols 75OSPF
snmpget 67snmpset 67snmpwalk 67
OSPF MIB 67OSPF SNMP traps 72ospfRouterId 67OSPFv3 MIB 68overview ZebOS 1
Pperform all routing in the VR mode 111PIM
snmpget 69snmpset 69snmpwalk 69
pimJoinPruneInterval 69PIM-SM SNMP traps 73platform-specific considerations
Linux Systems 111NetBSD Systems 112
port numbers, assigning to daemons 89prefix option 16, 31, 48Protocol Independent Multicasting - Dense Mode 19, 39Protocol Independent Multicasting - Sparse Mode 3, 19,
39protocols supported by ZebOS 1
Rretrieving data when using VTY shell 77RIP
snmpget 69snmpset 69snmpwalk 69
rip2GlobalRouteChanges 69rip2IfConfSend 69ripInterfaceTable 69running ZebOS on MontaVista-Broadcom 33
Ssample configurations 77saving configuration when using VTY Shell 77shell script
configuration for Linux 8, 22configuration for NetBSD 41configuration for VxWorks 54
©2001-2005 IP Infusion Inc. Confidential Index - 3
Index
shell, installation and 3, 19SMUX, Configuring 64snmpget
bgp 67, 68isis 67, 68ospf 67, 68pim 67, 68rip 67, 68
snmpsetbgp 67ospf 67pim 67rip 67
snmptrapBGP 72OSPF 72PIM-SM 73
snmpwalkbgp 67, 68isis 67, 68ospf 67ospfv3 68pim 67, 68rip 67, 68
Special Considerations (on Linux)Virtua Routing (VR) 6, 21Vitual Private Network (VPN) 6, 21
special note for VR implementation 111starting and stopping ZebOS daemons 75
TTarget CD 103TCP/IP networking options 96
troubleshooting 92
Uunix domain sockets 96
Vverify kernel source code installation 95VTY Shell 77VxWorks-Broadcom
compiling ZebOS 109
Wwhat to download for installing montavista 103
ZZebOS
configuration script forLinux 8, 23NetBSD 41VxWorks 54
daemons, assigning port numbers 89network protocols supported for Linux 3network protocols supported for Linux IPv4 3network protocols supported for MontaVista Linux 19network protocols supported for NetBSD 39network protocols supported for NetBSD IPv4 39
ZebOS directory structure 93ZebOS overview 1
Index - 4 ©2001-2005 IP Infusion Inc. Confidential
Index