Service DNS Linux et compilation et installation du code source MariaDB10.2.31

1. Décrivez brièvement le principe du serveur DNS et créez le serveur primaire-secondaire.

La communication entre les périphériques du réseau TCP / IP actuel est réalisée en utilisant et en s'appuyant sur des adresses IP. Cependant, les adresses IP sous forme numérique sont difficiles à retenir. Lorsqu'il existe de nombreux périphériques réseau, il est "impossible" de se souvenir de l'adresse IP de chaque périphérique. Alors, comment résoudre ce problème? On peut donner à chaque appareil réseau un nom convivial, tel que: www.abc.com, ce genre de nom composé de mots est évidemment plus facile à retenir. Mais les ordinateurs ne comprendront pas ce type de nom. Nous pouvons utiliser un service de résolution de nom pour convertir (analyser) le nom en adresse IP. Nous pouvons donc utiliser le nom pour accéder directement aux appareils du réseau. En plus de cela, il y a une fonction importante, l'utilisation des services de résolution de noms peut réaliser le découplage de l'hôte et de l'IP, c'est-à-dire: lorsque l'IP hôte change, il suffit de modifier le service de noms, les utilisateurs peuvent toujours accéder via le nom d'origine Pas affecté.

Fonctionnement du DNS:
Étape 1: Le client effectue une demande de résolution de nom de domaine et envoie la demande au serveur de nom de domaine local.
Étape 2: lorsque le serveur de noms de domaine local reçoit la demande, il interroge d'abord le cache local. S'il y a l'élément d'enregistrement, le serveur de noms de domaine local renvoie directement le résultat de la requête.
Étape 3: S'il n'y a pas d'enregistrement de ce type dans le cache local, le serveur de nom de domaine local envoie directement la demande au serveur de nom de domaine racine, puis le serveur de nom de domaine racine renvoie au serveur de nom de domaine local le maître du domaine interrogé (sous-domaine de la racine) L'adresse du serveur de noms de domaine.
Étape 4: le serveur local envoie une demande au serveur de noms de domaine renvoyé par l'étape précédente, puis le serveur qui accepte la demande interroge son propre cache. S'il n'existe aucun enregistrement de ce type, il renvoie l'adresse du serveur de noms de domaine de niveau inférieur concerné.
Étape 5: Répétez l'étape 4 jusqu'à ce que vous trouviez l'enregistrement correct.
Étape 6: Le serveur de noms de domaine local enregistre le résultat renvoyé dans le cache pour la prochaine utilisation et renvoie également le résultat au client.

Pour construire un serveur DNS maître-esclave, nous supposons qu'il existe un domaine de wjwj.le.

1. Deux serveurs sont nécessaires pour mettre en œuvre, installer le logiciel lié au service DNS sur les deux serveurs et démarrer le service.

[root@centos8 ~]#dnf -y install bind bind-utils
[root@centos8 ~]#systemctl enable --now named

Commencez à configurer le serveur principal

2. Modifiez le fichier de configuration afin que le service DNS surveille toutes les adresses IP du serveur et fournisse des services à tous les clients.

[root@centos8 ~]#vim /etc/named.conf             
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// allow-query     { localhost; };
#在options下添加从服务器地址,只允许从服务器同步,以保证安全。
allow-transfer  {10.0.0.88;};

3. Définissez le fichier de bibliothèque d'analyse régionale et définissez les autorisations.

[root@centos8 /var/named]#vim /var/named/wjwj.le.zone 
$TTL 1D
@   IN SOA  ns1 admin.wjwj.le. (
                    20201201    ; serial
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H )    ; minimum

@   NS  ns1
@   NS  ns2

ns1  A   10.0.0.78
ns2  A   10.0.0.88
www A  10.0.0.7

www2 CNAME websrv
websrv  A   10.0.0.6
websrv  A   10.0.0.7
[root@centos8 ~]#chmod 640 /var/named/wjwj.le.zone;chgrp named  /var/named/wjwj.le.zone

4. Modifiez le fichier /etc/named.rfc1912.zones et écrivez le nom de fichier de la bibliothèque d'analyse de zone.

