vyatta 6.6R1にバージョンアップ

vyattaのバージョンアップを久しぶりに実施した。
6.5R1がリリースされた際にすぐに実施したのだが、なんか不安定だったので、6.4に戻していました。

こんな情報がありました。
この情報をたよりにいろいろと調べてみると、やはり6.5の時から問題が発生していたようです。
以前、不安定だったのはこれが原因のようです。(リリースされてすぐに6.5適用したから情報がなかったんだな。。)
こんなところ、よほどじゃないと疑わないよね。。。

せっかくなので、本当かどうか調べてみました。まずは、6.4でpppoe側をダンプ。

6.4-mss

mtuは1454に設定している。mssは1412と自動調整されていますね。

6.6R1にバージョンアップ後、同様にダンプすると。。。
6.6-mss

mtuは1454で設定しているのに、mssは1460になっていて調整されていない。。。。
これが原因なんですね。

サイトにあるように、policyでinterfaceにINするSYNパケットを1414にセットします。
mtuが1454だら、ヘッダ40として1414って訳ですね。R6.4の時は1412に調査されているようだが、
まっ、40バイトでいいでしょう。
こんな感じでpolicy追加。LAN側はbridge設定しているのでbridge インターフェイスに適用しました。ethXでは、変化なかった。

set policy route PPPOE-IN rule 10 destination address 0.0.0.0/0
set policy route PPPOE-IN rule 10 protocol tcp
set policy route PPPOE-IN rule 10 tcp flags 'SYN,!ACK,!FIN,!RST'
set policy route PPPOE-IN rule 10 set tcp-mss 1414
set interface bridge br2 policy route PPPOE-IN

さて、同様にダンプすると。。。ちゃんとmssが1414に設定されています。
6.6-mss-change

とりあえず、これでOKとしよう。しかしなんでこんなリグレっぽいことが放置されているのだ??

 

vyatta GUIは無料版じゃダメなのか。。

さて、vyatta 6.4に更新したところで、GUIで操作できるってのも魅力の一つだと誰かが言ってた、むかーしの記憶があったので、設定してみました。

#set service https
# commit
[ service https ]
Stopping web server: lighttpd.
Starting web server: lighttpd.
Stopping PAGER server
Starting PAGER server

lighttpdなのね。ふむふむ。早速ブラウザでアクセスしてみると、

が〜ん!

6.3から無料じゃなくなったみたいね。

 

vyatta 6.4

vyatta 6.4がreleaseされたようだったので、いつものようにupdate。
#いつものようにドキュメントは読まず。。

% add system image http://www.vyatta.com/downloads/vc6.4/vyatta-livecd_VC6.4-2012.04.30_amd64.iso

設定を維持して再起動で完了。

さら〜と、configを眺めていると、natがservice配下でなくなっている。。。
しかも、destinationとsourceで分けて記載できるようになっている。
何も考えずにバージョンアップしたが、configが適切に修正されているのに驚いた。
大抵configの変更とかがある場合、こけるよね。。。(笑)

本日は、とりあえずversion upして終了。

 

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アドレス振る方法も後々試そう。。。