Назад | Перейти на главную страницу

Проблема с маршрутизацией нескольких сетевых адаптеров Centos

У меня проблемы с настройкой постоянных маршрутов для моих сетевых интерфейсов,

под моей конфигурацией:

ETH0: 172.23.137.27 Маска сети / 25 - 255.255.255.128 Шлюз - 192.168.126.126

ETH1: Магистральная VLAN - VLAN ID: 305 172.21.107.123 Сетевая маска / 28 - 255.255.255.240 Шлюз - 172.21.107.113

Конфигурация интерфейсов выглядит следующим образом:


cat ifcfg-eth0 
DEVICE=eth0
HWADDR=2C:59:E5:42:CB:EC
TYPE=Ethernet
#UUID=eefb4ac8-42ba-4fc3-9918-08aae7edef3b
ONBOOT=yes
#NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.126.27
NETMASK=255.255.255.128
GATEWAY=192.168.126.126
#USERCTL=no

cat ifcfg-eth1
DEVICE=eth1
HWADDR=2C:59:E5:42:CB:ED
UUID=68f6c45e-48ba-4b33-8da7-d4d7979eb72d
ONBOOT=yes
BOOTPROTO=none
NM_CONTROLED=no

cat ifcfg-eth1.305 
DEVICE=eth1.305
VLAN=yes
ONBOOT=yes
BOOTPROTO=static
TYPE=Ethernet
IPADDR=172.21.107.123
NETMASK=255.255.255.240
GATEWAY=172.21.107.113
#NM_CONTROLLED=no


route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.21.107.112  0.0.0.0         255.255.255.240 U     0      0        0 eth1.305
192.168.126.0   0.0.0.0         255.255.255.128 U     0      0        0 eth0
192.168.192.0   0.0.0.0         255.255.255.0   U     0      0        0 eth3
0.0.0.0         172.21.107.113  0.0.0.0         UG    0      0        0 eth1.30

Маршрут по умолчанию работает, только если я вставляю его вручную: route del default gw 192.168.126.126 eth0

Но не сработало с использованием: route-eth0 в / etc / sysconfig / network-scripts

Для любого сетевого устройства, которое не является моим шлюзом по умолчанию, я обычно устанавливаю флаг маршрута по умолчанию на no:

DEFROUTE="no"

Кажется, это работает без каких-либо проблем для моих серверов с несколькими сетевыми интерфейсами. Если вы затем перезапустите сетевую службу или интерфейсы, вы сможете проверить маршруты, чтобы убедиться, что это действительно работает:

/sbin/route -n

Надеюсь, это поможет.

Вы можете указать только один ШЛЮЗ, и если вы добавили ШЛЮЗ в оба файла интерфейсов, будет использоваться ШЛЮЗ с более высоким номером интерфейса, как в вашем случае eth1, что правильно из маршрута -n, который вы указали.

Если вы хотите использовать несколько ШЛЮЗОВ, вам необходимо использовать маршрутизацию политики, как было предложено в предыдущем ответе.

Вы можете указать шлюз по умолчанию в файле / etc / sysconfig / network, например, в отдельной строке: GATEWAY=192.168.0.1

Если вам нужно несколько шлюзов, вы можете создать сценарий оболочки следующим образом:


#!/bin/sh

ip rule add from 172.21.107.112/28 pref 200 lookup 201
ip route add default via 172.21.107.113 dev eth1 table 201

ip rule add from 192.168.126.0/25 pref 200 lookup 202
ip route add default via 192.168.126.126 dev eth0 table 202

ip route add default nexthop via 192.168.126.126 dev eth0
ip route append default nexthop via 172.21.107.113 dev eth0

ip route flush cache

chmod + x файл и добавьте к нему вызов в свой файл /etc/init.d/network