网络

动态公网IP再利用

问题

端口映射

内网地址:192.168.188.205的所有端口,映射到外网接口的1-65536,all端口

映射成功后,比如192.168.188.205这台主机搭建了WEB服务在8088端口,此时,访问外网接口的8088端口就可以进行连接

DDNS:

端口映射后,虽然可以达成访问需求,但是毕竟是动态公网IP,此地址每天都会更新,我们可以利用DDNS服务,定期检查现在公网,把这个地址自动写进DNS的域名解析A记录的值

DDNS工作流程:

获取当前公网IP地址

通过API的ID与密码登录DNS控制台

修改配置文件里子域名的IP值

通过定时任务定时更新域名解析的值为当前公网IP

材料:

我拿已经注册好的域名来做一个演示(DNSPod平台)

在控制台->我的域名->选择已有域名->增加记录

随便增加一个三级域名记录:xxx.llzdsec.com,类型为A记录,记录值随便填

获取控制台API

点击右上角头像->账号中心->API密钥->DNSPod Token

创建成功后,请记住ID与Token值,为API的账号与密码

编辑脚本

1
2
mkdir /ddns -m 777 
vim /ddns/ddns.sh
BASH

修改TOKEN,DOMAIN,SUB_DOMAIN为实际值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/bin/bash

# This program establish ddns service
# to modify the public ip address of dns server.
# The dns server is dnspod.
# /etc/crontab # if centos etc.
# */10 * * * * root /usr/local/sbin/dnspod_ddns.sh 1>&2> /dev/null
# /etc/crontabs/root # if openwrt etc.
# */10 * * * * /usr/sbin/dnspod_ddns.sh

#TOKEN=id,token
TOKEN="112233,67fa231667a33de0f5255f62d33161eb"
#full domain name
DOMAIN="yourdomain.com"
#sub domain first name
SUB_DOMAIN="xxx"

# TOKEN=`cat dnspod_ddns.conf|grep TOKEN|awk -F'=' '{print $2}'`
# DOMAIN=`cat dnspod_ddns.conf|grep -e '^DOMAIN'|awk -F'=' '{print $2}'`
# SUB_DOMAIN=`cat dnspod_ddns.conf|grep SUB_DOMAIN|awk -F'=' '{print $2}'`


DATA="login_token=$TOKEN&format=json&domain=$DOMAIN&sub_domain=$SUB_DOMAIN&record_type=A&offset=0&length=3"
JOSN_RECORDS=`curl -4 -s -X POST https://dnsapi.cn/Record.List -d $DATA`

RECORD_ID=`echo $JOSN_RECORDS|sed '/id/ s/.*id":"\(.*\)","ttl.*/\1/'`
LINE_ID=`echo $JOSN_RECORDS|sed '/line_id/ s/.*line_id":"\(.*\)","type.*/\1/'`
#=================get record ip
IP_RESOLVED=`echo $JOSN_RECORDS|sed '/value/ s/.*value":"\(.*\)","enabled.*/\1/'`

#================get real ip
#REAL_IP=`cat</dev/tcp/ns1.dnspod.net/6666`
REAL_IP=`curl -4 -s myip.ipip.net|awk -F' |:' '{print $3}'`

#REAL_IP="2.2.3.2"
if [ $REAL_IP != $IP_RESOLVED ]; then
#================modify record
DATA="login_token=$TOKEN&format=json&domain=$DOMAIN&record_id=$RECORD_ID&sub_domain=$SUB_DOMAIN&value=$REAL_IP&record_type=A&record_line_id=$LINE_ID"
# echo $DATA
JSON_RESULT=`curl -4 -s -X POST https://dnsapi.cn/Record.Modify -d $DATA`
echo $JSON_RESULT >> /var/log/dnspod_ddns.log
IP_RESOLVED=$REAL_IP
fi
BASH
1
2
3
chmod ugo+x ./*.sh							#赋予脚本执行权限
nslookup update.llzdsec.com #查看记录是否更改成功
curl ip.sb #查看当前公网ip是否符合
BASH

定时执行

1
2
crontab -e
*/30 * * * * /bin/bash /liangzai/ddns.sh #每30分钟执行一次更新
BASH

