Debian で Ad-hoc wireless ICS (Internet connection sharing)
Commandline からは、参加する node 全員が
ifconfig wlan0 down iwconfig wlan0 mode ad-hoc essid foo ifconfig wlan0 up iwlist wlan0 scan > /dev/null ifconfig wlan0 自分のIP
したらいい。最後の一行の代わりに dnsmasq あたりで DHCP server を立ててもいい。
が、wicd から同じ事ができない。通信相手が作った Network を見つけるところまでは行くけど、自動的に dhclient 呼びにいって帰ってこない。
そりゃ DHCP server 立ててませんからね、とか思って Ubuntu が入ってる node で NetworkManager 使って network 作ってみたら、今度は DHCP server が立ってるはずなのに同じ症状。何それ。
とりあえず wicd の source 読んでみたらこんなん書いてあった:
if response == 1: wireless.CreateAdHocNetwork(essid_entry.entry.get_text(), channel_entry.entry.get_text(), ip_entry.entry.get_text(), "WEP", self.key_entry.entry.get_text(), self.chkbox_use_encryption.get_active(), False) #chkbox_use_ics.get_active())
ちょっと酷い bug の予感。chkbox_use_ics というのは「インターネット接続を共有する」check box を表す object で、check 状態に関わらずこっそり False にされてる。これを False にしないと iptables への依存が発生するからか?
追記: upstream にも入ってるよ…orz