ようへいの日々精進XP

よかろうもん

lxc 1.0.0.alpha1 にアップグレードしたら色々と困ったのでメモ(3)〜 Debian コンテナで DHCP から IP が付与されない(2) 〜

はじめに

  • 前回からの続き(しつこくてすいません)
  • バージョンアップ(lxc 0.9 to lxc 1.0.0)に伴う挙動の変化について
  • パケットキャプチャして様子を見てみた

環境

ホスト ホスト OS バージョン lxc-version コンテナ OS バージョン
ThinkPad X1 Carbon Ubuntu 13.10 lxc 1.0.0.alpha2 Debian 6.0.7
VM on VirtualBox Ubuntu 13.04 lxc 0.9.0 Debian 6.0.7

メモ

以下のコマンドにてパケットキャプチャを行った。

sudo tcpdump -n -vv -i lxcbr0 port bootps or port bootpc

キャプチャの内容は長いので gist に貼った。

lxc 1.0.0.alpha2

transmit checksum オフロード処理は有効

この状態ではコンテナの IP アドレスの取得は失敗する。(デフォルト)

transmit checksum オフロード処理を無効

この状態で IP アドレスの取得は成功する。

lxc 0.9.0

IP アドレスの取得は成功する。


考察

パケットキャプチャから解ったこと

06:58:44.105376 IP (tos 0xc0, ttl 64, id 4241, offset 0, flags [none], proto UDP (17), length 328)
    10.0.3.1.67 > 10.0.3.32.68: [bad udp cksum 0x1b66 -> 0x5d2a!] BOOTP/DHCP, Reply, length 300, xid 0xb9727512, Flags [none] (0x0000)
          Your-IP 10.0.3.32
          Server-IP 10.0.3.1
          Client-Ethernet-Address 5a:42:46:28:18:63
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message Option 53, length 1: ACK
            Server-ID Option 54, length 4: 10.0.3.1
            Lease-Time Option 51, length 4: 3600
            RN Option 58, length 4: 1800
            RB Option 59, length 4: 3150
            Subnet-Mask Option 1, length 4: 255.255.255.0
            BR Option 28, length 4: 10.0.3.255
            Default-Gateway Option 3, length 4: 10.0.3.1
            Domain-Name-Server Option 6, length 4: 10.0.3.1

上記は lxc 0.9.0 での DHCPACK の状態。既に IP が付与されている状態ではあるが、チェックサムの計算では [bad udp cksum 0x1b66 -> 0x5d2a!] となっていることが解った。

また、下記は lxc 1.0.0.alpha2DHCPACK の状態をキャプチャしたもの。

07:06:10.010361 IP (tos 0xc0, ttl 64, id 38208, offset 0, flags [none], proto UDP (17), length 328)
    10.0.3.1.67 > 10.0.3.243.68: [udp sum ok] BOOTP/DHCP, Reply, length 300, xid 0x8d36d50e, Flags [none] (0x0000)
          Your-IP 10.0.3.243
          Server-IP 10.0.3.1
          Client-Ethernet-Address 4a:39:b1:ef:92:77
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message Option 53, length 1: ACK
            Server-ID Option 54, length 4: 10.0.3.1
            Lease-Time Option 51, length 4: 3600
            RN Option 58, length 4: 1800
            RB Option 59, length 4: 3150
            Subnet-Mask Option 1, length 4: 255.255.255.0
            BR Option 28, length 4: 10.0.3.255
            Default-Gateway Option 3, length 4: 10.0.3.1
            Domain-Name-Server Option 6, length 4: 10.0.3.1

DHCPACK の状態でもチェックサムの計算は成功している。

ということは...

  • そもそも lxc 0.9.0 では DHCPチェックサムの計算結果に基づいて IP アドレスの付与はされていなかったか、無理くり IP を付与していたのかもしれない
  • lxc 1.0.0 になってからこの辺りが改善されたのかもしれない
  • でも、DHCP のレベルの話なので lxc は関係無いような気がするが...

最後に

  • lxc を通して DHCP のトラブルシューティングについて学ぶことが出来て良かった