反向代理

做完上面步骤后,已经可以通过域名的方式访问内网的WEB应用了,但是由于运营商封堵了80(http)和443(https)端口,导致要用到其他端口才可以访问:update.llzdsec.com:8088,加个端口会显得比较别扭,用反向代理可以很好解决

登录自己购买的服务器

在开始之前,先关闭阻止菜鸟前进的SElinux和防火墙

1
2
3
sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
cat /etc/selinux/config |grep ^SELINUX=
setenforce 0
GRADLE
1
2
systemctl stop firewalld
systemctl disable firewalld
BASH

安装配置

1
yum install nginx -y
BASH
1
vim /etc/nginx/conf.d/proxy.conf
BASH
1
2
3
4
5
6
7
8
server {
listen 80;
server_name test.llzdsec.com;

location / {
proxy_pass http://update.llzdsec.com:8088;
}
}
BASH
1
systemctl enable nginx -now

一个IP建多个Web站点--主机头名法

由于各种原因,我们有时候需要在一个IP地址上建立多个web站点,在IIS中,我们可能通过简单的设置达到这个目标。 在IIS中,每个 Web 站点都具有唯一的、由三个部分组成的标识,用来接收和响应请求: 1、IP地址 2、端口号 3、主机头名。 在IIS中,在一个IP地址上建立多个
  

  由于各种原因,我们有时候需要在一个IP地址上建立多个web站点,在IIS中,我们可能通过简单的设置达到这个目标。

  在IIS中,每个 Web 站点都具有唯一的、由三个部分组成的标识,用来接收和响应请求:

  1、IP地址

  2、端口号

  3、主机头名。

  在IIS中,在一个IP地址上建立多个独立的web站点,通常有两种方法,本文以以例子的形式介绍主机头法,使用这种方法可以建立起专业的虚拟主机。

  环境:假设某公司用一台win2000服务器提供虚拟主机服务,地址是192.168.1.10。在这台服务器已经安装了Internet服务即IIS。

  现在公司要求网络管理员在服务器上使用一个IP为A、B、C、D四个公司建立独立的网站,每个网站拥有自己独立的域名。四家网站域名分别为:www.a.com,www.b.com,www.c.com和www.d.com。

  通过使用主机头,站点只需一个IP地址即可维护多个站点。客户可以使用不同的域名访问各自的站点,根本感觉不到这些站点在同一主机上。

  具体操作如下:

  1、在win2000服务器为四家公司建立文件夹,做为Web站点主目录。如下:

Web站点主目录
Web站点
d:\web\a
A公司网站
d:\web\b
B公司网站
d:\web\c
C公司网站
d:\web\d
D公司网站

  2、使用WEB站点管理向导,分别四家公司建立独立的WEB站点,四者最大的不同是使用了不同的主机头名。

  以下是个表格:

 
A公司网站
B公司网站
C公司网站
D公司网站
IP地址
192.168.1.10
TCP端口
80
权限
读取和运行脚本
主机头名
www.a.com
www.b.com
www.c.com

www.d.com

站点主目录
d:\web\a
d:\web\b
d:\web\c
d:\web\d

  在DNS中将这四个域名注册上,均指向同一地址:192.168.1.10.这样,客户端就可以通过分配指定目录:

  www.a.com 访问A公司站点

  www.b.com 访问B公司站点

  www.c.com 访问C公司站点

  www.d.com 访问D公司站点

  3、每个站点的主机头名可以在WEB站点建立向导中设置,它与站点的IP地址,TCP端口在同一屏上。也可能通过该站点->“属性”->“WEB站点”标签->选IP地址右边的"高级"按钮,跳出“高级多WEB站点配置”进行配置。

   这种方法建立可以建立专业的虚拟主机,几乎所有使用IIS提供虚拟主机的公司都这样做的。

