に ipv6 を スタック しよう ( on vmware esxi4.1/hypervisor )

40
1 IPv6 ににににににに on VMware ESXi4.1/Hypervisor NeGi project 2010 presents Kunitaka Namba ※OpenSolaris にににににににににににににSolaris8 10 にににににににににに

Upload: sheng

Post on 11-Jan-2016

48 views

Category:

Documents


0 download

DESCRIPTION

NeGi project 2010 presents. に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor ). Kunitaka Namba. ※OpenSolaris とは手順に互換性があります。  ( Solaris8 ~ 10 にもだいたい使えます). 目 的・概 要. ( 1 ) IPv6 の スタック 手順を把握 する。 ( 2 ) IPv6 関連の コマンド を抑える。 ( 3 ) IPv6 への 抵抗を無くす 。(簡単) ( 4 ) IPv6 への やる気もスタック する。. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

1

に IPv6 をスタックしよう( on VMware ESXi4.1/Hypervisor )

NeGi project 2010 presents

Kunitaka Namba

※OpenSolaris とは手順に互換性があります。 ( Solaris8 ~ 10 にもだいたい使えます)

Page 2: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

2

目 的・概 要( 1 ) IPv6 のスタック手順を把握する。

( 2 ) IPv6 関連のコマンドを抑える。

( 3 ) IPv6 への抵抗を無くす。(簡単)

( 4 ) IPv6 へのやる気もスタックする。※ 手順は Solaris10/OpenSolaris とほぼ同じです

Page 3: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

3

補 足・構 成(1)IPv6 アドレス表記は RFC5952 に“たぶん” 準じています。(細かいツッコミは無しで・・・ わざとフルアドレスで書いてる所もあります)

(2)OpenIndiana b147 on ESXi4.1 ( 2 台) ・ CPU 動的割り当て /PhenomII X4 ・ MEM 1024MB ・ HDD 20GB ・ NIC e1000g x5

# 面白くない構成でゴメンナサイ

Page 4: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

4

IPv6 に対応させるには? (1)

安心して下さい、” OpenIndiana” はIPv6 Ready です。

動かすだけなら、 Solaris8 から対応しています。

\ Solaris9 でも使ってるよ!/

Page 5: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

5

IPv6 に対応させるには? (2)

大嘘

大嘘!!!!

# EthernetFrame さえ流せればメディアの制限はない

LAN ケーブルの買い替えは不要

Page 6: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

6

IPv6 をスタックするには?(1)

OpenIndiana ( Solaris も同じ)ですが、

IPv4 とは別の IP インタフェイス扱いになります。

IPv4=inetIPv6=inet6

Page 7: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

7

IPv6 をスタックするには?(2)

スタックしたい NIC に、 IPv6 がスタックされているか?# ifconfig -a6

スタックされていなければ、plumb しましょう。# ifconfig e1000g2 inet6 plumb up

Page 8: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

8

IPv6 をスタックするには? (3)

自動的にリンクローカルアドレス※ 1 がスタックされます。( EUI-64 形式※ 2 )

# ifconfig e1000g2 inet6e1000g2: flags=2004841<UP,RUNNING,MULTICAST,DHCP,IPv6> mtu 1500 index 2

inet6 fe80::20c:29ff:fe13:952b/10※1 リンクローカルアドレス( fe80::/10 )※2 EUI-64 形式(次ページで図解)参考:原文 ftp://ftp.rfc-editor.org/in-notes/rfc4291.txt和訳 http://srgia.com/docs/rfc4291j.html

Page 9: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

9

IPv6 をスタックするには?(4)

00

ベンダー ID ( 8bit x3 ) ベンダーユニーク番号( 8bit x3 )

MAC アドレス 0:c:29:13:95:2b 0c 29 13 95 2b

13 95 2bff fe ++0c 29

0 0 0 0 0 0 0 0

最初の 8bit ( 1byte )

0 0 0 0 0 0 1 0

U/L ビットを反転

02 +

952b:fe13:29ff020c :::fe80 /10

リンクローカルアドレス ( RFC4291=IPv6 アドレス体系)

64bit64bit

リンクローカルアドレスEUI-64 形式 図解

Page 10: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

10

IPv6 をスタックするには? (5)

任意の IPv6 アドレスをスタックしたい場合、インタフェイスに addif します。

# ifconfig e1000g2 inet6 addif \2001:db8:3:dead::b147/64 upCreated new logical interface e1000g2:1 と応答があれば成功していま

す。

削除したい場合は、 # ifconfig e1000g2:1 inet6 unplumb です。

Page 11: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

11

IPv6 をスタックするには? (6)

nwam に要注意

nwam が動作していると、 inet6 addif しても任意の IPv6アドレスが付きません。無効化しましょう。( OpenSolaris 、 OpenIndiana は必要、 Solaris は不要)

