「ネットワークパスが見つかりません」対策

投稿日: Leave a comment

samba立ち上げのところでぶんちゃんから指摘もらったけど、結局VISTA機から名前でサーバにアクセス出来ない状態が続いている。正確にはスリープした後に問題が起きる。

\\tobyでアクセスすると「エラー コード: 0x80070035 ネットワーク パスが見つかりません。」と表示される。\\192.168.1.2ならOK。なので名前解決ができていないことまではわかったのだけど、sambaをWINSサーバにしてDHCPでWINSサーバを通知してもダメ、lmhostsに書いてもダメ、となにがなんだかわからん状態。

そして、よく分からないので、lmhostsのエントリに#PREをつけてみたり、hostsファイルにも書いてみたりしていたら名前でアクセスできるようになった。

何が良かったか一つずつ戻して探ってみようと思って、lmhostsとhostsのそれぞれのエントリをコメントアウトしてスリープさせてみたけど、何やっても\\tobyでアクセスできている。何が良かったのか謎。

一旦、lmhostsとhostsのtobyの行はすべてコメントアウトにしてしばらく様子を見て見ることにする。

(2011/10/21)
PCを起こしてみたらまたアクセスできなくなったので、lmhosts、hostsの順にtobyのエントリを追加したらhostsを書いた時点でアクセスできるようになった。というわけで、vistaはどうやらhostsファイルを見に行くらしい。何でDNS見に行かないんだろうか。もしかしたらAAAAを持ってるとダメなのかも?

(2011/10/24)
DNSサーバのzoneファイルのAAAAレコードをコメントアウトしたら、hostsに書かなくても\\tobyでアクセスできるようになった。AAAAを引いちゃうと自ホストもAAAAでアドレスを引けないとダメなのか。
ぶんちゃんコメントもあわせて考えると、自ホストのAAAAレコードが必要な気がしてきた。

samba立ち上げ

投稿日: 2 Comments

sambaを立ち上げてみた。

セキュリティはuserにして自分だけを有効にした状態。homeとshareを共有して、shareの方に写真やらを沢山置こうという感じ。

立ち上げ自体は昨日やって、vistaマシンからつないでネットワークドライブにまでできていたけど、どういうわけか今日になって見えなくなってしまった。

xpからは問題なく見えている。

再起動が必要なパターンかな。もう少し様子を見て見ることにする。

(追記) 再起動したら見えるようになった。が、何故か、ネットワーク探索が無効になっていて、いちいち有効にしないとサーバーを見つけられない。やっぱりもう少し調べてみないとダメそうだ。

DHCPv6-PDで付けられるアドレス

投稿日: Leave a comment

wide-dhcpv6のDHCPV6-PDでLAN側のインターフェースに付けられるアドレスが自動設定のアドレスで扱いにくいので、今まではaliasで prefix::1というアドレスをつけていたのだけど、ここパッチを参考にprefix::1をDHCPv6-PDでつけるようにしてみた。(不等号の向きが逆の気がする。。。)

diff -uNr wide-dhcpv6-20080615_orig/prefixconf.c wide-dhcpv6-20080615/prefixconf.c
--- wide-dhcpv6-20080615_orig/prefixconf.c      2007-03-21 18:52:55.000000000 +0900
+++ wide-dhcpv6-20080615/prefixconf.c   2011-10-12 17:33:50.000000000 +0900
@@ -483,8 +483,10 @@

        /* configure the corresponding address */
        ifpfx->ifaddr = ifpfx->paddr;
-       for (i = 15; i >= pconf->ifid_len / 8; i--)
-               ifpfx->ifaddr.sin6_addr.s6_addr[i] = pconf->ifid[i];
+       i = 15;
+       ifpfx->ifaddr.sin6_addr.s6_addr[i--] = 1;
+       for (; i >= 8; i--)
+               ifpfx->ifaddr.sin6_addr.s6_addr[i] = 0;
        if (pd_ifaddrconf(IFADDRCONF_ADD, ifpfx))
                goto bad;

ここはあまり深いことを考えずに、ifidでは無く0000:0000:0000:0001をつけるようにfor文を修正。

再起動して割り振られたアドレスをifconfigで見て prefix::1 になっていてOK。

 

 

toby renewal

投稿日: Leave a comment

クリーンインストールしてportsも全部一から入れなおしていたのが、やっと元の状態までたどり着いた。

gmirrorもこんな感じで、ad10とad12がミラーを維持した状態になっている。

[toby] ~> gmirror status
      Name    Status  Components
mirror/gm0  COMPLETE  ad10
                      ad12

次はsamba関連。手ごわそうなのでこちらは勉強しながら徐々にやることにする。

DNS server と DHCP server 構築

投稿日: Leave a comment

ひかり電話のルータの機能を徐々に FreeBSD に移しつつあって、今日はDNSサーバとDHCPサーバを移してみた。DNSはbind9、DHCPはisc-dhcp4を使用。

