DHCPv6を試してみた。。。その1

ようやくL2が安定したようなので、DHCPv6をもう少し試してみます。
DHCPv6理解していません!なので試すだけ。

vyattaをDHCPv6 serverにする場合と、vyattaをDHCPv6-relayにする場合を試してみた。
iPhone(IOS5)もMac(Lion)もとりあえずアドレス取得とDNS serverの取得もできました。

しかし、ブラウザとか使ってアクセスすると一時アドレスを使っている。。。
DHCPv6で割り当てられたアドレスを使ってくれない。。。そんなもの?
iPhoneもWindows7も、Lion君も同じだったので、一時アドレスが強いってこと?
うーん。これじゃ意味がないんだよな。。。

とりあえず、メモ。

■vyattaをDHCPv6 serverにする
RAでm/oフラグをon/onにします。

interfaces {
 ...
 bridge br2 {
   ...
   ipv6 {
     ...
     router-advert {
        ...
        managed-flag true
        other-config-flag true
        prefix 2001:470:xxx:yyy::/64 {
          ...
        }
        ...
      }
    }
  }
}

service {
  ...
  dhcpv6-server {
    shared-network-name homev6 {
      subnet 2001:470:xxx:yyy::/64 {
         address-range {
            start 2001:470:xxx:yyy:beef::100 {
              stop 2001:470:xxx:yyy:beef::200
         }
      }
      domain-search pman.biz
      name-server 2001:470:zzz::111
    }
  }
...
}

m/oフラグをoff/onにした場合は、DNS serverのアドレスを取得できませんでした。
IPv6アドレスは割り当てられないのは、mフラグがoffなので良いのでしょう。。
パケットを見ていると、clientからmessage type: Information Requestが飛んで、
ReplyのパケットにDNS Serverアドレスの情報が空っぽ。。。
※どちらが悪いのか、またはこれが正しいのかは謎。。。調べる気はまだない。

m/oフラグをon/onにした場合は、DNS serverのアドレスも取得できました。
パケットを見ていると、clientからmessage type: solicit飛んで、Replyのパケットに
IPv6アドレスとDNS Serverの情報が入っていました。
これが正しい動きなのかな。。。

■vyattaをDHCPv6 Relayにする (DHCPv6サーバは別サーバ上でiscのdhcp 4.2.3を稼働)

interfaces {
 ...
 bridge br2 {
   ...
   ipv6 {
     ...
     router-advert {
        ...
        managed-flag true
        other-config-flag true
        prefix 2001:470:xxx:yyy::/64 {
          ...
        }
        ...
      }
    }
  }
}

service {
  ...
  dhcpv6-relay {
    listen-interface br2 {
    }
    upstream-interface eth1 {
      address 2001:470:zzz::111
    }
  }
...
}

DHCPサーバ(4.2.3)の/usr/local/etc/dhchpd6.confは、こんな感じ

...
subnet6 2001:470:zzz::/64 {
  deny unknown-clients;
}
subnet6 2001:470:xxx:yyy::/64 {
  range6 2001:470:xxx:yyy::beef:100 2001:470:xxx:yyy::beef:200;
  option dhcp6.domain-search "pman.biz";
  option dhcp6.name-servers 2001:470:zzz::111;
}

こちらも当然、m/oフラグは同じ挙動。。。m/oフラグはon/onにしないとダメみたい。

Lionの/etc/resolv.confにIPv6のDNS serverも加わっている!

$ cat /etc/resolv.conf
#
# Mac OS X Notice
#
# This file is not used by the host name and address resolution
# or the DNS query routing mechanisms used by most processes on
# this Mac OS X system.
#
# This file is automatically generated.
#
search pman.biz
nameserver 192.168.xxx.111
nameserver 2001:470:zzz::111

iPhoneで確かめる方法がわからないけど、DNS serverのアドレスが割当たっているのがなんとかわかる。。。

DHCPv6アドレスを使ってアクセスするようにするにはどうすればいいんでしょう。。。
クライアントに手を入れるなんてことは避けたい。。。
DHCPv6でstaticにIPv6アドレス振る方法も後々試そう。。。

 

firefly(mt-daaped)へパッチ

iTunes 10.5.1がリリースされましたが、fireflyで楽曲リストが表示されない。。
うーん。Appleは今回は修正する気がないのだろうか。。。仕様変更か?
(iTunes 10の時は修正されたのにな〜)

待ってもられないので、またしてもfireflyへパッチを適用して対応することにしました。

https://discussions.apple.com/message/16489758#16489758
前回適用したパッチを見比べると、やってることは同じっぽいね。
前回の記事はここ

--- mt-daapd-0.9~r1696.dfsg.orig/src/plugins/out-daap.c   2007-10-13 15:10:06.000000000 -0700
+++ mt-daapd-0.9~r1696.dfsg/src/plugins/out-daap.c        2011-10-16 18:08:53.207764000 -0700
@@ -1392,11 +1393,9 @@

     size = sizeof(servername);
     pi_server_name(servername,&size);
-    //    supports_update = conf_get_int("daap","supports_update",1);
+    supports_update = pi_conf_get_int("daap","supports_update",1);

     actual_length=139 + (int) strlen(servername);
-    if(!supports_update)
-        actual_length -= 9;

     if(actual_length > sizeof(server_info)) {
         pi_log(E_FATAL,"Server name too long.\n");
@@ -1434,6 +1433,8 @@
     current += dmap_add_int(current,"msdc",1);          /* 12 */

     if(supports_update)
+        current += dmap_add_char(current,"msup",1);         /* 9 */
+    else
         current += dmap_add_char(current,"msup",0);         /* 9 */

     out_daap_output_start(pwsc,ppi,actual_length);

portsをcleanしていたので、一度makeしてパッチを適用して、objectファイルを消して
再コンパイルを実施して対応。

# cd /usr/ports/audio/firefly
# make
# cd work/mt-daapd-svn-1696/src/plugins
# rm out-daap.o
# vi out-daap.c (パッチ適用)
# cd /usr/ports/audio/firefly/work/mt-daapd-svn-1696
# make
# cd /usr/ports/audio/firefly
# make install

iTunes 10.5.1でもリストが表示されるようになりました。

 

更新メモ

pcreをバージョンアップ
portsからバージョンアップ

apacheをバージョンアップ
特に問題なく完了。pcreのオプションつけているくらい

phpをバージョンアップ
portsから実施
Makefileを編集(apacheは自身でコンパイルしているので)

APACHE "Build Apache module" on (*) off から onへ変更

#USE_APACHE=  13+
#.include "${PORTSDIR}/Mk/bsd.apache.mk"
#.if ${APACHE_VERSION} > 13
#.if defined(WITH_AP2FILTER)
#CONFIGURE_ARGS+=--with-apxs2filter=${APXS}
#.else
CONFIGURE_ARGS+=--with-apxs2=/usr/local/apache/bin/apxs
#.endif
#.else
#CONFIGURE_ARGS+=--with-apxs=${APXS}
#.endif

php5-extensionもportsからインストール

mysqlをバージョンアップ
portsから実施

cactiをバージョンアップ
include/config.phpを適切に設定
rraディレクトリの中身をそのままコピー
GUIからupgradeを実施

 

VMインスタンスのバックアップ

自宅のサーバということもあり、バックアップは簡易的にホームディレクトリのみUSBストレージに定期的にとる程度でした。
ESXi上のストレージも1本しかなかったこともありますが。。。

サーバを変えてからディスクも2本となり、容量的にも余裕ができたので、たまに手動でとることにしました。
(ディスクでRAIDがくめれば面倒なバックアップなどはとるつもりはないのですが。。。)

google先生で調べていると、無料で便利そうなスクリプトが見つかりました。
ghettoVCB.sh – Free alternative for backing up VM’s for ESX(i)
NFSのdatastoreにも対応しているそうでなんか、応用も効きそうです。
自宅のサーバは単純にlocalディスクが2本(datastoreが2つ)あるだけの簡単構成なので、簡単にインプリできそうです。

  1. 上記URLの最下部にghettoVCB.tar.gzファイルがあるのでダウンロード。
  2. ESXi上の/vmfs/volumes/datastore1にscpでコピー
  3. 展開するとghettoVCBディレクトリが作成される
  4. ディレクトリ内のghettoVCB.confを編集
  5. バックアップ対象となるvm instanceのリストファイルを作成
  6. 実行

付属のghettoVCB.confを下記のみ変更。(ディレクトリは自動で作成される)

VM_BACKUP_VOLUME=/vmfs/volumes/datastore2/BACKUPS

使い方メモ。

###############################################################
#
# ghettoVCB for ESX/ESXi 3.5, 4.x+ and 5.0
# Author: William Lam
# http://www.virtuallyghetto.com/
# Created: 11/17/2008
# Last modified: 2011_06_28 Version 1
#
###############################################################

Usage: ./ghettoVCB.sh -f [VM_BACKUP_UP_LIST] -c [VM_CONFIG_DIR] -l [LOG_FILE] -d [DEBUG_LEVEL] -g [GLOBAL_CONF] -e [VM_EXCLUSION_LIST]

OPTIONS:
   -a     Backup all VMs on host
   -f     List of VMs to backup
   -c     VM configuration directory for VM backups
   -g     Path to global ghettoVCB configuration file
   -l     File to output logging
   -d     Debug level [info|debug|dryrun] (default: info)

こんな感じで実行

./ghettoVCB.sh -f vm_backup_list.txt -g ./ghettoVCB.conf -l backup.log

これをmacからsshでリモート実行しています。

リストアについてはまだ、実験してませんが、メモのみ。

 

今更 FreeBSD-8.2へ

ちょいと時間ができたので、FreeBSD 8.2へアップグレードしました。

# freebsd-upgrade -r 8.2-RELEASE
# freebsd update install
# shutdown -r now
# freebsd-update install
# shutdown -r now
# freebsd-update install

古いpackageを一部アップデートして終わり。
だんだんとこのような作業が面倒くさくなってきた。