<?xml version="1.0" encoding="utf-8" standalone="yes"?><?xml-stylesheet href="/feed_style.xsl" type="text/xsl"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="https://www.rssboard.org/media-rss">
  <channel>
    <title>Policy Based Routing on El blog de Ignacio</title>
    <link>https://www.igalvan.es/tags/policy-based-routing/</link>
    <description>Recent content in Policy Based Routing on El blog de Ignacio</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>es</language>
    <copyright>Ignacio Galván Vitas</copyright>
    <lastBuildDate>Sat, 25 Aug 2018 19:30:00 +0100</lastBuildDate><atom:link href="https://www.igalvan.es/tags/policy-based-routing/index.xml" rel="self" type="application/rss+xml" /><icon>https://www.igalvan.es/logo.svg</icon>
    
    
    <item>
      <title>Policy Based Routing en CentOS 7</title>
      <link>https://www.igalvan.es/posts/policy-based-routing-en-centos-7/</link>
      <pubDate>Sat, 25 Aug 2018 19:30:00 +0100</pubDate>
      
      <guid>https://www.igalvan.es/posts/policy-based-routing-en-centos-7/</guid>
      <description><![CDATA[<p>Por defecto en los servidores CentOS con multiples interfaces de red todo el tráfico es devuelto por la interface que contenga la ruta por defecto. Este comportamiento no tiene nada de malo hasta que nos encontramos en escenarios donde es obligatorio separar el tráfico.</p>
<h2 id="escenario">Escenario</h2>
<p>En nuestro escenario partimos de la presencia de un servidor con dos interfaces de red, la primera en la red 10.0.2.0/24 que tiene la puerta de enlace por defecto en la IP 10.0.2.2, vamos a llamarla &ldquo;red pública&rdquo;, y la segunda en la red 192.168.56.20/24, vamos a llamarla &ldquo;red de gestión&rdquo;.  Queremos que todo el tráfico de la red de gestión se enrute por la segunda interfaz por temas de seguridad.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">[</span>root@routes ~<span style="color:#f92672">]</span><span style="color:#75715e"># ip addr show | grep &#34;inet\b&#34; | awk &#39;{print $2&#34; &#34;$NF}&#39;</span>
</span></span><span style="display:flex;"><span>127.0.0.1/8 lo
</span></span><span style="display:flex;"><span>10.0.2.15/24 enp0s3
</span></span><span style="display:flex;"><span>192.168.56.22/24 enp0s8
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>root@routes ~<span style="color:#f92672">]</span><span style="color:#75715e"># ip route|grep default</span>
</span></span><span style="display:flex;"><span>default via 10.0.2.2 dev enp0s3 proto static metric <span style="color:#ae81ff">100</span> 
</span></span></code></pre></div><h2 id="instrucciones">Instrucciones</h2>
<p>Antes de comenzar a configurar PBR, en CentOS 7 es necesario instalar el siguiente paquete:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">[</span>root@routes ~<span style="color:#f92672">]</span><span style="color:#75715e"># yum install -y NetworkManager-dispatcher-routing-rules</span>
</span></span></code></pre></div><p>El siguiente paso es crear la entrada de la política de enrutado:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">[</span>root@routes ~<span style="color:#f92672">]</span><span style="color:#75715e"># echo &#34;2 mgt&#34; &gt;&gt; /etc/iproute2/rt_tables</span>
</span></span></code></pre></div><p>El siguiente paso es crear las reglas para la interfaz enp0s8:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">[</span>root@routes ~<span style="color:#f92672">]</span><span style="color:#75715e"># vi /etc/sysconfig/network-scripts/rule-enp0s8</span>
</span></span><span style="display:flex;"><span>from 192.168.56.22/32 table mgt
</span></span><span style="display:flex;"><span>to 192.168.56.22/32 table mgt
</span></span></code></pre></div><p>El siguiente paso es crear la ruta por defecto para la interfaz enp0s8:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">[</span>root@routes ~<span style="color:#f92672">]</span><span style="color:#75715e"># vi /etc/sysconfig/network-scripts/route-enp0s8</span>
</span></span><span style="display:flex;"><span>default via 192.168.56.21 dev enp0s8 table mgt
</span></span></code></pre></div><p>Una vez configurado todo, tenemos que recargar la configuración para hacerla efectiva:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">[</span>root@routes ~<span style="color:#f92672">]</span><span style="color:#75715e"># nmcli connection reload</span>
</span></span></code></pre></div><p>Comrpobamos que todo está configurado según esperabamos:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">[</span>root@routes ~<span style="color:#f92672">]</span><span style="color:#75715e"># ip rule show</span>
</span></span><span style="display:flex;"><span>0:	from all lookup local 
</span></span><span style="display:flex;"><span>32764:	from all to 192.168.56.22 lookup mgt
</span></span><span style="display:flex;"><span>32765:	from 192.168.56.22 lookup mgt 
</span></span><span style="display:flex;"><span>32766:	from all lookup main 
</span></span><span style="display:flex;"><span>32767:	from all lookup default
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>root@routes ~<span style="color:#f92672">]</span><span style="color:#75715e"># ip route show table mgt</span>
</span></span><span style="display:flex;"><span>default via 192.168.56.21 dev enp0s8 
</span></span></code></pre></div>]]></description>
      
    </item>
    
    
  </channel>
</rss>
