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

De Infraestrutura São Carlos
Ir para navegação Ir para pesquisar
 
(6 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 48: Linha 47:
 
</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>
 
</pre>
 
</li>
 
</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>
 
</li>
 
  
<li>Crie o usuário para a replicação:
+
== Referências ==
<pre>
+
* [https://www.thomas-krenn.com/en/wiki/Two_Default_Gateways_on_One_System Thomas Krenn]
# 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:
 
<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:
 
<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