点击蓝字

关注我们

openGauss/MogDB支持多种网络接口,假如我们想在支持IPv6的网络上部署使用,只需简单操作即可,本文将介绍在CentOS上如何配置使用。

关于IPv6

IPv6(Internet Protocol Version 6),是Internet Engineering Task Force (IETF)设计用于替代IPv4的下一代IP协议,使用IPv6能解决网络地址资源数量的问题。

我们使用ipconfig /all命令查看windows网络接口,会看到IPv6地址。

以太网适配器 以太网 7:本地链接 IPv6 地址. . . . . . . . : fe80::828a:5e20:53cb:7719%6(首选)IPv4 地址 . . . . . . . . . . . . : 192.168.137.68(首选)

CentOS下使用ip addr命令查看linux网络接口,也会看到IPv6地址。

# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 08:00:27:b5:54:32 brd ff:ff:ff:ff:ff:ffinet 192.168.137.101/24 brd 192.168.137.255 scope global enp0s3valid_lft forever preferred_lft foreverinet6 fe80::a00:27ff:feb5:5432/64 scope link valid_lft forever preferred_lft forever

IPv6分类

1.本地关联IPv6

本地关联的IPv6,是以fe80开头,与网卡的物理地址(MAC地址)有关,不需要通过DHCP自动分配或者手工设置。

2.全局IPv6

如果需要跨网络或者跨路由器进行通信,则需要使用全局的IPv6。

创建全局IPv6

创建全局IPv6有多种的方式,例如DHCPv6、Stateless address autoconfiguration (SLAAC) 以及手工配置。

手工配置可以使用ip命令来配置:

# ip -6 addr add 2022:1:0:0::db1/64 dev enp0s3

或者使用ifconfig命令来配置:

# ifconfig enp0s3 inet6 add 2022:1:0:0::db1/64

通过上面任意一种方式配置后,可以看到enp0s3网络接口将增加一个inet6,并且是global属性的。

# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 08:00:27:b5:54:32 brd ff:ff:ff:ff:ff:ffinet 192.168.137.101/24 brd 192.168.137.255 scope global enp0s3valid_lft forever preferred_lft foreverinet6 2022:1::db1/64 scope global valid_lft forever preferred_lft foreverinet6 fe80::a00:27ff:feb5:5432/64 scope link valid_lft forever preferred_lft forever

注意:上面IPv6字符串配置中有db1,这符合HEX字符规则,非HEX字符则不允许设置,比如我们把db换成dx,则会提示下面的错误信息。

# ifconfig enp0s3 inet6 add 2022:1:0:0::dx1/64
2022:1:0:0::dx1: Resolver Error 0 (no error)

IPv6连通性测试

在本地使用ping6进行连通性测试,先使用全局IPv6进行测试:

# ping6 2022:1::db1 -c3
PING 2022:1::db1(2022:1::db1) 56 data bytes
64 bytes from 2022:1::db1: icmp_seq=1 ttl=64 time=0.027 ms
64 bytes from 2022:1::db1: icmp_seq=2 ttl=64 time=0.047 ms
64 bytes from 2022:1::db1: icmp_seq=3 ttl=64 time=0.028 ms
--- 2022:1::db1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.027/0.034/0.047/0.009 ms

再使用本地关联IPv6进行测试,此时需要带上网络接口名称:

# ping6 fe80::a00:27ff:feb5:5432%enp0s3 -c3
PING fe80::a00:27ff:feb5:5432%enp0s3(fe80::a00:27ff:feb5:5432%enp0s3) 56 data bytes
64 bytes from fe80::a00:27ff:feb5:5432%enp0s3: icmp_seq=1 ttl=64 time=0.040 ms
64 bytes from fe80::a00:27ff:feb5:5432%enp0s3: icmp_seq=2 ttl=64 time=0.041 ms
64 bytes from fe80::a00:27ff:feb5:5432%enp0s3: icmp_seq=3 ttl=64 time=0.022 ms
--- fe80::a00:27ff:feb5:5432%enp0s3 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.022/0.034/0.041/0.010 ms

配置IPv6

编辑postgresql.conf文件,修改监听参数:

listen_addresses = '*'

修改完后重启服务,数据库将监听本机所有的网络接口。