通过Nginx反向代理实现多个域名站点复用一个公网IP

大家都知道现在全球IPv4地址是稀缺资源,如果您的公司或自己的互联网相关应用需要对外提供服务,那么固定IP是必不可少的。申请一条带固定公网IP的互联网线路所提供的免费IP是有限的,如果需要扩充IP地址则需要增加月租费用,如果您要发布的域名及站点比较多的话,每个域名对应一个固定IP,那么就会增加您的成本,长久下来也是一笔不小的费用。

另外互联网站点通常为了增加应用的高可靠性以及横向的扩展性,通常会部署如F5、LVS、HAproxy或NGINX这类的反向代理(负载均衡)的硬件或软件在web服务器的前面,以实现四层、七层的负载均衡能力。

一、

对于有多个站点的情况,通常是通过二级域名来区分,比如说你有2个站点,你可以做2条DNS分别解析到2个不同的公网IP上。例如:

站点1: news.aaa.com 192.168.50.123

站点2: sports.aaa.com 192.168.50.124

这样当用户请求news.aaa.comsports.aaa.com时,就会访问到对应的页面里,但这样就会消耗掉2个公网IP,如果你有N个站点,以此类推,你就需要N个公网IP地址。

二、

有朋友会说,我可以通过IP+端口号的方式来区分我的站点啊,将2个不同的域名DNS解析为同一个公网IP,这样我也是可以复用我这个公网IP的,比如将192.168.50.123:80(默认端口)映射到news.aaa.com,将192.168.50.123:8080映射到sports.aaa.com这个站点,用户访问时则需要在浏览器输入

sports.aaa.com:8080,这样也可以实现复用1个公网IP达到访问2个不同域名站点的需求。但问题是域名带了端口号之后对于用户体验就非常不友好了,对于小白用户来说8080端口号可能还容易敲错。对于内部用户还好,但是对于外部用户如果网站多加个端口号来访问并不太现实。

以上复用公网IP,用端口号区分网站的做法,将2个域名做DNS解析到同一个公网IP。

站点1: news.aaa.com 192.168.50.123

站点2: sports.aaa.com 192.168.50.123

三、

那有没有办法多域名多站点的情况下,通过同一个IP+80端口来访问呢?是有办法的,以下就以NGINX作为反向代理(负载均衡)为例介绍一下如何实现,其他硬件或软件也是同理的。主要是用到“虚拟主机”的这个功能,来实现公网IP的收敛。

首先NGINX作为反向代理需要使用七层代理模式(Nginx默认即为七层代理),大家知道http的请求是有http报文头的,在http报文头里有个字段叫做host,当我们用浏览器输入一个域名访问一个站点时,http request报文头里面就会插入对应的host域名,Nginx反向代理服务器则可以通过获取这个http request的报文头host字段,通过判断这个域名根据设定的转发规则,转发到相应的Web集群服务器里,并response对应的页面给到浏览器,这样就能够实现根据不同域名解析到同一个公网IP及端口的复用的场景,节省了公网IP的使用了。

以下是Nginx里的具体配置及请求过程,其实配置是非常简单的,只要根据servername来proxy_pass给不同的upstream即可(因网上已有大量讲解nginx反向代理及负载均衡的配置详解,这里具体配置参数的含义就不再赘述了)。

编辑nginx配置文件,vim /etc/nginx/nginx.conf

1、分别创建2个upstream,也就是后台真实服务器的pool,一个是news指向web服务器web服务器192.168.50.201,另外一个是sports,指向web服务器192.168.50.202;

2、分别创建2个server并监听80端口,其中一个设定servername为news.aaa.com,proxy_pass转发到news这个upstream,另外一个设定为sports.aaa.com,proxy_pass转发到sports这个upstream;

