家庭内LANが不安定だ。

/etc/init.d/network restart を行わないと
WAN へ出て行けない。

かなりの時間はまる。
こういう問題のときはまず netstat -rn でルーティングを確認すべき。


【原因】
YaST で上位の gw として 192.168.1.1 を設定していたため
WAN側の NIC eth1 のデフォルトゲートウェイが無効だった。

# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0


ネットワークを再起動すると以下のように正しくゲートウェイ設定がされていた。

# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 219.XX.XX.254 0.0.0.0 UG 0 0 0 eth1
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

/sbin/route add default gw 219.XX.XX.254 dev eth1
を、/etc/init.d/boot.local(SuSEでの rc.local のようなもの)に設定しても良いが、
YaST で上位のデフォルトゲートウェイを設定せず、
eth0, eth1 ごとに gw 設定をしたほうが良い。


※その他ハマリ中に対処したもの。

dmesg すると以下のエラーが出ている。

e100: Intel(R) PRO/100 Network Driver, 3.0.17
e100: Copyright(c) 1999-2004 Intel Corporation
e100: eth1: e100_probe: addr 0xf9001000, irq 20, MAC addr 00:16:E6:42:E5:BC
e100: eth1: e100_watchdog: link up, 100Mbps, full-duplex
NET: Registered protocol family 17
ip6table_filter: Unknown parameter `ip6table_mangle'
ip6table_filter: Unknown parameter `ip6table_mangle'
ip6table_filter: Unknown parameter `ip6table_mangle'
Warning: detected activated squid, enabling FW_SERVICE_SQUID!
You still have to allow tcp port 3128 on internal, dmz and/or external.
done
Warning: interface eth1 is not (yet?) active. eth1 device: Intel Corp. 82801EB/ER (ICH5/ICH5R) integrated LAN Controller (rev 02)
eth1 configuration: eth-id-00:16:e6:42:e5:bc
eth1 (DHCP) . IP/Netmask: 219.XX.XX.9 / 255.255.254.0
Warning: detected activated squid, enabling FW_SERVICE_SQUID!
You still have to allow tcp port 3128 on internal, dmz and/or external.

/var/log/messages を見ると以下のメッセージが出ている

Jul 26 10:38:27 duka kernel: e100: eth1: e100_probe: addr 0xf9001000, irq 20, MAC addr
00:16:E6:42:E5:BC
Jul 26 10:38:27 duka kernel: e100: eth1: e100_watchdog: link up, 100Mbps, full-duplex
Jul 26 10:38:27 duka kernel: NET: Registered protocol family 17
Jul 26 10:38:27 duka kernel: ip6table_filter: Unknown parameter `ip6table_mangle'
wn parameter `ip6table_mangle
Jul 26 10:38:27 duka last message repeated 2 times

※mangle は「ずたずたにする」「滅茶苦茶にする」という意味。

上記エラーは、

# modprobe ip6table_filter
# modprobe ip6table_mangle

で解消した。


/etc/sysconfig/SuSEfirewall2 での ipv6 関連の設定を疑う。
とりあえず

FW_SERVICE_SQUID="yes"

にすると、このメッセージは出なくなった。なんの解決にもなってないが。。

SuSE には rc.local がない。
/etc/init.d/boot.local
に network の restart を記述するがダメ。

iptables を起動させるようにした。
/local/iptables_rule.sh

調べたら、 SuSE + FW での既知の誤動作のようだ。
参照
http://lists.suse.com/archive/suse-sles-e/2006-Jun/0085.html