精华内容
下载资源
问答
  • Http tunnel技术介绍

    千次阅读 2020-02-26 15:49:10
    #@......f.D 0x0010 xxxx xxxx 0050 de42 5fd5 ac4f 39ac 016f .f.#.P.B_..O9..o 0x0020 5010 2238 98e4 0000 746f 7461 6c20 3636 P."8....total.66 0x0030 370d 0a64 7277 7872 2d78 722d 7820 2032 7..drwxr-...

    什么是http暗藏通道?什么是局域网安全,系统管理员怎样才能保障局域网的安全?这是一个不断变化的安全概念,很长的一个时期以来,在局域网与外界互联处放置一个防火墙,严格控制开放的端口,就能在很大程度上掌握安全的主动权,方便的控制网内外用户所能使用的服务。比如,在防火墙上仅仅开放80,53两个端口,那么无论是内部还是外面的恶意人士都将无法使用一些已经证明比较危险的服务。

      但要注意一点,防火墙在某种意义上是很愚蠢的,管理员对防火墙的过分依赖以及从而产生的懈怠情绪将不可避免的形成安全上的重大隐患,作为一个证明,"通道"技术就是一个很好的例子,这也是本文要讨论的。

      那么什么是通道呢?这里所谓的通道,是指一种绕过防火墙端口屏蔽的通讯方式。防火墙两端的数据包封装在防火墙所允许通过的数据包类型或是端口上,然后穿过防火墙与对端通讯,当封装的数据包到达目的地时,再将数据包还原,并将还原后的数据包交送到相应的服务上。举例如下:

      A 主机系统在防火墙之后,受防火墙保护,防火墙配置的访问控制原则是只允许80端口的数据进出,B主机系统在防火墙之外,是开放的。现在假设需要从A系统 Telnet到B系统上去,怎么办?使用正常的telnet肯定是不可能了,但我们知道可用的只有80端口,那么这个时候使用Httptunnel通道,就是一个好的办法,思路如下:

      在A机器上起一个tunnel的client端,让它侦听本机的一个不被使用的任意指定端口,如 1234,同时将来自1234端口上的数据指引到远端(B机)的80端口上(注意,是80端口,防火墙允许通过),然后在B机上起一个 server,同样挂接在80端口上,同时指引80端口的来自client的转发到本机的telnet服务端口23,这样就ok了。现在在A机上 telnet本机端口1234,根据刚才的设置数据包会被转发到目标端口为80的B机,因为防火墙允许通过80端口的数据,因此数据包畅通的穿过防火墙,到达B机。此时B机在80端口侦听的进程收到来自A的数据包,会将数据包还原,再交还给telnet进程。当数据包需要由B到A返回时,将由80端口再回送,同样可以顺利的通过防火墙。

      实际上tunnel概念已经产生很久了,而且很有可能读者使用过类似的技术,比如下面的网址 http://www.http-tunnel.com。它是一个专业提供tunnel服务的公司,通过他们的在线tunnel server,局域网内的用户可以使用被防火墙所屏蔽的ICQ,E-MAIL,pcanywhere, AIM,MSN, Yahoo,Morpheus,Napster等等诸多软件。我们看到,这里有ICQ,Napster等软件,相信我们的读者很多都使用过走proxy的 ICQ,OICQ等等,其实他们的原理是差不多的。

      什么是Httptunnel

      作为一个实际的例子,我们下面来介绍一个在"非公开领域"使用的的通道软件,httptunnel。在httptunnel主页上有这么一端话,

      httptunnel creates a bidirectional virtual data connection tunnelled in HTTP requests. The HTTP requests can be sent via an HTTP proxy if so desired. This can be useful for users behind restrictive firewalls. If WWW access is allowed through a HTTP proxy, it's possible to use httptunnel and, say, telnet or PPP to connect to a computer outside the firewall.

      从这段说明中我们可以看出来它就是我们今天说要介绍的tunnel技术的一个证明,我们下面大致介绍一下它的使用。

      httptunnel目前比较稳定的版本是3.0.5, 支持各种常见的unix系统,包括window平台。可以从相关站点下载,它的安装是比较简单的,照INSTALL文件做就可以了,这里不介绍。

      整个软件安装完毕后,我们会得到两个关键文件,htc和hts,其中htc是客户端(c),而hts是server(s)端,我们来看看具体怎么使用的。

      假设有A(域名client.yiming.com)机,B(域名server.yiming.com)机,两机均为solaris环境,A机在防火墙保护中,B机在防火墙以外,防火墙的管理员控制了访问规则,仅ALLOW 80和53端口的进出数据包。而我们的任务是要利用Httptunnel从A机telnet到B机上,穿过防火墙的限制。操作如下:

      首先我们在A上启动client端,命令很简单: client.yiming.com#htc -F 1234 server.yiming.com:80,

      系统回到提示符下,此刻我们用netstat -an 可以看到系统内多出了1234端口的侦听

        *.1234   *.*  0   0   0   0 LISTEN

    然后我们在B机上启动server端,命令如下: server.yiming.com#hts -F localhost:23 80

      系统回到提示符下,此刻我们用netstat看

        *.80    *.*   0   0   0   0 LISTEN

    80端口处于侦听状态,需要注意的是,如果系统本身跑的有web服务(80端口本身处于侦听),并不会影响Httptunnel的工作。

      Ok,server以及client端都启动了,我们可以开始我们的"通道"试验了,在client.yiming.com上执行一下如下命令看看:

    Client.yiming.com#telnet localhost 1234
    Trying 0.0.0.0...
    Connected to 0.
    Escape character is '^]'.
    SunOS 5.7
    This is yiming's private box! Any question,contact me with yiming@security.zz.ha.cn

    看到B机的登录提示符了,输入账号密码看看是否工作正常?

    Login:yiming
    Password: (omit here;) )
    sever.yiming.com# ls
    bak check go httpd lost+found mrtg run soft wg

    OK! 工作正常,和正常的telnet没有什么差别。

     仔细观察整个过程,会发现在最开始的地方显示的是Trying 0.0.0.0...,Connected to 0.而不是Trying server.yiming.com…,Connect to server.yiming.com,这就很直观的可以看出来client端是转发1234数据包到本机80端口的。(然后再转发到远端)而不是直接连接远端的B机。

      上面是比较直观的测试,为了进一步验证server和client之间不是通过23端口通讯,我们抓取数据包来看看。我们在server起个抓包工具tcpdump瞧瞧。

    server.yiming.com#tcpdump host client.yiming.com
    tcpdump: listening on hme0
    14:42:54.213699 client.yiming.com.51767 > server.yiming.com.80: S 1237977857:1237977857(0) win 8760 (DF)
    14:42:54.213767server.yiming.com.80 > client.yiming.com.51767: S 1607785698:1607785698(0) ack 1237977858 win 8760 (DF)
    14:42:54.216186 client.yiming.com.51768 > server.yiming.com.80: . ack 1 win 8760 (DF)
    14:42:54.218661 client.yiming.com.51768 > server.yiming.com.80: P 1:44(43) ack 1 win 8760 (DF)
    14:42:54.218728 client.yiming.com.51768 > server.yiming.com.80: P 44:48(4) ack 1 win 8760 (DF)

    篇幅所限,上面只是截取了结果中的一点点数据包,但已经可以说明问题了,我们看到server和client之间顺利的完成了三次握手,然后开始push数据,而且通讯确实走的是80端口。有点意思噢。

      看是看出来了,但太不直白,到底在搞什么呀,我们再稍微改动一下tcpdump的运行方式,进一步在来看看telnet的数据是否被封装在80端口的数据包内传输?

    server.yiming.com#tcpdump -X host client.yiming.com
    14:43:05.246911 server.yiming.com.80 > client.yiming.com.51768: . 2997:4457(1460) ack 89 win 8760 (DF)
    0x0000 4500 05dc 3b23 4000 ff06 e2c2 yyyy yyyy    E...;#@......f.D
    0x0010 xxxx xxxx 0050 de42 5fd5 ac4f 39ac 016f    .f.#.P.B_..O9..o
    0x0020 5010 2238 98e4 0000 746f 7461 6c20 3636    P."8....total.66
    0x0030 370d 0a64 7277 7872 2d78 722d 7820 2032    7..drwxr-xr-x..2
    0x0040 3920 726f 6f74 2020 2020 2072 6f6f 7420    9.root.....root.

    呵呵,这次清楚多了,上面应该是一次ls命令的输出结果,可以清楚的看到telnet的结果!果然telnet的数据是在80端口的数据包内!

      Httptunnel带来的安全问题

      写到这里,我们可以想象一下,如果管理员完全信赖防火墙,那么在一个有这样隐患的的局域网中,会发生什么样的后果?

      我们可以看到,多年以来,对防火墙的依赖也一直列在SANS的Top 10安全问题中。

      既然如此,就很自然的会产生一个问题是:这种httptunnel行为能被发现吗?

      首先我们想到的是使用入侵检测系统,在目前的网络安全设计中,防火墙加入侵检测系统是一种比较流行的安全联动配置,既然httptunnel绕过了防火墙,那么IDS系统呢?我们来测测看看。

      在下面的测试中,我们将使用IDS系统是Snort,版本1.8.2。这可是大名鼎鼎的开放源代码的IDS系统,在它的说明中,被描述为一个轻量级的,可跨平台工作的入侵检测系统,在2001年12月英国的独立测试实验室NSS的评测中,击败了包括商用IDS系统的所有对手,这些商用软件可是包括 ISS,CISCO SECURE IDS,CA ETRUST,CYBERSAFE CENTRAX,NFR。有兴趣的读者还可以看这篇名为Open source mounts IDS challenge 的报道。

      好,对Snort的大致介绍完毕,我们来看看结果吧,Snort对整个试验过程抓获的数据包产成了告警,如下:

    [**] WEB-MISC whisker splice attack [**]
    12/02-14:42:54.389175 client.yiming.com:51767-> server.yiming.com:80
    TCP TTL:251 TOS:0x0 ID:3327 IpLen:20 DgmLen:42 DF
    ***AP*** Seq: 0x49CA0BA7 Ack: 0x5FD4DCE3 Win: 0x2238 TcpLen: 20
    =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
    [**] WEB-MISC whisker splice attack [**]
    12/02-14:43:03.195006 client.yiming.com:51767 -> server.yiming.com:80
    TCP TTL:251 TOS:0x0 ID:3439 IpLen:20 DgmLen:41 DF
    ***AP*** Seq: 0x49CA0C20 Ack: 0x5FD4DCE3 Win: 0x2238 TcpLen: 20
    =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
    [**] WEB-MISC whisker splice attack [**]
    12/02-14:43:04.630268 client.yiming.com:51768-> server.yiming.com:80
    TCP TTL:251 TOS:0x0 ID:3496 IpLen:20 DgmLen:41 DF
    ***AP*** Seq: 0x49CA0C4E Ack: 0x5FD4DCE3 Win: 0x2238 TcpLen: 20
    =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

      我们看到snort对抓获的数据包产生了WEB-MISC whisker splice attack的告警,然而这种攻击并没有发生,同时snort对tunnel数据包没有察觉。这样snort就同时出现了IDS系统的两个问题, false positive,false negative。

      这也很正常,因为这也是基于签名的IDS系统的通病,目前决大数 IDS系统包括著名的商用软件ISS,NFR等都是基于签名的,也就是说系统维护着一套特定攻击数据包的数据模式签名。系统工作时,检查经过的数据包的内容,和自己数据库内数据模式签名对比,如果和某种攻击模式签名相同,那么就判断发生了某种攻击。

      由此我们可以看出很明显的存在若干问题:如对签名的依赖不可避免的导致两个结果,false negative ,false positive。也就是说会产生漏报和误报,这一点很容易理解,当新出现一种攻击模式时,由于IDS系统内没有相应的数据签名,那么就不可能捕获相应的攻击数据包,false negative由此发生。同时,过于依赖签名模式也很容易误报,就象我们上面的例子。同时,对数据签名的依赖会在一定程度上降低系统性能-经过的数据包都需要和IDS系统的签名对照。

      此外,基于签名的IDS系统本身有可能由于依据签名这一特性而被攻击,一个例子是stick ,这个程序的作者利用IDS系统进行签名匹配工作原理,发送大量带有攻击特征的数据包给IDS系统,使IDS系统本身处理能力超过极限,从而导致IDS系统无法响应。按照作者Coretez Giovanni的说法,运行2秒钟stick就能使著名的商用IDS系统ISS real secure崩溃。由上我们看到,对IDS系统的完全依赖同样是有风险的。
     一些解决思路

      看来依靠手头的IDS是无法察觉这种行为了,那么有其它办法吗?我们仔细分析一下事件过程中截获的httptunnel数据包再说吧。

      仔细观察截获的httptunnel数据包,可以发现紧跟着三次握手完成后的第一个数据包包含着一个POST动作,是由htc(client端)发送到hts(server端)的。如下:

    14:55:39.128908 client.yiming.com.51767 > server.yiming.com.80: S 3521931836:3521931836(0) win 8760 (DF)
    0x0000 4500 002c d3cc 4000 fb06 53c9 xxxx xxxx    E..,..@...S..f.#
    0x0010 yyyy yyyy ca37 0050 d1ec 6a3c 0000 0000    .f.D.7.P..j<....
    0x0020 6002 2238 1708 0000 0204 05b4 0000       `."8..........
    14:55:39.128945 server.yiming.com.80 > client.yiming.com.51767: S 2946004964:2946004964(0) ack 3521931837 win 8760 (DF)
    0x0000 4500 002c cb85 4000 ff06 5810 yyyy yyyy    E..,..@...X..f.D
    0x0010 xxxx xxxx 0050 ca37 af98 77e4 d1ec 6a3d    .f.#.P.7..w...j=
    0x0020 6012 2238 ef79 0000 0204 05b4         `."8.y......
    14:55:39.131002 client.yiming.com.51767 > server.yiming.com.80: . ack 1 win 8760 (DF)
    0x0000 4500 0028 d3cd 4000 fb06 53cc xxxx xxxx    E..(.#
    0x0010 yyyy yyyy ca37 0050 d1ec 6a3d af98 77e5    .f.D.7.P..j=..w.
    0x0020 5010 2238 0737 0000 0000 0000 0000       P."8.7........
    14:55:39.132841 server.yiming.com.80 > client.yiming.com.51767: . ack 44 win 8760 (DF)
    0x0000 4500 0028 cb86 4000 ff06 5813 yyyy yyyy    E..(  0x0010 xxxx xxxx 0050 ca37 af98 77e5 d1ec 6a68    .f.#.P.7..w...jh
    0x0020 5010 2238 070c 0000                 P."8....
    14:55:39.132860 client.yiming.com.51767 > server.yiming.com.80: P 1:44(43) ack 1 win 8760 (DF)
    0x0000 4500 0053 d3ce 4000 fb06 53a0 xxxx xxxx
    0x0010 yyyy yyyy ca37 0050 d1ec 6a3d af98 77e5    .f.D.7.P..j=..w.
    0x0020 5018 2238 d23a 0000 504f 5354 202f 696e    P."8.:..POST/in
    0x0030 6465 782e 6874 6d6c 3f63 7261 703d 3130    dex.html?crap=10
    0x0040 3037 3838 3034 3836 2048 5454 502f 312e    07880486.HTTP/1.
    0x0050 310d 0a                         1..1..

      看起来是发送client端的数据包到server端的,那么server有什么反应呢?我们往下看,在上面这个过程完成后,htc和hts又发生了一次握手(注意,又一次握手),如下:

    14:55:39.134301 client.yiming.com.51768 > server.yiming.com.80: S 2851199448:2851199448(0) win 8760 (DF)
    0x0000 4500 002c d3df 4000 fb06 53b6 xxxx xxxx    E..,..@...S..f.#
    0x0010 yyyy yyyy ca38 0050 a9f1 d9d8 0000 0000    .f.D.8.P........
    0x0020 6002 2238 cf65 0000 0204 05b4 0000       `."8.e........
    14:55:39.134389 server.yiming.com.80 > client.yiming.com.51768: S 2946060449:2946060449(0) ack 2851199449 win 8760 (DF)
    0x0000 4500 002c cb8f 4000 ff06 5806 yyyy yyyy    E..,..@...X..f.D
    0x0010 xxxx xxxx 0050 ca38 af99 50a1 a9f1 d9d9    .f.#.P.8..P.....
    0x0020 6012 2238 cf19 0000 0204 05b4         `."8........
    14:55:39.136527 client.yiming.com.51768 > server.yiming.com.80: . ack 1 win 8760 (DF)
    0x0000 4500 0028 d3e0 4000 fb06 53b9 xxxx xxxx    E..(
    0x0010 yyyy yyyy ca38 0050 a9f1 d9d9 af99 50a2    .f.D.8.P......P.
    0x0020 5010 2238 e6d6 0000 0000 0000 0000       P."8..........
    14:55:39.137333 client.yiming.com.51768 > server.yiming.com.80: P 1:43(42) ack 1 win 8760 (DF)
    0x0000 4500 0052 d3e1 4000 fb06 538e xxxx xxxx
    0x0010 yyyy yyyy ca38 0050 a9f1 d9d9 af99 50a2    .f.D.8.P......P.
    0x0020 5018 2238 25ce 0000 4745 5420 2f69 6e64    P."8%...GET/ind
    0x0030 6578 2e68 746d 6c3f 6372 6170 3d31 3030    ex.html?crap=100
    0x0040 3738 3830 3438 3620 4854 5450 2f31 2e31    7880486.HTTP/1.1
    0x0050 0d0a                     ..
    14:55:39.137379 server.yiming.com.80 > client.yiming.com.51768: . ack 43 win 8718 (DF)
    0x0000 4500 0028 cb90 4000 ff06 5809 yyyy yyyy    E..(
    0x0010 xxxx xxxx 0050 ca38 af99 50a2 a9f1 da03    .f.#.P.8..P.....
    0x0020 5010 220e e6d6 0000              P.".....
    14:55:39.139733 client.yiming.com.51768 > server.yiming.com.80: P 43:89(46) ack 1 win 8760 (DF)
    0x0000 4500 0056 d3e2 4000 fb06 5389 xxxx xxxx    .#
    0x0010 yyyy yyyy ca38 0050 a9f1 da03 af99 50a2    .f.D.8.P......P.
    0x0020 5018 2238 e156 0000 486f 7374 3a20 3230    P."8.V..Host:.20
    0x0030 322e 3130 322e 3232 372e 3638 3a38 300d    2.102.227.68:80.
    0x0040 0a43 6f6e 6e65 6374 696f 6e3a 2063 6c6f    .Connection:.clo
    0x0050 7365 0d0a 0d0a                 se....
    14:55:39.151300 server.yiming.com.80 > client.yiming.com.51768: P 1:170(169) ack 89 win 8760 (DF)
    0x0000 4500 00d1 cb91 4000 ff06 575f yyyy yyyy
    0x0010 xxxx xxxx 0050 ca38 af99 50a2 a9f1 da31    .f.#.P.8..P....1
    0x0020 5018 2238 e721 0000 4854 5450 2f31 2e31    P."8.!..HTTP/1.1
    0x0030 2032 3030 204f 4b0d 0a43 6f6e 7465 6e74    .200.OK..Content
    0x0040 2d4c 656e 6774 683a 2031 3032 3430 300d    -Length:.102400.
    0x0050 0a43 6f6e 6e65 6374 696f 6e3a 2063 6c6f    .Connection:.clo
    0x0060 7365 0d0a 5072 6167 6d61 3a20 6e6f 2d63    se..Pragma:.no-c
    0x0070 6163 6865 0d0a 4361 6368 652d 436f 6e74    ache..Cache-Cont
    0x0080 726f 6c3a 206e 6f2d 6361 6368 652c 206e    rol:.no-cache,.n
    0x0090 6f2d 7374 6f72 652c 206d 7573 742d 7265    o-store,.must-re
    0x00a0 7661 6c69 6461 7465 0d0a 4578 7069 7265    validate..Expire
    0x00b0 733a 2030 0d0a 436f 6e74 656e 742d 5479    s:.0..Content-Ty
    0x00c0 7065 3a20 7465 7874 2f68 746d 6c0d 0a0d    pe:.text/html...

    从数据包中可以看到,本次通讯中 hts(server)端向htc(client)端发送了一个GET的标识包,估计是去"取"刚才client端发来的数据包,而且是一次新的握手!为了验证,我们分别在client,server端,执行netstat -an,结果证明了我们的观察是正确的,如下:

    client.yiming.com.51767   server.yiming.com.80  8760 0   8760 0 ESTABLISHED
    client.yiming.com.51768   server.yiming.com.80  8760 0   8760 0 ESTABLISHED

      在server端,执行netstat -an,结果如下:

    server.yiming.com.80  client.yiming.com.51767 8760   0 8760   0 ESTABLISHED
    server.yiming.com.80  client.yiming.com.51768 8760   0 8760   0 ESTABLISHED

    果然,防火墙两边的系统都起了两个socket,和一般程序不同,这是个比较特殊的现象。

      GET动作完成后,server端又向client端发送了一个数据包,内容是:

    HTTP/1.1 200 OK Content-Length: 102400
    Connection: close
    Pragma: no-cache
    Cache-Control: no-cache, no-store, must-revalidate
    Expires: 0
    Content-Type: text/html

    这里应该是定义数据包传输最大值等参数的。
      作者察觉,经由了这三次htc和hts之间的作用后,httptunnel才真正的建立起来,后面的工作才能正常开展,而且很有意思的是,自此以后所有后续的数据包一律没有80端口经常走的GET,PUT,POST之类的内容!!这里看来可以想点办法。

      上面说过,正常走80端口的数据包应该是web行为,那么就数据包中就应该少不了get等正常的动作内容,如果在80端口经过的数据总是没有这些东东,那么就肯定有问题了,那么这种问题就有了一种解决方案,就是手工检查通过80端口通过的数据包,如果数据包是明文传送,那么就很容易发现这种行为。但这种行为也只能在理论上可行。在实际上的操作是不可能的,有没有比较成熟的这种产品呢?按照这个思路检索网上的数据,果然发现有种入侵检测e-Gap系统可以确实察觉及屏蔽 httptunnel等通道软件的存在,它工作在tcp/ip的应用层,在应用层一级检测数据包的确切性,比如,检测80端口的数据包,如果看起来数据包中总是没有有效的数据(URL,get,put等参数),那么e-Gap系统就会报警,并中断连接行为。
      需要注意的是,这种侦测方法仅对明文传送的有效,如果数据被加密,那么也就无计可施了。那么再进一步,如果加密了呢?目前作者掌握的情况来看, StealthWatch硬件产品可能是一种比较好的选择,它完全摈弃了基于签名的工作模式,而是采用一种正在申请专利的基于flow-base构架策略,按照几家评测实验室的结果来看,可以有效的察觉已经公开和未公开的各种攻击,Dos,蠕虫,病毒等,甚至包括加密的通讯!但是,它的价钱也远远的超出了普通的商用IDS系统,一套齐备的设施需4万美元!具体效果作者目前没有条件测试。

      总结

      在我们的试验中,httptunnel同时逃过了防火墙的屏蔽以及入侵检测系统的追踪,这是值得思考的。我们可以看到,网络安全仅仅依靠某种或某几种手段是不可靠的,尤其是对安全性要求很高的应用系统,同时对安全系统的盲目依赖往往会造成巨大的安全隐患

    展开全文
  • OpenStack

    千次阅读 多人点赞 2019-10-30 18:10:35
    OpenStack概述 OpenStack是一个免费开放源代码的云计算平台,用户可以将其部署成为一个基础设施即服务(Iaas)的解决方案。OpenStack不是一个单一的项目,而是由许多相关的项目组成,包括Nova、Swift、Keystone、...

    OpenStack概述

    OpenStack是一个免费开放源代码的云计算平台,用户可以将其部署成为一个基础设施即服务(Iaas)的解决方案。OpenStack不是一个单一的项目,而是由许多相关的项目组成,包括Nova、Swift、Keystone、Horizon等。这些项目分别实现了不同的功能,例如弹性计算服务、对象存储服务、虚拟机磁盘镜像服务、安全统一认证服务以及管理平台

    OpenStack最早开始于2010年,作为美国国家航空航天局和Rackspace合作研发的云端运算软件项目,目前OpenStack由OpenStack基金会管理,该基金会是一个非营利性组织,创立于2012年。现在有超过200家公司参与了该项目,包括Arista Networks、AT&T、AMD、Cisco、Dell、EMC、HP、IBM、Intel、NEC、NetApp、Red Hat等大型公司

    OpenStack发展非常迅速,已经发布了11个版本,每个版本都有代号,分别为Austin、Bexar、Cactus、Diablo、Essex、Folsom、Grizzly、Havana、Icahouse、Juno以及最新的Kilo

    除了OpenStack之外,还有一些其他的云计算平台,例如Eucalyptus、AbiCloud、OpenNebula等,这些云计算平台都有自己的特点

    PackStack详解

    PackStack主要是由RedHat推出的用于概念验证(PoCket)环境快速部署的工具,PackStack是一个命令行工具,它使用了P

    展开全文
  • CCNP12:IPv6的【升级点、地址、分类、配置】、ICMPv6、6 to 4 tunnel、双栈 一、IPv6的升级: 1、数量上的升级: 2、其它升级点: 3、IPv6的报头: 二、IPv6介绍: 1、IPv6的地址: 2、IPv6地址分类: (1)单播...

    CCNP12:IPv6的【升级点、地址、分类、配置】、ICMPv6、6 to 4 tunnel、双栈

    一、IPv6的升级:

    1、数量上的升级:

    IPv6我们可以理解为对IPv4进行了升级,地址数量的增加是升级最主要的原因。但它的本质依然是3层封装协议。
    在这里插入图片描述
    128位,228≈3.4028 × 1038(百亿亿亿亿级别)

    2、其它升级点:

    序号IPv6的升级点:
    1IPv6全球单播只存在公有IP,没有NAT(不代表没有私有IP
    2可聚合性强(IANA组织会对全球的地址进行合理分配)
    3多宿主:一个物理接口可以同时拥有多个不同或相同网段的IPv6地址,(这个点上可以配置不同的IP,这些IP可以工作在不同的协议,可以通过IP快速区分这些协议)。但不同接口不能在同一网段。
    4自动配置
    ①DHCP v6
    ②auto-config 路由器接口手工配置IPv6地址,然后路由器将自己地址的前缀(网络号)下放给PC,PC将自动使用EUI-64位来补充主机位。

    对于主机网关和DNS解析,它们都会指向路由器的接口,此,时就需要告诉网关设备DNS服务器的位置,才可以做域名解析。
    5重编址:手动修改了网关的IP,通过auto-config,下方的PC自动就会修改。
    6热插拔:即插即用。
    7端到端的连接——不需要NAT
    8简易的报头
    ①没有广播机制,只有组播和单播
    ②没有校验和(因为2层和4层均存在校验和)
    ③流标签,保留QOS。
    9IPv4和IPv6共存
    10安全性和移动性没有明显提升。

    3、IPv6的报头:

    在这里插入图片描述
    黄颜色的部分表示没有变动的部分:Version、Source Address、Destination

    红色去掉的部分注解
    IHL这部分长度为固定长度,20字节,还有标记包总长的Total Length,就累赘了。
    Header
    Checksum
    每一层校验的都是包,都是一样的,起初每层研发者都为自己添加一个校验和,当合起来之后就有些多余了。
    Identification
    FLags
    Fragment Offset
    Options
    Padding
    它们的意义在于IPv4跨层封装,一旦进行跨层封装,就需要这部分来进行标记,一旦取消就意味着不能跨层封装。但是IPv6有扩展头部:
    在这里插入图片描述
    只是更换了名称的蓝色部分注解
    Type of Service => Traffic Class这部分用QOS使用,流量转发优先级,在iPv6里面叫做对应表。
    Total Length => Payload Length
    总长度=>有效负载
    也是一个意思,整个包有多大。
    Time to Live => Hop Limit
    生成时间 => 跳数限制
    最大都是255,一样的
    Protocol => Next Header
    协议号 => 下一个头部号
    都是一样的
    新增的部分注解
    Flow Label
    流标签
    让未来Traffic Class有更多的地方,做更多的规则,现在只是保留

    二、IPv6介绍:

    1、IPv6的地址:

    这张图是IANA组织分配IPv6的建议:
    在这里插入图片描述

    位数名称注解
    1-23注册位IANA分配给各个国家或组织
    24-32ISP位由国家分配给各个ISP
    33-48站点位ISP分配给各个企业
    49-64子网位由企业网络管理员进行子网划分
    65-128主机位用于分配给主机

    注:但是一般企业不会分配给用户2^64个IP,会根据实际需要分配。

    IPv6总共128位,使用冒分16进制标识,每16位标一段,共8段。
    例如:2031:0000:130F:0000:0000:09C0:006A:130B
    由于IPv6地址太长了,因此它有省略写法。

    序号省略写法:省略部分:
    1每一段地址前面的0可以省略2031:0000:130F:0000:0000:09C0:006A:130B
    2若一段全为0,可以省略成一个02031:0000:130F:0000:0000:09C0:006A:130B
    3若连续两段以上全0,可以省略为 ::
    但是:若存在两个部分均全0,只能将其中一个个部分省略为 ::
    2031:0000:130F:0000:0000:09C0:006A:130B
    例如:2031:0:0:9C0 ::130B

    当使用IPv6协议携带端口号时,需要使用中括号来区分:
    http://[2031:0:130F::9C0:6A:130B]:8080/index/html

    2、IPv6地址分类:

    IPv6分为3类,这里只谈单播和多播。

    IPv6地址分类方式注解
    单播地址一对一只有单播地址能作为源地址,也可作为目标地址
    多播地址一对多作为目标地址
    任意播地址一到最近

    (1)单播地址:

    ①AGUA全球可聚合 单播地址

    其实就是IPv6经过合理分配后的公网地址(需要申请),全球单播传递。

    目前全球已规划地址为2000:: /3 ==>0010 0000 0000 0000 ::
    它的范围也就是2000::到3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff这一段拿出来用
    其中:
    A、2001::/16这一段已经在当下的IPv6实验室使用
    B、2002::/166 to 4 Tunnel 地址这个主要用作IPv4和IPv6共存。

    ②Link-local 本地链路地址:

    Link-local本地链路地址,其实就是自动私有地址,在IPv4下当通过DHCP获取IP地址失败的时候,便会生成Link-local地址,用于同一广播域可通讯即可。

    版本Link-local地址段
    IPv4169.254.0.0/16
    IPv6FE80::/16

    Ⅰ、Link-local的产生方式1:
    路由器接口上配置 ipv6 enable 命令时,该接口将自动生成Link-local地址。

    R1(config)#int s0/0
    R1(config-if)#ipv6 enable
    R1(config-if)#no shutdown
    

    在这里插入图片描述
    在这里插入图片描述
    Ⅱ、Link-local产生方式2:
    若在接口配置一个IPv6单播地址,必然自动生成Link-local地址。一个接口只能存在一个Link-local地址。

    R2(config)#int s0/0
    R2(config-if)#ipv6 add 2001::1/64
    R2(config-if)#no shutdown
    

    网络位FE80::/64,后64位使用EUI-64补充。
    在这里插入图片描述
    Ⅲ、EUI-64补充主机位:
    Link-local 地址的网络位固定位FE80::/64,主机位使用本地以太网接口的MAC地址来生成Link-local地址主机位。对于没有MAC地址的串行链路,将循环借用本设备上以太网接口的MAC。

    步骤主机位生成方法步骤如下:
    A在MAC的前24位和后24位之间强行插入FFFE
    BU位转换:将合成后的地址,从左往右第7位自反,0为1,1为0。

    Ⅳ、Link-local的作用:
    A、常常作为动态路由协议生成的路由条目中的下一跳地址。因为IPv6存在多宿主的概念,该地址最稳定。
    B、在同一广播域内可以通讯使用:由于本地多接口可能使用相同MAC转换,故在使用Link-local地址访问对端时,需要定义出接口。

    ③site-local 本地站点地址(IPv6的私有地址):

    这个就是私有地址,但是IPv6不叫私有地址,而是叫做站点地址。这个地址用于不在公网出现,而是在局域网出现所配置。

    站点地址FFC0::/10
    ④未指定地址(::):

    未指定地址,就是全0,它的写法是 ::
    Ⅰ、所有:代表缺省路由。
    Ⅱ、没有:在DHCP时作为无效地址(没有地址)

    ⑤环回地址(::1):

    IPv6里面的环回地址:::1,win7-win10都支持双栈的,电脑里面可以检测自己的环回。

    ⑥IPv4兼容性地址:

    之前我们说过2002::/166 to 4 Tunnel 地址
    这个主要用作IPv4和IPv6共存。

    只要拥有一个IPv4的公网地址,就会拥有一段IPv6的兼容地址。

    假设IPv4地址为:222.51.230.5,则:

    十进制222512305
    十六进制DE29985

    那么222.51.230.5的IPv4兼容性地址为2002:DE29:9805::/48

    例:192.168.1.1 ==> 2002:c0a8:0101::/48

    (2)多播地址:

    ①组播的IP地址:

    FF00::/8 所有组播地址

    IPv6多播地址IPv4多播地址传播范围
    FF02::1224.0.0.1全网所有路由器和PC
    FF02::2224.0.0.2全网所有路由器
    FF02::9224.0.0.9RIPNG

    在IPv6中,每一个IPv6的单播地址默认就在一个组内,组播的IP地址构成是FF02::1:FF + 24位(IPv6单播地址的后24位)
    比如说刚才那个IP地址:2031:0000:130F:0000:0000:09C0:006A:130B
    这个单播地址所在的组即就是:FF02::1:FF6A:130B

    被请求节点组播地址:用于NTP协议,获取对端MAC地址(这个我一会儿再说)

    ②组播的MAC地址:

    我们拥有2120个组播IP,却只有248个MAC。
    组播的MAC地址=33.33(16进制)+ 32位(IPv6组播地址的后32位)
    例如之前的那个组播IP地址:
    FF02::1:FF6A:130B
    它的MAC地址就是:
    33.33.FF.6A.13.0B

    我们可以算一下,前24位中,33.33为固定值,FF为可变动的,因此总共有28个OUI,而一个OUI拥有224个MAC,那么:
    组播的MAC数量 = 28 × 224 = 232
    相比较IPv4下的半个OUI,数量还是很可以的。

    我们知道组播IP总共拥有2120个,组播MAC为232个,因此:一个MAC对应288个IP

    三、ICMPv6——Internet控制管理协议:

    先回顾一下ICMPv4版:
    ICMP协议在v4下,主要就是ping,除此之外还有ICMP重定向。它的功能比较弱学习难度也不大,它是一个跨层封装协议。协议号为1

    在ICMPv6中,它的作用和功能将远远超过ICMPv4,ICMPv6集成了大量的子协议通过包不同的类型号,区分IPv6的包,实现各种小协议。

    这里我讲一下关于ICMPv6最重要的3个小协议:
    PMTU、NDP、前缀报告

    1、PMTU——路径MTU发现协议:

    我们知道在IPv4中,如果包在传输的时候,路径上的MTU如果不同,会导致路由器拆包,却无法合包。拆包后,要为每个拆掉的部分加上新的报头,如果再遇到了MTU值小的路径,还需要继续拆包,这样就会增加路由器的负担。

    在IPv6中,ICMPv6中的这个PMTU子协议,它会发出 ICMP error 包来获取整段路径上每段MTU值,之后再传递的时候按照最小MTU值进行传递。

    这样就不会导致包在每次传输的时候由于MTU的限制,导致被拆,越拆越多的现象。

    PMTU默认开启

    2、NTP——邻居发现协议:(135、136)

    我们先回顾一下ARP,ARP很重要,在以太网环境下,如果取消ARP,就获取不到目标MAC、获取不到下一跳MAC、获取不到网关MAC,就没有办法传输数据。

    NTP邻居发现协议,NTP用于取代ARP协议。

    PMTU、NTP都属于ICMP,它们的区分靠的是发包:PMTU发的是ICMP的错位包,容错包。而NTP发的是ICMP的包,它会带着不同的类型号135、136或是其它的。

    由于IPv6没有广播,因此它要获取MAC就不能向IPv4一样了。
    它的原理是这样的,假设PC1和PC2通讯模拟AARP请求:
    在这里插入图片描述
    第②步发出的NDP请求包,简称NS包,相当于ARP的请求。
    第③步B的回应的包简称NA,相当于ARP应答。
    ICMPv6中的NDP除了取代AARP外,其它的ARP协议也可被NDP取代,原理一致,这里不在讲解。

    3、前缀通告:auto-config(134、133)

    注:前缀通告仅在以太网环境种存在
    这种自动配置功能是IPv6下独有的一种自动获取地址的方式。路由器周期(200s)向下发送IPv6的地址前缀(网络号)给设备,设备拿到前缀之后,在基于MAC EUI-64生成主机位。这样子下方的电脑可以在路由器没有配置DHCP池塘时获取到了IP地址。
    在这里插入图片描述
    上述功能这样实现,首先在R1连着需要获取IPv6地址的接口上配置一个IP地址,之后R1在开启IPv6的单播路由功能,那么所有的接口便都拥有了下放IPv6地址的能力。之后如果是PC就直接获取,对于路由器需要开启IPv6自动获取功能。

    R1(config)#int s0/0
    R1(config-if)#ipv6 address 2001:1/64
    //R1开启IPv6的单播路由功能,
    R1(config)#ipv6 unicast-routing
    //R2开启IPv6地址自动获取,该功能开启后,设备上的auto-config被激活,同时可以收发IPv6路由协议信息,且可以为IPv6的流量进行路由。
    R2(config-if)ipv6 address autoconfig
    

    只要在路由器上开启了IPv6的单播路由功能,那么该路由器将向所有存在IPv6地址的以太网接口周期发送其地址的前缀。

    注意:在配置动、静态IPv6路由协议时,均需要开启单播路由功能,开启后也将导致该路由器会向所有的以太网接口发送前缀,若管理员不想让该接口发送IPv6地址的前缀,那么可以在该接口进行以下配置:

    R1(config)#int s0/1
    //IPv6 ND 抑制RA,RA就是ICMP type 134
    R1(config-if)#ipv6 nd suppress-ra
    

    四、配置:

    1、接口配置IPv6单播地址:

    (1)Link-local:

    R1(config)#int s0/0
    R1(config-if)#ipv6 enable
    R1(config-if)#no shutdown
    

    手工或自动配置一个IPv6的AGUA,均会生成一个Link-local地址,但是无论配置多少个AGUA地址,也只能产生一个Link-local地址。
    (2)配置接口IPv6的AGUA地址:
    ①手动配置IPv6的单播地址:
    方法一:

    R1(config)#int s0/0
    //3表示有主机位
    R1(config-if)#ipv6 address 2001::3/64
    R1(config-if)#no shutdown
    

    方法二:
    下面是配置IPv6时给了个网络号,却没有给主机位。eui-64的意思就是用MAC生成(48位MAC中间强项插入fffe组成64位,之后重做往右第7位取反)

    R1(config)#int lo0
    R1(config-if)#ipv6 address 2003::/64 eui-64
    

    切记:IPv6协议存在多宿主特征:可以在一个接口上同时配置多个相同或不同网段的地址,但同一路由器上不同的接口不能配置相同的IP网段。

    当同一网段配置在一台路由器的不同接口,那么当要到这个网段的时候怎么去?路由是没法到的。
    ②自动获取IPv6地址:
    方法一:auto-config
    使用auto-config,这个由于我上面 auto-config 提到过,这里不再累赘,直接Ctrl+C然后Ctrl+V,一笔带过。

    R1(config)#int s0/0
    R1(config-if)#ipv6 address 2001:1/64
    //R1开启IPv6的单播路由功能,
    R1(config)#ipv6 unicast-routing
    //R2开启IPv6地址自动获取,该功能开启后,设备上的auto-config被激活,同时可以收发IPv6路由协议信息,且可以为IPv6的流量进行路由。
    R2(config-if)ipv6 address autoconfig
    
    R1(config)#int s0/1
    //IPv6 ND 抑制RA,RA就是ICMP type 134
    R1(config-if)#ipv6 nd suppress-ra
    

    方法二:DHCPv6
    有关DHCPv6这里不再讲解,详情可以参考这篇博客:DHCPv6基础。对于配置上案例:
    服务端首要配置:

    //开启IPv6单播路由功能
    R1(config)#ipv6 multicast-routing 
    //在e0/0口上配置IPv6地址
    R1(config)#int s0/0
    R1(config-if)#ipv6 address 2001::7/64
    R1(config-if)#no shutdown
    

    服务端创建DHCPv6

    //创建地址池下发的IPv6的前缀2001:1234/64和前缀长度64,并命名这个规则是A
    R1(config)#ipv6 local pool A 2001:1234::/64 64
    
    //创建DHCPv6地址池塘,并取名为chitang
    R1(config)#ipv6 dhcp pool chitang
    //配置DHCPv6地址池,下发前缀使用之前定义的A前缀
    R1(config-dhcpv6)#prefix-delegation pool A
    //在接口e0/0口上,配置DHCPv6 Server端,然后管理chitang这个地址池。
    R1(config-dhcpv6)#int s0/0
    R1(config-if)#ipv6 dhcp server chitang
    

    客户端配置:

    R2(config)#ipv6 multicast-routing 
    //配置e0/0接口IPv6地址获取方式,采用自动方式配置。
    R2(config)#int e0/0
    R2(config-if)#ipv6 address autoconfig default 
    R2(config-if)#ipv6 enable 
    //配置该接口为DHCPv6中的客户端,承接DHCPv6服务器的chitang这个地址池
    R2(config-if)#ipv6 dhcp client pd chitang
    R2(config-if)#no shutdown
    

    结果检查:
    当DHCPv6服务器配置下发IPv6前缀,会自动产生一条到达自己分配网段的静态路由。

    2、IPv6的ACL:

    IPv6的ACL可以配置N张表,但一台设备上一个需求点只能调用一张表。
    匹配规则:从上往下逐一匹配,若上条匹配就按上条执行,不再查看下条,开头会隐含。末尾隐含拒绝所有。但是IPv6的ACL只有扩展列表,写法只有命名写法。因此在使用扩展列表时,位置尽量靠近源,但不能在源上。
    但是开头会隐含下面这两条ACL:

    //ICMPv6中的NDP协议,NA => 136(相当于ARP请求)
    R2(config-ipv6-acl)#permit icmp any any nd-na 
    //ICMPv6中的NDP协议,NS => 135(相当于ARP请求)
    R2(config-ipv6-acl)#permit icmp any any nd-ns 
    

    末尾隐含的是:

    R2(config-ipv6-acl)#deny ipv6 any any
    

    为了更好的说明ACL,我这里使用下面这张图,它们的IP如图配置。
    在这里插入图片描述
    接下来我们开始写策略ACL:
    在这里插入图片描述(1)制定名叫A的ACL扩展列表

    R2(config)#ipv6 access-list A 
    

    (2)禁止 R1 telnet R2:

    R2(config-ipv6-acl)#deny tcp host 1::1 host 2::2 eq 23
    

    (3)拒绝一段地址到另一地址的所有通信

    //在IPv6中不使用反掩码,直接使用掩码。
    R2(config-ipv6-acl)#deny ipv6 1::/64 2::/64
    

    (4)拒绝一个主机访问另一个主机:

    R2(config-ipv6-acl)#deny ipv6 host 12::1 host 12::2
    

    (5)最后,末尾加上允许所有:

    R2(config-ipv6-acl)#permit ipv6 any any
    

    (6)接下来进行调用

    R2(config)#int s0/0
    R2(config-if)#ipv6 traffic-filter A in
    

    我们先进测试一下:
    在这里插入图片描述
    出现上面这种情况,就说明被挡了。

    3、IPv6的单播路由协议:

    IPv6的单播路由协议:在使用路由协议前需要开启IPv6的单播路由功能,否则该设备只能应答,或者请求,不具备中转的能力。

    R2(config)#ipv6 unicast-routing
    

    (1)IPv6静态路由协议:

    ①普通静态路由:
    在MA网路建议下一跳,点到点网络建议出接口写法。

    //去往目标网络号,出接口或下一跳
    R1(config)#ipv6 route 2::/64    serial 1/1
    R1(config)#ipv6 route 2::/64    12::2 
    

    ②浮动静态路由:

    R1(config)#ipv6 route 3::/64 12::2 ?
      <1-254>  Administrative distance
      <cr>
    

    ③接口汇总:
    假设R1有两个环回,俩环回汇总之后的地址为1::63

    R2(config)#ipv6 route 1::63 12::1
    

    ④空接口防环路由:

    //在更新源路由器上,空接口指向汇总地址。
    R1(config)#ipv6 route 2::/63 null 0
    

    ⑤缺省路由:

    R2(config)#ipv6 route ::/0 12::1
    

    注:带源ping 时,只能使用接口;或者使用扩展追踪。

    R3#ping 2::2 source loopback 0
    

    注:由于IPV6存在多宿主,使用接口为源时,默认使用第一地址来访问,建议扩展追踪。

    R3#traceroute 
    Protocol [ip]: ipv6
    Target IPv6 address: 2::2
    Source address: 3::3
    

    (2)RIPNG配置:

    ①RIPNG的启动:
    RIPNG使用同RIPv2一样的算法,组播更新地址。组播更新地址FF02::9 端口为UDP521。

    R1(config)#ipv6 unicast-routing
    //启动进程RIP,进程名叫a,进程号仅具有本地意义。
    R1(config)#ipv6 router rip a
    //在IPv6下,需要到所有接口上进行配置。
    R1(config)#int lo0
    R1(config-if)#ipv6 rip a enable 
    

    注:在RIPNG中,起点也算一跳。因此原来16跳表示不可达,现在变成了17跳。

    更新时间30s,失效时间180s,抑制时间120s,没有刷新计时器。
    在这里插入图片描述
    ②接口汇总:
    手工汇总:在更新源路由器上所有更新发出的接口上进行配置。

    R1(config)#int s0/0
    R1(config-if)#ipv6 rip a summary-address 1::/63
    

    ③缺省路由:
    缺省路由:在边界路由器上所有同内网相连的接口上配置,使其向内网所有邻居发出一条缺省信息。

    R1(config)#int s0/0
    R1(config-if)#ipv6 rip a default-information ?
    //only将发出缺省路由,同时它自身的一些明细路由不会转发
      only       Advertise only the default route
    //选择originate 缺省和与R3相关的明细均发出。
      originate  Originate the default route
    

    (3)OSPFv3 配置:

    在原有OSPFv2的基础上,OSPFv3使用的IP为IPv6,它使用新的LSA来专门携带V6的信息,区域规则、SPF算法同IPv4下完全一致。
    ①启动OSPFv3:

    R1(config)#ipv6 unicast-routing 
    //启动时需要配置进程号
    R1(config)#ipv6 router ospf 1  
    //RID依然使用IPV4地址,规则同OSPF V2一致
    R1(config-rtr)#router-id 1.1.1.1
    //进接口宣告 
    R1(config)#int lo0
    R1(config-if)#ipv6 ospf 1 area 0
    

    ②缺省路由配置:
    缺省路由配置:在边界路由上配置。

    R3(config)#ipv6 router ospf 1
    R3(config-rtr)#default-information originate ?      
      //强制发出
      always       Always advertise default route       
      //修改起始度量 
      metric       OSPF default metric                  
      //修改度量类型,默认2
      metric-type  OSPF metric type for default routes   
      //关联route-map
      route-map    Route-map reference                 
      <cr>
    

    (4)BGPv4+:

    BGPv4+用家族模式专门传输IPv6的路由。BGPv4和BGPv4+在IPv6和IPv4操作之间是完全一样的。它只是升级版,增加了一个家族模式而已,所以它的配置、选路规则、属性都不变,BGPv4+都是兼容的。

    要使用BGPv4+建立V6的邻居关系,首先需要建立V4的邻居关系,之后使用家族模式来配置IPv6的信息,原理为在原有BGPv4的协议中开发的扩展配置模式。

    R2(config)#router bgp 2 
    R2(config-router)#bgp router-id 2.2.2.2
    R2(config-router)#neighbor 3::3 remote-as 3
    R2(config-router)#neighbor 3::3 update-source loopback 0                   
    R2(config-router)#neighbor 3::3 ebgp-multihop
    

    查看邻居关系的两条配置:

    //查看IPv4下的BGP的邻居关系
    R1# show ip bgp summary
    //查看IPv6下的BGP邻居关系
    R1# show bgp ipv6 summary
    

    注意:关于IPv6 建邻以后所有配置 必须全部在家族模式中进行。这里的IPv4和IPv6下的配置大部分都是一样的,唯独就是家族模式中配置,这点非常重要。

    //进入IPV6家族模式
    R1(config-router)#address-family ipv6  
    //和该邻居建立IPV6的邻居关系
    R1(config-router-af)#neighbor 3::3 activate   
    

    五、IPv4 与 IPv6 共存:

    首先我们要知道的是:IPv4和IPv6可以共存,但是却没法兼容(不可能一个PC发一个使用了两种版本组合出来的包)。

    这里讲的比较重要,基本上也讲出了,我们将如何过渡这个时代的。

    1、普通tunnel:

    当出现了小范围的IPv6地址时,两块覆盖IPv6的区域之间通信可以使用 tunnel,将 tunnel 配置为IPv6版本。通过IPv4的公网,进行访问。
    在这里插入图片描述

    R1(config)#interface tunnel 0
    //该tunnel接口必须工作于V6环境
    R1(config-if)#ipv6 address 10::1/64  
    R1(config-if)#tunnel source 12.1.1.1 
    R1(config-if)#tunnel destination 23.1.1.2  
    //必须修改模式为ipv6ip,在IPv6报头前加一个IPv4报头
    R1(config-if)#tunnel mode ipv6ip   
    

    普通的 tunnel 需要基于所有IPv6网络配置一条隧道,且均需再配置一条静态路由,用来将流量引入隧道口。

    2、6 to 4 tunnel:

    假设上面是两个实验室的通信,那么当IPv6的实验室越来越多,它们的配置量、管理将会越来越麻烦。

    6to4 tunnel 不需要任何的官方组织介入,可以自己配置。它仅需要配置一条隧道,一条静态即可访问所有的IPv6网络。

    具体是:将边界路由器的公网IPv4地址转换为IPv4兼容性地址,然后将该地址应用到内网。接着再配置一条到兼容性地址的静态路由,通过隧道传递。传输数据时,一旦路由到达隧道口,隧道将根据目标IPv6地址计算对应的IPv4地址。

    通俗的讲是这样:
    在这里插入图片描述
    它的优点是:
    ①不需要指定Tunnel的目标。
    ②仅需要配置一条静态路由即可。

    上面说到的兼容性地址,是将IPv4地址转换为IPv6地址的第二段和第三段,然后转换后的IPv6地址以2002开头。注意,该地址在使用时,一般将其划分为64位。

    接下来我们按照上图来说配置:
    这里只以一端为例进行配置,另一端配置和这个一致,这里省略。
    (1)首先为隧道接口配置转换后的IPv6地址,有4种方法,根据需求进行选择。

    R1(config)#int tunnel 10
    R1(config-if)#ipv6 address 2002:c01:101::1/64
    R1(config-if)#exit
    
    //使用一个6TO4地址
    R1(config-if)#ipv6 address 2002:c01:101:1::1/64  
    //使用6to4地址
    R1(config-if)#ipv6 address 2002:c01:101:2::/64 eui-64  
    //相当于不配地址
    R1(config-if)#ipv6 enable   
    //借内网某个IPv6接口的地址
    R1(config-if)#ipv6 unnumbered loopback 0  
    

    (2)定义源接口,并标记模式:

    //定义IPV6源地址所在接口
    R1(config-if)#tunnel source s1/1 (或者12.1.1.1)   
    //模式标记
    R1(config-if)#tunnel mode ipv6ip 6to4   
    

    (3)配置静态路由:

    R1(config)#ipv6 route 2002::/16 tunnel 10
    

    到这里6 to 4 Tunnel 就配置好了。

    3、双栈:

    当IPv6地址的区域越来越多时,此时国家或组织就会出来介入,合并接近的v6区域,之后其它v6区域再通过 6 to 4 Tunnel和大的v6区域进行通信。

    那么之后怎么让用户加入V6 网络,这个就很重要,此时就需要靠双栈

    双栈:一台设备同时l连接IPv4和IPv6网络,若目标IP为v6地址使用v6的源IP,通过V6的路由表传递,V4同理。

    配置就正常配置,一个接口配置一个IPv4地址,一个接口配置IPv6地址就OK了。

    展开全文
  • The Channel Tunnel

    2019-09-19 00:44:59
    原文 In 1858, a French engineer, Aime Thome De Gamond, arrived in England with a plan for a twenty-one-mile tunnel under the English Channel....


    原文

    In 1858, a French engineer, Aime Thome De Gamond, arrived in England with a plan for a twenty-one-mile tunnel under the English Channel. He said that it would be possible to build a platform in the center of the Channel. This platform would serve as a port and a railway station. The tunnel would be well-ventilated if tall chimneys were built above sea level. In 1860, a better plan was put forward by an Englishman, William Low. He suggested that a double railway-tunnel should be built. This would solve the problem of ventilation, for if a train entered this tunnel, it would draw in fresh air behind it. Forty-two years later a tunnel was actually begun. If, at the time, the British had not feared invasion, it would have been completed. The world had to wait almost another 100 years for the Channel Tunnel. It was officially opened on March 7, 1994, finally connecting Britain to the European continent.


    译文

    在1858年,一个叫爱梅.托梅.德.干蒙的法国工程师有了一个在英吉利海峡下面修一条21英里隧道到达英格兰的想法。他说可以在海峡中间建一个平台。这个平台可以作为一个港口和火车站提供服务。如果建一些巨大的烟囱穿过海平面就能为隧道提供良好的通风。在1860年, 一个更好的主意被一个英国威廉.提出。他的建议是修一条双铁路隧道。这样解决通风的问题,如果有一列火车进入隧道,它会将新鲜的空气抽进来。42年之后隧道已经开工了。如果不是那个时候,英国人担心入侵的话,隧道早就建好了。世界人民不得不等待这条海底隧道接近100年才完工。它最终是是在1994年4月7号开通,最终英格兰连接到欧洲大地上。

    转载于:https://my.oschina.net/robinsonlu/blog/517749

    展开全文
  • tunnel可以让公网访问内网部署的站点,对于软件开发测试很有帮助。 由于国外官网经常被墙(我会在接下来的文章中介绍怎么翻墙),国内代理站点为 http://www.tunnel.mobi/ 。 第一步 :下载...
  • 2 几种esp_tunnel模式的设置

    千次阅读 2018-02-10 01:47:52
    几种esp_tunnel模式的设置
  • Twitter via Ping Tunnel周四 Cola 没去幼儿园,中午带着他去 KFC 吃东西。回来的时候小林指着西总布胡同说走这条路回去还是原路返回,他说还是...
  • Github Actions 云编译 OpenWRT LEDE 固件

    千次阅读 2021-01-04 23:24:49
    本地编译我使用了不同的操作系统,不同的版本,...基于 大雕的LEDE 为源码,作为鬼群的lean粉强烈推荐 步骤 搭建编译环境,生成.config文件(推荐,虽然Actions可以使用SSH connection进行云生成,但并不好用) 搭建.
  • dns tunnel C&C

    2017-12-01 17:55:00
    通过DNS控制主机以及执行命令 ... 1854 mkdir dns_tunnel_tool 1855 cd dns_tunnel_tool/ 1856 ls 1857 git clone https://github.com/iagox86/dnscat2.git 1858 cd dnscat2/server/ 1859 bundle instal...
  • 最近系统升级到Mountain lion以后,Tunnelblick就出现反复连接断开的状况,开始还以为是Tunnelblick的版本问题,后来Google了下,找到解决方法:1.打开Tunnelblick的设置窗口,点击[配置]栏下方的[高级]按钮 2.把...
  • de1ay靶场实战

    2021-02-20 21:23:09
    文章目录de1ay环境WEB信息收集weblogic 10.3.6WeblogicScanWeblogic-EXP反弹shellProxy代理reGeorg + proxychainsmsf socks代理cs socks代理dump hashmimikatzpowershellprocdumpcs的logonpasswordsLaZagne横向移动-...
  • 这样的一道题需要中间的思路很清晰,不然时刻都有WA或者T的可能——...During the War of Resistance Against Japan, tunnel warfare was carried out extensively in the vast areas of north China Plain. Gener...
  • # man ovs-vswitchd.conf.db dot1q-tunnel A dot1q-tunnel port is somewhat like an access port. Like an access port, it carries packets on the single VLAN specifie...
  • IPv6 Tunnel 孤岛连接

    千次阅读 2015-04-28 00:15:40
     Tunnel是指将一种协议通过另一种协议封装进行通信。IPv6 overIPv4隧道机制是在IPv6数据包前封装上IPv4 的包头,通过隧道使IPv6数据包穿越IPv4网络,实现隔离的IPv6网络的互通。在IPv6全面实施之前,总有一些 网络...
  • 有时候回需要到ssh tunnel,手动使用ssh 创建这些并没有太大的问题,可是如果尝试开机启动,写个shell脚本并在rc.local里面运行这个脚本并不成功,原因也不得而知。后来发现了autossh这东东,不单单能够静默模式创建...
  • HEAD is now at ef252de add another prologue # sed -i 's/0x0100007f/0x80011ac/g' payload.s # make make nasm -f bin -o payload payload.s xxd -i payload payload.h cc -o 0xdeadbeef.o -c 0xdeadbeef.c -Wall...
  • memset(de,0,sizeof(de)); stack<int> s; while(m--) { char op[5]; int x; scanf("%s%d",op); if(op[0]=='R') { if(!s.empty()) { de[s.top()]=0; s.pop(); } } ...
  • 点击tunnel,建立tcp隧道     内网目标是软路由在局域网的访问地址,服务器端口是公网服务器端口。之后使用地址xxx.xxx.xxx.xxx:8081即可内网穿透访问到软路由管理界面。   有啥问题欢迎...
  • 编译OpenWRT LEDE 固件的一些说明

    千次阅读 2021-01-05 00:02:51
    Github Actions 云编译 OpenWRT LEDE 固件 固件文件说明 文件共提供多种类型供下载(根据编译时选择的Target Images配置),需要其他类型的请自行转换,下面是部分说明 序号 名称 说明 (1) openwrt-x86-...
  • Centos 编译LEDE/OpenWrt

    2021-08-12 06:55:19
    如果需要后台进行, 使用 nohup make -j2 V=s > ~/lede/logs/20171011.log 2>&1 & Updated 2018-08-12: 编译v18.06.0, 会出现"b2a_base64() argument 1 must be string or read-only buffer, not bytearray" 错误, ...
  • SM2-DE

    2017-09-19 19:08:00
    SM2单证书认证 下端 导入根证书以及通用证书...flow 192.168.2.0 255.255.255.0 192.168.1.0 255.255.255.0 ip tunnel 4gdx set reverse-route exit 转载于:https://www.cnblogs.com/zhaoyujiao/p/7553532.html
  • http://dnstunnel.de/ Howto Here is a very short guide: On the server: sudo python dnscapy_server.py [DELEGATED_ZONE_NAME] [EXTERNAL_IP_ADDR] On the client: ssh -o ProxyCommand="sudo python ...
  • 正确使用ngrok穿透内网

    万次阅读 2015-05-03 10:17:06
    When you start ngrok, it will display a UI in your terminal with the public URL of your tunnel and other status and metrics information about connections made over your tunnel. The ngrok console ...
  • During the War of Resistance Against Japan, tunnel warfare was carried out extensively in the vast areas of north China Plain. Generally speaking, villages connected by tunnels ...
  • tcp和udp包穿透防火墙-Httptunnel

    千次阅读 2007-12-19 10:23:00
    0x0010 xxxx xxxx 0050 de42 5fd5 ac4f 39ac 016f .f.#.P.B_..O9..o 0x0020 5010 2238 98e4 0000 746f 7461 6c20 3636 P."8....total.66 0x0030 370d 0a64 7277 7872 2d78 722d 7820 2032...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,216
精华内容 886
关键字:

detunnel