3、Nginx反向代理对外发布的是192.168.50.123这个IP;

http {

upstream news{
ip_hash;
server 192.168.50.201:80;
}

upstream sports{
ip_hash;
server 192.168.50.202:80;
}

server {
listen 80;
server_name news.aaa.com ;
location / {
proxy_pass http://news;
proxy_set_header Host $http_host;
}

}
server {
listen 80;
server_name sports.aaa.com;
location / {
proxy_pass http://sports;
proxy_set_header Host $http_host;
}

}
}

下面我们来测试一下,我自己的电脑模拟为客户端,并修改系统的hosts文件模拟DNS解析news.aaa.comsports.aaa.com解析到192.168.50.123这个IP地址,windows的hosts文件在这个目录下C:\Windows\System32\drivers\etc

通过浏览器访问news.aaa.com

通过浏览器访问sports.aaa.com

 

以上,就实现了使用http报文头的host来选择转发到相应的节点,实现虚拟主机的功能。当然根据http报文头还可以使用很多的规则进行七层转发的操作。。

WHOIS 数据

亲爱的贵重客户:

此消息提醒您,可帮助您使与域名注册关联的联系人数据保持最新状态。我们的记录包括以下信息:

域名:example.com
注册人姓名:IANA_RESERVED

注册人:
名称:互联网号码分配局(IANA)
地址:4676 Admiralty Way, Suite 330
城市:Marina del Rey
州/省:CA
国家:美国
邮编:92092

行政联系人:
名称:互联网号码分配局(IANA)
地址:4676 Admiralty Way, Suite 330
城市:Marina del Rey
州/省:CA
国家:美国
邮编:92092
电话:310-823-9358
传真:310-823-8649
电子邮件:res-dom@iana.org

技术联系人:
名称:互联网号码分配局(IANA)
地址:4676 Admiralty Way, Suite 330
城市:Marina del Rey
州/省:CA
国家:美国
邮编:92092
电话:310-823-9358
传真:310-823-8649
电子邮件:res-dom@iana.org

原始创建日期:2001年11月1日
到期日期:2001年11月1日

名称服务器信息:
名称服务器:a.iana-servers.net。
名称服务器:b.iana-servers.net。
名称服务器:c.iana-servers.net。

如果上述任何信息不准确,您必须通过访问我们的网站进行更正。(如果您的审查表明上述所有信息都是准确的,则无需采取任何行动。)请记住,根据您的注册协议条款,提供虚假的WHOIS信息可以作为取消您的域名注册的理由。

如何更正我的WHOIS信息?

申请企业网络专线流程及资质

中国电信

流程

证件

  1. 营业执照复印件
  2. 组织机构代码证
  3. 银行开户许可证
  4. 法人身份证复印件
  5. 经办人身份证复印件

协议

网络优化

调优思路

本章主要是围绕优化网卡性能和利用网卡的能力分担CPU的压力来提升性能。在高并发的业务场景下,推荐使用两块网卡,减少跨片内存访问的次数。即将两块网卡分别绑定在服务器的不同CPU上,每个CPU只处理对应的网卡数据。高并发场景还可以为网卡选择x16的PCIe卡。

说明:

高并发场景是指:在同时或极短时间内,有大量的请求到达服务端,每个请求都需要服务端耗费资源进行处理,并做出相应的反馈。

主要优化参数

优化项

优化项简介

默认值

生效范围

鲲鹏916处理器

鲲鹏920处理器

调整TLP(Transaction Layer Packet)的最大有效负载

调整PCIE总线每次数据传输的最大值

128B

重启生效

Y

Y

设置网卡队列数

调整网卡队列数量

不同操作系统和网卡不同

立即生效

Y

Y

将每个网卡中断分别绑定到距离最近的核上

减少跨NUMA访问内存