bind9はforward onlyで構築。いわゆるキャッシュサーバ。上位(プロバイダ)にIPv4とIPv6のDNSサーバがちゃんといるので、それに聞くのが一番いいという考え。一応 Dual stack で構築。IPv6のアドレスがいっぱいあってどのアドレスでListenするのがいいのかよく分からないので、ここは適当に。

dhcpのIPv4の方は、ほとんどデフォルトの dhcpd.conf のまま。こちらはあっけなく設定終了。あ、DNSサーバを構築したので、ひかり電話ルータのDNSではなくtobyのIPv4アドレスを参照するように設定。

ついでにwide-dhcp6sでプロバイダのIPv6のname serverを配っていたのもisc-dhcpd6に変更。もちろんname serverはtobyのIPv6アドレスに変更。

どれもそうだけど、L2TPとDHCPv6_PDでIPv6のアドレスが分かるまで設定ファイルが作れず、当然ながら、デーモンも立ち上げられないのが面倒。これにPPPoEとか入ってきたらもっと面倒なことになりそう…

Pro/1000 MT Dual が動いた

投稿日: Leave a comment

昨日、ふともう一度挿してみようと思い、半分ダメもとでPro/100Sと入れ替えてみたら、何事なかったかのように動作した。

dmesgもこんな感じ。中古で買ったものだけど、MACアドレスからHewlett-Packardのサーバにでもささってたのだろう。

em0: <Intel(R) PRO/1000 Legacy Network Connection 1.0.3> port 0xd000-0xd03f mem 0xe20a0000-0xe20bffff
,0xe2000000-0xe203ffff irq 20 at device 0.0 on pci3
em0: [FILTER]
em0: Ethernet address: 00:02:a5:xx:xx:7a
em1: <Intel(R) PRO/1000 Legacy Network Connection 1.0.3> port 0xd100-0xd13f mem 0xe2080000-0xe209ffff
,0xe2040000-0xe207ffff irq 19 at device 0.1 on pci3
em1: [FILTER]
em1: Ethernet address: 00:02:a5:xx:xx:7b

というわけで、またもオンボードGbEのre0を止めて、各サーバの設定を変えて再起動して、再び安定動作中。

Pro/1000 MT Dual 動かず

投稿日: Leave a comment

Pro/1000 MT Dual port adapterを入手して昨日ゴニョゴニョやってみたけど、なぜか動作せず。かなりショボン。

em0: <Intel(R) PRO/1000 Legacy Network Connection 1.0.3> port 0xd000-0xd03f mem 0xe2120000-0xe213ffff
,0xe2000000-0xe207ffff irq 20 at device 0.0 on pci3
em0: Hardware Initialization Failed
em0: Unable to initialize the hardware
device_attach: em0 attach returned 5
em1: <Intel(R) PRO/1000 Legacy Network Connection 1.0.3> port 0xd100-0xd13f mem 0xe2100000-0xe211ffff
,0xe2080000-0xe20fffff irq 19 at device 0.1 on pci3
em1: Hardware Initialization Failed
em1: Unable to initialize the hardware
device_attach: em1 attach returned 5

ハードの初期化に失敗したと出ているけど、となりのマシン(Core 2 duo / Windows vista) ではちゃんと認識して動作もしていたので壊れているわけではなさそう。

GA-D510UDに載っているチップセットとの相性なのか、FreeBSDとの相性なのか、PCIバスの設定か。

仕方ないのでGbEになったLAN側はオンボードのカニを活かして使うことにする。100Mbpsなfxp0は将来的にWAN側にでもしようかな。

re0: <RealTek 8168/8111 B/C/CP/D/DP/E PCIe Gigabit Ethernet> port 0xb000-0xb0ff
mem 0xe3004000-0xe3004fff,0xe3000000-0xe3003fff irq 16 at device 0.0 on pci1
re0: Using 1 MSI messages
re0: Chip rev. 0x28000000
re0: MAC rev. 0x00000000
miibus0: <MII bus> on re0
rgephy0: <RTL8169S/8110S/8211B media interface> PHY 1 on miibus0
rgephy0: 10baseT, 10baseT-FDX, 10baseT-FDX-flow, 100baseTX, 100baseTX-FDX, 100baseTX-FDX-flow, 1000ba
seT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, 1000baseT-FDX-flow, 1000baseT-FDX-flow-ma
ster, auto, auto-flow
re0: Ethernet address: 6c:f0:49:xx:xx:xx
re0: [FILTER]

まぁ、今時のカニなら大丈夫なのかな。

L2TP/IPsec サーバ

投稿日: Leave a comment

以前のL2TPサーバに続き、IPsecを加えて通信を保護する作戦。結論的にはまだうまくいっていない。

ipsec-tool、いわゆるracoonをportsからインストール。そのとき、

