在 Linux 平台及 IPv4 环境中构建 IPv6局域网 测试环境

摘要:
如果您希望通过升级网络设备、2.1 IPv6网络要求和现有网络环境来支持开发环境,图1显示了一个典型的HTTP网络应用程序,如图1-a所示,其中客户端和服务器在同一个intranet中运行,只要客户端和服务器运行的操作系统支持IPv6,就可以通过IPv6协议进行通信,因为许多intranet环境不提供支持IPv6的路由。网络硬件支持将成为开发和测试支持IPv6的网络应用程序的最大障碍。

在 Linux 平台及 IPv4 环境中构建 IPv6 测试环境

1 IPv6简介

IPv6(Internet Protocol Version 6)作为 IPv4 的升级版本,它是作为一共软件升级安装在设备和
操作系统中。为什么需要使用 IPv6,一个最直接的答案就是目前广泛应用的 IPv4 已经无法提供足够的 IP 地址来满足迅速增长的网络。IPv4 采用32位地址长度,只有大约43亿个地址,很快就将被分配完毕。而 IPv6 采用128位的地址长度,几乎可以不受限制的提供地址。当然扩大地址空间只是 IPv6 的众多优势中的重要一项,除此之外,IPv6 还能够提高网络的整体吞吐量、改善服务质量(QoS)、安全性有更好的保证、支持即插即用和移动性、更好实现多播功能等等。

2 在 IPv4 环境中模拟 IPv6 网络

正如上节中所述,目前许多与网络应用相关的软件已经加入了对 IPv6 的支持,更有大量的软件正在处于对 IPv6 支持的开发阶段。但是就开发而言,目前许多开发环境并没有对 IPv6 提供很好的支持,尤其当所开发的应用需要经过较老的路由甚至公共网络时。如果希望通过升级网络设备来支持开发环境,将是一笔不小的花费,有时甚至是不现实的(比如短期内升级公共网络支持 IPv6)。

研究如何在现有的 IPv4 网络环境中模拟出 IPv6 环境,使得开发和测试工作能够顺利进行,显得尤为重要。

2.1 IPv6 网络要求及现有的网络环境

图1显示了典型的 HTTP 网络应用,如果需要对这样的网络应用提供 IPv6 的支持,开发和测试人员可能会碰到如下三种情形:

客户端和服务器运行于同一个局域网中,如图1-a

客户端和服务器运行于同一个 Intranet 中,它们之间的网络通路需要经过路由,如图1-b

客户端和服务器分别处于不同的地域,它们之间由 Internet 提供连接,如图1-c。

图 1. 三种典型的 HTTP 网络应用

三种典型的 HTTP 网络应用

在这三种不同的情形下,IPv6 的网络环境要求是不同的。对于情形1,只需客户端和服务器所运行的操作系统支持 IPv6 即可通过 IPv6 协议进行通信,若需要提供 Global 地址的通信,则可以通过在局域网内的某台机器上运行一个软件 IPv6 路由来支持,因此其针对 IPv6 的开发和测试相对简单。 对于情形2,由于客户端和服务器之间经过运行于 IP 层的路由,因此要求网络通路上经过的所有路由器均支持 IPv6。 这可能是一个不小的挑战,因为很多 Intranet 环境并没有提供支持 IPv6 的路由。对于情形3,这就要求 Internet 提供 IPv6的支持,就短期看来,Internet 提供全面的 IPv6 支持还不太可能。

因此,在情形2和情形3的环境中,网络硬件支持将成为开发和测试支持 IPv6 的网络应用程序的最大障碍,在2.2节中将给出如何运用现有的 IPv4 网络来进行 IPv6 应用程序的开发和测试,同时又保证其在真实的 IPv6 环境中正常运行。

2.2 利用现有 IPv4 网络模拟 IPv6 环境

2.2.1 模拟环境构建的基本原理