Irqbalance

立即生效

Y

Y

聚合中断

调整合适的参数以减少中断处理次数

不同操作系统和网卡不同

立即生效

Y

Y

开启TCP分段Offload(卸载)

将TCP的分片处理交给网卡处理

关闭

立即生效

Y

Y

父主题: 网络子系统性能调优

BIND DNS

域名系统可帮助您在互联网上达到您想要的位置。确保您知道它是什么,以及如何设置、配置和测试它。

域名系统(DNS)用于将主机名解析(翻译)为互联网协议(IP)地址,反之亦然。DNS服务器,也称为名称服务器,将IP地址映射到主机名或域名。

在本文中,您将学习DNS的基础知识,从DNS如何获取IP地址和主机名,到正向和反向查找区域的概念。它还将向您展示如何安装和配置DNS,定义和编辑区域文件,并验证DNS是否可以借助命令解析到正确的地址。如果您是DNS的新手,本文将帮助您使用基本配置在系统上玩它。

DNS的工作原理

当客户端从nameserver请求信息时,它通常连接到端口53,然后nameserver解析请求的名称。

图像
客户端和服务器之间的DNS查找请求和响应
(Ashish Bharadwaj,CC BY-SA 4.0)

DNS 在哪里获取 IP 地址?

您可能会想知道DNS如何获取相应主机名或域名的IP。DNS如何在不同的IP地址之间搜索并正确关联您的域名?谁存储了域名和IP地址之间的映射?

DNS工作流程说明了DNS内部通信的方式以及它如何解决地址问题。

图像
DNS工作流程
(Ashish Bharadwaj,CC BY-SA 4.0)
  • 当客户端搜索域名www.example.com时,请求最初将发送到互联网服务提供商(ISP)解析器。它将响应用户解析域名的请求。
  • 如果在解析器上找不到IP地址,请求将转发到根DNS服务器,然后转发到顶级域(TLD)服务器。
  • TLD服务器存储顶级域的信息,如.com.net
  • 请求被转发给名称服务器,这些服务器知道有关域和IP地址的详细信息。
  • 命名服务器响应ISP的解析器,然后解析器使用请求的IP响应客户端。
  • 当解析器不知道IP时,它会将IP及其域存储在缓存中,以服务未来的查询。