编辑pg_hba.conf文件,添加数据库客户端连接的IPv6认证条目:

host    all             all             fe80::a00:27ff:feb5:5432/128           md5
host    all             all             2022:1::db1/128         md5

使用gsql客户端进行测试

1.使用本地关联IPv6进行测试,此时需要带上网络接口名称:

$ gsql -h fe80::a00:27ff:feb5:5432%enp0s3 -Umoguser postgres -r -p6432
postgres=> \conninfo
You are connected to database "postgres" as user "moguser" on host "fe80::a00:27ff:feb5:5432%enp0s3" at port "6432".
postgres=> SELECT datname,usename, client_addr FROM pg_stat_activity where usename='moguser';datname  | usename |       client_addr
----------+---------+--------------------------postgres | moguser | fe80::a00:27ff:feb5:5432
(1 row)

2.使用全局IPv6进行测试:

$ gsql -h 2022:1::db1 -Umoguser postgres -r -p6432
postgres=> \conninfo
You are connected to database "postgres" as user "moguser" on host "2022:1::db1" at port "6432".
postgres=> SELECT datname,usename, client_addr FROM pg_stat_activity where usename='moguser';datname  | usename | client_addr
----------+---------+-------------postgres | moguser | 2022:1::db1
(1 row)

使用java jdbc进行测试

通过java程序test.jar包进行测试,test.jar需要三个入参,分别是jdbc url、jdbc username、jdbc password。

1.使用普通的IPv4进行测试:

$ java -jar test.jar jdbc:postgresql://192.168.137.101:6432/postgres moguser Admin@1234

执行结果如下,可以看到数据库连接测试成功:

Input jdbc url:jdbc:postgresql://192.168.137.101:6432/postgres
Input jdbc username:moguser
Connection test successfully.

2.使用本地关联IPv6进行测试,进行测试:

$ java -jar test.jar jdbc:postgresql://fe80::a00:27ff:feb5:5432:6432/postgres moguser Admin@1234

执行结果如下,可以看到数据库连接测试成功:

Input jdbc url:jdbc:postgresql://fe80::a00:27ff:feb5:5432:6432/postgres
Input jdbc username:moguser
Connection test successfully

3.使用全局IPv6进行测试:

$ java -jar test.jar jdbc:postgresql://fe80::a00:27ff:feb5:5432:6432/postgres moguser Admin@1234

执行结果如下,可以看到数据库连接测试成功:

Input jdbc url:jdbc:postgresql://2022:1::db1:6432/postgres
Input jdbc username:moguser
Connection test successfully.

总结

1.openGauss/MogDB配置IPv6只需简单修改listen_addresses = ‘*’ 即可。

2.使用gsql客户端进行连接时,本地关联IPv6还需要使用网络接口名进行访问,全局IPv6不需要。

3.使用jdbc客户端进行连接时,无论是本地关联IPv6还是全局IPv6,直接使用地址即可。


墨天轮原文链接:https://www.modb.pro/db/196558?sjhy复制链接至浏览器或点击文末阅读原文查看)

关于作者

彭冲,云和恩墨PG技术顾问,网名“多米爸比”,PG社区认证专家,中国首期PostgreSQL ACE Partner,多年从事基于PostgreSQL数据库的软件研发,擅长于PL/PGSQL业务迁移及优化,Oracle到PostgreSQL的迁移升级,异构数据库整合;作为墨天轮PostgreSQL实践专栏作者,热衷于PostgreSQL实践技术分享,在自己的岗位积极推广PostgreSQL,致力为PG社区多做奉献。

END

推荐阅读:2021数据技术嘉年华视频回放及PPT下载

2021数据技术嘉年华50余个PPT下载、视频回放已上传墨天轮平台,可在“数据和云”公众号回复关键词“2021DTC”获得!

你知道吗?我们的视频号里已经发布了很多精彩的内容,快去看看吧!↓↓↓

点击下图查看更多 ↓

云和恩墨大讲堂 | 一个分享交流的地方

长按,识别二维码,加入万人交流社群

请备注:云和恩墨大讲堂

  点个“在看”

你的喜欢会被看到❤

