Hello,
Following our meeting today, we moved the uocradio node to
the new labaki room. Now, in my infinite wisdom, I additionally
decided to upgrade the router (henceforth known as “blacky”)
to LEDE. This initially went without a hitch, up to the point of
setting up the GRE tunnel.
It proved to be a _massive_ pain in the ass, as a lot of things have
changed between 14.07 (OpenWRT) and 17.01 (LEDE). The gist is:
1. The iproute2 found in the old versions has been replaced by the
BusyBox ip which evidently supports a very rudimentary subset of
features. In our case, “ip tunnel” is omitted, and subsequently, the
script that had been setup some time ago is no longer working.
2. (Un)fortunately, this missing functionality has been replaced by
a uci compatible /etc/config/network stanza, which is actually fairly
neat. You can find more info at [1]. Before I continue, however, I have
a few words about this.
Now take note. As you may or may not know, interfaces in linux
have a hard limit (see [2]). The information from [1] tells us that
the interface name for a GRE tunnel will be the logical name
(the one you set in LEDE), prepended with “gre4-” or “gre6-”
(depending on IP version). It is therefore quite trivial to actually
overcome this limit (if you used a logical name like, oh, I don’t know,
“tunuoclabaki”. wc yields 17 total characters).
At that point, LEDE’s venerable netifd will shit itself and go in an
endless loop of failing to bring up the interface and flooding the logs
with “Unknown Error”. So if that ever happens to you, you know what
to check first.
Now, having overcome this, we naturally end up at:
3. it appears that for some reason LEDE’s babeld doesn’t seem to like
this new setup. After finally correctly setting up the interfaces in babel, it
appears that babeld is having a hard time to correctly propagate the routes.
Interestingly, on whitey’s route table the routes from the other side can actually
be seen.
Only problem is, they’re unreachable. Don’t really know why. I should note that
blacky does not have any routes in it (from whitey).
Sample output from whitey:
ICMP seems to work:
root@whitey:~# ping -c2 10.176.4.254
PING 10.176.4.254 (10.176.4.254): 56 data bytes
But SSH not so well
ssh: Couldn't set SO_PRIORITY (Bad file descriptor)
ssh: Exited: Error connecting: Connection refused
Now initially this might seem like a configuration issue, but the thing is:
1) The firewall is in it’s default setup where only
a. WAN to LAN forward is rejected
b. LAN to WAN forward is accepted
2) Only forward chain is rejected by default.
3) Dropbear’s default behaviour of listening on all interfaces was left unchanged.
The packets should be ending up in the input chain, and dropbear should be
listening so it makes no sense that the connection is refused. It may be that
the tunnel itself is broken, or maybe the packets don’t end up in the input chain
for some reason unapparent to me.
That’s it for now. I’m very tired and out of ideas for the day. Any and all help
will be appreciated.
Danke schön.
- looselyrigorous
PGP: 5E98 CBF2 4498 1991 4A41 5252 E63A 5B38 3165 BD72