Bonding+gateway

Juan Andres Ramirez jandresaedo en gmail.com
Jue Abr 23 15:20:56 CLT 2009


Hola listeros:
       Necesito habilitar un firewall en mi red interna, para eso
tengo un server con 4 tarjetas de red:

02:07.0 Ethernet controller: VIA Technologies, Inc. VT6105/VT6106S
[Rhine-III] (rev 8b)
02:09.0 Ethernet controller: Davicom Semiconductor, Inc. 21x4x
DEC-Tulip compatible 10/100 Ethernet (rev 31)
02:0a.0 Ethernet controller: Davicom Semiconductor, Inc. 21x4x
DEC-Tulip compatible 10/100 Ethernet (rev 31)

La 4 no aparece, pero si tiro un ifconfig sale:

eth0      Link encap:Ethernet  HWaddr 00:17:31:1A:59:19
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:146009 errors:0 dropped:0 overruns:0 frame:0
          TX packets:60882 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:20953978 (19.9 MiB)  TX bytes:9615736 (9.1 MiB)
          Interrupt:185 Base address:0x8000

eth1      Link encap:Ethernet  HWaddr 00:17:31:1A:59:19
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:146599 errors:0 dropped:0 overruns:0 frame:0
          TX packets:61024 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:21006890 (20.0 MiB)  TX bytes:9622324 (9.1 MiB)
          Interrupt:217 Base address:0x4c00

eth2      Link encap:Ethernet  HWaddr 00:80:AD:84:5F:5A
          inet6 addr: fe80::280:adff:fe84:5f5a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:10335 errors:0 dropped:0 overruns:0 frame:0
          TX packets:259 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:999767 (976.3 KiB)  TX bytes:40800 (39.8 KiB)
          Interrupt:201 Base address:0xb400

eth3      Link encap:Ethernet  HWaddr 00:80:AD:84:74:99
          inet6 addr: fe80::280:adff:fe84:7499/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:10320 errors:0 dropped:0 overruns:0 frame:0
          TX packets:261 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:996841 (973.4 KiB)  TX bytes:41886 (40.9 KiB)
          Interrupt:209 Base address:0xb000


Hice un bonding (bond0) sobre la eth0 y eth1, y un bond1 sobre la eth2,eth3:

bond0     Link encap:Ethernet  HWaddr 00:17:31:1A:59:19
          inet addr:192.168.100.101  Bcast:192.168.100.255  Mask:255.255.255.0
          inet6 addr: fe80::217:31ff:fe1a:5919/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:292599 errors:0 dropped:0 overruns:0 frame:0
          TX packets:121885 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:41960328 (40.0 MiB)  TX bytes:19234894 (18.3 MiB)

bond1     Link encap:Ethernet  HWaddr 00:00:00:00:00:00
          inet addr:192.168.100.73  Bcast:192.168.100.255  Mask:255.255.255.0
          UP BROADCAST MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

Edite el /etc/modprobe.conf:

alias eth0 forcedeth
alias scsi_hostadapter sata_nv
alias snd-card-0 snd-intel8x0
options snd-card-0 index=0
options snd-intel8x0 index=0
remove snd-intel8x0 { /usr/sbin/alsactl store 0 >/dev/null 2>&1 || : ;
}; /sbin/modprobe -r --ignore-remove snd-intel8x0
alias snd-card-1 snd-mpu401
options snd-card-1 index=1
options snd-mpu401 index=1
remove snd-mpu401 { /usr/sbin/alsactl store 1 >/dev/null 2>&1 || : ;
}; /sbin/modprobe -r --ignore-remove snd-mpu401
alias eth2 tulip
alias eth3 tulip
alias eth1 via-rhine
alias bond0 bonding
options bond0 bonding mode=0
alias bond1 bonding
options bond1 bonding mode=0

Como ven al final aparecen los bonding declarados:

Tiro un network restart:

Interrupción de la interfaz bond0:                        [  OK  ]
Interrupción de la interfaz bond1:                        [  OK  ]
Interrupción de la interfaz de loopback:                  [  OK  ]
Deshabilitando el reenvio de paquetes IPv4:  net.ipv4.ip_forward = 0
                                                           [  OK  ]
Activación de la interfaz de loopback:                    [  OK  ]
Activando interfaz bond0:                                  [  OK  ]
Activando interfaz bond1:                                  [  OK  ]

Como se ve ahi aparece como todo OK sobre el bond1, Si hago un ping
desde otra maquina sobre el bond1 llega bien.

Ahora si hago un ethtool eth2 |grep "Link detected:" sobre la eth2 y
eth3 no me tira ningun mensaje, si lo hago sobre la eth0 y eth1 recivo
el mensaje de todo ok:

[root en luna sysconfig]# ethtool eth1 |grep "Link detected:"
        Link detected: yes

Para terminar, habilite en el /etc/sysctl.conf :
net.ipv4.ip_forward = 1
net.ipv4.conf.all.rp_filter=1
net.ipv4.ip_always.defrag=1

Y en el archivo /etc/sysconfig/network :

NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=luna.xxx.com
GATEWAYDEV=bond1
GATEWAY=192.168.100.1



Pero al reiniciar el network aparece el mensaje de mas arriba que se
desactivo el reenvio de paquetes IPv4. Lo que estoy tratando de hacer
es un gateway interno para poder filtrar usuarios de la red interna
hacia afuera, y como son varios usuarios lo estoy haciendo con bonding
2 tarjetas de entrada y 2 de salida, porque son como 50 usuarios.
Deshabilitando el reenvio de paquetes IPv4:  net.ipv4.ip_forward = 0
-> este mensaje me debe preocupar??, alguna corrección que hacer a
este esquema??. Muchas gracias chicos y chicas.



Más información sobre la lista de distribución Linux