MogDB如何配置IPv6?相关推荐

  1. ENGINEER 003:配置IPv6地址

    配置IPv6地址    (简单)---不再玩ipv4了 IPv4和IPv6的区别? Ipv4不够用了,就推行Ipv6.IPv6迟迟没有得到推广? IPv4有个技术叫nat,地址转换,最大化节约了IP地 ...

  2. centos ipv6 网卡_CentOS 6配置IPv6地址

    编辑网络配置信息文件. vim /etc/sysconfig/network 启用IPv6支持. 编辑网卡配置文件. vim /etc/sysconfig/network-scripts/ifcfg- ...

  3. rehat linux设置ip,RedhatHat配置IPv6地址

    RedhatHat配置IPv6地址: 修改网卡配置文件: [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth4 DEVIC ...

  4. 邮件服务 交换空间(虚拟内存) 配置链路聚合 配置IPv6地址

    邮件服务 邮件服务的基本功能 1)为用户提供电子邮箱储存空间(用户名@邮件域名) 2)处理用户发出的邮件--------传递给收件的服务器 3)处理用户收到的邮件--------投递到邮箱 部署pos ...

  5. 一个实验教会你配置IPv6地址

    教学视频+技术文档,包你学会 教学视频链接:思科路由器ipv6地址和路由配置https://www.zhihu.com/zvideo/1451566705974149120https://www.zh ...

  6. 使用思科模拟器Packet Tracer与GNS3配置IPv6隧道

    0.说明(重要,务必先看) (1)关于模拟器选择 思科模拟器主要有Packet Tracer(简称PT)和GNS3(IOU暂且不说),可以根据个人的情况做适当的选择,实际上,GNS3的效果要比Pack ...

  7. linux配置端口ipv6地址,linux配置ipv6地址命令

    linux配置ipv6地址命令 模块加载: /etc/module.conf中增加下列行: alias net-pf-10 ipv6 配置ipv6: /etc/sysconfig/network中增加 ...

  8. linux远程连接 ipv6,Ansible 配置 IPv6 连接

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 背景 平时工作中因为通常需要远程操作较多 Linux 环境,引入了 Ansible,但是大都是通过 Ansible 远程 ...

  9. linux重启ipv6_Linux关闭、开启、配置IPv6

    确认IPV6是否开启 如果出现含有以下粗体显示的部分,代表您的机器上IPV6已经开启. 1.使用ifconfig查看自己的IP地址是否含有IPv6地址. inet6 addr: fe80::213:d ...

最新文章

  1. 为什么Python是2021最值得学的编程语言?
  2. java异常体系分类(面试)
  3. LVS(9)——为NAT单独增加路由器
  4. Linux Ubuntu 18.04安装JDK、Hadoop、Hbase以及图形界面
  5. android studio 使用问题 解决方法
  6. pythonturtle库画图_python 用turtle库画图
  7. mysql 独占查询,MySql历史与架构
  8. VMware Workstation “The Msi Failed”解决方法
  9. mysql安装排错-解决1
  10. 【python学习】装饰器@
  11. 微型计算机乘法部件位于,组成原理复习题8.doc
  12. Java9 基于异步响应式流的发布-订阅框架
  13. 苹果企业开发者账号证书申请(保姆级)
  14. 俄罗斯计算机三进制优缺点,为什么我们没有用上三进制的计算机
  15. reactJS项目搭建
  16. bootstrap 页面垂直居中_bootstrap4如何实现div的水平居中以及垂直居中
  17. Altium Designer学习记录之一
  18. [附源码]Java计算机毕业设计SSM东北鹿产品售卖网站
  19. 上传图片到到本地图片服务器操作方式
  20. 2021 美赛MCM\ICM B题

热门文章

  1. 开发人员的幸福:您需要知道的
  2. franz ubuntu_重新审视Unix理念,持续测试,Franz,Gitbase,Python,Linux等
  3. 编程 态度目标_对目标持开放态度,从而推动事业发展
  4. 入门javascript_Espruino入门,Espruino是用于微控制器JavaScript解释器
  5. 医疗项目 开源_医疗保健受开源影响最大的行业之一
  6. JavaScript中语句与函数的执行辨析
  7. Bootstrap3 模态对话框的选项
  8. Bootstrap CSS 编码规范之Class 命名规范
  9. Bootstrap 弹出提示插件popover 的使用方法
  10. es6 Class 不存在变量提升