zebosarsinstall

128
IP Infusion Confidential ZebOS ® Intelligent Network Software Version 7.2.8 Advanced Routing Suite (ARS) Installation Guide July 2005

Upload: thien-tran

Post on 08-Oct-2014

684 views

Category:

Documents


26 download

TRANSCRIPT

Page 1: ZebOSARSInstall

IP Infusion Confidential

ZebOS® Intelligent Network Software

Version 7.2.8

Advanced Routing Suite (ARS) Installation Guide

July 2005

Page 2: ZebOSARSInstall

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.

Page 3: ZebOSARSInstall

©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

Page 4: ZebOSARSInstall

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

Page 5: ZebOSARSInstall

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

Page 6: ZebOSARSInstall

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

Page 7: ZebOSARSInstall

©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/...

Page 8: ZebOSARSInstall

Preface

vi ©2001-2005 IP Infusion Inc. Confidential

Page 9: ZebOSARSInstall

©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.

Page 10: ZebOSARSInstall

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]

Page 11: ZebOSARSInstall

©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.

Page 12: ZebOSARSInstall

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.

Page 13: ZebOSARSInstall

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

Page 14: ZebOSARSInstall

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.

Page 15: ZebOSARSInstall

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.

Page 16: ZebOSARSInstall

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

Page 17: ZebOSARSInstall

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.

Page 18: ZebOSARSInstall

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

Page 19: ZebOSARSInstall

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

Page 20: ZebOSARSInstall

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

Page 21: ZebOSARSInstall

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

Page 22: ZebOSARSInstall

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.

Page 23: ZebOSARSInstall

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.

Page 24: ZebOSARSInstall

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

Page 25: ZebOSARSInstall

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

Page 26: ZebOSARSInstall

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

Page 27: ZebOSARSInstall

©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

Page 28: ZebOSARSInstall

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.

Page 29: ZebOSARSInstall

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.

Page 30: ZebOSARSInstall

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.

Page 31: ZebOSARSInstall

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

Page 32: ZebOSARSInstall

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).

Page 33: ZebOSARSInstall

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

Page 34: ZebOSARSInstall

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

Page 35: ZebOSARSInstall

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

Page 36: ZebOSARSInstall

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

Page 37: ZebOSARSInstall

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)

Page 38: ZebOSARSInstall

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.

Page 39: ZebOSARSInstall

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

Page 40: ZebOSARSInstall

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

Page 41: ZebOSARSInstall

©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.

Page 42: ZebOSARSInstall

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

Page 43: ZebOSARSInstall

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 {

Page 44: ZebOSARSInstall

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

Page 45: ZebOSARSInstall

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.

Page 46: ZebOSARSInstall

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.

Page 47: ZebOSARSInstall

©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

Page 48: ZebOSARSInstall

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.

Page 49: ZebOSARSInstall

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

Page 50: ZebOSARSInstall

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.

Page 51: ZebOSARSInstall

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

Page 52: ZebOSARSInstall

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)

Page 53: ZebOSARSInstall

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

Page 54: ZebOSARSInstall

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.

Page 55: ZebOSARSInstall

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)

Page 56: ZebOSARSInstall

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

Page 57: ZebOSARSInstall

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

Page 58: ZebOSARSInstall

Installation on NetBSD Systems

50 ©2001-2005 IP Infusion Inc. Confidential

Page 59: ZebOSARSInstall

©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:

Page 60: ZebOSARSInstall

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.

Page 61: ZebOSARSInstall

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.

Page 62: ZebOSARSInstall

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.

Page 63: ZebOSARSInstall

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.

Page 64: ZebOSARSInstall

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)

Page 65: ZebOSARSInstall

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

Page 66: ZebOSARSInstall

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

Page 67: ZebOSARSInstall

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.

Page 68: ZebOSARSInstall

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)

Page 69: ZebOSARSInstall

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

Page 70: ZebOSARSInstall

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.

Page 71: ZebOSARSInstall

©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.

Page 72: ZebOSARSInstall

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

Page 73: ZebOSARSInstall

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.

Page 74: ZebOSARSInstall

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.

Page 75: ZebOSARSInstall

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

Page 76: ZebOSARSInstall

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

Page 77: ZebOSARSInstall

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

Page 78: ZebOSARSInstall

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

Page 79: ZebOSARSInstall

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:

Page 80: ZebOSARSInstall

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:

Page 81: ZebOSARSInstall

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)

Page 82: ZebOSARSInstall

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

Page 83: ZebOSARSInstall

©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

Page 84: ZebOSARSInstall

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>

Page 85: ZebOSARSInstall

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

Page 86: ZebOSARSInstall

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)

Page 87: ZebOSARSInstall

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

Page 88: ZebOSARSInstall

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!

Page 89: ZebOSARSInstall

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

Page 90: ZebOSARSInstall

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

Page 91: ZebOSARSInstall

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.

Page 92: ZebOSARSInstall

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

Page 93: ZebOSARSInstall

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

Page 94: ZebOSARSInstall

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

Page 95: ZebOSARSInstall

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

Page 96: ZebOSARSInstall

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

Page 97: ZebOSARSInstall

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.

Page 98: ZebOSARSInstall

Initial Daemon Configuration

90 ©2001-2005 IP Infusion Inc. Confidential

Page 99: ZebOSARSInstall

©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

Page 100: ZebOSARSInstall

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:

[email protected]

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.

Page 101: ZebOSARSInstall

©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

Page 102: ZebOSARSInstall

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)

Page 103: ZebOSARSInstall

©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

Page 104: ZebOSARSInstall

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

Page 105: ZebOSARSInstall

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]

Page 106: ZebOSARSInstall

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.

Page 107: ZebOSARSInstall

©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

Page 108: ZebOSARSInstall

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

Page 109: ZebOSARSInstall

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

Page 110: ZebOSARSInstall

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.

Page 111: ZebOSARSInstall

©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

Page 112: ZebOSARSInstall

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:

Page 113: ZebOSARSInstall

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.

Page 114: ZebOSARSInstall

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:

Page 115: ZebOSARSInstall

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.

Page 116: ZebOSARSInstall

Installing MontaVista Linux

108 ©2001-2005 IP Infusion Inc. Confidential

Page 117: ZebOSARSInstall

©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

Page 118: ZebOSARSInstall

Compiling ZebOS on VxWorks-Broadcom

110 ©2001-2005 IP Infusion Inc. Confidential

Page 119: ZebOSARSInstall

©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.

Page 120: ZebOSARSInstall

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.

Page 121: ZebOSARSInstall

©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.

Page 122: ZebOSARSInstall

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

Page 123: ZebOSARSInstall

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.

Page 124: ZebOSARSInstall

Copyright Information

116 ©2001-2005 IP Infusion Inc. Confidential

Page 125: ZebOSARSInstall

©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

Page 126: ZebOSARSInstall

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

Page 127: ZebOSARSInstall

©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

Page 128: ZebOSARSInstall

Index - 4 ©2001-2005 IP Infusion Inc. Confidential

Index