Blackhold

Bonding + VLAN + Mikrotik

Posted on març 22nd, 2015 by admin

Esta semana se me ha presentado un pequeño reto, así que tras recibir el material nos hemos puesto a probar el entorno.

El escenario es que tenemos una ubicación en la que queremos poner varias antenas y sólo podemos bajar un sólo cable de red y uno de alimentación. Algunos enlaces se van a administrar desde un router y otros desde otro. Así que la solución escogida ha sido la de alimentar cada una de las antenas por separado y definir vlan para el tráfico de cada una.

Para ponerle mas emoción a la cosa, las antenas que vamos a poner van a estar en bonding, para poder tener mas ancho de banda.

En la ubicación 1 tenemos:
– 1 Router Mikrotik x86 virtualizado en un vmware
– 2 enlaces en bonding (4 antenas)

En la ubicación 2 tenemos:
– 1 Router Mikrotik RB1100AHx2
– 1 enlace en bonding (2 antenas)

La ubicación 3 es idéntica a la ubicación 2.

Para simplificar, vamos a mostrar la configuración entre la ubicación 1 y la 2. Para la ubicación 1 vamos a virtualizar el router Mikrotik en un KVM en un servidor proxmox y un switch Dlink DGS-1100-16 y para la ubicación 2 una RB951G-2HnD. Para dirigir el tráfico de los enlaces será tan simple como asignar vlans en el router que va a administrar el susdicho.

DSC_1058

DSC_1055

DSC_1056

Las antenas vamos a usar 2 pares de PowerBeam AC (PBE-5AC-500)

powerbeam1

powerbeam2

El esquema físico de la instalación es éste:

Esquema_fisic

Y el lógico éste:

Esquema_logic

Así que visto el escenario y el local/entorno de pruebas punkarra, vamos a empezar con las explicaciones, luego con las configuraciones.

En un entorno donde no estamos obligados a usar sólo vlan definimos una vlan para la administración de la antena y usamos la interfaz sin vlan para pasar el tráfico. El motivo de definir una vlan para la administración es que si lo hacemos en el interfaz físico directamente, perdemos el acceso a las antenas al momento de levantar el bonding. Al ponerlo dentro de una vlan estamos creando una “red virtual”.

Como inicialmente no es posible poner vlan dentro de vlan a menos que hagamos qinq (no todos los switches lo permiten), tendremos que crear 2 vlan por antena, una que la usaremos para administrar las antenas y la otra para asignar la interfaz al bonding (como si fuese la interfaz física).

Así que vamos a empezar definiendo las vlan en el server proxmox para que las podamos conectar en el kvm donde está el router Mikrotik virtualizado.

root@polaris:~# vi /etc/network/interfaces
auto lo
iface lo inet loopback

auto vmbr0
iface vmbr0 inet static
        address 10.139.93.55
        netmask 255.255.255.0
        gateway 10.139.93.1
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0


auto vmbr81
iface vmbr81 inet manual
        bridge_ports eth0.81
        bridge_stp off
        bridge_fd 0

auto vmbr811
iface vmbr811 inet manual
        bridge_ports eth0.811
        bridge_stp off
        bridge_fd 0

auto vmbr82
iface vmbr82 inet manual
        bridge_ports eth0.82
        bridge_stp off
        bridge_fd 0

auto vmbr822
iface vmbr822 inet manual
        bridge_ports eth0.822
        bridge_stp off
        bridge_fd 0

Reiniciamos el servicio de red

root@polaris:~# service networking restart

Ahora vamos a la administración de proxmox, configuramos la maquina virtual kvm (que no contenedor vz), instalamos routerOS y lo levantamos. Aquí una captura de pantalla de la configuración de hardware de mi kvm:

kvm_config

Al levantar el router mikrotik, cada una de las vlan va a aparecer como un interfaz físico. Para que veáis un poco la diferencia, aquí tenéis 2 capturas de la sección de interfaces del router mikrotik virtualizado y de la RB951:

rb1

rb2

Como se puede ver vamos a crear un total de 4 vlan:
– vlan811: administración antena 1
– vlan822: administración antena 2
– vlan81: “pata1” del bonding
– vlan82: “pata2” del bonding

Para la vlan811 definiremos un /29, para la vlan822 otro /29 y para vlan81 y vlan82 un /30 que será el que comunicará las 2 Routerboard a través del bonding.
El motivo de usar un /29 para la administración es porque en el bonding vamos a definir “Link Monitoring” a arp y vamos a definir la ip del otro Routerboard para saber cuando tiene que levantar la interfaz de bonding.

Para que quede mas claro que estamos trabajando sobre vlan, vamos a ver la configuración de la RB951.

Aquí vemos la configuración de las IPs y del bonding

rb3

[admin@MikroTik] > /ip address print
Flags: X - disabled, I - invalid, D - dynamic 
 #   ADDRESS            NETWORK         INTERFACE                                                                                                                      
 0   ;;; default configuration
     192.168.88.1/24    192.168.88.0    bridge-local                                                                                                                   
 1   192.168.1.1/24     192.168.1.0     ether1-gateway                                                                                                                 
 2   172.25.43.78/30    172.25.43.76    bonding1                                                                                                                       
 3   192.168.101.1/24   192.168.101.0   lan/lan                                                                                                                        
 4   172.25.62.57/29    172.25.62.56    vlan811                                                                                                                        
 5   172.25.62.65/29    172.25.62.64    vlan822
[admin@MikroTik] > /interface bonding print
Flags: X - disabled, R - running 
 0  R name="bonding1" mtu=1500 mac-address=4C:5E:0C:58:04:C8 arp=enabled slaves=vlan81,vlan82 mode=balance-rr primary=none link-monitoring=arp arp-interval=100ms 
      arp-ip-targets=172.25.43.77 mii-interval=100ms down-delay=10ms up-delay=10ms lacp-rate=1sec transmit-hash-policy=layer-2 

Si nos fijamos, link-monitoring lo tenemos definido a arp, si tenemos este valor tenemos que asignar el valor arp-ip-targets, en este caso estamos definiendo la ip que está asignada al otro lado del bonding, pero al tener /29 para la administración podríamos definir varias IPs y definir como IP las ips contrarias del enlace de las redes administrativas. Ambas configuraciones funcionan correctamente.

En la antena A del lado de la RB951 le ponemos una ip del rango 172.25.62.57/29 en modo bridge asignada a la VLAN811 y a la antena B del lado de la RB951 otra del rango 172.25.62.64/29 en modo bridge asignada a la VLAN822.
Las /30 las asignamos directamente al interfaz bonding.

Es importante destacar que se recomienda que los enlaces wifi punto a punto se hagan mediante el uso de WDS que es un enlace wifi a capa2.

Ahora para poder administrar las antenas vamos a crear un par de reglas dst-nat en el firewall:

[admin@MikroTik] > /ip firewall nat print
Flags: X - disabled, I - invalid, D - dynamic 
 0 X  ;;; default configuration
      chain=srcnat action=masquerade out-interface=ether1-gateway log=no log-prefix="" 
 1    ;;; A
      chain=dstnat action=dst-nat to-addresses=172.25.62.59 dst-address=192.168.101.2 log=no log-prefix="" 
 2    ;;; B
      chain=dstnat action=dst-nat to-addresses=172.25.62.67 dst-address=192.168.101.3 log=no log-prefix="" 

Una vez configuradas ambas Routerboard, tendremos que configurar el switch administrable y definir qué vlan van asignadas a cuales interficies:

dlink

Importante que antes de apagar el switch le déis a guardar configuración :P

Y hasta aquí la configuración de todo esto! :)

« »

guy fawkes