中治@鳥取です。 http://euc.jp/network/pppoe.ja.html http://www.yas.mu/network/fletsq/ http://home.jp.freebsd.org/cgi-bin/thread?mesid=%3c20021014%2e213300%2e74693221%2ehigaki%40tu%2echiba%2du%2eac%2ejp%3e
などを参考に、 ・NTT西日本 ・フレッツ・光プレミアム(+ひかり電話) ・OCN 光アクセス IP8 「フレッツ・光プレミアム」プラン ・FreeBSD 6.3-STABLE #56: Fri Jun 20 00:18:17 JST 2008 で、PPPoE複数セッション接続を試みていますが、 Warning: iface add: ioctl(SIOCAIFADDR, 10.183.50.71 -> 210.247.16.1): File exists Error: ipcp_InterfaceUp: unable to set ip address というエラーで、フレッツ・スクェアに接続できません。どうすればよいでしょう か、という相談です。 <やったこと> 1. ppp.confにフレッツの項目を追加 default: set device PPPoE:vr0 #set log Phase Chat LCP IPCP CCP tun command set log Phase Chat IPCP CCP tun command set speed sync set MRU 1438 set MTU 1438 set ctsrts off set timeout 0 accept CHAP enable tcpmssfix add default HISADDR ocnip8: accept lqr enable lqr set cd 5 set dial set login set redial 0 0 set authname OCNの認証ID set authkey OCNの認証パスワード set reconnect 5 5 flets: accept lqr enable lqr set cd 5 set dial set login set redial 0 0 set reconnect 5 5 set authname [メールアドレス保護] set authkey flets 2. フレッツ網へのstatic routesをppp.linkupに追加 フレッツ接続ツールで直結したWindows XPでの情報によれば、NTT西日本では、 10.60.16.0/20や10.174.0.0/20への静的ルーティングが必要らしいです。 ocnip8: ! ifconfig tun0 delete ! ifconfig tun0 60.32.13.194 netmask 255.255.255.248 HISADDR add! default HISADDR flets: add! 10.60.16.0/20 HISADDR add! 10.174.0.0/20 HISADDR 3. /etc/rc.confでppp起動を設定 最近は便利に書けるようになったようです。 $ grep ppp /etc/rc.conf ppp_enable="YES" ppp_profile="ocnip8 flets" ppp_profile="ocnip8" ppp_ocnip8_mode="ddial" ppp_ocnip8_nat="NO" ppp_ocnip8_unit="0" ppp_flets_mode="ddial" ppp_flets_nat="YES" ppp_flets_unit="1" 4. pppでfletsにつないでみるとエラーになる # ppp -unit1 flets Working in interactive mode Using interface: tun1 ppp ON www> dial ppp ON www> Ppp ON www> PPp ON www> Warning: iface add: ioctl(SIOCAIFADDR, 10.183.50.71 -> 210.247.16.1): File exists Error: ipcp_InterfaceUp: unable to set ip address </やったこと> 何度かの試行錯誤のうち set log allしておいたときの、/var/log/ppp.logには IPCP: deflink: RecvConfigAck(7) state = Ack-Sent IPCP: IPADDR[6] 10.172.1.121 IPCP: deflink: State change Ack-Sent --> Opened IPCP: deflink: LayerUp. IPCP: myaddr 10.172.1.121 hisaddr = 210.247.16.1 ID0: 4 = socket(2, 2, 0) ID0: -1 = ioctl(4, 2151704858, 0xbfbfdc10) Warning: tun2: AIFADDR 10.172.1.121 -> 210.247.16.1 returns -1 Warning: iface add: ioctl(SIOCAIFADDR, 10.172.1.121 -> 210.247.16.1): File exists Error: ipcp_InterfaceUp: unable to set ip address IPCP: deflink: LayerDown: 10.172.1.121 というログが残っています。このときは、こちらに10.172.1.121が割り当てられた ようです。 tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1438 inet 60.32.13.194 --> 210.247.16.1 netmask 0xfffffff8 Opened by PID 455 tun1: flags=8010<POINTOPOINT,MULTICAST> mtu 1500 ということで、210.247.16.1をtun0で使っているからだとは思うのですが、NTT東 日本での経験談しか見つからないのも気になります。 ## NTT西日本で「1契約で複数のセッションを同時に張りたい」人が少ないから? Googleでの検索結果 http://www.google.co.jp/search?q=Error%3A+ipcp_InterfaceUp%3A+unable+to+set+ip+address&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja-JP:official&client=firefox によれば、 POPTOP on a FreeBSD 7.0 machineで同様の問題を抱えている人 http://lists.freebsd.org/pipermail/freebsd-questions/2008-June/177329.html 同じPPPoEサーバに2つつなぐと後からのが失敗する人 http://www.mydatabasesupport.com/forums/bsd-freebsd-misc/345679-running-2-pppoe-connections-connecting-same-pppoe-server.html などが見つかります。後者の人は So what I did is manually set parameters of ng1 with 'ifconfig', and set IP address of 'remote endpoint' to a another IP of ISPs network. And this worked fine. ということで何とかしたらしいのですが、どんなPPPoEサーバなのか、どんなパラ メータを設定したのかといった肝心な情報がないので、あまり参考にできません。 …などと書いているうちに、 mpdを使うとうまくいくこともある http://lists.freebsd.org/pipermail/freebsd-questions/2007-March/144035.html http://wiki.cyberleo.net/index.php/MultiHomedRouter という体験談を見つけました。あとで試してみます。 どなたか、他に何かご存じのことやオススメの方法があれば教えてください。 また、/usr/sbin/pppじゃなくてmpdを使う場合、net/mpd{,4,5}ではどれがオスス メですか? -- NAKAJI Hiroyuki (中治 弘行)