*IPv6 [#b16e0c7c]

RIGHT:更新日 &lastmod(); 

Vine5.2でnetwork(NetworkManagerを停止)してIPv6を構築

**IPv6アドレス [#m2e0990f]

IPv6はn bitのサブネットプレフィックスと128-n bitのインタフェースIDで構成

 --------------------------------------------------------
 | サブネットプレフィックス    |   インターフェイスID   |
 --------------------------------------------------------
            n bit                    128-n bit
 
 2001:db8:cafe:babe::bad  n=64
 サブネットプレフィックス = 2001:db8:cafe:babe
 インターフェイスID = 0:0:0:bad
 
 ネットワークアドレス = 2001:db8:cafe:babe::/64

''IPv6のゼロの省略''

 2001:db8:cafe:babe::bad
           ↓ ::は0で補完(::の場所は1か所,2か所以上あると補完バイト数が判らなくなる)
 2001:db8:cafe:babe:0:0:0:0bad
           ↓ 0は省略されている。
 2001:db8:cafe:babe:0000:0000:0000:0bad (2byteごと区切る)


IPv6一覧
|::1/128|ループバック(IPv4の127.0.0.1)|
|2000::/3|グローバルアドレス|
|fd00::/7|ユニークローカルアドレス 独自割り当て(ローカル管理)|
|fc00::/7|ユニークローカルアドレス 現在定義(集中管理)|
|fe80::/10|リンクローカルアドレス|
|ff00::/8|マルチキャストアドレス|

/n はn bit

**リンクローカルアドレス。 [#s905ff2e]

MACアドレスから生成されるのが、リンクローカルアドレス。

                       24Bit     24Bit
                     -------------------
 MACアドレス         | 001122 | 334455 |
                     -------------------
                  24Bit    16Bit   24Bit
                --------------------------
 EUI-64アドレス | 001122 | fffe | 334455 |
                --------------------------
                  ↓universal/local Bit の反転 
                0000 0010 …
                 02 11 22 上位1Byteの7Bit目を反転すると0 → 2(Hex)
               ^^^^
 リンクローカルアドレスは
 -------------------------------------------
 |fe80000000000000| 021122 | fffe | 334455 |
 -------------------------------------------
   64Bit
EUI-64では左から,7ビット目と8ビット目には意味が定められている。7ビット目はuniversal/localビットと呼ばれ,0がセットされていると識別子が世界で一意であること示す。一方,1の場合はローカル利用を示しており,必ずしも一意である保証はない.

            
**ユニークローカルアドレス [#jf9e1cde]

IPv4のプライベートアドレスに相当するのがユニークローカルアドレス。~

ユニークローカルアドレスはサブネットプレフィックスの上位7bitが1111 110。~
8bit目が1が独自割り当て 0が現在定義
よって
 --------------------------------------------------------------
 | 1111 1101 | Global ID | Subnet ID | インターフェイスID     |
 --------------------------------------------------------------
   8bit (fd)     40bit       16bit         64bit

Global ID: ランダムに生成し、重複しない値

サブネット ID: ネットワークの管理サブネットを定義。管理者が自由に決める


ユニークローカルアドレスはローカル内部重複しなければOK。~
重複を避けるためにGlobal ID (40bit)を以下のように生成(RFC 4193)

 $ ntpdate -dq ntp.jst.mfeed.ad.jp
 22 Jul 11:47:15 ntpdate[27765]: ntpdate 4.2.4p8@1.1612-o Sun Dec 13 12:36:41 UTC 2009 (1)
 Looking for host ntp.jst.mfeed.ad.jp and service ntp
 host found : ntp2.jst.mfeed.ad.jp
 transmit(210.173.160.57)
 (略)
 originate timestamp: d1d362b6.2e39448c  Fri, Jul 22 2011 11:45:10.180
 transmit timestamp:  d1d36334.ad2007dd  Fri, Jul 22 2011 11:47:16.676  <===ここを利用
 filter delay:  0.05257  0.04285  0.04520  0.04866
 (略)

 $ /sbin/ifconfig
 (略)
           inet6アドレス: fe80::21d:72ff:feb5:a9e/64 範囲:リンク
                               ^^^^^^^^^^^^^^^^^^ ここを利用する(8Byte)
 (略)


 $ echo d1d36334ad2007dd021d72fffeb50a9e | sha1sum
 4820d6a830f1b90187e091bfc64d155e059e47ea  -
                               ^^^^^^^^^^
                                40bitを使用する

 Subnet IDを 00にし、インターフェイスIDを::1にすると
 アドレスは1d:45:80:ee:8a::1/64になる


**ユニークローカルアドレスの設定 [#ae9bf5a0]

IPアドレスはfd41:28b7:be11::47/64を設定

/etc/sysconfig
 NETWORKING_IPv6=yes

/etc/sysconfig/network-scripts/ifcfg-eth0

 # IPV6INIT=no
 
 IPV6INIT=yes
 IPV6_AUTOCONF=no
 IPV6ADDR=fd41:28b7:be11::47/64
 IPV6_DEFAULTGW=fd41:28b7:be11::54


Linuxでの
/etc/hosts

 fd41:28b7:be11::54                      d5270-54


''構成''
          IPv6          
 ---------- fd41:28b7:be11::47        fd41:28b7:be11::54 ----------
 |d5270-47|----------------------------------------------|d5270-54|
 ----------                                              ----------
          MAC 00:1D:72:B5:0A:9E      

 # ping6 -I eth0 fd41:28b7:be11::54
 PING fd41:28b7:be11::54(fd41:28b7:be11::54) from fd41:28b7:be11::47 eth0: 56 data bytes
 64 bytes from fd41:28b7:be11::54: icmp_seq=1 ttl=64 time=4.62 ms
 64 bytes from fd41:28b7:be11::54: icmp_seq=2 ttl=64 time=0.378 ms

 # ping6 fd41:28b7:be11::54
 PING fd41:28b7:be11::54(fd41:28b7:be11::54) 56 data bytes
 64 bytes from fd41:28b7:be11::54: icmp_seq=1 ttl=64 time=0.492 ms
 64 bytes from fd41:28b7:be11::54: icmp_seq=2 ttl=64 time=0.376 ms

 # ping6 d5270-54
 PING d5270-54(d5270-54) 56 data bytes
 64 bytes from d5270-54: icmp_seq=1 ttl=64 time=3.97 ms
 64 bytes from d5270-54: icmp_seq=2 ttl=64 time=0.375 ms

**リンク層のアドレスの解決 [#pf6d4aae]

以下のようにダンプをとりながらpingを打つ

 # tcpdump -i eth0 -nxx ip6
 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
 listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
 14:37:35.482271 IP6 fd41:28b7:be11::47 > ff02::1:ff00:54: ICMP6, neighbor solicitation, who has fd41:28b7:be11::54, length 32
         0x0000:  3333 ff00 0054 001d 72b5 0a9e 86dd 6000
         0x0010:  0000 0020 3aff fd41 28b7 be11 0000 0000
         0x0020:  0000 0000 0047 ff02 0000 0000 0000 0000
         0x0030:  0001 ff00 0054 8700 332a 0000 0000 fd41
         0x0040:  28b7 be11 0000 0000 0000 0000 0054 0101
         0x0050:  001d 72b5 0a9e

相手のMACアドレスを検索するためにNS(近隣要請)をMACのマルチキャストを投げる。
MACマルチキャストは送信元MACアドレス上位16bit 33:33 にIPアドレスの下位32bitを組み合わせ、6Byetにして送る。(この場合IPアドレスの下位32bitは00:00:00:54)
ところが、ノードマルチキャストアドレスの下位32BitはFF+ユニキャストアドレス
24Bitなため33:33:ff:00:00:54になる。

 14:37:35.482802 IP6 fd41:28b7:be11::54 > fd41:28b7:be11::47: ICMP6, neighbor advertisement, tgt is fd41:28b7:be11::54, length 32
         0x0000:  001d 72b5 0a9e 001d 72b5 0b18 86dd 6000
         0x0010:  0000 0020 3aff fd41 28b7 be11 0000 0000
         0x0020:  0000 0000 0054 fd41 28b7 be11 0000 0000
         0x0030:  0000 0000 0047 8800 eaa9 6000 0000 fd41
         0x0040:  28b7 be11 0000 0000 0000 0000 0054 0201
         0x0050:  001d 72b5 0b18


**SLAAC(radvd)の自動IP振り分け。 [#cf8a61db]

***Server側 [#i2f41dee]
 # apt-get install radvd

/etc/sysctl.confに以下を追加

 net.ipv6.conf.all.forwarding = 1

 # sysctl net.ipv6.conf.all.forwarding
 net.ipv6.conf.all.forwarding = 1
で確認

/etc/radvd.conf
 interface eth0{
         AdvSendAdvert on;
         AdvManagedFlag off;
         AdvOtherConfigFlag off;
         prefix fd41:28b7:be11::/64{
                  AdvValidLifetime 7200;
                  AdvPreferredLifetime 3600;
                  };
         RDNSS fd41:28b7:be11::47{
         };

 # /etc/rc.d/init.d/radvd start

***Client側 [#n58f7a62]

/etc/sysconfig/network-scripts/ifcfg-eth0

 # IPV6INIT=no
 
 IPV6INIT=yes
 IPV6_AUTOCONF=yes
 # IPV6ADDR=fd41:28b7:be11::33/64

 # /etc/rc.d/init.d/network restart

 $ /sbin/ifconfig
 eth0      リンク方法:イーサネット  ハードウェアアドレス 00:1D:72:B5:0B:13
           inetアドレス:10.3.4.33 ブロードキャスト:10.255.255.255  マスク:255.0.0.0
           inet6アドレス: fd41:28b7:be11:0:21d:72ff:feb5:b13/64 範囲:グローバル  <==自動に割り振られたIP
           inet6アドレス: fe80::21d:72ff:feb5:b13/64 範囲:リンク
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

 $ netstat -rnA inet6
 カーネルIPv6 経路テーブル
 送信先サイト                                次回ホップ                             フラグ Metric Ref 使用数 インターフェース
 fd41:28b7:be11::/64                         ::                                      UA    256    5        0 eth0
 fe80::/64                                   ::                                      U     256    0        0 eth0
 ::/0                                        fe80::21d:72ff:feb5:a9e                 UGDA  1024   1        0 eth0  <==デフォルトGW
 ::1/128                                     ::                                      U     0      7        1 lo
 fd41:28b7:be11:0:21d:72ff:feb5:b13/128      ::                                      U     0      4        1 lo
 fe80::21d:72ff:feb5:b13/128                 ::                                      U     0      13       1 lo
 ff02::1:ffed:e5db/128                       ff02::1:ffed:e5db                       UC    0      1        0 eth0
 ff00::/8                                    ::                                      U     256    0        0 eth0

デフォルトGWはサーバが指定される。

以下のコマンドで確認

 # radvdump eth0
 #
 # radvd configuration generated by radvdump 1.1
 # based on Router Advertisement from fe80::21d:72ff:feb5:a9e
 # received by interface eth0
 #
 
 interface eth0
 {
         AdvSendAdvert on;
         # Note: {Min,Max}RtrAdvInterval cannot be obtained with radvdump
         AdvManagedFlag off;
         AdvOtherConfigFlag off;
         AdvReachableTime 0;
         AdvRetransTimer 0;
         AdvCurHopLimit 64;
         AdvDefaultLifetime 300;
         AdvHomeAgentFlag off;
         AdvDefaultPreference medium;
         AdvSourceLLAddress on;
 
         prefix fd41:28b7:be11::/64
         {
                 AdvValidLifetime 7200;
                 AdvPreferredLifetime 3600;
                 AdvOnLink on;
                 AdvAutonomous on;
                 AdvRouterAddr off;
         }; # End of prefix definition
  
 
         RDNSS fd41:28b7:be11::47
         {
                 AdvRDNSSPreference 8;
                 AdvRDNSSOpen off;
                 AdvRDNSSLifetime 100;
         }; # End of RDNSS definition
 
 }; # End of interface definition

**DHCPの設定 [#v82aa651]

うまく割り振れないようだ原因調査中

***Server側 [#y5b3047f]
 # apt-cache search dhcpv6
 
 dhcpv6 - DHCPv6 - DHCP server and client for IPv6
 dhcpv6-client - DHCPv6 client

 # apt-get install dhcpv6

/etc/dhcp6s.conf

 interface eth0 {
     server-preference 255;
     renew-time 60;
     rebind-time 90;
     prefer-life-time 130;
     valid-life-time 200;
     allow rapid-commit;
 #    option dns_servers 2000::2 ibm.com;
 
     link AAA {
         pool{
             range fd41:28b7:be11::0001 to fd41:28b7:be11::00ff/64;
             prefix fd41:28b7:be11::/48;
         };
 
         #range 3ffe:501:ffff:1::1 to 3ffe:501:ffff:1::10/64;
     };
 
 };

***Client側 [#o75aa752]

/etc/dhcp6c.conf


 interface eth0 {
 #    #information-only;
 #    send rapid-commit;
 #    request prefix-delegation;
 #    #request temp-address;
 };

/etc/sysconfig/network-scripts/ifcfg-eth0

 IPV6INIT=yes
 IPV6_AUTOCONF=yes
 # IPV6ADDR=fd41:28b7:be11::33/64
 DHCPV6C=yes



 # /sbin/ifconfig
 eth0      リンク方法:イーサネット  ハードウェアアドレス 00:1D:72:B5:0B:13
           inetアドレス:10.3.4.33 ブロードキャスト:10.255.255.255  マスク:255.0.0.0
           inet6アドレス: fd41:28b7:be11::1d/64 範囲:グローバル  <==割り振られたIP
           inet6アドレス: fd41:28b7:be11:0:21d:72ff:feb5:b13/64 範囲:グローバル
           inet6アドレス: fe80::21d:72ff:feb5:b13/64 範囲:リンク
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1


**Bind9でIPv6 [#lfa944eb]

サブネットプレフィックス fd41:28b7:be11:0000

これがゾーンになる。たとえば

インターフェイスID  0000:0000:0000:0054

の場合逆引きは

 fd41:28b7:be11::54
 
 fd41:28b7:be11:0000:0000:0000:0000:0054
 
 4 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 e b 7 b 8 2 1 4 d f
 <------------------------------><----------------------------->
    インターフェイスID             サブネットプレフィックス

のように考える

/etc/named.conf

 acl "localnet" {
         10.0.0.0/8;
         127.0.0.1;
         fd41:28b7:be11::/64;  //(同一サブネットプレフィックスを指定)
 };
 
 options {
         directory "/var/named";
         auth-nxdomain no;
         listen-on-v6{    //IPv6からの問い合わせに答えるため必要
                 any;
         };
 };
 (略)
         zone "0.0.0.0.1.1.e.b.7.b.8.2.1.4.d.f.ip6.arpa"{
                 type master;
                 file "named.rev6";
         };


/var/named/named.hosts

 ;
 ; IPV6 Test  /var/named/named.hosts
 ;
 $TTL 1D
 @ IN SOA d5270-47.mie-chukyo-u.ac.jp. root.d5270-47.mie-chukyo-u.ac.jp. (
                 3       ; Serial
                 10800   ; Refresh
                 1800    ; Retry
                 3600000 ; Expire
                 86400 ) ; Minimum
   IN NS         d5270-47.mie-chukyo-u.ac.jp.
 ;  IN MX        10 atom.ism21.net.
 d5270-33        IN A     10.3.4.33
 d5270-47        IN A     10.3.4.47
 d5270-54        IN A     10.3.4.54
 d5270-47        IN AAAA     fd41:28b7:be11::47
 d5270-54        IN AAAA     fd41:28b7:be11::54



/var/named/named.rev6

 ;
 ; IPv6 TEST  /var/named/named.rev6
 ;
 $TTL 1D
 @ IN    SOA     d5270-47.mie-chukyo-u.ac.jp. root.d5270-47.mie-chukyo-u.ac.jp. (
                 11              ; Serial
                 10800           ; Refresh
                 1800            ; Retry
                 3600000         ; Expire
                 86400 )         ; Minimum
 @            NS      d5270-47.mie-chukyo-u.ac.jp.
 3.3.0.0.0.0.0.0.0.0.0.0.0.0.0.0       PTR     d5270-33.mie-chukyo-u.ac.jp.
 7.4.0.0.0.0.0.0.0.0.0.0.0.0.0.0       PTR     d5270-47.mie-chukyo-u.ac.jp.
 4.5.0.0.0.0.0.0.0.0.0.0.0.0.0.0       PTR     d5270-54.mie-chukyo-u.ac.jp.

***確認 [#af40206c]

''/etc/resolv.conf''

 search mie-chukyo-u.ac.jp
 nameserver fd41:28b7:be11::47


 # host d5270-54
 d5270-54.mie-chukyo-u.ac.jp has address 10.3.4.54
 d5270-54.mie-chukyo-u.ac.jp has IPv6 address fd41:28b7:be11::54


 # host fd41:28b7:be11::54
 4.5.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.1.e.b.7.b.8.2.1.4.d.f.ip6.arpa domain name pointer d5270-54.mie-chukyo-u.ac.jp.

 
 # dig d5270-54.mie-chukyo-u.ac.jp. AAAA
 
 ; <<>> DiG 9.6-ESV-R2 <<>> d5270-54.mie-chukyo-u.ac.jp. AAAA
 ;; global options: +cmd
 ;; Got answer:
 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8893
 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
 
 ;; QUESTION SECTION:
 ;d5270-54.mie-chukyo-u.ac.jp.   IN      AAAA
 
 ;; ANSWER SECTION:
 d5270-54.mie-chukyo-u.ac.jp. 86400 IN   AAAA    fd41:28b7:be11::54
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ここ
 ;; AUTHORITY SECTION:
 mie-chukyo-u.ac.jp.     86400   IN      NS      d5270-47.mie-chukyo-u.ac.jp.
 
 ;; ADDITIONAL SECTION:
 d5270-47.mie-chukyo-u.ac.jp. 86400 IN   A       10.3.4.47
 d5270-47.mie-chukyo-u.ac.jp. 86400 IN   AAAA    fd41:28b7:be11::47
 
 ;; Query time: 0 msec
 ;; SERVER: fd41:28b7:be11::47#53(fd41:28b7:be11::47)
 ;; WHEN: Tue Aug  9 15:03:28 2011
 ;; MSG SIZE  rcvd: 140

**参考 [#wa928533]

-Software Design 2011 6月号

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS