www.google.com segt/okontaktbart via iptables NAT
FINAL EDIT: Löste problemet genom att gå runt det. En separat brandväggsburk som fick köra Ubuntu 10.04 med kernel 2.6.* fick min routing att hoppa igång på maxfart igen.
EDIT: Märkte att problemet försvann när jag körde en virtuell Windows 7 -maskin på min dator. Så adderad komplexitet och ett extra hopp gjorde att det gick snabbare :S
Jag har nyligen uppgraderat min server/brandvägg hemma och har råkat ut för ett oerhört irriterande problem.
När man i webläsaren på en av klienterna skriver in www.google.com i adressfältet första gången efter man startat webläsaren (chrome canary, chrome, IE) står det i statusfältet "waiting for www.google.com" eller "website found, waiting for reply" i allt från en till 5-20sek innan sidan laddas, ibland laddas den inte alls. Oftast tar det 5-10SEK.
När man lämnar webläsaren med ett googlefönster öppet och senare försöker söka, då får man ofta inga resultat alls.
Min ISP är comhem och jag har 200/10.
Om jag låter servern använda de av comhems DHCP tillhandahållna DNSerna blir väntetiderna snarare 20sek och än oftare kommer jag inte åt google alls.
Kör jag 8.8.8.8 och 130.237.72.200 som namnservrar, både på servern och klienterna, fungerar det bättre, men fortfarande långt från stabilt.
Servern kör Ubuntu LTS 12.04 och jag använder iptables för NAT/brandvägg och kör ett script som tidigare fungerat fint.
Lite småfördröjningar uppstår även på andra siter, men inget som jag bryr mig om. Det är bara google som är såhär katastrofalt dålig...
Om jag kör lynx på servern fungerar google felfritt.
Nedan följer mitt iptablesscript (minus öppna portar):
#!/bin/sh
LAN_IP="192.168.0.1/32"
LAN_BCAST_ADRESS="192.168.0.255/32"
LOCALHOST_IP="127.0.0.1/32"
#Uncomment next line if you have a static IP to the Internet.
#STATIC_IP="1.2.3.4"
#Uncomment next line if you have a dynamic IP to the Internet. Pay attention to select the correct
#ethernetcard.
STATIC_IP=`/sbin/ifconfig eth0 |sed -n '/inet/s/^[ ]*inet addr:\([0-9.]*\).*/\1/p'`
INET_IFACE="eth0"
LAN_IFACE="eth1"
IPTABLES="/sbin/iptables"
echo "Starting IPv4 firewall..."
#This line will start the NAT.
echo "1" > /proc/sys/net/ipv4/ip_forward
#This line will protect from some DOS (Denial of service) attacks.
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
#Log and drop packets that do not follow the rules bellow.
$IPTABLES -N logdrop
#$IPTABLES -A logdrop -j LOG
$IPTABLES -A logdrop -j DROP
#Log and drop connections that were not started from your network.
$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "NEW NOT SYN "
$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPTABLES -A FORWARD -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "NEW NOT SYN "
$IPTABLES -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP
#Log and drop connections that tried to reach your internal network.
$IPTABLES -A FORWARD --in-interface $INET_IFACE --destination $LAN_BCAST_ADRESS -j logdrop
$IPTABLES -A FORWARD --in-interface $LAN_IFACE --destination $STATIC_IP -j logdrop
#Allowing forwarding.
$IPTABLES -A FORWARD --in-interface $LAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD --in-interface $INET_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
#Accepting some icmptypes...
$IPTABLES -A INPUT -p icmp --icmp-type 0 -j ACCEPT
$IPTABLES -A INPUT -p icmp --icmp-type 8 -j ACCEPT
$IPTABLES -A INPUT -p icmp --icmp-type 3 -j ACCEPT
$IPTABLES -A INPUT -p icmp --icmp-type 11 -j ACCEPT
#Allow the server to talk to itself.
$IPTABLES -A INPUT --in-interface lo --source 127.0.0/8 -j ACCEPT
#Allow connections that starts from you network to get answer.
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#Allow all connections with source from your local network. Only comment this line out if you are sure of what you
#are doing.
$IPTABLES -A INPUT -p ALL -d $LAN_IP -j ACCEPT
********************************************************
$IPTABLES -A INPUT -j logdrop
$IPTABLES -I INPUT -s 212.113.64.9 -j DROP
#Prevent slow DNS lookups and list
$IPTABLES -n -L