Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
SAM: Stateless Address Mapping
~IPv6時代のIPv4を考える~
松嶋 聡
ソフトバンクテレコム
6rdの経験から
• IPv4アドレスは、タダのインターナルIDになった
• 6rd ボーダールータはIPv6宛先アドレスから自動的にカプセル化IPv4宛先アドレスを導く
• 6rd CEは設定されたIPv4アドレスから自動的にDelegated Prefixを導く
• 6rdはコスト的に非常に有利なので、この原理の適用先を広げたい
なぜステートレスがよい?
IPv4 InternetIPv4 Internet IPv4 InternetIPv4 Internet
IPv6
トラフィック量に応じた設備投資ユーザー/セッション数に応じた設備投資
IPv6
Point-to-Point NBMA
ステートレスステートフルステートフル
6rd
SP’s IPv6prefix IPv4 Local
Site Interface ID
IPv4
上
下
もしも上下逆転が可能ならIPv4 over IPv6
SP’s IPv6prefix IPv4 Local
Site Interface ID
IPv4
上
下
そんなにうまくは行かない
ユーザーユニーク部LocalSite Interface IDSP’s IPv6
prefix
SP’s v4prefix
ユーザーユニーク部
上
下
はみ出る
解決策その1
ユーザーユニーク部LocalSite Interface IDSP’s IPv6
prefix
SP’s v4prefix
ユーザーユニーク部 ?
32bit 上
下
v4アドレス共通部を追い出す
解決策その2
ユーザーユニーク部LocalSite Interface IDSP’s IPv6
prefix
SP’s v4prefix
ユーザーユニーク部
32bit
?TCP/UDPPort
上
下
空いたビットをポート番号でうめる
Stateless Address Mapping for IPv4 over IPv6
ISP’sprefix
ユーザーユニーク部
48bit(IPv4 + Port)
SP’s IPv6prefix ユーザーユニーク部
localsite Interface ID
TCP/UDPPort
16bit32bit上
下
IPv4アドレス共有
Example Configurations
SP’s IPv6 access NW2400:2400::/24
IPv4
tunnel0
tunnel0
2400:2401::1
2400:24AB:CDEF::1
Border Relay Router
CPE
10.0.0.1
Tunnel0 address=10.255.255.254/32
Tunnel0 address=UnnumberedBorder Relay = 2400:2401::1
SP IPv4 Prefix = 10.255.0.0/16
LAN address =192.168.3.1/24
192.168.3.10/24
- Define IPv4 global address and NAPT ports,
consist of SP’s IPv6 address- Encapsulate by IPv6 packet
appropriately
IPv4 address: 10.255.AB.CDNAPT ports: 0xEF00~0xEFFF
IPv4 routing table
10.255.0.0/16 => tunnel0Default => 10.0.0.2
IPv4 routing table
...10.255.0.0/16 => 10.0.0.1
...
DHCP-PD
1つのIPv4アドレスを
256人で共有
Example behavior - Upstream-
SP’s IPv6 access NW2400::2400/24
IPv4
2400:2401::1
10.0.0.1
SP IPv4 Prefix = 10.255.0.0/16
192.168.3.10/24
- Define IPv4 global address and NAPT ports,
consist of SP’s IPv6 address- Encapsulate by IPv6 packet
appropriately
IPv4 address: 10.255.AB.CDNAPT ports: 0xEF00~0xEFFF
IPv4 routing table
10.255.0.0/16 => tunnel0Default => 10.0.0.2
IPv4 routing table
...10.255.0.0/16 => 10.0.0.1
...
Packet IPv4
Dst=1.1.1.1:80Src=192.168.3.10:1024
TCP
Packet IPv4TCP IPv6
Dst=1.1.1.1:80Src=10.255.AB.CD:0xEF00
Dst=2400:2401::1Src=2400:24AB:CDEF::1
Packet IPv4
Dst=1.1.1.1:80Src=10.255.AB.CD:0xEF00
TCP
tunnel0
tunnel0
Border Relay RouterTunnel0 address=10.255.255.254/32
NAPT LAN address =192.168.3.1/2
CPE
Example behavior - Downstream -
SP’s IPv6 access NW2400:2400::/24
IPv4
2400:2401::1
10.0.0.1
SP IPv4 Prefix = 10.255.0.0/16
192.168.3.10/24
Packet IPv4
Dst=192.168.3.10:1024Src=1.1.1.1:80
TCPNAPT
Packet IPv4TCP IPv6Dst=2400:24AB:CDEF::1Src=2400:2401::1
Packet IPv4
Dst=10.255.AB.CD:0xEF00Src=1.1.1.1:80
TCP
Dst=10.255.AB.CD:0xEF00Src=1.1.1.1:80
tunnel0
tunnel0
Border Relay RouterTunnel0 address=10.255.255.254/32
LAN address =192.168.3.1/2
CPE
- Define IPv4 global address and NAPT ports,
consist of SP’s IPv6 address- Encapsulate by IPv6 packet
appropriately
IPv4 address: 10.255.AB.CDNAPT ports: 0xEF00~0xEFFF
IPv4 routing table
10.255.0.0/16 => tunnel0Default => 10.0.0.2
IPv4 routing table
...10.255.0.0/16 => 10.0.0.1
...
Example behavior - Upstream(2)
SP’s IPv6 access NW2400::2400/24
IPv4
2400:2401::1
10.0.0.1
192.168.3.10/24
IPv4 address: 10.255.AB.CDNAPT ports: 0xEF00~0xEFFF
IPv4 routing table
10.255.0.0/16 => tunnel0Default => 10.0.0.2
IPv4 routing table
...10.255.0.0/16 => 10.0.0.1
...
Packet IPv4
Dst=10.255.27.36:66Src=192.168.3.10:1024
TCP
Packet IPv4TCP IPv6
Dst=10.255.27.36:66Src=10.255.AB.CD:0xEF00
Dst=2400:241B:2442::1Src=2400:24AB:CDEF::1
tunnel0
tunnel0
Border Relay RouterTunnel0 address=10.255.255.254/32
NAPT
CPE
SP IPv4 Prefix = 10.255.0.0/16
Hex : 1B 24 42
サマリ• 6rd著者(Rémi Després)によるSAMの詳細は、以下のI-Dにあり
ます
“draft-despres-softwire-sam”
• 6rdの原理をIPv4 over IPv6にも適用すると、1つのIPv4アドレスを複数ユーザーが共有することも可能
• CPEはIPv4アドレスと利用可能なポート番号を自動的に導く
• ボーダールータはIPv4宛先アドレス,ポート番号から自動的にカプセル化IPv6宛先アドレスを導く
• NATはCPEの1段のみ。ボーダールータはNATステートなしもちろんトンネルもステートレス