openGauss/MogDB 配置 IPv6

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 地址 . . . . . . . . . . . . : ...(首选)

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

ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet .../8 scope host lo

valid_lft forever preferred_lft forever

inet6 ::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 1000

link/ether 08:00:27:b5:54:32 brd ff:ff:ff:ff:ff:ff

inet .../24 brd ... scope global enp0s3

valid_lft forever preferred_lft forever

inet6 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 1000

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet .../8 scope host lo

valid_lft forever preferred_lft forever

inet6 ::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 1000

link/ether 08:00:27:b5:54:32 brd ff:ff:ff:ff:ff:ff

inet .../24 brd ... scope global enp0s3

valid_lft forever preferred_lft forever

inet6 2022:1::db1/64 scope global

valid_lft forever preferred_lft forever

inet6 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

openGauss/MogDB 配置 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://...:6432/postgres moguser Admin@1234

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

Input jdbc url:jdbc:postgresql://...: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://2022:1::db1: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,直接使用地址即可。

openGauss/MogDB配置IPv6的更多相关文章

  1. nmcli配置ipv6

    nmcli配置ipv6 作者:Eric 微信:loveoracle11g [root@racooler ~]# nmcli connection show eno16777736 | grep ipv ...

  2. 在 Linux 中自动配置 IPv6 地址

    在 Linux 中自动配置 IPv6 地址 在本文中,我们将学习如何为 ULA 自动配置 IP 地址. 何时使用唯一本地地址 唯一本地地址unique local addresses(ULA)使用 f ...

  3. 在 Windows 中为高级用户配置 IPv6 的指南

    在 Windows 中为高级用户配置 IPv6 的指南 适用于: Windows 10, version 1809Windows Server 2019, all versionsWindows Se ...

  4. 第11章 拾遗4:IPv6(3)_配置IPv6路由

    5. 配置IPv6路由 5.1 配置IPv6静态路由 (1)在路由器上配置静态路由(以R1路由器为例) //静态路由 R1#config t R1(config)#ipv6 unicast-routi ...

  5. 第11章 拾遗4:IPv6(2)_给计算机配置IPv6地址

    4. 给计算机配置IPv6地址 4.1 无状态自动配置IPv6地址 (1)网络拓扑 ①无状态地址自动配置是指不需要DHCP服务器进行管理,由客户端向路由器发送前缀请求(RS)询问其所在网段.路由器收到 ...

  6. IPv6系列-彻底弄明白有状态与无状态配置IPv6地址

    深入研究自动分配IPv6地址的Stateless(无状态)与Stateful(有状态)方式 小慢哥的原创文章,欢迎转载 目录 ▪ 一. Link-Local Address的生成方式 ▪ 二. Glo ...

  7. 工程师技术(一):启用SELinux保护、自定义用户环境、配置IPv6地址、配置聚合连接、配置firewalld防火墙

    一.启用SELinux保护 目标: 本例要求为虚拟机 server0.desktop0 配置SELinux: 确保 SELinux 处于强制启用模式 在每次重新开机后,此设置必须仍然有效 方案: SE ...

  8. 配置IPv6公网地址DDNS并开放外网访问端口

    目前使用三大运营商宽带服务都会下发公网IPv6地址,这样我们想要在外网访问家里的路由.NAS等设备就可以直接通过IPv6地址来访问了.但是每次重新拨号后IPv6地址都会改变,而且IPv6的地址很长,这 ...

  9. 配置IPv6地址跳变——网络测试仪实操

    第一部分:什么是IPv6地址跳变? IPv6地址跳变是指IPv6地址进行一系列有规则的变化,Renix支持对IPv6地址进行递增.递减.列表和随机变化. 如当用户想要仿真大量的源IPv6地址变化的数据 ...

  10. Linux之如何配置IPV6网络

    配置IPV6地址小笔记 #例题: 1)为server添加一个IPv6地址fd00:ba5e:ba11:10::10/64: 2)为client添加一个IPv6地址fd00:ba5e:ba11:10:: ...

随机推荐

  1. Linux查看文件大小、磁盘使用情况

    1.显示磁盘的可用情况: df -h 2.显示文件夹大小 du -ka folder | sort -rnk 1 | head -n 10

  2. 【Azure 应用服务】用App Service部署运行 Vue.js 编写的项目,应该怎么部署运行呢?

    问题描述 用App Service部署运行 Vue.js 编写的项目,应该怎么部署运行呢? 问题解答 VUE通常是运行在客户端侧的JS框架. App Service 在这种场景中是以静态文件的形式提供 ...

  3. C语言趣味编程之三天打鱼两天晒网

    include <stdio.h> typedef struct date {//定义一个日期结构体date,三个成员变量year\month\day,使得年月日作为一个整体,相互联系. ...

  4. 使用svgo-loader只对部分文件生效

    svgo-loader配合svg-sprite-loader使用,网上教程很多,不赘述 const svgRule = config.module.rule("svg-sprite" ...

  5. CYQ.Data 支持 KingbaseES人大金仓数据库

    KingbaseES人大金仓数据库介绍: KingbaseES是一种关系型数据库管理系统,也被称为人大金仓数据库.KingbaseES 是北京人大金仓信息技术股份有限公司研发的,具有自主知识产权的通用 ...

  6. Apollo获取配置异常:Load config failed, will retry in 1 SECONDS

    一.现象 apollo开启秘钥,服务获取配置参数需要启动参数中添加:jvm参数-Dapollo.accesskey.secret=XXX.日志如下: 二.解决方案 应用服务器时间异常,重置应用服务器时 ...

  7. linux 前端 jenkins打包失败 permission 权限安装 root 安装nodejs,没有权限,另一个账号,需要chmod将文件权限打开

    linux 前端 jenkins打包失败 permission 权限安装 root 安装nodejs,没有权限,另一个账号,需要chmod将文件权限打开 开始以为nodejs版本问题 最后发现是安装n ...

  8. 制作B站直播简介

    本文只用于个人总结备份,如果对你有帮助就更好了. 准备工作 准备好简介要用的的背景图.头像图,上传到图床生成图片链接. 简介的内容可分为主播简介.直播时间.直播内容.联系方式,内容根据实际需要修改,需 ...

  9. Debian打开架构支持

    第一步检查内核有没有 AMD和i386 dpkg --list | grep linux-image  会出现现在电脑上的内核,可以看到支持的架构 dpkg --print-foreign-archi ...

  10. 【机器学习】统计学习方法读书笔记-EM算法(期望最大化算法)

    Expectation Maximization,EM算法是带有隐变量的概率模型参数的极大似然估计(MLE为给定参数,观测数据出现/生成的可能性). 如下为<统计机器学习>中对应EM算法的 ...