# svcadm disable physical:nwam# svcadm enable physical:default# Created new logical interface… を返す(リターンコード 0 )くせに、# nwam が logical interface を勝手に外します。

Page 12: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

12

IPv6 をスタックするには? (7)

nwam の停止を確認する。これで大丈夫!

# svcs physicalSTATE STIME FMRIdisabled 12:21:45 svc:/network/physical:nwamonline 12:21:50 svc:/network/physical:default

Page 13: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

13

IPv6 をスタックするには?(8)

ifconfig -a6 の表示例です。$ ifconfig -a6lo0: flags=2002000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu 8252 index 1

inet6 ::1/128e1000g2: flags=2004841<UP,RUNNING,MULTICAST,DHCP,IPv6> mtu 1500 index 6

inet6 fe80::20c:29ff:fe13:952b/10 ether 0:c:29:13:95:2be1000g2:1: flags=2000841<UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 6

inet6 2001:db8:3:dead::b147/64

inet6 のフィジカルインタフェイス( =e1000g2 など)は必ずリンクローカルになります。

Page 14: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

14

IPv6 をスタックするには?(9)

設定ファイルに記録する。

/etc/hostname6.e1000g2addif 2001:db8:3:dead::b147/64

up

これで再起動しても大丈夫!!複数行書いてもいい。addif 2001:db8:dead::beef/64 upaddif 2001:db8:3939::cafe/64 up

Page 15: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

15

IPv6 をスタックするには?(10)

e1000g2

inet

inet6 fe80::20c:29ff:fe13:952b/10

2001:db8:3:dead::b147/64

リンクローカルアドレス

192.168.39.39/24

e1000g2:1

\ イメージだとこんな感じ!/

Page 16: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

16

IPv6 で IPMP を使うには?(1)

IPMP も IPv6 Ready になっています。ただし、検知 IP は必要なくなりました。検知にはリンクローカルアドレスを使うからです。

※ デュアルスタックで使用すると、 IPv6 の IPMPフェールオーバ動作で IPv4 側も切り替わります。

 これは IPv6 が優先される為で、仕様です。

# 実運用だと同一 NIC へのデュアルスタックを# 避けたりしています。

Page 17: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

17

IPv6 で IPMP を使うには?(2)

IPMP 設定方法

/etc/hostname6.e1000g2-failover group {IPMP_Grp} addif 2001:db8:3:dead::b147/64

up

/etc/hostname6.e1000g3-failover group {IPMP_Grp} standby up

# リンクベースで検知する方は試していません。# 出来ないかも??

Page 18: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

18

IPv6 のルーティングは? (1)

route コマンドの -inet6 オプションで対応しています。# route add -inet6 {Destination} {Nexthop}

デフォルトルートの例# route add -inet6 default 2001:db8:3:dead::b147

スタティックルートの例# route add -inet6 2001:db8:feed::/48

2001:db8:3:dead::b147

\ ここの inet6 はハイフン要るよ!/

Page 19: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

19

IPv6 のルーティングは? (2)

netstat コマンドも IPv6 拡張されています。-f inet/inet6 指定しないと全経路を表示します。

# netstat -rn -f inet6 (IPv6 の全経路を表示)

# またオプション違わね?とか言わないように・・・#address “f”amily の” f” らしいです。(ヘルプ)

Page 20: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

20

IPv6 のルーティングは? (3)

静的なルーティングを登録するには、route -p add -inet6 コマンドを使用します。

/etc/inet/static_routes が編集され、再起動後も設定が維持されます。

参照 http://blogs.sun.com/yappri/entry/static_routes

Page 21: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

21

IPv6 のルーティングは? (4)

デフォルトルートの場合は、以下のコマンドになります。

# route -p add -inet6 default fe80::1234

Page 22: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

22

IPv6 のルーティングは? (5)

ルータからの RA (ルータ広告=Router Advertisement )

を無視するには、以下の対応が必要です。

/etc/inet/ndpd.conf:e1000g2 StatelessAddrConf falsee1000g3 StatelessAddrConf false

# svcadm disable ndp# svcadm enable ndp

Page 23: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

23

IPv6 の名前解決について (1)

