-
-
Notifications
You must be signed in to change notification settings - Fork 31
Description
Since feeled 1 month i see on the EA6x00 arm devices a huge amount of messages from this type:
root@mgmt1:/tmp/home/root# dmesg -c
icmpv6_send: no reply to icmp error
icmpv6_send: no reply to icmp error
icmpv6_send: no reply to icmp error
icmpv6_send: no reply to icmp error
icmpv6_send: no reply to icmp error
icmpv6_send: no reply to icmp error
icmpv6_send: no reply to icmp error
icmpv6_send: no reply to icmp error
icmpv6_send: no reply to icmp error
icmpv6_send: no reply to icmp error
icmpv6_send: no reply to icmp error
icmpv6_send: no reply to icmp error
icmpv6_send: no reply to icmp error
icmpv6_send: no reply to icmp error
icmpv6_send: no reply to icmp error
icmpv6_send: no reply to icmp error
icmpv6_send: no reply to icmp error
On the other EA-Router, which serve the home office with just PCs and some Media-Devices, there are just 4-5 such Messages/day.
The First Router serves for Solar/IoT/ESP32-devices, which are using ip4 and ip6 and connects to the manufacturer clouds, and
it looks like, they all have his own methods to check if destination is alive or maybe check out different locations and try to measure the
distance by latency tests for selecting the nearest cloud, something like ?
I had no chance actualy to figure out the real reason, why i have thousands (!) of this lines in the router log-buffer each day since a few weeks.
The only differences between booth routers is, that the Office-Device has CTF enabled, and the IoT-serving Router has CTF disabled, because
of problems with bridge2bridge+wireless/L2+L3 not working when CTF is enabled.
Note: The Router in front/or when directly connected to ISP by dhcp6 has NO NAT or any type of filtering, so it is completly open
for incoming packets on ipv6 - which is a need here for some devices to be full reachable.
Question: Do we filter with ip6tables "hard coded" still some importent icmp6 messages, whe should not ?
The above messages comes only from LAN/WAN-forwarded traffic, not the local router itself.
This is the actual forwarding table i have running:
Chain FORWARD (policy DROP)
target prot opt source destination
DROP all -- anywhere anywhere rt type:0
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
DROP all -- anywhere anywhere state INVALID
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
DROP all -- anywhere anywhere
DROP all -- anywhere anywhere
DROP all -- anywhere anywhere
ACCEPT ipv6-nonxt -- anywhere anywhere length 40
ACCEPT ipv6-icmp -- anywhere anywhere ipv6-icmp destination-unreachable
ACCEPT ipv6-icmp -- anywhere anywhere ipv6-icmp packet-too-big
ACCEPT ipv6-icmp -- anywhere anywhere ipv6-icmp time-exceeded
ACCEPT ipv6-icmp -- anywhere anywhere ipv6-icmp parameter-problem
ACCEPT ipv6-icmp -- anywhere anywhere ipv6-icmp echo-request limit: avg 5/sec burst 5
ACCEPT ipv6-icmp -- anywhere anywhere ipv6-icmp echo-reply
ACCEPT esp -- anywhere anywhere
ACCEPT udp -- anywhere anywhere udp dpt:500
wanin all -- anywhere anywhere
wanout all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
So nothing special - all on default. So why the Router itself fill up the log with this type of message (5 new messages at nearly every 10 seconds...) ?
Should we change this hardcoded "forced" setting anyway:
ACCEPT ipv6-icmp -- anywhere anywhere ipv6-icmp echo-request limit: avg 5/sec burst 5 <--- !
Such things should be handled from the client in case of forwarded traffic and not interfer by the router. For the router itself this rule make sence (INPUT-Chain).
This rules are another question:
DROP all -- anywhere anywhere state INVALID
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
It looks for me like firewalling ip6 to the lan-clients - with no further (web based) tuning option to change it.
- except use "Basic IP6-Forwarding", where it can be defined which outside destination can connect to which port/IP6 at the inside...
Here is the next Problem: This works only with local-fe80:: addresses reliable - if the ip6 prefix changed by ISP, so the internal ip6 native IPs will completly change. With typical windows/android and active "privacy extensions" it is anyway not working reliable with external ip6...
From my knowledge ip6 has "no NAT" - and is open to the devices - The devices itself need a local firewalling by handling
incoming traffic - windows, linux, as example, have this by default implemented at client side through the local firewall.
The hardcoded settings makes sense, when you have a lot of "broken" or "insecure" devices in the LAN, which can easy be hacked, because of
a not really working implemented firewall. So the result is: Always the sessions needs to be opened from inside to outside and must be
tracked from the router by conntrack. (With the usual timeout-issues and extra tuning eventually....)
AVM uses for ip6 another aproach: For specific internal devices there is an option to forward all incoming traffic without filtering,
wheras the basic setting is equaly as tomato: only inside -> outside. In case of "double-NAT" or having a Tomato behind a AVM-Device,
this Tomato gets all ip6 traffic directly handed over - just with a static mac-address-rule/fe80::-peer - so Tomato can handle the traffic byself.
(for that we have the Basic-IP6-Forwarding with above internal limitations to use only local-link fe80:: addresses...)
It is a design question generally - but when it comes to CGN ip4 + native ip6, this is the only way to reach inside (servers) from outside.
Any ideas, how we can make it a little "better" ? Can you check the actual hardcoded forward chain, too - have we forget to include some
more icmp6 message types ? Removing of the Burst-limit for icmp6-echo-request only in forward-mode ?