Below are sample generic Quagga 'zebra.conf' and 'ospfd.conf' configuration files. They should, in theory, should work on any node in the Melbourne Wireless network without editing - provided the node-owner has set their interface address properly. Recent [OSPFRevisited developments] may soon render these files obsolete, but it is included here as an example of one way to configure an OSPF network with multiple areas. ---- '''zebra.conf''' hostname quagga password secret enable password secret ! log file /var/log/quagga/zebra.log !log syslog ! ---- '''ospfd.conf''' ! set hostname to the name of your node. ! this is not critical as it is used internally ! as an identifier. ! hostname ospf ! ! 'password' is the VTYSH password - telnet to localhost, port 2604 ! to configure OSPF with a command-line interface ! password secret ! ! 'enable password' is the password to allow advanced access to the CLI ! enable password secret ! ! guess what 'log file' does! ! log file /var/log/quagga/ospfd.log !log syslog ! ! ! Interface definitions in ospfd.conf let Quagga know OSPF-specific ! settings such as the network mode (broadcast - the default, ! non-broadcast, point-to-multipoint or point-to-point). Your OSPF ! neighbour routers need to be running in the same mode, so make sure ! you coordinate with them before changing your mode. ! Point-to-multipoint mode apparently is the best mode for wireless ! interfaces - especially in Adhoc (IBSS) mode, and is apparently now ! bug-free in Quagga. These configs have been commented out and are ! examples only. ! ! Internal LAN !interface eth0 ! passive interface ! ! Wireless Access Point !interface eth1 ! ip ospf network point-to-multipoint ! ! Veritech Card - link !interface wlan0 ! ip ospf network point-to-multipoint ! ! ! this enables OSPF on this router/node ! router ospf ! ! The 'redistribute' command causes Quagga/OSPF to pass on ! various routes to other nodes. ! it is possible to control which routes are passed on using ! 'route-map' filters. ! Quagga/OSPF will redistribute OSPF routes by default ! ! 'connected' passes on routes for all interfaces connected to ! this router, subject to 'route-map' filtering. 'connected' ! routes are treated as if they had been defined with a 'network' ! statement. Since all possible Melbourne Wireless networks are ! already defined below, 'redistribute connected' is not ! necessary here. ! !redistribute connected route-map melbwireless ! ! ! static routes are routes added statically in Quagga. ! these are added in zebra.conf using the 'ip route' Quagga ! command ! redistribute static route-map melbwireless ! ! ! kernel routes are routes added directly to the routing table, ! external to Quagga e.g. by using 'route' or 'ip route' at the ! Linux command-line ! redistribute kernel route-map melbwireless ! ! set 'router-id' to your own Melb Wireless IP address. ! this is not critical - but it helps identify this node to ! other OSPF nodes - useful for debugging ! ! ospf router-id 10.10.145.45 ! ! ! 'network' defines the "supernets" for all the Melbourne Wireless ! Region Groups. OSPF will be activated on any interface on your ! router with an address in one of these "supernets". ! feel free to comment-out any lines that don't apply to ! your node or your neighbor nodes in other areas. At a minimum ! you need to define the network for your area and the network of ! any other area you are directly connected to. ! However, Quagga seems to function with all areas defined ! even if they are not relevant to your router or your ! neighboring routers. ! ! Area 01: RGCentral network 10.10.0.0/20 area 0.0.0.1 ! Area 02: RGWesternPlains network 10.10.16.0/20 area 0.0.0.2 ! Area 03: RGMaribynong network 10.10.32.0/20 area 0.0.0.3 ! Area 04: RGInnerNorth network 10.10.48.0/20 area 0.0.0.4 ! Area 05: Used to be RGDarebin network 10.10.64.0/20 area 0.0.0.5 ! Area 06: RGNorthEast AKA YarraNorth network 10.10.80.0/20 area 0.0.0.6 ! Area 07: RGYarraValley network 10.10.96.0/20 area 0.0.0.7 ! Area 08: RGInnerEast AKA Eastern network 10.10.112.0/20 area 0.0.0.8 ! Area 09: RGOuterEasternAndFoothills AKA DandenongFoothills network 10.10.128.0/20 area 0.0.0.9 ! Area 10: RGSouthern network 10.10.144.0/20 area 0.0.0.10 ! Area 11: RGPeninsula network 10.10.160.0/20 area 0.0.0.11 ! ! ! 'range' causes a summary "supernet" route for an area ! to be published to other areas. Otherwise routes for every ! individual node within that area would be published. Summary ! routes make routing tables smaller and easier to manage ! '/20' is netmask of 255.255.240.0 ! area 0.0.0.1 range 10.10.0.0/20 area 0.0.0.2 range 10.10.16.0/20 area 0.0.0.3 range 10.10.32.0/20 area 0.0.0.4 range 10.10.48.0/20 area 0.0.0.5 range 10.10.64.0/20 area 0.0.0.6 range 10.10.80.0/20 area 0.0.0.7 range 10.10.96.0/20 area 0.0.0.8 range 10.10.112.0/20 area 0.0.0.9 range 10.10.128.0/20 area 0.0.0.10 range 10.10.144.0/20 area 0.0.0.11 range 10.10.160.0/20 area 0.0.0.12 range 10.10.176.0/20 ! ! this access-list is called "mw-supernet" - an arbitrary name. ! it defines all possible addresses in the Melbourne Wireless ! Network and denies all others. We use this to filter out ! non-MW addresses and routes. ! '/16' is netmask of 255.255.0.0 ! access-list mw-supernet deny any access-list mw-supernet permit 10.10.0.0/16 ! ! a 'route-map' is an allowed-routes filter. ! it is built from access-lists and/or other crieteria. ! this route-map is called "melbwireless" - an arbitrary name. ! 'route-map' needs to be defined at the bottom of the ! config file ! route-map melbwireless permit 10 match ip address mw-supernet !