From 59b7e87317692cc8ebe7ad9e611b1884ce9f9bab Mon Sep 17 00:00:00 2001 From: xking Date: Sun, 19 Nov 2023 14:01:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...结合rip动态路由协议实现互访.md | 345 +++++++++++------- postgresql_and_edb/postgresql导入导出.md | 11 + postgresql_and_edb/psql_常用命令.md | 120 ++++-- 3 files changed, 330 insertions(+), 146 deletions(-) diff --git a/openwrt/zeroTier结合rip动态路由协议实现互访.md b/openwrt/zeroTier结合rip动态路由协议实现互访.md index de16665..01019dc 100644 --- a/openwrt/zeroTier结合rip动态路由协议实现互访.md +++ b/openwrt/zeroTier结合rip动态路由协议实现互访.md @@ -4,46 +4,6 @@ 个人使用ZeroTier体验不错, -ZeroTier 实现局域网互访的方式有 双向nat 转发、大子网嵌套小子网,设置静态路由等。 - - - -双向转发 - - 流量会经过 openWrt的防火墙,源地址重写,在服务器端只能看到openWrt的地址 - - 获取不到 另一个子网的具体主机地址。 - - - -子网嵌套 - -设置繁琐 扩展不方便, - - - -静态路由 - -需要手动在 openWrt 上设置 静态路由,局域网多时设置繁琐。 - -如:A B C 三个局域网 需要互访 - -需要添加 (N-1) * N 条记录 (N为局域网数量) - - A 访问B 的路由 - - A 访问C 的路由 - - B 访问A 的路由 - - B 访问C 的路由 - - C 访问B 的路由 - - C 访问A 的路由 - -共六条记录。 - ### 名词解释 @@ -70,118 +30,185 @@ frr 是一个 实现了 rip bgp 等多种 路由协议的软件包,同类型 ```mermaid graph TD; - pro+-->openWrt; - pro+--> localhost; - pro+--> nas; - ZeroTier-->ZeroTier节点; - ZeroTier-->openWrt; + + LAN-124((LAN-124.0/24)) + ZT-17((zt-17.0/24)) + LAN-123((LAN-123.0/24)) + + + + + nx30pro(nx30pro) + mi_4A(mi_4A) + + ZT-192((zt-192.0/24)) + ZT-191((zt-191.0/24)) + + pro+(pro+) + + + + + + LAN-124-->|192.168.124.1|nx30pro + nx30pro-->|192.168.124.100/24|LAN-124-pc1; + nx30pro-->|192.168.124.120/24|LAN-124-pc2; + + + LAN-123 -->|192.168.123.1|pro+ + + ZT-17 -.->|10.147.17.214/24| mi_4A; + ZT-17 -.->|10.147.17.219/24| nx30pro; + + ZT-192-.->|192.168.192.2|mi_4A; + ZT-191-.->|192.168.191.2|mi_4A; + + ZT-192-.->|192.168.192.2|zt-192-pc1; + ZT-191-.->|192.168.191.2|zt-191-pc1; + + + pro+-->|192.168.123.100|LAN-123-PC; + pro+-->|192.168.123.71|nas; + pro+-->|192.168.123.10|mi_4A; + + + + + + + + + + + + + ``` -LAN 是本地局域网 路由器为中兴的 **PRO+** 网段为 `192.168.123.0/24` +LAN123 是本地局域网(租房) 路由器为中兴的 **PRO+** 网段为 `192.168.123.0/24` -ZeroTier 虚拟局域网 网段为 `192.168.191.0/24` +LAN124 是本地局域网 (家) 路由器为h3c的 **nx30pro** 网段为 `192.168.124.0/24` -openWrt 是刷了 openWrt 固件的 小米4A路由器,在次拓扑中 充当两个 网段的lan节点 +zt17 虚拟局域网 (用于动态路由通信) 网段为 `10.147.17.0/24` -openWrt 在 pro+ 下的地址为 192.168.123.10/24 网关为192.168.123.1 +zt192 虚拟局域网 (用于节点接入) 网段为 `192.168.192.0/24` + +zt191 虚拟局域网 (用于节点接入) 网段为 `192.168.191.0/24` + + + +mi_4a 是刷了openWrt 固件的 小米4A路由器, + +在次拓扑中 充当网段的中转节点 + +ip 如下 + +``` +192.168.123.10/24 本地局域网 +192.168.192.2/24 zt节点接入 +192.168.191.2/24 zt节点接入 +10.147.17.214/24 动态路由互联 +``` + + + +nx30pro 是刷了 openWrt 固件的新华三30pro路由器,在次拓扑中充当两个网段的中转节点 + +由于直接采用的nx30pro 拨号 ,本节点比上一个节点少一个路由。 + +ip如下 + +``` +192.168.124.1/24 本地局域网 +10.147.17.219/24 动态路由互联 +``` + +nas 是租房的nas 服务器 ip为 `192.168.123.71/24` -openWrt 在 ZeroTier 下的地址为 192.168.191.2/24 网关 默认 -### 准备工作 #### 创建ZeroTier -首先 在 ZeroTier 里创建局域网 得到 网络ID +创建三个 zt-lan -在本机电脑上安装 ZeroTier one 并加入局域网。 +网段分别为 -默认是 私有局域网 需要去 ZeroTier 通过才能加入 - -![image-20230917125549750](http://pic.61dz.com/pic/image-20230917125549750.png) +192.168.192.0/24 zt节点接入 +192.168.191.0/24 zt节点接入 +10.147.17.0/24 动态路由互联 -#### 配置 openWrt +在192.168.192.0/24 添加路由 -openWrt lan 口接入电脑,登陆后删除 wan wan6接口 , +``` +192.168.191.0/24 via 192.168.192.2 +192.168.123.0/24 via 192.168.192.2 +192.168.124.0/24 via 192.168.192.2 +``` -编辑LAN接口 将IP设置为静态IP 与本地LAN 同一网段 这里设置成 `192.168.123.10/24` +在192.168.191.0/24 添加路由 -![image-20230917123125627](http://pic.61dz.com/pic/image-20230917123125627.png) +``` +192.168.192.0/24 via 192.168.191.2 +192.168.123.0/24 via 192.168.191.2 +192.168.124.0/24 via 192.168.191.2 +``` -将 openWrt LAN 口 接入 5400pro+ 的lan口 测试openWrt是否能上网 - - - -##### 安装 ZeroTier - -在openWrt 软件包里安装 ZeroTier 并填入之前创建的 ZeroTier 局域网ID 加入局域网 - - - -自动NAT 不需要勾选 - -自动NAT 不需要勾选 - -自动NAT 不需要勾选 - - - -![image-20230917125355581](http://pic.61dz.com/pic/image-20230917125355581.png) - - - -添加 ZeroTier 的接口(不确定是否必须) - - - -在接口界面 新增接口 协议选择静态IP - -设备选择 zt 的设备 (多个 zt 网络需要确定 设备对应的子网) - -![image-20230917125901432](http://pic.61dz.com/pic/image-20230917125901432.png) - - - -然后填写 IP 为之前在ZeroTier 分配的IP 本文中是 `192.168.192.2/24` - -网关空着 保存即可 - - - -### 路由配置 - - - -#### 本地路由配置 - -登录本地 路由器 设置静态路由 将ZeroTier的网段指向 openWrt 在5400 pro+ 中的地址 - -![image-20230917123812418](http://pic.61dz.com/pic/image-20230917123812418.png) - - - -#### ZeroTier 路由配置 - - - -登录ZeroTier 设置静态路由 将5400 PRO+ 的网段指向 openWrt 在ZeroTier 中的地址 +如图 ![image-20230917124033764](http://pic.61dz.com/pic/image-20230917124033764.png) -#### openWrt 路由配置 + +#### 配置 openWrt + +##### 安装 ZeroTier + +在 mi_4a,nx30pro 中分别安装 ZeroTier + +###### mi_4a + +在mi_4a 中将三个zt-lan 添加至路由其中, + +并为三个zt-lan 创建接口,按照规划设置静态ip,防火墙区域选择lan + + + +###### nx30pro + +在nx30pro中将zt-17的id 添加至路由其中, + +并创建 接口按规划的设置IP,防火墙区域选择lan + + + +##### 安装 frr + **ssh 登录 openWrt 安装 以下软件包** +``` +opkg update +opkg install frr frr-ripd frr-zebra frr-vtysh frr-watchfrr +``` + +说明: + +frr frr-zebra frr-vtysh frr-watchfrr 必须装 其他的选配 + + + +完整版如下 + ```bash opkg update opkg install frr frr-babeld frr-bfdd frr-bgpd frr-eigrpd frr-fabricd frr-isisd frr-ldpd frr-libfrr frr-nhrpd frr-ospf6d frr-ospfd frr-pbrd frr-pimd frr-ripd frr-ripngd frr-staticd frr-vrrpd frr-vtysh frr-watchfrr frr-zebra @@ -203,17 +230,25 @@ vi /etc/frr/daemons vi /etc/frr/frr.conf ``` -添加网段 在图中红框位置 添加 - - +添加网段 在图中红框位置 添加 (mi_4a) ``` router rip + route 10.147.17.0/24 network 192.168.123.0/24 + network 192.168.192.0/24 network 192.168.191.0/24 ``` -![image-20230917124516201](http://pic.61dz.com/pic/image-20230917124516201.png) + + +添加网段 在图中红框位置 添加 (华三) + +``` +router rip + route 10.147.17.0/24 + network 192.168.124.0/24 +``` @@ -223,12 +258,72 @@ router rip /etc/init.d/frr restart ``` +查看状态 + +等一两分钟后 + +执行以下命令可以看到 已经在交换路由了,也可以去openwrt 路由界面上观察 是否有rip 字样的路由 + +``` +vtysh +show ip rip status +``` -### 安全管理 -这样配置后 局域网互通 不受防火墙管理,如需要为别人提供服务,只想 别人访问特定的网段 -可以 \ No newline at end of file + +#### pro+路由配置 + + + +登录本地 路由器 设置静态路由 将ZeroTier的网段指向 openWrt 在5400 pro+ 中的地址 + +![image-20230917123812418](http://pic.61dz.com/pic/image-20230917123812418.png) + + + +### 问题 + +- 在租房一侧 存在出入口不一致的情况, 因为在pro+ 上设置的路由 并没有下发到设备侧, + + 如图所示 去程经过mi_4a一个路由, 两跳 到达目的地。回程 经过pro+,mi_4a,两个路由 三跳 到达目的地 + + + + + + ```mermaid + sequenceDiagram + + zt_192_pc->>mi_4a: 192.168.192.3->192.168.192.10 + + mi_4a->>rdp远程桌面: 192.168.123.10->192.168.123.160 + + + rdp远程桌面->> pro: 192.168.123.160->192.168.123.1 + pro->> mi_4a: 192.168.123.1->192.168.123.10 + mi_4a->> zt_192_pc: 192.168.192.2->192.168.192.3 + ``` + + + + 解决办法:在 rdp远程桌面 远程桌面上 添加静态路由 + + ```cmd + route ADD 192.168.192.0 MASK 255.255.255.0 192.168.123.10 METRIC 10 IF 2 + ``` + + 命令解释 + + 添加一条路由 匹配 192.168.192.0/24 的ip 下一跳 去往 192.168.123.10(mi_4a) 权重10 走序号为 2的网卡 + + 网卡需要可以使用 route 命令查看,出来的网卡列表 前两个数字就是需要。 + + ```cmd + route print -4 + ``` + + \ No newline at end of file diff --git a/postgresql_and_edb/postgresql导入导出.md b/postgresql_and_edb/postgresql导入导出.md index d8c893b..0783ef8 100644 --- a/postgresql_and_edb/postgresql导入导出.md +++ b/postgresql_and_edb/postgresql导入导出.md @@ -689,3 +689,14 @@ COPY tcn_stat_sales_volume_total FROM '/home/edbdata/tcn_stat_sales_volume_total +#### 手动创建分区 + +```sql +select 'CREATE TABLE tcn_stat_algorithm_data_fltn_'||"FLT_NBR"|| ' PARTITION OF "TCN_STAT_ALGORITHM_DATA_FLTN" FOR VALUES IN (''' || "FLT_NBR"||''');' +from ( +select distinct"FLT_NBR"::varchar from "TCN_STAT_ALGORITHM_DATA" where "FLT_DT" between '20190101' and '20191231' +EXCEPT +select high_value from all_tab_partitions where table_name = '"TCN_STAT_ALGORITHM_DATA_FLTN"' +) +``` + diff --git a/postgresql_and_edb/psql_常用命令.md b/postgresql_and_edb/psql_常用命令.md index 649f253..859e800 100644 --- a/postgresql_and_edb/psql_常用命令.md +++ b/postgresql_and_edb/psql_常用命令.md @@ -1,45 +1,121 @@ 连接数据库, 默认的用户和数据库是postgres + +``` psql -U user -d dbname +``` 切换数据库,相当于mysql的use dbname -\c dbname -列举数据库,相当于mysql的show databases -\l -列举表,相当于mysql的show tables -\dt -查看表结构,相当于desc tblname,show columns from tbname -\d tblname -\di 查看索引 +``` +\c dbname +``` + +列举数据库,相当于mysql的show databases + +``` +\l +``` + +列举表,相当于mysql的show tables + +``` +\dt +``` + +查看表结构,相当于desc tblname,show columns from tbname + +``` +\d tblname +``` + +查看索引 + +``` +\di +``` 创建数据库: -create database [数据库名]; -删除数据库: -drop database [数据库名]; -*重命名一个表: -alter table [表名A] rename to [表名B]; -*删除一个表: -drop table [表名]; -*在已有的表里添加字段: +``` +create database [数据库名]; +``` + +删除数据库: + +``` +drop database [数据库名]; +``` + +重命名一个表: + +``` +alter table [表名A] rename to [表名B]; +``` + +删除一个表: + +``` +drop table [表名]; +``` + +在已有的表里添加字段: + +``` alter table [表名] add column [字段名] [类型]; -*删除表中的字段: +``` + +删除表中的字段: + +``` alter table [表名] drop column [字段名]; -*重命名一个字段: +``` + +重命名一个字段: + +``` alter table [表名] rename column [字段名A] to [字段名B]; -*给一个字段设置缺省值: +``` + +给一个字段设置缺省值: + +``` alter table [表名] alter column [字段名] set default [新的默认值]; -*去除缺省值: +``` + +去除缺省值: + +``` alter table [表名] alter column [字段名] drop default; +``` + 在表中插入数据: + +``` insert into 表名 ([字段名m],[字段名n],......) values ([列m的值],[列n的值],......); +``` + 修改表中的某行某列的数据: + +``` update [表名] set [目标字段名]=[目标值] where [该行特征]; +``` + 删除表中某行数据: + +``` delete from [表名] where [该行特征]; delete from [表名];--删空整个表 +``` + 创建表: + +``` create table ([字段名1] [类型1] ;,[字段名2] [类型2],......<,primary key (字段名m,字段名n,...)>;); +``` + + + +``` \copyright 显示 PostgreSQL 的使用和发行条款 \encoding [字元编码名称] 显示或设定用户端字元编码 @@ -48,4 +124,6 @@ create table ([字段名1] [类型1]