デフォルトの設定のままだと、 AAAAレコードを使ってくれない・・・(かも/etc/nsswitch.conf の修正を忘れずに!!

ipnodes: files dns ←ここに” dns” を#AAAA は「クワッドエー」と読みます。

Page 24: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

24

IPv6 の名前解決について (2)

/etc/resolv.conf も IPv6 Readyになっています。こんな書き方をしても大丈夫です。

nameserver 2001:db8:3:dead::b147nameserver 192.168.3.147

Page 25: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

25

IPv6 の名前解決について (3)

hosts ファイルはもちろん IPv6 Readyです。( ipnodes は忘れてあげて・・・

2001:db8:3:dead::b147 ipv6-hoge hoge192.168.39.39 ipv4-hoge hoge

※/etc/hosts も /etc/inet/ipnodes も /etc/inet/hosts に シンボリックリンクされてます。

Page 26: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

26

IPv6 の名前解決について (4)

hosts ファイルは書く順番によって動作が変わります。( IPv6⇒IPv4 )

2001:db8:3:dead::b147 ipv6-hoge hoge192.168.39.39 ipv4-hoge hoge

↑だと hoge は IPv6/IPv4 で引けます。 ※ただし指定が無い場合は IPv6 優先

Page 27: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

27

IPv6 の名前解決について (5)

hosts ファイルは書く順番によって動作が変わります。( IPv6⇒IPv4 )

192.168.39.39 ipv4-hoge hoge2001:db8:3:dead::b147 ipv6-hoge

hoge

↑だと hoge は IPv4 だけになります。

Page 28: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

28

IPv6 の疎通確認について (1)

おなじみの ping から。Linux とかにある ping6 コマンドはありません。間違えないように。# ping 2001:240:6b0::10とか# ping negi.ipv6labs.jpです。

Page 29: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

29

IPv6 の疎通確認について (2)

traceroute も同じです。Linux とかにある traceroute6 コマンドはありません。間違えないように。# traceroute -I 2001:240:6b0::10とか# traceroute -I negi.ipv6labs.jpです。

Page 30: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

30

IPv6 の疎通確認について (3)

ping/traceroute の小技集

1. A レコード結果だけ使いたい# { ping | traceroute } -A inet negi.ipv6labs.jp

2. AAAA レコード結果だけ使いたい# { ping | traceroute } -A inet6 negi.ipv6labs.jp

3. A/AAAA レコード結果の両方を使いたい# { ping | traceroute } -a negi.ipv6labs.jp

Page 31: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

31

IPv6 の疎通確認について (4)

snoop も IPv6 Ready になっています。ip6 という条件を渡すと、 IPv6 のパケットだけを見ることが出来ます。

# snoop -d e1000g2 ip6

Page 32: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

32

IPv6 の疎通確認について (5)

telnet には inet/inet6 オプションの様なものがありませんでした・・・面倒ですが# telnet 2001:db8:3:dead::b147と# telnet 192.168.39.39を使い分ける必要があります。

Page 33: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

33

inetd の IPv6 対応状況

inetd から tftp を IPv6 対応してみる。/etc/inet/inetd.conftftp dgram udp6 wait root /usr/sbin/in.tftpd in.tftpd -s /var/tftp

UDP は udp6 、 TCP は tcp6 を指定する。デュアルスタックで待ち受ける。

# tftp 2001:db8:3:dead::b147 で繋がります。後はお好きに。

Page 34: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

34

IPv6 のポート解放状態

UDP の Listen状態を確認するには。

# netstat -an -P udp -f inet -f inet6

これで Socket 無し、 IPv4/IPv6両方を一度に確認できます。

# netstat -sP ip6 なんかもあります。

Page 35: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

35

IPv6 の IP フィルタリング

TCP-Wrapper も IPv6 Ready です。

※ TCP-Wrapper はデフォルトが無効、以下の手順で有効に。

# inetadm -p | grep "^tcp_wrappers"tcp_wrappers=FALSE

# inetadm -M tcp_wrappers=TRUE

# inetadm -p | grep "^tcp_wrappers"tcp_wrappers=TRUE

Page 36: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

36

IPv6 の IP フィルタリング

/etc/hosts.allow の記述は以下の様になります。 [] で囲む必要がある。

ssh: [2001:db8::1] [2001:db8:aaaa:bbbb::/64]

[] で囲まないと、正しく動作しません。

# TCP-Wrapper の ALL:ALL は IPv6 も包括しています。# IPv6 対応ソフトで、 Wrapper 対応しているものも同様です。

Page 37: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

37

IPv6 での SMTP

sendmail ( submit.cf )のスマートリレーホストにも IPv6 の設定は可能。

/etc/mail/submit.cfD{MTAHost}[2001:db8::1][2001:db8::2]

# 当然ですが、 IPv4 アドレスや FQDN混在も可能です。# mailx -s “IPv6 Relay” [email protected] < /dev/null

Page 38: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

38

IPv6 の SNMP

NET-SNMP 5.5 で IPv6 に完全対応?

こんな OID が増えています!

IP-MIB::ipSystemStatsInOctets.ipv4IP-MIB::ipSystemStatsInOctets.ipv6IP-MIB::ipSystemStatsHCInOctets.ipv4IP-MIB::ipSystemStatsHCInOctets.ipv6

Page 39: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

39

SunOS での IPv6 のまとめ

普通に動きます。

IPv6 を使って不便なのは、経路が不安定だったり、帯域が不足しているから。

鶏か卵か待っているだけではダメ。使える人からどんどん使ってみよう!!

Page 40: に IPv6 を スタック しよう ( on VMware ESXi4.1/Hypervisor )

40

質 疑 応 答

\ 質問!/