[root@centos8 ~]#vim /etc/named.rfc1912.zones 
zone "wjwj.le" IN {
        type master;
        file "wjwj.le.zone";

5. Utilisez la commande pour vérifier s'il existe des erreurs dans le fichier de configuration et le fichier de bibliothèque d'analyse de surface.

[root@centos8 ~]#named-checkconf
[root@centos8 ~]#named-checkzone "wjwj.le" /var/named/wjwj.le.zone 
zone wjwj.le/IN: loaded serial 20201201
OK

6. Rendez le fichier de configuration effectif.

[root@centos8 ~]rndc reload

Configurons maintenant le serveur esclave.

7. Modifiez le fichier de configuration afin que le service DNS écoute toutes les adresses IP du serveur et fournisse des services aux clients avec toutes les adresses IP.

[root@centos8 ~]#vim /etc/named.conf             
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// allow-query     { localhost; };
#在options下添加以从服务器地址,防止其他主机同步:
allow-transfer  {10.0.0.88;};

8. Modifiez le fichier /etc/named.rfc1912.zones du serveur esclave et ajoutez la configuration du serveur esclave. Le serveur esclave n'a pas besoin d'écrire un fichier de bibliothèque d'analyse séparé, il est directement synchronisé avec le serveur maître et il est stocké dans un format crypté, qui ne peut pas être visualisé directement.

[root@centos88 ~]#vim /etc/named.rfc1912.zones 
zone "wjwj.le" IN {
        type slave;
        masters {10.0.0.78};
        file "slave/wjwj.le.zone.slave";
};

9. Modifiez le fichier de configuration du service DNS du serveur esclave afin que le service DNS surveille toutes les adresses IP du serveur et fournisse des services à tous les clients.

[root@centos8 ~]#vim /etc/named.conf             
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// allow-query     { localhost; };
#在options下添加以从服务器地址,防止其他主机同步,增加安全性
allow-transfer  {none;};

10. Rendez le fichier de configuration effectif.

[root@centos88 ~]rndc reload

11. Vérifiez si le service est normal.

#测试主服务器
[root@centos76 ~]#host www2.wjwj.le 10.0.0.78
Using domain server:
Name: 10.0.0.78
Address: 10.0.0.78#53
Aliases: 

www2.wjwj.le is an alias for websrv.wjwj.le.
websrv.wjwj.le has address 10.0.0.6
websrv.wjwj.le has address 10.0.0.7
#测试从服务器是否正常
[root@centos76 ~]#host www2.wjwj.le 10.0.0.88
Using domain server:
Name: 10.0.0.88
Address: 10.0.0.88#53
Aliases: 

www2.wjwj.le is an alias for websrv.wjwj.le.
websrv.wjwj.le has address 10.0.0.6
websrv.wjwj.le has address 10.0.0.7

12. Ajoutez un enregistrement dans le fichier de bibliothèque d'analyse régionale du serveur maître pour tester si le serveur esclave peut modifier la synchronisation automatique.

[root@centos8 ~]#vim /var/named/wjwj.le.zone 
#添加一条记录
ftp A  10.0.0.111
#务必修改版本号,把数值改大一些即可,否则从服务器不会同步
#使配置生效
[root@centos8 ~]#rndc reload
server reload successful
#使用另外一台主机进行测试,测试从服务器数据是否正确
[root@centos76 ~]#dig ftp.wjwj.le @10.0.0.88

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.3 <<>> ftp.wjwj.le @10.0.0.88
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46485
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ftp.wjwj.le.           IN  A

;; ANSWER SECTION:
ftp.wjwj.le.        86400   IN  A   10.0.0.111

;; AUTHORITY SECTION:
wjwj.le.        86400   IN  NS  ns2.wjwj.le.
wjwj.le.        86400   IN  NS  ns1.wjwj.le.

;; ADDITIONAL SECTION:
ns1.wjwj.le.        86400   IN  A   10.0.0.78
ns2.wjwj.le.        86400   IN  A   10.0.0.88

;; Query time: 1 msec
;; SERVER: 10.0.0.88#53(10.0.0.88)
;; WHEN: Fri Dec 25 17:28:48 CST 2020
;; MSG SIZE  rcvd: 124

13. Le service DNS maître-esclave a été créé avec succès.

2. Créez et implémentez un DNS intelligent.

Smart DNS peut déterminer la zone et la ligne de l'utilisateur en fonction de l'adresse IP de l'utilisateur et renvoyer l'adresse IP la plus appropriée à l'utilisateur pour accélérer l'accès de l'utilisateur. Nous supposons que le segment de réseau à Pékin est 192.168.0.0/24 et le segment de réseau à Shanghai est 10.0.0.0/24 pour simuler les services DNS intelligents.

1. Installez le logiciel DNS et démarrez-le.

[root@centos8 ~]#yum install bind bind-utils -y;systemctl enable --now named

2. Ajoutez une adresse IP de 192.168.0.100/24 ​​au serveur.

[root@centos8 ~]#ip a a 192.168.0.100/24 dev bond0 label bond0:1

3. Modifiez le fichier de configuration.

[root@centos8 ~]#vim /etc/named.conf
#在文件最前面加下面行
acl beijing {
    192.168.0.0/24;
};
acl shanghai {
    10.0.0.0/24;
};
acl other {
   any;
};
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// allow-query     { localhost; };

# 创建view
view beijingview {
     match-clients { beijing;};
   include "/etc/named.rfc1912.zones.bj";
};
view shanghaiview {
   match-clients { shanghai;};
   include "/etc/named.rfc1912.zones.sh";
};
view otherview {
   match-clients { other;};
   include "/etc/named.rfc1912.zones.other";
};

#删除以下内容
zone "." IN {
    type hint;
    file "named.ca";
};
include "/etc/named.rfc1912.zones";

4. Créez des fichiers de configuration régionaux et définissez les autorisations respectivement.

[root@centos8 ~]#vim /etc/named.rfc1912.zones.bj
zone "." IN {
   type hint;
   file "named.ca";
};
zone "wjwj.le" {
   type master;
   file "wjwj.le.zone.bj";
};
[root@centos8 ~]#vim /etc/named.rfc1912.zones.sh
zone "." IN {
   type hint;
   file "named.ca";
};
zone "wjwj.le" {
   type master;
   file "wjwj.le.zone.sh";
};
[root@centos8 ~]#vim /etc/named.rfc1912.zones.other
zone "." IN {
   type hint;
   file "named.ca";
};
zone "wjwj.le" {
   type master;
   file "wjwj.le.zone.other";
};
[root@centos8 ~]#chmod 640 /etc/named.rfc1912.zones*;chgrp named /etc/named.rfc1912.zones*
[root@centos8 ~]#ll /etc/named.rfc1912.zones*
-rw-r----- 1 root named 1219 Dec 25 18:39 /etc/named.rfc1912.zones
-rw-r----- 1 root named  118 Dec 25 21:13 /etc/named.rfc1912.zones.bj
-rw-r----- 1 root named  121 Dec 25 21:14 /etc/named.rfc1912.zones.other
-rw-r----- 1 root named  118 Dec 25 21:13 /etc/named.rfc1912.zones.sh

5. Créez respectivement des fichiers de base de données régionaux dans différentes régions et copiez les fichiers existants pour les modifier.

[root@centos8 ~]#vim /var/named/wjwj.le.zone.bj
$TTL 1D
@   IN SOA  ns1 admin.wjwj.le. (
                    20201203    ; serial
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H )    ; minimum

@   NS  ns1 
@   NS  ns2 

ns1  A   10.0.0.78
ns2  A   10.0.0.88

www A  192.168.0.100
[root@centos8 ~]#vim /var/named/wjwj.le.zone.sh
$TTL 1D
@   IN SOA  ns1 admin.wjwj.le. (
                    20201203    ; serial
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H )    ; minimum

@   NS  ns1 
@   NS  ns2 

ns1  A   10.0.0.78
ns2  A   10.0.0.88

www A  10.0.0.100
[root@centos8 ~]#vim /var/named/wjwj.le.zone.other
$TTL 1D
@   IN SOA  ns1 admin.wjwj.le. (
                    20201203    ; serial
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H )    ; minimum

@   NS  ns1 
@   NS  ns2 

ns1  A   10.0.0.78
ns2  A   10.0.0.88

www A 127.0.0.1

6. Rendre la configuration effective

[root@centos8 ~]#rndc reload
server reload successful

7. Testez l'effet des différents accès IP et réalisez la fonction DNS intelligente.

[root@centos76 ~]#host www.wjwj.le 192.168.0.100
Using domain server:
Name: 192.168.0.100
Address: 192.168.0.100#53
Aliases: 

www.wjwj.le has address 192.168.0.100

[root@centos76 ~]#host www.wjwj.le 10.0.0.88
Using domain server:
Name: 10.0.0.88
Address: 10.0.0.88#53
Aliases: 

www.wjwj.le has address 10.0.0.100
[root@centos8 ~]#host www.wjwj.le 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases: 

www.wjwj.le has address 127.0.0.1

3. Compilez et installez Mariadb et connectez-vous normalement après le démarrage.

1. Installez les packages de dépendances associés.

[root@centos8 ~]#yum -y install bison zlib-devel libcurl-devel boost-devel gcc gcc-c++ cmake ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel

2. Créez des répertoires d'utilisateurs et de données.

[root@centos8 ~]#useradd -r -s /sbin/nologin -d /data/mysql mysql

3. Préparez le répertoire de la base de données.

[root@centos8 ~]#mkdir /data/mysql
[root@centos8 ~]#chown mysql.mysql /data/mysql

4. Préparez le package de code source et décompressez-le.

[root@centos8 /data]#tar xf mariadb-10.2.31.tar.gz

5. Démarrez la compilation et l'installation.

[root@centos8 /data]#cd mariadb-10.2.31/
[root@centos8 /data/mariadb-10.2.31]#cmake . \
-DCMAKE_INSTALL_PREFIX=/app/mysql \
-DMYSQL_DATADIR=/data/mysql/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
[root@centos8 /data/mariadb-10.2.31]#make -j 4 && make install

6. Générez des fichiers de base de données.

[root@centos8 /data/mariadb-10.2.31]#cd /app/mysql/
[root@centos8 /app/mysql]#scripts/mysql_install_db --datadir=/data/mysql/ --user=mysql
Installing MariaDB/MySQL system tables in '/data/mysql/' ...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !
To do so, start the server, then issue the following commands:

'./bin/mysqladmin' -u root password 'new-password'
'./bin/mysqladmin' -u root -h centos88.wj3721.top password 'new-password'

Alternatively you can run:
'./bin/mysql_secure_installation'

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the MariaDB Knowledgebase at http://mariadb.com/kb or the
MySQL manual for more instructions.

You can start the MariaDB daemon with:
cd '.' ; ./bin/mysqld_safe --datadir='/data/mysql/'

You can test the MariaDB daemon with mysql-test-run.pl
cd './mysql-test' ; perl mysql-test-run.pl

Please report any problems at http://mariadb.org/jira

The latest information about MariaDB is available at http://mariadb.org/.
You can find additional information about the MySQL part at:
http://dev.mysql.com
Consider joining MariaDB's strong and vibrant community:
https://mariadb.org/get-involved/

7. Préparez les fichiers de configuration, démarrez les scripts et démarrez les services.

[root@centos8 /app/mysql]#cp /app/mysql/support-files/my-huge.cnf /etc/my.cnf
[root@centos8 /app/mysql]#cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@centos8 /app/mysql]#chkconfig --add mysqld
[root@centos8 /app/mysql]#service mysqld start
Starting mysqld (via systemctl):                           [  OK  ]

8. Initialisation de la sécurité, définissez le mot de passe root, sélectionnez y pour tous les autres, sinon vous pouvez vous connecter sans entrer de mot de passe, et il existe d'autres risques de sécurité.

[root@centos8 ~]#mysql_secure_installation
In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] 
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] 
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] 
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

9. Pour vous connecter à la base de données, vous devez entrer le mot de passe du compte pour vous connecter.

[root@centos88 ~]#mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[root@centos88 ~]#mysql -uroot -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 19
Server version: 10.2.31-MariaDB-log Source distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

MariaDB [(none)]> 

Je suppose que tu aimes

Origine blog.51cto.com/15013111/2573601
conseillé
Classement