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. 【Azure Redis 缓存】使用StackExchange.Redis,偶发ERROR - Timeout performing HSET (15000ms)

    问题描述 使用StackExchange.Redis 作为Redis客户端SDK,连接Azure Redis服务,长期运行后发现,每天都偶发 Timeout Error. 错误消息如下: StackE ...

  2. Anaconda与Python环境在Windows中的部署

      本文介绍在Win10电脑中,安装Anaconda环境与Python语言的方法.   在这里需要注意,本文介绍的方法是在电脑自身原本不含有Python的情况下进行的:如果大家电脑中原本就下载.安装过 ...

  3. Java 小案例+super使用

    1 package com.bytezero.supertest3; 2 3 /** 4 * 5 * @Description AccountTest类 6 * @author Bytezero·zh ...

  4. C++ //类模板与继承 //类模板与继承 //注意: //1.当子类继承父类是一个类模板时,子类在声名的时候,要指定出父类中T的类型 //2.如果不指定,编译器无法给子类分配内存 //3.如果想灵活指定出父类中的T的类型,子类也需要变为类模板

    1 #include <iostream> 2 #include <string> 3 #include<fstream> 4 using namespace st ...

  5. 7、mysql的缓存优化

    概述 开启Mysql的查询缓存,当执行完全相同的SQL语句的时候,服务器就会直接从缓存中读取结果,当数据被修改,之前的缓存会失效,修改比较频繁的表不适合做查询缓存. 操作流程 客户端发送一条查询给服务 ...

  6. HUAWEI WATCH GT3手表芯片传感器简析

    一 这里梳理一下华为手表GT3所使用的芯片 芯片A: BES2500L 恒玄BES2500L智能手表SoC,集存储.音频.连接为一体,集成BT5.2双模蓝牙,可支持BLE数据传输.蓝牙通话和音乐播放功 ...

  7. 中国十大热门网站榜中榜/Alexa综合排名TOP10(2015)

    互联网企业是由网络为基础的经营,一般包括IT行业.电子商务.软件开发等. 商业时代催生网络时代兴起,互联网以其强大的信息存储.信息互通.信息处理等功能,风靡全世界,无处无有,轻松一点,信息就在你面前. ...

  8. HiSi 3516CV500 NNIE(Neural Network Inference Engine) 摸鱼记录(3) ---真机调试(实例分析)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  9. android ndk生成第三方库的so方法(ndk-build,Application.mk,Android.mk)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  10. 三维模型3DTile格式轻量化顶点压缩主要技术方法分析

    三维模型3DTile格式轻量化顶点压缩主要技术方法分析 三维模型顶点压缩是3DTile格式轻量化压缩的重要组成部分,能有效减小数据大小,提高数据处理效率.下面将详细分析几种主要的顶点压缩技术方法: 预 ...