图2 - 图3显示了 IPv6 模拟环境的框图,这里存在两种情形,但具体的配置是类似的。
对于开发客户端 IPv6 应用程序,其框图如 图2;而对于开发服务器端 IPv6 应用程序,其框图如 图 3 。其基本原理就是利用代理技术将原来被 IPv4 网络阻断的客户端或服务器端映射到位于同一局域网内的代理服务器上,这样“客户端”与“服务器端”就可以进行基于 IPv6 的网络通信了。 在 图2 中,我们需要代理服务器与客户端运行于同一局域网中,在客户端看来,此代理服务器是一个具备了 IPv6 支持能力的“服务器”,即使真正的服务器端并没有支持 IPv6 ,也可以进行客户端的开发和测试。在 图3中,我们需要一台机器与服务器端运行于同一局域网中,在服务器端看来,此代理服务器是一个具备了 IPv6 支持能力的“客户端”。

图 2. 利用代理将服务器端映射到与客户端同一局域网内

利用代理将服务器端映射到与客户端同一局域网内

图 3. 利用代理将客户端映射到与服务器端同一局域网内

利用代理将客户端映射到与服务器端同一局域网内

下面仅以客户端的IPv6环境为例来讲述整个模拟环境的构建过程。

2.2.2 环境的建立

操作系统平台: Linux(Centos),内核需支持 IPv6,2.6以上版本最佳,

软件: radvd(Router ADVertisement Daemon),
这是一个运行于 Linux 平台之上的提供 IPv6 路由配置信息的软件,可以替代 IPv6 路由来进行无状态的地址自动配置。

2.2.3 启动 radvd

IPv6 的地址获取方式与 IPv4 有所不同。在 IPv4 中,主机 IP 地址的自动配置必须由 DHCP 服务器来支持,这被称为有状态的自动配置(StatefulAutoconfiguration);而在 IPv6 中,除了 DHCP 的 v6版本,还引入了无状态的自动配置( StatelessAutoconfiguration )。这项新技术无需 DHCP 服务器支持,所有支持 IPv6 的路由器都监听各主机发送的自动配置请求包, IPv6 路由器对这类请求包的回复里面包含了一些 IPv6 地址的前缀( prefix )信息,主机在收到这样的包以后,可以根据自己的一些已有信息(比如 MAC 地址),生成自己的 IPv6 地址。

本文是在现有的 IPv4 网络环境中模拟 IPv6 环境,自然不存在物理的 IPv6 路由器,但是通过 Linux 平台上的 radvd 工具也可以模拟无状态自动配置,它同样可以监听局域网内各 IPv6 主机发送的自动配置请求并作出响应,这样,这些主机就可以获得各自的 IPv6 地址,并利用这些地址进行相互间的通信。而图X中的客户端正是使用这种方式与代理服务器通信的。

        1. 使用命令yum install radvd 安装radvd

在 Linux 平台及 IPv4 环境中构建 IPv6局域网 测试环境第4张

 

2.配置运行 radvd 的主机的 IPv6 地址信息

# ip a a 2002:9ba:b4e:6::1/64 dev ethX

# ip r a 2002:9ba:b4e:6::/64 dev ethX

        这里的 ethX 表示的是此主机监听局域网数据包的网卡设备

3.确保系统启动了对 IPv6 数据包的转发功能

  # sysctl -w net.ipv6.conf.all.forwarding=1

  或者 永久添加  :在/etc/sysctl.conf      中配置 net.ipv6.conf.all.forwarding = 1

4.radvd 安装后其配置文件位于 /etc/radvd.conf ,在这个文件中加入配置信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
interface eth0
{
         AdvSendAdvert on;
         MinRtrAdvInterval 5;
         MaxRtrAdvInterval 10;
         AdvDefaultPreference low;
 
         prefix 2002:9ba:b4e:6::/64
         {
                  AdvOnLink on;
                  AdvAutonomous on;
                  AdvRouterAddr off;
         };
};

同上,这里的 ethX 表示的是此主机监听局域网数据包的网卡设备。prefix 段表明了该局

域网配置 IPv6 地址的前缀。

5.启动 radvd

# /etc/init.d/radvd start

或者:service radvd start

在 radvd 启动成功后,通过 ps -ef | grep radvd 命令可以看到系统中有一个 radvd 的 daemon 进程处于运行状态。若对局域网中的其他主机运行 ifconfig 命令可以看到这些主机已经自动配置了 IPv6 地址,其前缀( prefix )与 radvd 配置文件中的值一致

