1 |
Hi list, |
2 |
|
3 |
|
4 |
|
5 |
I'm kind of despair. |
6 |
|
7 |
The history: We recently brought up a new firewall with Gentoo. |
8 |
|
9 |
There are (for my finding) some big nets behind this firewall (1x public |
10 |
/24, 2x public /27, 1x public /26, at least 2 private /24). |
11 |
|
12 |
Filtering is done via iptables and snort should jump as IPS on |
13 |
software-bridge br0. If it helps: There is also ip rule involved for |
14 |
source-based routing. |
15 |
|
16 |
|
17 |
|
18 |
The new firewall replaces an older Gentoo-system which did not show this |
19 |
behavior. We therefore copied several configfiles from the old to the new |
20 |
one. |
21 |
|
22 |
|
23 |
|
24 |
After getting it live, it runs well for a few hours and then becomes |
25 |
unreachable (also for hosts behind the bridge). |
26 |
|
27 |
Dmesg / kern.log stated at this time a neighbor table overflow and indeed, |
28 |
arp -n | wc -l showed a lot of entry's. |
29 |
|
30 |
|
31 |
|
32 |
As Google suggested, We then adjusted /proc/sys/net/ipv4/neigh/default/ to: |
33 |
|
34 |
gc_thershold1 -> 8192 |
35 |
|
36 |
gc_thershold2 -> 16384 |
37 |
|
38 |
gc_thershold3 -> 32768 |
39 |
|
40 |
|
41 |
|
42 |
Fireing an "arp -d $bogus-ip-adress" is failing with "SIOCDARP(dontpub): |
43 |
Network is unreachable", adding -i br0 doesn't fail, but does not remove the |
44 |
line in the arp-table (it only says "incomplete" after greping arp -n |
45 |
again).. |
46 |
|
47 |
Therefore we are currently killing the arp-cache with "ip link set arp off |
48 |
dev br0 && ip link set arp on dev br0" by a cronjob. |
49 |
|
50 |
|
51 |
|
52 |
The combination of these workarounds are keeping the firewall reachable and |
53 |
"alive". |
54 |
|
55 |
|
56 |
|
57 |
After stabilizing, we looked at the output of arp -n and noticed, that about |
58 |
99(.999)% of the roundabout 11.000 (and rising) arp-cache-entry's contained |
59 |
public addresses for which the bridge of the firewall should not feel |
60 |
responsible (e.g. the public Google-dns-resolver and a load of more). |
61 |
|
62 |
The MAC-entry for these public addresses is always the one of our router, |
63 |
which is for sure the correct next hop. |
64 |
|
65 |
|
66 |
|
67 |
But from my understanding, it should arp-cache only "our" net's directly at |
68 |
the cable and not those public ones. |
69 |
|
70 |
It looks like a configuration-issue, but I don't know, where to start |
71 |
looking. I've already checked the default-gateway, netmasks, |
72 |
broadcast-addresses and to me, they are looking fine, so any poke where to |
73 |
start looking is greatly appreciated. |
74 |
|
75 |
|
76 |
|
77 |
In case it will help, I attached the /etc/conf.d/net, ifconfig -a and route |
78 |
-n. |
79 |
|
80 |
If something else is needed, feel free to ask. |
81 |
|
82 |
|
83 |
|
84 |
Hope, anyone can help. |
85 |
|
86 |
|
87 |
|
88 |
Thanks in advance, |
89 |
|
90 |
Ralf |