Set arbitrary protocol for route?
Adrian Chadd
adrian at freebsd.org
Sun Aug 24 21:29:01 UTC 2014
Hi,
It looks like someone needs to abstract out the address manager code a
little - adding/removing/querying routing table information is an OS
specific thing and should be moved into a module.
Then yes, you could use the protocol flags mentioned to do it on
freebsd, complete with whatever other OS specific stuff has to happen.
-a
On 24 August 2014 07:58, jmoore <jmoore at devalias.io> wrote:
> ---- On Sat, 23 Aug 2014 13:33:04 -0400 Nikolay Denev <nike_d at cytexbg.com> wrote ----
>
> On Sat, Aug 23, 2014 at 8:49 AM, Adrian Chadd <adrian at freebsd.org> wrote:
> > Ok, so how does the whole protocol thing implement priority?
> >
> >
> > -a
>
> Ah, sorry, reading again I don't think it does that. For some reason I
> was under the impression it does.
> So, it looks like it's just a 8 bit tag applied to each route, not
> involved in the actual routing, but allows you
> to filter when displaying etc.
> From linux ip-route(8) man page :
>
> protocol RTPROTO
> the routing protocol identifier of this route. RTPROTO may be a
> number or a string from the file /etc/iproute2/rt_protos. If
> the routing protocol ID is not given, ip assumes protocol boot
> (i.e. it assumes the route was added by someone who doesn't
> understand what they are doing). Several protocol values have a
> fixed interpretation. Namely:
>
> redirect - the route was installed due to an ICMP
> redirect.
>
> kernel - the route was installed by the kernel during
> autoconfiguration.
>
> boot - the route was installed during the bootup
> sequence. If a routing daemon starts, it will purge all
> of them.
>
> static - the route was installed by the administrator to
> override dynamic routing. Routing daemon will respect
> them and, probably, even advertise them to its peers.
>
> ra - the route was installed by Router Discovery
> protocol.
>
> The rest of the values are not reserved and the administrator is
> free to assign (or not to assign) protocol tags.
>
>
>
> --Nikolay
>
>
> The context for this questions is updating this script[1] to allow a (currently) unsupported FreeBSD instance running on Google Compute Engine to be able to use their load balancers. In this case, the proto is used as a magic number, as necessary internal routes are programmatically determined and then compared to current routes, adding/removing as needed.
>
> [1] https://github.com/GoogleCloudPlatform/compute-image-packages/blob/master/google-daemon/usr/share/google/google_daemon/address_manager.py
>
>
> _______________________________________________
> freebsd-net at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"
More information about the freebsd-net
mailing list