1.29k likes | 1.67k Views
IPv6 技术. 北京邮电大学信息网络中心 赵晓宇 zhxy@bupt.edu.cn zhaoxy@buptnet.edu.cn. 提纲. IPv6 的背景 为什么要采用 IPv6? IPv6 简介 IPv6 获得的支持 IPv6 相关的重要机构 IPv6 同 IPv4 的比较 地址 / 自动配置 报头 / 流标签 / 扩展头 分片 / 路径 MTU 发现 安全 移动性 组播 邻居发现. 提纲. IPv6 软件支持 操作系统 配置使用 IPv6 服务 IPv6 协议详解 协议概述 地址和路由 即插即用支持 内置的安全性 实时业务支持
E N D
IPv6技术 北京邮电大学信息网络中心 赵晓宇 zhxy@bupt.edu.cn zhaoxy@buptnet.edu.cn
提纲 • IPv6的背景 • 为什么要采用IPv6? • IPv6简介 • IPv6获得的支持 • IPv6相关的重要机构 • IPv6同IPv4的比较 • 地址/自动配置 • 报头/流标签/扩展头 • 分片/路径MTU发现 • 安全 • 移动性 • 组播 • 邻居发现
提纲 • IPv6软件支持 • 操作系统 • 配置使用 • IPv6服务 • IPv6协议详解 • 协议概述 • 地址和路由 • 即插即用支持 • 内置的安全性 • 实时业务支持 • 向IPv6网络过渡
为什么要采用IPv6? • IPv4所面临的问题 • IPv4的地址严重匮乏(预计将在2010年耗尽) • 路由表急剧膨胀(骨干路由器超过100万条表项) • 网络安全(几乎没有安全性支持) • 服务质量(难以保证服务质量) • 暂时的解决方法 • NAT(网络地址翻译) • CIDR(无类域间路由) • RSVP(资源预留协议) • 只有全新的协议才能彻底解决IPv4的问题
IPv6简介 • IPv6是IP协议的新版本 • 也叫做IPng(IP新一代) • 1995年随RFC1883的出现而完成 • 1998年RFC2460取代了RFC1883 • IPv6的目的就是要解决IPv4遇到的问题 • IPv6将是未来唯一的第三层协议 • IPv6将是下一代Internet的基础协议
IPv6获得的支持 • 各国家及组织 • 美国-有保留的支持 • 日本和欧盟-大力推动 • 中国-日益关注 • 产业界 • Hitachi, NEC, Fujistu, WIDE Project, etc. • Microsoft, Cisco, Juniper, Sun, etc. • Nokia, Ericsson, Motorola, etc.
IPv6获得的支持 • 操作系统支持 • FreeBSD (+ Kame project) • Linux • Solaris • HP-UX • Windows2000 (+ MSR IPv6 Preview) • WindowsXP, Windows2003, WindowsCE • Others.
IPv6获得的支持 • 支持IPv6的路由器 • Hitachi, NEC, Fujistu (Hardware Support) • Cisco (IOS software support) • Juniper (Hardware support) • Nokia, 6Wind • 佳讯飞鸿(低端已完成),清华比威 • 路由协议支持 • RIPng • OSPFv3 • BGP4+ • Others
IPv6获得的支持 • 路由软件支持(GNU or FreeWare) • Linux IPv6 Forwarding • FreeBSD IPv6 Forwarding • Zebra (Quagga) • cross-platform • Support RIPng, OSPFv3 and BGP4+ • MRTD • cross-platform • Support RIPng, BGP4+ • Others
IPv6相关的重要机构 • IETF IPv6 Workshop • 6Bone(国际IPv6实验床,截止到2002年3月共有57个国家加入了6Bone) • IPv6 Forum • Global IPv6 Summit • WIDE Project • Others.
其它IPv6相关公司/机构 • Host Implementations (by Organization) AppleBSDI | BugOS | Bull | Compaq | DRET | Elmic Systems | Epiloque | FreeBSD | FTP Software | Hitachi Ltd. | HP | IBM | INRIA | Interpeak | KAME | Linux | Mentat | Microsoft | NetBSD | Nokia | NRL | NTHU | OpenBSD | Pacific Softworks | Process Software | SICS | SCO | Siemens Nixdorf | SGI | Sun | Trumpet | UNH | WIDE | • Router Implementations 3Com | 6WIND | Cisco Systems | Ericsson Telebit | Extreme Networks | Hitachi, Ltd. | IP Infusion | MRT | NTHU | Nokia | Nortel Networks | Sumitomo Electric | TELDAT | Zebra
地址 • IPv4 • 32位, CIDR • 有广播 • 只有DHCP • IPv6 • 128位, 可聚集 • Anycast • 没有广播 • 自动配置(地址和路由,通过RA/RS)
报头 • IPv4 • 固定格式(含Options) • 有报头校验和 • IPv6 • 简化头部 • 扩展报头(菊花链) • 无校验和 • 流标签 • 名称更改 (TOS->TC, TTL->Hop Limit, etc)
分片/PMTU-Disc • IPv4 • 全路径中可分片 • 头部字段Flag和FragOffset支持 • IPv6 • 只在发送端分片 • 分片扩展报头 • 进行PMTU-Disc过程决定是否分片(或调整报文大小)
安全 • IPv4 • 协议本身无安全措施 • 附加IPSec • IPv6 • AH和ESP两种扩展头 • 协议内置IPSec(强制要求实现)
移动性 • IPv4 • Mobile IPv4 • 复杂 • IPv6 • Mobile IPv6 • 内置支持(目的地选项头等)
其他 • IPv6没有广播,改用多种组播 • IPv6支持AnyCast • IPv6用邻居请求/邻居发现(通过ICMPv6)来实现IPv4的ARP功能 • 。。。
Microsoft Windows • Windows2000 + Patch • WindowsXP • Windows2003 • WindowsCE
Windows IPv6相关基本命令 • ipconfig • 可以看到IPv6接口地址 • 可以看到IPv6伪接口地址(6to4, etc.) • ipv6 • 可进行命令行式的ipv6配置 • Ipv6 install/uninstall (启用或禁止ipv6协议栈) • netsh • IPv4/IPv6命令集 • 可进入类似Cisco IOS的命令行界面
Windows “ipv6”命令 • Ipv6 if (显示详细的接口信息) IPv6 if [interface Index] 如果不填接口索引则显示所有接口的所有信息 e.g. ipv6 if ipv6 if 5 • Ipv6 ifcr (创建伪接口)手工地址隧道配置 • Ipv6 ifcr v6v4 v4src v4dst (创建IPv6-in-IPv4的隧道接口),v4src为我IPv4地址,v4dst为对方IPv4地址 e.g. ipv6 ifcr v6v4 210.25.132.154 201.192.1.108
Windows “ipv6”命令 • ping6命令 ping6 {host | ipv6 address} e.g. ping6 www.6bone.net • tracert6命令 tracert6 {host | ipv6 address} e.g. tracert6 www.ipv6.org
Windows “ipv6”命令 • Ipv6 adu (更改接口的ipv6地址) • ipv6 adu ifindex/address [life validtime[/preflifetime]] [anycast] [unicast] • Address默认且只支持 /64 Life validtime:地址的有效期限,0表示删除地址 Prelifetime:首选的生存期限 Anycast:表示添加的是任播地址 Unicast:表示添加的是单播地址,此为默认选项 e.g. ipv6 adu 5/2001::154 在接口5上添加2001::154 ipv6 adu 5/2001::154 0 删除接口5上的2001::154
Windows “ipv6”命令 • Ipv6 rt (显示路由信息) e.g. ipv6 rt • Ipv6 rtu (更改路由表) • ipv6 rtu prefix ifindex[/address] [life valid[/pref]] [preference P] [publish] [age] [spl SitePrefixLength] • Life valid 表示本路由有效期限,0表示删除该路由 e.g. ipv6 rtu 2001::/64 5 publish 表示所有通往2001::/64的数据包由接口5转发
Windows “ipv6”命令 • netstat命令,统计当前TCP连接状态 netstat [-p|s] protocol -p指定协议如:TCP,UDP,TCPv6,UDPv6 -s显示IP信息 e.g. netstat –ps tcpv6 • nslookup命令 nslookup进入子命令行set type=[RecordType] e.g. c:\nslookup >set type=any >view
Windows “ipv6”命令 • XP下的隧道连接 • 链接http://202.38.99.9/ • 点击“进入TunnelBroker用户界面” • 进入画面: Welcome to Tunnel Broker What would you like to do? • Get server information • Register • Deregister • Activate the tunnel • Deactivate the tunnel • Make changes • Get information • 然后依次点击以上链接,得到IPV6的地址,并激活TUNNEL。 • 然后,运行WINXP系统下cmd.exe,配置IPV6地址和路由。 • 配置方法如下:(从http://202.38.99.9/上链接"手动完成自己一方的tunnel配置"可以获得帮助) WindowsXP下的配置命令(注2, 注3): ipv6 ifcr v6v4 166.111.8.28 202.38.99.9 手工建立IPv4隧道 ipv6 adu 5/3ffe:321f::1添加IPv6地址 ipv6 rtu 2000::/3 5添加路由 ipv6 ifc 5 forwards 将接口5定义为转发接口 • 其中“166.111.8.28”用你本机的IP地址替换。 • 3ffe:321f::1用你获得的IPV6地址替换。 • 数字5,是你在执行了“ipv6 ifcr v6v4 166.111.8.28 202.38.99.9”后,系统给你的接口index编号。(我的是6) • 测试一下吧,Ping6 www.6bone.net 。 • 链接http://ipv6.bupt.edu.cn,应该可以看到笑脸。 • 更多信息请参考Windows Help
Linux • 对IPv6支持较完整 • RedHat8.0及更高版本对IPv6支持很好 • Linux “ip” 命令 ip [ OPTIONS ] OBJECT { COMMAND | help } OBJECT := { link | addr | route | rule | neigh | tunnel | maddr | mroute | monitor } OPTIONS := { -V[ersion] | -s[tatistics] | -r[esolve] | -f[amily] { inet | inet6 | ipx | dnet | link } | -o[neline] }
Linux • Ping6命令 ping6 [-c count] [-i interval] [-w deadline] [-p pattern] [-s packetsize] [-t ttl] [-I interface] [-M mtu discovery hint] [-S sndbuf] [-F flow label] [-Q traffic class] [hop1 ...] destination -c 发送的次数 -i 时间间隔 -w 期限 -p 模式 -s 发送包的大小 -t 生存期限 -I 选择发送接口 -M 确定MTU探测值 -S 确定发送缓冲区大小 -F 确定流标签 -Q 确定流量类别 hop1指定destination为第1跳
Linux • traceroute6命令 traceroute6 [-m max_ttl] [-p port#] [-q nqueries] [-s src_addr] [-t tos] [-w wait] host [data size] -m 最大的生存期限 -p 指定端口 -q 请求的个数 -s 源地址 -t 服务类型type of service -w 等待期限 data size 数据大小
Linux • ifconfig命令:查看接口信息及配置接口地址 查看接口信息:ifconfig [interface ID] e.g. ifconfig eth0 配置接口地址:ifconfig {interface ID} {add | del} {IPv6 address/Prefix Length} e.g. ifconfig eth0 add 2001::154/64 ifconfig eth0 del 2001::154/64
Linux • netstat命令:显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作 netstat –A inet6 [options] 选项包括: -a 显示所有socket,包括正在监听的。 -c 每隔1秒就重新显示一遍,直到用户中断它。 -i 显示所有网络接口的信息,格式同“ifconfig -e”。 -n 以网络IP地址代替名称,显示出网络连接情形。 -r 显示核心路由表,格式同“route -e”。 -t 显示TCP协议的连接情况。 -u 显示UDP协议的连接情况。 -v 显示正在进行的工作。 e.g. netstat –A inet6 –an netstat –A inet6 -rn
Linux • nslookup命令:显示域名信息 nslookup set type=AAAA domain_name 显示域名的IPv6信息
Linux – 配置接口IPv6地址 • /etc/sysconfig/network NETWORKING_IPV6=yes IPV6FORWARDING=no IPV6_AUTOCONF=no IPV6_AUTOTUNNEL=no IPV6_DEFAULTGW=2001:250:F004::1%eth0 • /etc/sysconfig/network-scripts/ifcfg-eth0 IPV6INIT=yes IPV6ADDR=2001:250:f004::7/64
Linux – 配置隧道 • IPv6-in-IPv4 tunnel (Manual) ip tunnel add sit_xxu remote 202.112.24.67 local 210.25.137.1 # # tunnel name: sit_xxu, local IPv4: 210.25.137.1, remote IPv4: 202.112.24.67 # ip -6 route add 2001:250:F004:0800::/56 dev sit_xxu # # add a static route for /56 via sit_xxu dev interface # ip link set dev sit_xxu up # # bring up the device # • 如何通过隧道连接可以参考XP下的隧道连接,先注册,取得对方的IPv4地址和我方的IPv6址,然后建立手工隧道,添加IPv6地址,建立路由,宣告路由即可。
FreeBSD • FreeBSD应该说是最早支持IPv6的系统 • FreeBSD4.5及以上版本对IPv6支持较完善 • FreeBSD几乎所有的ipv6配置都可以通过 /etc/rc.conf 文件实现 ipv6_enable="YES“ ipv6_ifconfig_fxp0="2001:250:f004::5“ # # config IPv6 address for interface fxp0 # ipv6_defaultrouter="2001:250:f004::1“ # # set default route # ipv6_gateway_enable=“NO“ # # turn off the routing functionality #
FreeBSD – 配置隧道 • Gifconfig (配置Generic Tunnel) ifconfig gif0 create # # Create a pseudo interface for tunnel gifconfig gif0 inet 210.25.137.1 202.112.10.83 # # Tunnel name: gif0, local IPv4: 210.25.137.1, # remote IPv4: 202.112.10.83 ifconfig gif0 inet6 2001:250:f004::1/64 # # Assign IPv6 address for gif0 route add -inet6 default 2001:250:f004::1 # # Set gif0 the default route
IPv6服务 • DNS - BIND • WWW - Apache • Routing - Quagga • FTP – FreeBSD, ProFtpd • SMTP/POP3 – QMail
协议概述 • 基本术语 • 节点(node):任何实现了IPv6的设备 • 路由器:转发IPv6报文的节点 • 主机:在网络上除了路由器就是主机 • 上层:紧邻IPv6的上层协议,例如:TCP、UDP、ICMP、路由协议以及在使用隧道时被封装的低层协议如IPX、APPLETALK、IPv6等 • 链路:节点利用来在链路层通信的通信设备或介质,如以太网、PPP链路、X25、帧中继或网络层隧道
协议概述 • 基本术语 • 邻居:连接在同一链路上的节点 • 接口:结点与链路相连接的部件 • 地址:一个或一组接口在IPv6层的标志 • 包:IPv6报头加载荷 • 链路MTU:在某一链路上的最大传输单元 • 路径MTU:出发点和目的节点之间的路径上所有链路的最小链路MTU.
协议概述 • IPv6主要特性 • 地址空间巨大 128bits • 可聚合地址层次结构 高效的骨干路由 • 高效、可扩展的IP数据报头 路由期间不分片(fragment) 简化的报头格式 • 自动配置 • 安全性
协议概述 • IPv4报头