OSPF RFC2740
2.5. Use of link-local addresses
IPv6 link-local addresses are for use on a single link, for purposes
of neighbor discovery, auto-configuration, etc. IPv6 routers do not
forward IPv6 datagrams having link-local source addresses [Ref15].
Link-local unicast addresses are assigned from the IPv6 address range
FF80/10.
OSPF for IPv6 assumes that each router has been assigned link-local
unicast addresses on each of the router's attached physical segments.
On all OSPF interfaces except virtual links, OSPF packets are sent
using the interface's associated link-local unicast address as
source. A router learns the link-local addresses of all other
routers attached to its links, and uses these addresses as next hop
information during packet forwarding.
OSPF包的源地址都是链路本地地址,包转发时,使用链路本地地址作为下一跳的信息。
On virtual links, global scope or site-local IP addresses must be
used as the source for OSPF protocol packets.
Link-local addresses appear in OSPF Link-LSAs (see Section 3.4.3.6).
However, link-local addresses are not allowed in other OSPF LSA
types. In particular, link-local addresses must not be advertised in
inter-area-prefix-LSAs (Section 3.4.3.3), AS-external-LSAs (Section
3.4.3.5) or intra-area-prefix-LSAs (Section 3.4.3.7).
链路本地地址只在Link-LSA中出现,其它均不允许出现。
A.1 Encapsulation of OSPF packets
OSPF runs directly over the IPv6's network layer. OSPF packets are
therefore encapsulated solely by IPv6 and local data-link headers.
OSPF does not define a way to fragment its protocol packets, and
depends on IPv6 fragmentation when transmitting packets larger than
the link MTU. If necessary, the length of OSPF packets can be up to
65,535 bytes. The OSPF packet types that are likely to be large
(Database Description Packets, Link State Request, Link State Update,
and Link State Acknowledgment packets) can usually be split into
several separate protocol packets, without loss of functionality.
This is recommended; IPv6 fragmentation should be avoided whenever
possible. Using this reasoning, an attempt should be made to limit
the sizes of OSPF packets sent over virtual links to 1280 bytes
unless Path MTU Discovery is being performed [Ref14].
OSPF没有定义分段机制,而是依赖于IPv6的分段机制。
OSPF包大部分可以自己拆分,而不影响,这是推荐的做法。
The other important features of OSPF's IPv6 encapsulation are:
o Use of IPv6 multicast. Some OSPF messages are multicast, when
sent over broadcast networks. Two distinct IP multicast
addresses are used. Packets sent to these multicast addresses
should never be forwarded; they are meant to travel a single hop
only. As such, the multicast addresses have been chosen with
link-local scope, and packets sent to these addresses should have
their IPv6 Hop Limit set to 1.
发往多播地址的包不会被转发,是单跳的。
AllSPFRouters
This multicast address has been assigned the value FF02::5. All
routers running OSPF should be prepared to receive packets sent to
this address. Hello packets are always sent to this destination.
Also, certain OSPF protocol packets are sent to this address
during the flooding procedure.
Hello包的目的地址是ff02::5,某些OSPF协议包在洪泛过程中,会发到这个地址。
AllDRouters
This multicast address has been assigned the value FF02::6. Both
the Designated Router and Backup Designated Router must be
prepared to receive packets destined to this address. Certain
OSPF protocol packets are sent to this address during the flooding
procedure.
o Addresses in LSAs are now expressed as [prefix, prefix length]
instead of [address, mask] (see Section A.4.1). The default route
is expressed as a prefix with length 0.
地址由[地址,掩码]改变为[前缀,前缀长度]
o The Router and Network LSAs now have no address information, and
are network-protocol-independent.
Router-LSA(只有Router ID)和Network-LSA(只有该网络中所有路由器的Router ID)中没有了地址信息,是网络协议独立的。
In IPv4, the router-LSA carries a router's IPv4 interface
addresses, the IPv4 equivalent of link-local addresses. These are
only used when calculating next hops during the OSPF routing
calculation (see Section 16.1.1 of [Ref1]), so they do not need to
be flooded past the local link; hence using link-LSAs to
distribute these addresses is more efficient.
下一跳计算过程中会使用router-LSA中。
关于DR和BDR选举
对于广播网络,比如以太网,如果所有路由器都分别互相交互信息,会造成较大开销。
可以利用广播特性,选择一个中心节点DR,先收集其它路由器的信息,然后,再广播出去。
步骤为:
先选举BDR,再选举DR
BDR,会首先看Router Priority,谁大,选谁;如果一样,看Router ID,谁大选谁。
Router Priority默认是1,若是0,则没有被选举权。Router ID肯定唯一的,因此,肯定能否选出一个BDR来。
之后,会让BDR变为DR,再选举一个BDR出来。
关于master和slave确定
只与Router ID相关,与优先级无关。