在 Linux 平台及 IPv4 环境中构建 IPv6局域网 测试环境第5张

 6.配置优化:

第2步和第3步在系统重启后配置将会丢失,我们可以通过修改配置文件的方法让配置在系统重启后依然生效,具体配置如下:

  1、依次执行以下命令

    #cd /etc/sysconfig

      #vi network

 添加以下内容:

NETWORKING_IPv6=yes
IPV6FORWARDING=yes
IPV6INIT=yes
IPV6_DEFAULTGW=2002:9ba:b4e:6::A%eth0

 2、修改文件:/etc/sysconfig/network-scripts/ifcfg-eth0

 添加以下内容:

IPV6INIT=yes
IPV6to4INIT=yes
IPV6FORDING=yes
IPV6ADDR=2002:9ba:b4e:6::1/64

3、修改文件/etc/sysctl.conf

添加以下内容:

net.ipv6.conf.all.forwarding = 1

4、修改完成后重启网卡

运行命令service   network  restart

 安装yum源:

cat > /etc/yum.repos.d/CentOS-base.repo << EOF
[centos7_base]
name=source_from_localserver
baseurl=http://172.18.60.6/base/Packages
gpgcheck=0
enable=1
priority=3

[Centos7_extras]
name=source_from_localserver
baseurl=http://172.18.60.6/extras/Packages
gpgcheck=0
enable=1
priority=5

[Centos7_updates]
name=source_from_localserver
baseurl=http://172.18.60.6/updates/Packages
gpgcheck=0
enable=1
priority=7

[epel]
name=source_from_localserver
baseurl=http://172.18.60.6/epel/
gpgcheck=0
enable=1
priority=9
EOF
========================================

yum clean all
yum repolist




参考:

https://blog.csdn.net/Creator_Ly/article/details/106437177

下载byacc:https://blog.csdn.net/n_arcissism/article/details/104556077
下载:flex:http://sources.buildroot.net/flex/

免责声明:文章转载自《在 Linux 平台及 IPv4 环境中构建 IPv6局域网 测试环境》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇OpenGL教程一[转]Windows 下 Nginx+IIS 使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux下为Calibre书库打中文目录名与文件名补丁

本文由来 临近下班突然看到知乎上有篇文章是给Calibre打中文目录与文件名补丁的,想起我之前为啥放弃Calibre的——存进书库里书的名称都变成了拼音!手动找起来或者搜索工具找起来太麻烦了(有时想不起用Calibre,直接用搜索软件+PDF阅读器就看了),用过Calibre的同学应该知道——添加到书库里的书相当于从外边复制过来的,每本书都存两份很占空间呀...

IIS7设置限制IP地址访问

  1、拒绝访问设置,选择“一组计算机”,下面重点说明如何填写“网络标识”和“子网掩码”。 IP地址按照IPV4的标准来分,分为A类地址、B类地址、C类地址,一般我们是屏蔽C类或者B类地址。 A类地址:如 202.*.*.*         子网掩码 255.0.0.0B类地址:如 202.96.*.*       子网掩码 255.255.0.0C类地...

.NET调用Java写的WebService

最近遇到一个用.net调用java写的webservice的应用,对方程序员提供了一个后缀为wsdl的文件,这个跟.Net里面生成的wsdl文件差不多,起初没什么概念就查了点资料,知道可以将这个wsdl文件编译动态库直接调用,也就是生成一个代理了,这个跟以往经常将.net的webservice描述地址进行编译似乎差不多,于是就尝试这写,还基本能实现。基本格...

DHCP(一)

  DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段,在RFC 2131中有详细的描述。DHCP有3个端口,其中UDP67和UDP68为正常...

正反向隔离装置(网闸)

                                                                                                                正反向隔离装置(网闸)                                                 一、安全区定义...

VirtualBox虚拟机安装与上网配置

 一,安装VirtualBox     1.到https://www.virtualbox.org/下载安装包进行安装。 二,安装虚拟机        1.找到系统镜像     2.打开VirtualBox选择新建,创建虚拟硬盘。        3.添加虚拟光驱加载要装系统的镜像。        4.启动虚拟机。        5.完成安装 三,设...