「How to setup L2TP/IPSec VPN on FreeBSD」

を参考にして、ipsec-toolを少し修正してからmake allとmake installを実行。

次に、

Android OS 2.3 用 VPN(仮想プライベートネットワーク) 展開ガイド

を見ながらsetkey.conf、racoon.conf、psk.txtを適宜記入して、racoonを(とりあえず)フォアグラウンドで実行。この状態で、Androidから、ローカルのWiFiでL2TP/IPsecを繋ぎに行くとOK。でも、spmodeから繋ぎに行くとうまくいかない。

デバッグ情報を見ているとセキュリティポリシーの設定がうまくいかない。setkeyでesp/transportの設定をしているけど、toby側を0.0.0.0/0[1701]としてみたり、192.168.1.2[1701]としてみても、なぜか自動設定されたWAN側のIPアドレスが設定されてしまう。これだと、L2TPのパケットが外に出て行かない。

サーバがNATの内側にいるとダメなのか?でもIPsecのコネクション自体はspmodeからでもうまく言っているっぽいので、NAT-Tの設定が足りていないのか。もうちょっと継続して調べなきゃ。

L2TPサーバ(改)

投稿日: Leave a comment

ここのをちょっと修正。

proxy arpしてるんだから、ルーティング設定する必要ないよな、と思って、以下のように修正したら普通につながるようになった。

l2tp_server:
    #set ippool add pool1 192.168.16.0 192.168.16.255
    set ippool add pool1 192.168.1.128 192.168.1.254
    create bundle template B1
    set iface idle 1800
    set iface enable proxy-arp
    set iface enable tcpmssfix
    set ipcp ranges 192.168.2.1/24 ippool pool1
    set ipcp dns 192.168.1.1
    create link template L1 l2tp
    set link action bundle B1
    set link enable multilink
    set link keep-alive 10 60
    set link disable chap eap
    set link enable chap-msv2
    set link mtu 1376
    set link mru 1376
    set auth authname l2tp@toby
    set link enable incoming

ippoolのアドレスをひかり電話のルータ側のサブネット192/168.1.0/24のアドレス範囲に変更。

さて、今日から海外逃亡しますです。ホテルはインターネット完備らしいので、VPN+SIPで電話代(ローミング代)を少しうかそうという目論見。そんなに電話すること無い気もするけど。

L2TPサーバ

投稿日: Leave a comment

IPv6のトンネルに使ったmpdでL2TPのサーバを組んでみた。

あまり頭を使わず、ググッてこんな設定にしてみた。

l2tp_server:
    set ippool add pool1 192.168.16.0 192.168.16.255
    create bundle template B1
    set iface idle 1800
    set iface enable proxy-arp
    set iface enable tcpmssfix
    set ipcp ranges 192.168.2.1/24 ippool pool1
    set ipcp dns 192.168.1.1
    create link template L1 l2tp
    set link action bundle B1
    set link enable multilink
    set link keep-alive 10 60
    set link disable chap eap
    set link enable chap-msv2
    set link mtu 1376
    set link mru 1376
    set auth authname l2tp@toby
    set link enable incoming

トンネルの相手側が192.168.16.0-192.167.16.255がわりあたり、サーバ側は192.168.2.1/24が割当たるようになる。

で、この状態で、kernelがパケット転送してくれないと困るので、

# sysctl net.inet.ip.forwarding=1

を実行。これは、rc.confにgateway_enable=”YES”とかいておけばboot時にやってくれるはず。

さらに、ひかり電話のルータで、192.168.16.0/24のゲートウェイを192.168.1.2(サーバのひかり電話ルータ側のアドレス)に設定してあげれば、トンネルの先からひかり電話のルータを経由して通信ができる。本当はroutedで経路を広めるほうがいいのかな。

最後に、ひかり電話のルータでUDP/1701に穴を開けて、Xperia arcからL2TPトンネルを張ってみる。

見事成功。サーバ側にはng1が出来た。

SIPでひかり電話の内線にもなれる。webで外にもつながっている。ただしwebはちょっと遅い。

ただ、spmodeのメールだけはダメ。tcpdump -i ng1 でトンネルから出てきたパケットを見てみたら、auth.spmode.ne.jpにhttpsでつなぎに行っている。spmodeってhttpsで最初につなぐらしい。

tcpdump -i ng1 して眺めていたら、たまにspmodeのAPNからもらったIPアドレスで通信している。こいつはさすがにルーティングできない。

出来れば、IPSecでトンネルを強化したいところだけど、こちらはまた今度。

ちなみに、トンネルからやってくる通信がL2TPサーバ自身がしゃべっている様に周りに見せてあげれば、ルーティングとか気にしなくていいはずで、それをやろうと思って、IPDIVERTとかIPFIREWALL_NATとかを入れてカーネルを再構築してみた。こちらもまた今度。