zoukankan      html  css  js  c++  java
  • Embeded linux之ipv6

    一、内核支持配置:

    [*] Networking support  --->

      Networking options  --->

        <*>   The IPv6 protocol  ---> 

          [*] IPv6: Router Preference (RFC 4191) support  //在多路由的网络中,允许系统能够更有效地计算出该使用哪一个
          [*] IPv6: Route Information (RFC 4191) support  //处理路由信息的实验性特性启用或禁用
          [ ] IPv6: Enable RFC 4429 Optimistic DAD      //重复IPv6地址检测
          <*> IPv6: AH transformation            //IPv6可以有不同的IPsecc特性支持
          <*> IPv6: ESP transformation            //IPv6可以有不同的IPsecc特性支持
          <*> IPv6: IPComp transformation         //IPv6可以有不同的IP负载压缩协议
          < > IPv6: Mobility        //IPv6的移动设备在保留同样地址的情况下使用其他的网络
          <*> IPv6: IPsec transport mode          //IPv6的IPsec特性
          <*> IPv6: IPsec tunnel mode             //IPv6的IPsec特性
          <*> IPv6: IPsec BEET mode             //IPv6的IPsec特性
          < > IPv6: MIPv6 route optimization mode       //IPv6可以支持MIPv6路由优化
          < > Virtual (secure) IPv6: tunneling          
          <*> IPv6: IPv6-in-IPv4 tunnel (SIT driver)      //通过隧道使IPv6报文穿越IPv4网络
          [ ] IPv6: IPv6 Rapid Deployment (6RD)
          < > IPv6: IP-in-IPv6 tunnel (RFC2473)       //隧道特性
          < > IPv6: GRE tunnel                //只允许GRE隧道
          [*] IPv6: Multiple Routing Tables          //支持多重路由表
          [ ] IPv6: source address based routing        //允许根据源地址或前缀进行路由
          [ ] IPv6: multicast routing              //IPv6组播路由

    二、设置

    增加IP:

      ip -6 addr add fe80::dcdc:dcdc:dcdc:dcdc/16 dev eth0

    删除IP:

      ip -6 addr del fe80::dcdc:dcdc:dcdc:dcdc/16 dev eth0

    查看IP:

      ip -6 addr show dev eth0

    增加网关:

      route -A inet6 add default gw fe80::/16 dev eth0

    删除网关:

      route -A inet6 del default gw fe80::/16 dev eth0

    查看网关:

      ip -6 route show dev eth0

    注意

    如果设置IP了,就已经默认设置了网关,没必要再设置网关了。而且设置同一网段网关会报错,设置不同网段网关也会报错。错误如下:

    错误1:
    ~ # route -A inet6 add ::/0 gw 2001::/16 dev eth0
    route: getaddrinfo: 2001::/16: -2
    route: resolving 2001::/16
    解析:
    已经有此网段的网关 添加重复

    错误2:
    route -A inet6 add ::/0 gw 3ffe:fff::0
    route: SIOCADDRT: No route to host
    解析:
    没有相同网段的IP

    IP类型:

    1.单播地址(unicast address)

      1.1.全局单播地址:

        由IANA分配的可在全球路由的公网IP地址,占用了12.5%的IPV6地址空间,这个前缀中总共包含8192个/16的前缀

        2xxx:xxxxx/3 - 3FFF: :FFFF

          2001::/16 IPV6为因特网地址

          2002::/16 6to4为过渡地址

          3ffe::/16 用于6bone测试目的的前缀

      1.2.链路本地地址:FE80::/10

        一个节点启用IPV6,启动时节点的每个接口自动生成一个link-local address。本链路上,路由表中看到的下一跳都是对端的Link Local地址,不是公网IP地址

        格式:

       |   10     |
       |  bits    |         54 bits         |          64 bits           |
       +----------+-------------------------+----------------------------+
       |1111111010|           0             |       EUI-64               |
       +----------+-------------------------+----------------------------+

        通讯范围:只能在本地链路使用,不能在子网间路由

        手工指定:ip -6 addr add FE80:0:0:0:0123:0456:0789:0abc link-local

      1.3.站点本地地址:FEC0::/10

        IPV6的私网地址,IPV6地址空间的0.1%

        格式:

       |   10     |
       |  bits    |         54 bits         |         64 bits            |
       +----------+-------------------------+----------------------------+
       |1111111011|        子网ID            |       主机ID               |
       +----------+-------------------------+----------------------------+
        通讯范围:只能在本站点内使用,不能在公网上使用

      1.4.未指明地址: 0:0:0:0:0:0:0:0/128 => ::/128

        表示地址未指定,或者在写默认路由时代表所有路由

      1.5.环回地址:0:0:0:0:0:0:0:1/128 => ::1/128

        同IPV4中127.0.0.1地址的含义一样,表示节点自已

      1.6.IPv4兼容地址:::192.168.30.1 => ::C0A8:1E01

        IPV4兼容的IPV6地址--用于在IPV4网络上建立自动隧道,以传输IPV6数据包:高96bit设为0,后面跟32bit的IPV4地址:0000:0000:0000:0000:0000:0000:206.123.31.2

        格式:

         |                80 bits               | 16 |      32 bits        |
         +--------------------------------------+--------------------------+
         |0000..............................0000|0000|    IPv4 address     |
         +--------------------------------------+----+---------------------+

        映射IPV4的IPV6地址--仅用于拥有IPV4和IPV6双协议栈节点的本地范围:高80bit设为0,后16bit设为1,再跟IPV4地址:0000:0000:0000:0000:0000:ffff:206.123.31.2

        格式:

         |                80 bits               | 16 |      32 bits        |
         +--------------------------------------+--------------------------+
         |0000..............................0000|FFFF|    IPv4 address     |
         +--------------------------------------+----+---------------------+

    2.组播地址(Multicast Address)FF00::/8

      在IPV6中没有广播,用组播来代替。   占用了0.38%的IPV6地址空间

      格式:

       |   8    |  4  |  4 |                  112 bits                   |
       +------ -+-----+----+---------------------------------------------+
       |11111111|标志位|范围|                  group ID                   |
       +--------+-----+----+---------------------------------------------+

      标志位为0000:永久保留的组播地址,分配给各种技术使用
      标志位为0001:用户可使用的临时组播地址

      

      范围为1:本地接口范围

      范围为2:本地链路范围

      范围为4:本地管理范围

      范围为5:本地站点范围,类似组播的私网地址

      范围为8:组织机构范围

      范围为e:全球范围,类似组播的公网地址

      其余为保留

      预定义组播地址:

      FF02::1    all nodes       在本地链路范围的所有节点
      FF02::2    all routers     在本地链路范围的所有路由器
      FF02::5    all ospf routers  OSPF路由器

      FF02::6           OSPFIGP路由器
      FF02::9    all rip routers    所有运行RIP的路由器
      FF02::A    all eigrp routers  所有运行eigrp的路由器
      FF05::2                     在一个站点范围内的所有路由器

    3)任播地址(anycast address)

      应用在one-to-nearest(一到近)模式。多个设备共享一个地址.分配IPv6单播(unicast)地址给拥有相同功用的一些设备.发送方发送一个以任意播为目标地址的包,当路由器接受到这个包以后,就转发给具有这个地址的离它最近的设备.单播地址用来分配任意播地址.对于那些没有配备任意播的的地址就是单播地址;但是当一个单播地址分配给不止一个接口的时候,单播地址就成了任意播地址。

      Mobile方面的特性,移动设备漫游到其他区域,不必接入原始的接入点,只需要找到最近的即可。

      一旦节点启用IPV6,那么接口就会自动生成下列地址
      1、本地链路地址
      2、回环地址
      3、所有节点多播地址FF02::1
      4、如果是路由器,还会有FF02::2
      5、被请求节点的组播地址

      如果接口配了一个IPV6的单播地址,还会产生被请求节点的组播地址

    4)特殊地址

      ~ 环回地址   ::1/128
      ~ 组播地址    FF00::/8
      ~ 链路本地地址    FF80::/10
      ~ 站点本地地址    FEC0::/10
      ~ 未指定的地址   ::0/128
      ~ 全局单播    其他地址

    路由公告(无状态自动配置机制):使用EUI-64格式来自动配置IPV6地址,功能:网络中没有DHCP服务器的情况下,允许节点自行配置IPV6地址的机制

    EUI-64格式:扩展惟一标识符
    EUI-64的构造规则--根据接口的MAC地址再加上固定的前缀来生成一个IPV6的地址
    工作原理:自动将48bit的以太网MAC地址扩展成64bit,再挂在一个64bit的前缀后面,组成一个IPV6地址
    一、将48位的MAC地址从中间分开,插入一个固定数值FFFE
        0050:3EE4:4C00-->0050:3EFF:FEE4:4C00
    二、将第7个比特位反转,如果原来是0,就变为1,如果原来是1,就变为0
        0050:3EFF:FEE4:4C00-->0250:3EFF:FEE4:4C00
    三、加上前缀--FE80::0250:3EFF:FEE4:4C00 这就是一个完整的IPV6地址
    反转的原因:
      在MAC地址中,第7比特为1表示本地管理,为0表示全球管理
      在EUI-64格式中,第7位为1表示全球惟一,为0表示本地惟一

    配置方式:
    1.手工:
      ip -6 addr add 2001::1/64                    全局单播
      ip -6 addr add FE80:0:0:0:0123:0456:0789:0abc link-local  链路单播
    2.路由公告:
      ip -6 addr add 2001:0410:0:1::/64 eui-64           
  • 相关阅读:
    关于以追加模式写入文件时,为什么第一行是空行?
    使用正则表达式的技巧
    super关键字的三种用法
    Excel快捷键
    重载与重写的区别
    方法重名
    区分子类方法中重名的三种变量
    继承
    Chapter08【String类、static、Arrays类、Math类】
    Math类
  • 原文地址:https://www.cnblogs.com/pokerface/p/6827087.html
Copyright © 2011-2022 走看看