Se você precisar dela para usar rotas padrão diferentes com base no endereço IP local que está sendo usado, é aqui que o iproute2 entra em ação.
Digamos que meu roteador tenha uma LAN (192.168.0.1/24) e uma DMZ (192.168.1.1/24). Meu computador tem 2 placas de rede, uma para a rede local e outra para a rede DMZ.
Como posso configurar minhas rotas para que ele use os dois gateways em vez de um padrão?
Saída de ifconfig
:
eth0 Link encap:Ethernet HWaddr 00:15:17:6f:94:44
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:458357 errors:0 dropped:0 overruns:0 frame:0
TX packets:250537 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:646967588 (616.9 MiB) TX bytes:33742301 (32.1 MiB)
Interrupt:16 Memory:fc3e0000-fc400000
eth1 Link encap:Ethernet HWaddr 00:1e:4f:13:31:b7
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5 errors:0 dropped:0 overruns:0 frame:0
TX packets:37 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:320 (320.0 B) TX bytes:2992 (2.9 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:18979 errors:0 dropped:0 overruns:0 frame:0
TX packets:18979 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:10059282 (9.5 MiB) TX bytes:10059282 (9.5 MiB)
tap103i0 Link encap:Ethernet HWaddr 3e:fb:b1:e0:40:da
inet6 addr: fe80::3cfb:b1ff:fee0:40da/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:520 errors:0 dropped:0 overruns:0 frame:0
TX packets:766 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:44796 (43.7 KiB) TX bytes:702165 (685.7 KiB)
vmbr0 Link encap:Ethernet HWaddr 00:15:17:6f:94:44
inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::215:17ff:fe6f:9444/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:437651 errors:0 dropped:0 overruns:0 frame:0
TX packets:245697 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:637230824 (607.7 MiB) TX bytes:31203868 (29.7 MiB)
vmbr1 Link encap:Ethernet HWaddr 00:1e:4f:13:31:b7
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::21e:4fff:fe13:31b7/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5 errors:0 dropped:0 overruns:0 frame:0
TX packets:34 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:230 (230.0 B) TX bytes:2412 (2.3 KiB)
Saída de netstat -rn
:
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 vmbr0
192.168.0.0 192.168.0.1 255.255.255.0 UG 0 0 0 vmbr0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 vmbr0
192.168.1.0 192.168.1.1 255.255.255.0 UG 0 0 0 vmbr1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 vmbr1
/etc/network/interfaces
:
auto lo
iface lo inet loopback
iface eth0 inet manual
iface eth1 inet manual
auto vmbr0
iface vmbr0 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1
bridge_ports eth0
bridge_stp off
bridge_fd 0
post-up route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1
auto vmbr1
iface vmbr1 inet static
address 192.168.1.2
netmask 255.255.255.0
gateway 192.168.0.2
bridge_ports eth1
bridge_stp off
bridge_fd 0
post-up route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
Se você precisar dela para usar rotas padrão diferentes com base no endereço IP local que está sendo usado, é aqui que o iproute2 entra em ação.
Você pode modificar o arquivo /etc/network/interfaces
e adicionar essa linha a cada sub-rotina / bloco da interface de rede para definir as rotas estáticas
# this is for vmbr0 block below
post-up route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1
# this is for vmbr1 block below
post-up route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
e você precisa reiniciar o subsytem / service de rede por service networking restart
OR
Você pode alterar o roteamento dinamicamente, mas irá perdê-los quando reinicializar. É bom para fins de teste ou para uso a curto prazo.
route add -net 192.168.0.0/24 gw 192.168.0.1 dev vmbr0
route add -net 192.168.1.0/24 gw 192.168.1.1 dev vmbr1
Isso não exige que você reinicie a rede, embora possa causar uma interrupção momentânea ou perdas de sessão devido à alternância de rede, quando e onde necessário.