[立即下载:系统管理员IT自动化指南。】

向前和反向查找

正向查找区域使用域名搜索IP地址,而反向查找区域使用IP地址搜索域名。

图像
正反向查找流程
(Ashish Bharadwaj,CC BY-SA 4.0)

安装和配置DNS

BIND是一个名称服务器服务,负责在基于Linux的DNS服务器上执行域名称到IP的转换。

[root@servera ~] # yum install bind

BIND软件包提供named服务。它从/etc/named/etc/named.conf文件中读取配置。安装此软件包后,您可以开始配置DNS。

配置 /etc/named.conf 文件

首先,在选项字段中添加或编辑这两个值。一个是DNS服务器地址,另一个是允许查询任何地址。

[root@servera ~] # vim /etc/named.conf
listen-on port 53 { 127.0.0.1; 192.168.25.132; };
allow-query { localhost; any; };

以下是上述文件中的值:

  • 192.168.25.132 – DNS 服务器地址
  • 任何 – 匹配每个 IP 地址

定义正反区域

/etc/named.conf/etc/named.rfc1912.zones中定义正向和反向区域(您可以在其中任何文件中定义区域)。在本例中,我将区域定义详细信息附加到/etc/named.rfc1912.zones文件中。

[root@servera ~] # vim /etc/named.rfc1912.zones
  zone "example.com" IN { type master;
  file "example.forward.zone";
  allow-update { none; };
};

  zone "25.168.192.in-addr.arpa" IN { 
   type master;
   file "example.reverse.zone";
   allow-update { none; };
};

创建前进和反向区域文件

您还需要在/var/named目录中创建正向和反向区域文件。

注意:默认情况下,named.conf文件包括用于检查区域文件的/var/named目录。在安装BIND软件包期间创建named.localhostnamed.loopback的示例区域文件。

[root@servera ~] # vim /var/named/example.forward.zone
图像
前瞻性查找区域
(Ashish Bharadwaj,CC BY-SA 4.0)
[root@servera ~] # vim /var/named/example.reverse.zone
图像
反向查找区域
(Ashish Bharadwaj,CC BY-SA 4.0)

将nameserver IP添加到/etc/resolv.conf

首先,您必须禁用NetworkManager的DNS处理,因为它从其活动连接配置文件中动态更新带有DNS设置的/etc/resolv.conf文件。要禁用此功能并允许手动编辑/etc/resolv.conf,您必须创建一个文件(例如90-dns-none.conf),作为/etc/NetworkManager/conf.d/目录中的根文件,其中包含以下内容:

[main]
dns=none

保存文件并重新加载(重新启动)NetworkManager。

# systemctl reload NetworkManager

重新加载NetworkManager后,它不会更新/etc/resolv.conf。现在,您可以手动将nameserver的IP地址添加到/etc/resolv.conf文件中。

[root@servera ~] # vim /etc/resolv.conf
# Generated by NetworkManager 
search localdomain example.com 
nameserver 192.168.25.132

做好准备,以防出错。阅读DNS故障诊断简介。】

启动/重新启动并启用指定的服务

如果named服务没有运行或被禁用,则启动并启用它。如果它已经处于活动状态(正在运行),并且您进行了所有这些配置,则需要重新启动服务以进行更改。

[root@servera ~] # systemctl status named.service

[root@servera ~] # systemctl start named.service

[root@servera ~] # systemctl enable named.service

[root@servera ~] # systemctl restart named.service

验证DNS名称分辨率

您已安装BIND软件包,配置named文件,创建了查找区域,并重新启动了服务以使配置生效。现在使用nslookupdig命令来检查DNS是否正常工作,并验证您是否得到了预期结果。

  • nslookup是一个查询互联网域名服务器的程序。
  • dig是查询DNS服务器的工具。它执行DNS查找并显示从nameserver返回的答案。

使用nslookup查询

[root@servera ~] # nslookup servera.example.com
  Server: 192.168.25.132
  Address: 192.168.25.132#53
  Name: servera.example.com
  Address: 192.168.25.132

[root@servera ~] # nslookup 192.168.25.132 
   132.25.168.192.in-addr.arpa name = servera.example.com.

询问挖掘

以下是前瞻性查找,其中DNS以192.168.11.132作为IP forservera.example.com进行响应:

[root@servera ~] # dig servera.example.com
   ...output truncated...

;; ANSWER SECTION:
servera.example.com. 86400 IN A 192.168.25.132


;; AUTHORITY SECTION:
example.com. 86400 IN NS servera.example.com.

...output truncated...

此示例显示反向查找,其中DNS服务器以servera.example.com作为192.168.25.132的域名进行响应:

[root@servera ~] # dig -x 192.168.25.132
  ...output truncated...

;; ANSWER SECTION:
132.25.168.192.in-addr.arpa. 86400 IN PTR servera.example.com.

;; AUTHORITY SECTION:
25.168.192.in-addr.arpa. 86400 IN NS servera.example.com.

;; ADDITIONAL SECTION:
servera.example.com. 86400 IN A 192.168.25.132

...output truncated...

总结

在本文中,您了解了什么是DNS及其工作原理。此外,您现在知道什么是正向和反向查找区域以及它们的工作原理。您还学习了如何安装BIND软件包,该软件包负责在系统上设置DNS并配置named文件和查找区域。最后,您学习了两个命令,nslookupdig,来查询DNS分辨率。

windows 5G路由器安装

https://cloud.tencent.com/developer/article/1678119