Mudanças entre as edições de "Configurando dois gateways no linux"

De Infraestrutura São Carlos
Ir para navegação Ir para pesquisar
(Criou página com '== Objetivo == Criacao de regras para funcionamento de dois gateways no Linux == Requisitos == * Servidores Debian == Procedimentos == === Instalação === <ol style="li...')
 
 
(9 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 10: Linha 10:
  
 
=== Instalação ===
 
=== Instalação ===
<ol style="list-style-type:lower-alpha">
 
  
 
<li>Configuras as interfaces de rede no arquivo /etc/network/interfaces, sem colocar o gateway de uma das redes:
 
<li>Configuras as interfaces de rede no arquivo /etc/network/interfaces, sem colocar o gateway de uma das redes:
Linha 28: Linha 27:
 
</li>
 
</li>
  
==== Servidor Mestre ====
+
=== Adicionando segunda tabela de roteamento ===
  
<li>Crie uma base de dados:
+
<li>Edite o arquivo /etc/iproute2/rt_tables, e vamos criar uma tabela de roteamento rt2, com preferencia 1.
 +
O arquivo ficara com a seguinte aparencia:
 
<pre>
 
<pre>
# su - postgres
+
#
$ psql
+
# reserved values
postgres=# CREATE DATABASE test;
+
#
postgres=# CREATE TABLE guestbook (visitor_email text, vistor_id serial, date timestamp, message text);
+
255    local
postgres=# INSERT INTO guestbook (visitor_email, date, message) VALUES ('teste@sc.usp.br', current_date, 'Isto eh um teste');
+
254    main
postgres=# SELECT * FROM guestbook;
+
253    default
postgres=# \q
+
0      unspec
 +
#
 +
# local
 +
#
 +
#1      inr.ruhep
 +
1 rt2
 
</pre>
 
</pre>
 
</li>
 
</li>
  
<li>Crie o usuário para a replicação:
+
===Configurando a nova tabela de roteamento===
 +
<li>A tabela de roteamento precisa ser populada, inserindo os segintes comandos:
 
<pre>
 
<pre>
# su - postgres
+
ip route add 10.10.0.0/24 dev eth1 src 10.10.0.10 table rt2
$ createuser -U postgres repuser -P -c 5 --replication
+
ip route add default via 10.10.0.1 dev eth1 table rt2
 
</pre>
 
</pre>
onde
 
<ul>
 
<li><tt>-U postgres</tt>: utiliza o usuário <em>postgres</em> para criar um novo usuário</li>
 
<li><tt>repuser</tt>: novo usuário para a replicação</li>
 
<li><tt>-P</tt>: permite digitar a senha do novo usuário</li>
 
<li><tt>-c</tt>: limita o número de conexões para o novo usuário</li>
 
<li><tt>--replication</tt>: permite os privilégios de <tt>REPLICATION</tt> ao novo usuário.</li>
 
</ul>
 
 
</li>
 
</li>
  
<li>Crie o diretório para armazenar os logs WAL:
+
===Regras de Roteamento===
 +
<li>Para o sistema saber quando usar a nova tabela, as seguintes regras devem ser configuradas:
 
<pre>
 
<pre>
# su - posgres
+
ip rule add from 10.10.0.10/32 table rt2
$ mkdir -p /var/lib/postgres/main/mnt/server/archivedir
+
ip rule add to 10.10.0.10/32 table rt2
 
</pre>
 
</pre>
 
</li>
 
</li>
  
<li>Edite o arquivo <tt>/etc/postgresql/9.4/main/pg_hba.conf</tt> para permitir que o usuário de replicação tenha acesso ao banco de dados:
 
<pre>
 
# vi /etc/postgresql/9.4/main/pg_hba.conf
 
</pre>
 
e acrescente a seguinte linha nas conexões de replicação:
 
<pre>
 
# Allow replication connections
 
host    replication    repuser        <standby-IP>/32        md5
 
</pre>
 
salve e feche o arquivo.
 
</li>
 
  
<li>Edite o arquivo <tt>/etc/postgresql/9.4/main/postgresql.conf</tt> para configurar o servidor master. Não se esqueça de remover os comentários das linhas editadas:
+
===Tornando a configuracao permanente===
 +
<li>Para configurar permanentemente as regras e tabela de roteamento, o arquivo /etc/network/interfaces deve ficar com uma seção parecia com a seguir:
 
<pre>
 
<pre>
# vi /etc/postgresql/9.4/main/postgresql.conf
+
iface eth1 inet static
</pre>
+
    address 10.10.0.10
Na seção <strong>Connectiong Settings</strong> da seção <strong>CONNECTIONS AND AUTHENTICATION</strong>, digite o IP do servidor mestre ou * para permitir o acesso do servidor <em>standby</em>:
+
    netmask 255.255.255.0
<pre>
+
    post-up ip route add 10.10.0.0/24 dev eth1 src 10.10.0.10 table rt2
listen_address = '*'
+
    post-up ip route add default via 10.10.0.1 dev eth1 table rt2
</pre>
+
    post-up ip rule add from 10.10.0.10/32 table rt2
Na seção <strong>Settings</strong> da seção <strong>WRITE AHEAD LOG</strong> altere o modo WAL:
+
    post-up ip rule add to 10.10.0.10/32 table rt2
<pre>
 
wal_level = hot_standby
 
</pre>
 
Na seção <strong>Archiving</strong>, ative o modo de arquivos de log:
 
<pre>
 
archive_mode = on
 
</pre>
 
e altere o comando de arquivamento dos logs:
 
<pre>
 
archive_command = 'test ! -f /var/lib/postgresql/main/mnt/server/archivedir/%f && cp %p /var/lib/postgresql/main/mnt/server/archivedir/%f'
 
</pre>
 
Na seção <strong>Sending Server(s)</strong> da seção <strong>REPLICATION</strong>, mude o valor para o número máximo de processos de envio de WALs:
 
<pre>
 
max_wal_senders = 3
 
</pre>
 
</ol>
 
 
 
 
 
== Procedimentos ==
 
 
 
=== Instalação ===
 
<ol style="list-style-type:lower-alpha">
 
 
 
<li>Em cada servidor instale o PostgreSQL:
 
<pre>
 
# apt-get install postgresql
 
</pre>
 
</li>
 
 
 
==== Servidor Mestre ====
 
 
 
<li>Crie uma base de dados:
 
<pre>
 
# su - postgres
 
$ psql
 
postgres=# CREATE DATABASE test;
 
postgres=# CREATE TABLE guestbook (visitor_email text, vistor_id serial, date timestamp, message text);
 
postgres=# INSERT INTO guestbook (visitor_email, date, message) VALUES ('teste@sc.usp.br', current_date, 'Isto eh um teste');
 
postgres=# SELECT * FROM guestbook;
 
postgres=# \q
 
 
</pre>
 
</pre>
 
</li>
 
</li>
  
<li>Crie o usuário para a replicação:
 
<pre>
 
# su - postgres
 
$ createuser -U postgres repuser -P -c 5 --replication
 
</pre>
 
onde
 
<ul>
 
<li><tt>-U postgres</tt>: utiliza o usuário <em>postgres</em> para criar um novo usuário</li>
 
<li><tt>repuser</tt>: novo usuário para a replicação</li>
 
<li><tt>-P</tt>: permite digitar a senha do novo usuário</li>
 
<li><tt>-c</tt>: limita o número de conexões para o novo usuário</li>
 
<li><tt>--replication</tt>: permite os privilégios de <tt>REPLICATION</tt> ao novo usuário.</li>
 
</ul>
 
</li>
 
 
<li>Crie o diretório para armazenar os logs WAL:
 
<pre>
 
# su - posgres
 
$ mkdir -p /var/lib/postgres/main/mnt/server/archivedir
 
</pre>
 
</li>
 
  
<li>Edite o arquivo <tt>/etc/postgresql/9.4/main/pg_hba.conf</tt> para permitir que o usuário de replicação tenha acesso ao banco de dados:
+
== Referências ==
<pre>
+
* [https://www.thomas-krenn.com/en/wiki/Two_Default_Gateways_on_One_System Thomas Krenn]
# vi /etc/postgresql/9.4/main/pg_hba.conf
 
</pre>
 
e acrescente a seguinte linha nas conexões de replicação:
 
<pre>
 
# Allow replication connections
 
host    replication    repuser        <standby-IP>/32        md5
 
</pre>
 
salve e feche o arquivo.
 
</li>
 
 
 
<li>Edite o arquivo <tt>/etc/postgresql/9.4/main/postgresql.conf</tt> para configurar o servidor master. Não se esqueça de remover os comentários das linhas editadas:
 
<pre>
 
# vi /etc/postgresql/9.4/main/postgresql.conf
 
</pre>
 
Na seção <strong>Connectiong Settings</strong> da seção <strong>CONNECTIONS AND AUTHENTICATION</strong>, digite o IP do servidor mestre ou * para permitir o acesso do servidor <em>standby</em>:
 
<pre>
 
listen_address = '*'
 
</pre>
 
Na seção <strong>Settings</strong> da seção <strong>WRITE AHEAD LOG</strong> altere o modo WAL:
 
<pre>
 
wal_level = hot_standby
 
</pre>
 
Na seção <strong>Archiving</strong>, ative o modo de arquivos de log:
 
<pre>
 
archive_mode = on
 
</pre>
 
e altere o comando de arquivamento dos logs:
 
<pre>
 
archive_command = 'test ! -f /var/lib/postgresql/main/mnt/server/archivedir/%f && cp %p /var/lib/postgresql/main/mnt/server/archivedir/%f'
 
</pre>
 
Na seção <strong>Sending Server(s)</strong> da seção <strong>REPLICATION</strong>, mude o valor para o número máximo de processos de envio de WALs:
 
<pre>
 
max_wal_senders = 3
 
</pre>
 
</ol>
 

Edição atual tal como às 16h04min de 4 de julho de 2022

Objetivo

Criacao de regras para funcionamento de dois gateways no Linux

Requisitos

  • Servidores Debian


Procedimentos

Instalação

  • Configuras as interfaces de rede no arquivo /etc/network/interfaces, sem colocar o gateway de uma das redes:
    allow-hotplug eth0
    iface eth0 inet static
        address 192.168.0.10
        netmask 255.255.255.0
        gateway 192.168.0.1
    
    # The secondary network interface
    allow-hotplug eth1
    iface eth1 inet static
        address 10.10.0.10
        netmask 255.255.255.0
    
  • Adicionando segunda tabela de roteamento

  • Edite o arquivo /etc/iproute2/rt_tables, e vamos criar uma tabela de roteamento rt2, com preferencia 1. O arquivo ficara com a seguinte aparencia:
    #
    # reserved values
    #
    255     local
    254     main
    253     default
    0       unspec
    #
    # local
    #
    #1      inr.ruhep
    1 rt2
    
  • Configurando a nova tabela de roteamento

  • A tabela de roteamento precisa ser populada, inserindo os segintes comandos:
    ip route add 10.10.0.0/24 dev eth1 src 10.10.0.10 table rt2
    ip route add default via 10.10.0.1 dev eth1 table rt2
    
  • Regras de Roteamento

  • Para o sistema saber quando usar a nova tabela, as seguintes regras devem ser configuradas:
    ip rule add from 10.10.0.10/32 table rt2
    ip rule add to 10.10.0.10/32 table rt2
    
  • Tornando a configuracao permanente

  • Para configurar permanentemente as regras e tabela de roteamento, o arquivo /etc/network/interfaces deve ficar com uma seção parecia com a seguir:
    iface eth1 inet static
        address 10.10.0.10
        netmask 255.255.255.0
        post-up ip route add 10.10.0.0/24 dev eth1 src 10.10.0.10 table rt2
        post-up ip route add default via 10.10.0.1 dev eth1 table rt2
        post-up ip rule add from 10.10.0.10/32 table rt2
        post-up ip rule add to 10.10.0.10/32 table rt2
    
  • Referências