Non-Broadcast Multiaccess Networks
Non-broadcast multiaccess networks, by definition, are unable to multicast. This poses a problem, considering that hello packets are typically multicast. In order to get around this, there are several things you can do, depending on the structure of the network. The main non-broadcast multiaccess network in use is frame relay.
Frame relay can be set up in a few different ways. The first is a full mesh, in which all routers on the frame relay network have connections to all other routers. Considering every frame relay connection must be leased from a telcom company, these instances are fairly rare. Partial meshes can happen as well, but these are treated the same way as full mesh. In these instances, there are two different ways to get OSPF to work properly.
The first way is to declare every neighbor router manually in the (config-router) area. In this way, hello packets are automatically sent to the neighbor ip addresses, rather than multicast. An example follows:
router ospf 1
network 3.1.1.0 0.0.0.255 area 0
neighbor 3.1.1.2
neighbor 3.1.1.3
etc
Alternately, you can set up subinterfaces to create a series of point-to-point networks, rather than one large multiaccess network. By doing this, OSPF doesn't need to elect a DR or BDR. Instead, it communicates with its neighbors either by using inverse arp or a frame-relay map. An example follows:
int s0.1 point-to-point
ip address 3.1.1.1 255.255.255.0
encapsulation frame-relay
int s0.2 point-to-point
ip address 3.1.2.1 255.255.255.0
encapsulation frame-relay
router ospf 1
network 3.1.1.0 0.0.0.255 area 0
network 3.1.2.0 0.0.0.255 area 0
The third way that frame relay can be set up in is as a hub-and-spoke topology. This is really a specific instance of a partial mesh, but allows a different method to set up. A regular DR/BDR election would be problematic, as only the hub would see all the candidates. You can get around this by manually setting the priority on all other routers to 0 (thereby making it impossible for them to be DR). Alternately, you could go with a point-to-point setup, but that would require every point-to-point link to use a subnetwork. Though this can be mitigated by using ip unnumbered, there is a third, better approach.
A network can instead be addressed as a point-to-multipoint network, which allows all routers to share one subnetwork. As a result of a point-to-multipoint configuration, all routers are made adjacent. There is no need for a DR or BDR, so priorities are unnecessary and the network is reported as a series of point-to-point links, making neighbor arguments unnecessary. Neighbors can either be specified manually or discovered automatically through Inverse ARP. To configure a point-to-multipoint network, follow these steps:
Step | description | example |
ip ospf network point-to-multipoint | This is executed in the frame-relay interface and overrides the detected network type. This should be entered on all frame-relay routers | Router(config-if)#ip ospf network point-to-multipoint |
frame-relay map ip address dlci broadcast | This command allows broadcasts via DLCI to mapped neighbors. This should be configured on every router to point to its directly connected neighbors. In a hub-and-spoke situation, the hub would have all other routers specified, while each neighbor would have only the hub specified. | router(config-if)#frame relay map ip 3.1.1.1 310 broadcast |