[Unstrung-hackers] unable to see routes with sunshine on b2b connected nodes

Vijay Anand R vjanandrgky at gmail.com
Fri Sep 25 11:12:32 EDT 2015


Hi Michael,

I plan to create a dummy interface and assign the ULA address, I did try 
to create a loopback but looks like we can only create sub interfaces of 
"lo" that already exists. So providing this to the command line sounds 
like a good idea. Just to make sure we are on the same page, any global 
scope address on the  dummy interface would be advertised ?

With ACP we build a overlay using linklocal GRE tunnels to each 
discovered neighbor, therefore the DODAG should be constructed with the 
tunnels and not with the physical interfaces.
So as new neighbors of a node join/leave the ACP, tunnels to the 
neighbors get created and torn down reconstructing the DODAG.

I think there are two aspects we need to cover.

a. What address on the node is advertised. This is the /128 ULA assigned 
to the dummy ACP0 interface.
b. What interfaces connect the node to the DODAG. These are the tunnel 
interfaces that creates the overlay.

Regards,
Vijay

On 9/25/2015 6:57 PM, Michael Richardson wrote:
> Vijay Anand R <vjanandrgky at gmail.com> wrote:
>      > The below suggestion of new options to the command line sounds good,
>      > but for the CIDR. with FD00/8 we tend to advertise any other ULA
>      > addresses which is not managed by Autonomic Networking. So the
>      > ACP/AN-domain would tend to include routes to other destinations as
>      > well !
>
> Yes, that's why I'm asking how you'd like to mark the address as appropriate
> for export.   I will note a few things that we can do with 'ip' command on
> linux (from "ip addr help")
>
> IFADDR := PREFIX | ADDR peer PREFIX
>            [ broadcast ADDR ] [ anycast ADDR ]
>            [ label STRING ] [ scope SCOPE-ID ]
>
> One can set the scope-ID.  That is definitely visible when the system
> scans the addresses.  I don't know what label means, or where it shows up.
> I tried:
>
> %sudo ip -6 addr add fd01::00c0:ffee/128 dev lo label ACP
> "dev" (lo) must match "label" (ACP).
>
> so I guess we can't use label.
>
> %sudo ip -6 addr add fd01::00c0:ffee/128 dev lo scope 5
>
> shows up as:
> 1: lo    inet6 fd01::c0:ffee/128 scope global
>         valid_lft forever preferred_lft forever
>
> which is odd.... I tried some other values, and it's always "scope global"
> on "ip monitor" output.
>
> If you can think of a different way to mark the address that is visible
> via netlink, we can do that.  In the meantime, how about:
>
>      > With netlinks we tend to listen to all interface events, this is fine
>      > with links/interfaces going down, but the challenge is when links come
>      > up. Not all new links coming up should join the DODAG, one possibility
>      > is we give a regex for the interface name in the command line (-i
>      > option) and add any link that matches the regex to the DODAG. Your
>      > thoughts ?.
>
> Let's create a virtual interface "acp0", and provide it as an argument
> to sunshine:
>
> %sudo ip -6 addr add fd01::05c0:ffee/128 dev acp0
>
> 26: acp0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN
>      link/ether 16:c8:7e:f3:eb:69 brd ff:ff:ff:ff:ff:ff
>
> %sudo ip link add name acp0 type dummy
> 26: acp0    inet6 fd01::5c0:ffee/128 scope global
>         valid_lft forever preferred_lft forever
>
> That winds up as an ethernet device, and I'm sure we can create a stupider
> device as another loopback, but it seems that it's not trivial.
>
>      > My only concern as for now seems to find a way to gracefully "soft"
>      > restart the daemon for any updates.
>
> If the daemon listens on the netlink socket (which is planned), then
> it will just pick it up.  Having it scan the interfaces again on SIGUSR1
> won't be hard.
>
> Let me try to code this up for Tuesday.
>
>
>      > On 9/24/2015 11:43 PM, Michael Richardson wrote:
>      >> Vijay Anand R <vjanandrgky at gmail.com> wrote: > To give a quick brief
>      >> background on what I am trying to do.  I am > working on an open
>      >> source version of autonomic networking, and trying > to explore if RPL
>      >> is the best choice of routing protocol.  RPL is of > interest to us
>      >> because we have to setup the routing only for the > control plane
>      >> traffic of autonomic networking and we prefer a light > weight routing
>      >> infrastructure.
>      >>
>      >> okay.  (I think that you should let RPL do address numbering of the
>      >> ACP too.  But, having options is good)
>      >>
>      >> Are you intending to run RPL over IKEv2?  (Noting that I'm on the
>      >> ANIMA bootstrap design team...)
>      >>
>      >> > Regarding the PIO : I think that could be optional since each node >
>      >> would get a /128 ULA address from Autonomic Networking >
>      >> infrastructure. The goal now is to use a routing protocol to advertise
>      >> > the routes to these ULA addresses.
>      >>
>      >> It sounds like you'd like some IPC to set it up.  I'd like to have it
>      >> connect to the OpenWRT ubus system.
>      >>
>      >> > a. Providing a CIDR in the command line is certainly a possibility
>      >> but > the ULA address assigned are always /128 prefix and except for
>      >> the > first byte of FD rest 15 bytes are generated by some rules.  >
>      >> b. Further > addition of interfaces within a node to the DODAG is
>      >> dynamic, so the > only current alternative seems to be kill the
>      >> current instance and > start a new one with the new set of interfaces
>      >> in the command line > (with the -i option).  This seems to be
>      >> destructive and could impair > routing to current reachable nodes. But
>      >> I agree once we have this > integrated into Quagga we get a CLI prompt
>      >> we can work with. But in the > interim do you think having a
>      >> configuration file would help ? I update > the configuration file and
>      >> send a signal to sunshine daemon for it to > gracefully restart with
>      >> the new configuration ?
>      >>
>      >> I think that a configuration file would make it worse actually :-)
>      >> Getting it into the quagga config file infrastructure would be better.
>      >>
>      >> I haven't looked at if quagga does anything to make the whole
>      >> router-prompt stuff better; I'm sure at least that there is a library,
>      >> but I'd also like to keep it small..
>      >>
>      >> Let's do this...  a) add: --ignore-dao-pio option which causes
>      >> Sunshine to not configure addresses from the PIOs it sees.
>      >>
>      >> b) add: --prefixes-to-announce This will be a CIDR, which if matched,
>      >> will cause addresses found on interfaces to be added to the DIO list.
>      >>
>      >> So you'll run it as --ignore-dao-pio, and --prefixes-to-announce
>      >> fd00::/8.
>      >>
>      >> I already want it to deal properly with interfaces
>      >> arriving/disappearing.  There is already NETLINK socket listening, but
>      >> it isn't enough yet.
>      >>
>      >> --
>      >> ] Never tell me the odds!  | ipv6 mesh networks [ ] Michael
>      >> Richardson, Sandelman Software Works | network architect [ ]
>      >> mcr at sandelman.ca http://www.sandelman.ca/ | ruby on rails [
>      >>
>
>
>
> --
> ]               Never tell me the odds!                 | ipv6 mesh networks [
> ]   Michael Richardson, Sandelman Software Works        | network architect  [
> ]     mcr at sandelman.ca  http://www.sandelman.ca/        |   ruby on rails    [
>



More information about the Unstrung-hackers mailing list