Situatie:
Wegens nieuwe internetverbinding voldeed een P3-533 met 2x 100Mbit/s NICs niet meer. Eisen waren 2x Gb NICs en een CPU die geen bottleneck zou zijn (en liefst niet al te onzuinig was). Toevallig had ik een bak liggen die als HTPC bedoeld was en een goede NIC onboard had waar ik ook al Linux op had draaien. Dus daar even een tweede NIC ingepropt, X uitgezet en routing aangezet.
Specs:
Intel DG35EC mobo, E2180 CPU, 2GB RAM, 160GB en 500GB SATA HDDs (router is tegelijk ook homeserver), onboard Intel 82566 NIC, losse Realtek RTL8169 PCI erbij.
Linux:
Gentoo. Kernel 2.6.25-r6 (van Gentoo sources gebakken).
Netwerk:
Deze router zit op LAN kant via Gbit switch met overige PCs verbonden, aan WAN kant met een kabelmodem met Gbit full duplex interconnect. Alle settings aan WAN kant gaan via DHCP
Klaar? Eerste keer testen (achter een andere router) wel. Maar toen ik het direct op de modem aansloot bleek de router zelf internetverbinding te hebben, maar bakken erachter niet. Opvallend genoeg konden ze wel voorbij de router pingen en DNS lookups doen. Na wat gepruts bleek het probleem te zitten in het feit dat de WAN NIC (Intel geval) spontaan een MTU van 576 bleek te krijgen waar de LAN 1500 had.
Tijdelijke oplossing:
Daarna werkt alles weer tot de volgende reboot.
Dus op zoek gegaan naar waar het fout gaat.
dmesg|grep eth0 geeft het volgende:
*iets* lijkt dus m'n NIC te vertellen naar 576 te gaan nadat het up komt met 1500 MTU.
Vervolgens in heel /etc met grep -R 576 gezocht, maar 576 komt alleen ergens in m'n SSL certs voor
Hier ben ik een beetje vastgelopen. Ik heb twee verschillende modems geprobeerd om te zien of dat wat uitmaakt, m'n nieuwe Cisco/Scientific Atlanta EPC3000 en m'n oude Arris TM402B. Maakte niets uit. Ik heb de NICs omgedraaid (dus even in /etc/udev/rules.d/70-persistent-net.rules eth0 en eth1 verwisseld en fysiek de kabels omgewisseld). De RTL8169 kreeg toen ook 576, de e1000e 1500. Het lag niet aan de drivers, maar aan iets wat eth0 eigen was...
Dit is ongeveer waar ik vastgelopen ben. Hier is m'n iptables -L:
Daarbij heb ik dit document gevolgd muv dat zij eth1 voor LAN en eth0 voor WAN nemen en ik omgekeerd.
Opmerkelijk:
Ik lees als mogelijke oplossing voor MTU problemen om het volgende te proberen:
- maar als ik dat probeer krijg ik deze fout:
Iemand een idee?
Wegens nieuwe internetverbinding voldeed een P3-533 met 2x 100Mbit/s NICs niet meer. Eisen waren 2x Gb NICs en een CPU die geen bottleneck zou zijn (en liefst niet al te onzuinig was). Toevallig had ik een bak liggen die als HTPC bedoeld was en een goede NIC onboard had waar ik ook al Linux op had draaien. Dus daar even een tweede NIC ingepropt, X uitgezet en routing aangezet.
Specs:
Intel DG35EC mobo, E2180 CPU, 2GB RAM, 160GB en 500GB SATA HDDs (router is tegelijk ook homeserver), onboard Intel 82566 NIC, losse Realtek RTL8169 PCI erbij.
Linux:
Gentoo. Kernel 2.6.25-r6 (van Gentoo sources gebakken).
Netwerk:
Deze router zit op LAN kant via Gbit switch met overige PCs verbonden, aan WAN kant met een kabelmodem met Gbit full duplex interconnect. Alle settings aan WAN kant gaan via DHCP
Klaar? Eerste keer testen (achter een andere router) wel. Maar toen ik het direct op de modem aansloot bleek de router zelf internetverbinding te hebben, maar bakken erachter niet. Opvallend genoeg konden ze wel voorbij de router pingen en DNS lookups doen. Na wat gepruts bleek het probleem te zitten in het feit dat de WAN NIC (Intel geval) spontaan een MTU van 576 bleek te krijgen waar de LAN 1500 had.
Tijdelijke oplossing:
code:
1
| ifconfig eth0 mtu 1500 |
Daarna werkt alles weer tot de volgende reboot.
Dus op zoek gegaan naar waar het fout gaat.
dmesg|grep eth0 geeft het volgende:
code:
1
2
3
4
5
6
| heisenberg / # dmesg|grep eth0 eth0: (PCI Express:2.5GB/s:Width x1) 00:1c:c0:52:d2:98 eth0: Intel(R) PRO/1000 Network Connection eth0: MAC: 4, PHY: 6, PBA No: ffffff-0ff eth0: Link is Up 1000 Mbps Full Duplex, Flow Control: None eth0: changing MTU from 1500 to 576 |
*iets* lijkt dus m'n NIC te vertellen naar 576 te gaan nadat het up komt met 1500 MTU.
Vervolgens in heel /etc met grep -R 576 gezocht, maar 576 komt alleen ergens in m'n SSL certs voor
Hier ben ik een beetje vastgelopen. Ik heb twee verschillende modems geprobeerd om te zien of dat wat uitmaakt, m'n nieuwe Cisco/Scientific Atlanta EPC3000 en m'n oude Arris TM402B. Maakte niets uit. Ik heb de NICs omgedraaid (dus even in /etc/udev/rules.d/70-persistent-net.rules eth0 en eth1 verwisseld en fysiek de kabels omgewisseld). De RTL8169 kreeg toen ook 576, de e1000e 1500. Het lag niet aan de drivers, maar aan iets wat eth0 eigen was...
Dit is ongeveer waar ik vastgelopen ben. Hier is m'n iptables -L:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| heisenberg dion_b # iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination REJECT udp -- anywhere anywhere udp dpt:bootps reject-with icmp-port-unreachable ACCEPT all -- anywhere anywhere ACCEPT all -- anywhere anywhere REJECT udp -- anywhere anywhere udp dpt:domain reject-with icmp-port-unreachable REJECT udp -- anywhere anywhere udp dpt:bootps reject-with icmp-port-unreachable ACCEPT tcp -- anywhere anywhere tcp dpt:ssh DROP tcp -- anywhere anywhere tcp dpts:0:1023 DROP udp -- anywhere anywhere udp dpts:0:1023 Chain FORWARD (policy DROP) target prot opt source destination DROP all -- anywhere 192.168.0.0/16 ACCEPT all -- 192.168.0.0/16 anywhere ACCEPT all -- anywhere 192.168.0.0/16 Chain OUTPUT (policy ACCEPT) target prot opt source destination |
Daarbij heb ik dit document gevolgd muv dat zij eth1 voor LAN en eth0 voor WAN nemen en ik omgekeerd.
Opmerkelijk:
Ik lees als mogelijke oplossing voor MTU problemen om het volgende te proberen:
code:
1
| iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu |
- maar als ik dat probeer krijg ik deze fout:
code:
1
| iptables: No chain/target/match by that name |
Iemand een idee?
Oslik blyat! Oslik!