IPV6改造

  1. 网络邻居
    假设在 IP 为 fe80::14de:fd3b:94c7:09dc 的电脑上共享了一个叫做 share 的目录,要访问该目录,首先要将IP地址中的冒号“:” 替换为短横线“-” ,然后再添加后缀 .ipv6-literal.net 。转换后的IPV6称为 UNC 格式 。因此需要使用如下路径访问 share 目录:
    //fe80–14de-fd3b-94c7-09dc .ipv6-literal.net /share
  2. HTTP和SOAP
    当使用 IPV6 访问网页时 HTTP 或 SOA P路径时,需要用方括号“[”和“]”将 IP 地址括起来。这种形式为文本格式 。例如:
    http://[fe80::14de:fd3b:94c7:09dc]:8090/testweb
    注意,将文本格式用于访问 POP3、SMTP 或 SQL 路径时,不应该将 IP 地址用方括号括起来。
    另外,当需要在 BizTalk 中创建HTTP或者SOAP类型的接收/发送端口时, 若IPV6地址包含以百分号开始的后缀,则应加百分号及后面的字符去掉。例如:
    fe80::7079:bc54:7034:aa1d%13
    应改为:
    fe80::7079:bc54:7034:aa1d
  3. 数据库
    3.1. MySQL
    ipv4 Driver URL:
    jdbc:mysql://127.0.0.1:3306/database
    ipv6 Driver URL:
    jdbc:mysql://address=(protocol=tcp)(host=fe80::a00:27ff:fec3:87c7)(port=3306)/database
    驱动要求:jdbc连接驱动需要大于5.1.31以上,之前我没注意到这个问题,一直使用项目上统一的5.1.6,所以配置正确的情况下,tomcat启动后台会抛错,提示连接不到数据库端口,后来改为5.1.44解决报错问题。
    验证事例:本地安装mysql数据库,配置可以通过ip形式访问,在本地创建内蒙包头联名卡项目数据库,本地启动应用通过ipv6的方式访问数据库,应用启动正常,通过客户端访问,数据库查询正常。

3.2. Oracle
ipv4 Driver URL:
jdbc:oracle:thin:@//127.0.0.1:3306/orcl
ipv6 Driver URL方法1:
jdbc:oracle:thin:@(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=[fe80::5cf:72])(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=fnstdb1)))
Ipv6 Driver URL 方法2:
jdbc:oracle:thin:@[fec0::169]:1521:orcl
驱动要求:ojdbc14+,版本是11.2及以上
3.3. SQLserver
ipv4 Driver URL:
jdbc:jtds:sqlserver://127.0.0.1:1433/master
ipv6 Driver URL:
jdbc:jtds:sqlserver://
驱动要求:jtds1.2.4
以下只是网络搜集备用==
3.4. DB2
ipv4 Driver URL:
  jdbc:db2://192.168.10.10:50000/sample
ipv6 Driver URL:
  jdbc:db2://[fec0:ffff:ffff:8000:20e:cff:fe50:39c8]:50000/sample
驱动要求:db2jcc4,目前只有一个db2jcc4-10.1.jar,替换后db2数据库可正常使用
4. nginx
4.1. 通过ipv4代理ipv6
需要修改配置如下:
IPV6改造_第1张图片
4.2. 通过ipv6代理ipv4
需要增加配置如下,支持双栈需要同时监听ipv4和ipv6的端口
IPV6改造_第2张图片
4.3. 访问、代理同时ivp6
nginx是通过ipv6,代理转发也是通过ipv6,则上边两处都需要修改
4.4. Nginx验证事例
使用客户端前置进行验证测试,修改nginx.conf监听ipv6端口,增加:
IPV6改造_第3张图片
在这里插入图片描述

重新启动时,报上边的错误。排查是因为nginx没有编译ipv6模块造成的,具体nginx是否支持ipv6,通过命令:
/nginx]/usr/local/nginx/sbin/nginx -V,如果没有出现–ipv6信息,则不支持ipv6,在nginx中增加ipv6模块,可以参考:https://blog.csdn.net/shenxianfeng/article/details/72859830
nginx从nginx-1.12以上,不需要单独编译ipv6模块
在这里插入图片描述
IPV6改造_第4张图片
5. mq
配置时在ipv6的ip上加上[]访问即可,测试mq版本5.9.0
mq_url=failover:(tcp://10.10.56.54:61616,tcp://[fec0::254]:61616)?randomize=false&priorityBackup=true
IPV6改造_第5张图片
6. redis
配置文件中host配置时直接配置ipv6的ipfec0::254,测试redis版本: Redis 2.8.17 (00000000/0) 64 bit
IPV6改造_第6张图片
7. ftp上传下载
项目中ftp上传下载的jar包使用/替换成commons-net包的3.6版本,该版本支持jdk1.6及以上。公司对账系统,可直接替换jar包,替换后将数据库中相关配置修改为ipv6配置,重启对账应用后,即可正常进行ipv6地址文件的上传及下载。
如果原项目是jdk1.5,可以替换commons-net包为3.4版本。
8. webservice
服务端支持ipv6,客户端通过ipv6请求格式访问服务端即可。测试使用的是石家庄卸载卡片节点,无论是服务端还是客户端都不需要大改造。老项目的风险点在:支持webservice的jar包太老,本身就不支持ipv6,需要升级到新版本的jar包,具体配置路径如下图,如果是域名直接配置成ipv6的域名即可。
IPV6改造_第7张图片
9. 通讯服务器节点
9.1. 核心修改配置
核心修改配置文件comclient.xml中通讯服务器节点配置,把原来的
umop://192.168.10.180:9145/修改成:
umop://[fec0::254]:9145/
IPV6改造_第8张图片
9.2. 前置修改配置
前置节点将配置文件app_my.xml中通讯服务器配置192.168.10.180【原ipv4地址】修改成:fec0::254【新ipv6地址,注意没有方括号】
IPV6改造_第9张图片

  1. Tomcat
    tomcat项目启动后,不需要修改可正常通过http://[fec0::10]:9244/nfcWeb/sys/login.do访问。

  2. 前置框架
    前置服务器192.168.10.10服务器配置了ipv6地址后,重新启动应用,通过模拟类HttpsURLConnection模拟请求客户端前置,正常返回响应。
    配置将原来的ipv4配置http://ip:port/修改成http://[ipv6]:port/

http://[fec0::254]:9235/
IPV6改造_第10张图片

附录:改造项目注意事项:
很多sdk都不支持ipv6,想要支持需要下载更新到提供的支持ipv6的版本,
例如常用的友盟、微信、支付宝、百度地图、ftp上传下载等,现在很多新下载的sdk已经支持了ipv6,具体使用时查验替换新包。
1)需要服务器在网络层面都已支持,服务器配置方面都已支持,例如必须所在服务器支持ipv6,并且服务器记得关闭ipv6防火墙,不然虽然端口启动了,也监听了ipv6的端口,但是会造成无法访问。
2)项目里面涉及和网络有关的网络请求是否支持ipv6。(通信和连接数据库等)
3)项目里面涉及和网络有关的sdk是否支持ipv6。
4)项目的服务器是否支持ipv6。
过程记录:
5)如果公网不支持ipv6,本地搭建的只能通过局域网访问

你可能感兴趣的:(IPV6改造)