Я знаю, что обсуждения маршрутизации от нескольких шлюзов (на основе политик) хэшировались много раз, но я все еще не нашел ответ на мою текущую проблему.

Сервер (работает под управлением Fedora 21, Kernel 3.17 или 3.18) подключен через две сетевые карты, объединенные в команду teamd-1.15-1 (обновление Fedora), с шестью виртуальными локальными сетями, построенными на объединенном интерфейсе (Team0). Демоны firewalld и NetworkManager отключены, и я не использую IPTABLES, поскольку у меня есть основное аппаратное устройство брандмауэра. Пожалуйста, не спрашивайте, почему шесть VLAN, это требование для сети.

Все шесть VLAN функционируют правильно, когда они по отдельности назначены в качестве шлюза по умолчанию, но моя проблема заключается в том, как сделать так, чтобы все шесть функционировали в качестве шлюзов для их отдельного трафика VLAN?

До сих пор я внес следующие изменения в настройки /usr/lib/sysctl.d/50-default.conf:

# Source route verification
net.ipv4.conf.default.rp_filter = 0 (original default =1)
net.ipv4.conf.all.rp_filter = 0 (original default =1)

# Accept IPv4 forwarding
net.ipv4.ip_forward = 1 (original default =0)

# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0 (original default =1)
net.ipv4.conf.all.accept_source_route = 0 (original default =1)

Эти изменения постоянно и правильно отражаются в файлах /net /ipv4 /conf и т.д.

Файл /iproute2 /rt_tables был изменен, чтобы отразить требуемые дополнительные таблицы маршрутизации, как показано ниже:

#
# reserved values
#
255     local
254     main
253     default
205     EXTRAAPPS
204     DNSEXT
203     SERVEXT
202     INTRAAPPS
201     DNSINT
200     SERVINT
0       unspec
#
#       local
#
#1      inr.ruhep

Настройки для одной VLAN (vlan30, с использованием таблицы 200 маршрутизации) показаны ниже с указанием файлов IFCFG, ROUTE и RULE:

ifcfg-vlan30

DEVICE=team0.30
PHYSDEV=team0
VLAN=yes
ONPARENT=yes
BOOTPROTO=static
NM_CONTROLLED=no
DEFROUTE=yes
IPADDR1=192.168.129.67
NETMASK1=255.255.255.248
IPADDR0=192.168.129.66
NETMASK0=255.255.255.248
GATEWAY=192.168.129.65

Маршрут-vlan30

default table SERVINT via 192.168.129.50
192.168.129.64/29 dev team0.30 proto static scope global src 192.168.129.66 table SERVINT

правил vlan30

from 192.168.129.66/32 table SERVINT
to 192.168.129.66/32 table SERVINT
from 192.168.129.67/32 table SERVINT
to 192.168.129.67/32 table SERVINT

Настраиваемые таблицы (200-205 дюймов) выглядят корректно, так как они отображаются в файле /proc /etc /fib_trei, как определено в записях файла "route-vlanxx".

FIB_TREI

Id 200:
  +-- 0.0.0.0/0 1 0 0
     |-- 0.0.0.0
        /0 universe UNICAST
     |-- 192.168.129.64
        /29 universe UNICAST
Id 201:
  +-- 0.0.0.0/0 1 0 0
     |-- 0.0.0.0
         /0 universe UNICAST
     |-- 192.168.129.72
        /29 universe UNICAST
Id 202:
  +-- 0.0.0.0/0 1 0 0
     |-- 0.0.0.0
        /0 universe UNICAST
 |-- 192.168.129.80
        /29 universe UNICAST
Id 203:
  +-- 0.0.0.0/0 1 0 0
     |-- 0.0.0.0
        /0 universe UNICAST
     |-- 192.168.129.96
        /29 universe UNICAST
Id 204:
   +-- 0.0.0.0/0 1 0 0
     |-- 0.0.0.0
        /0 universe UNICAST
     |-- 192.168.129.104
        /29 universe UNICAST
Id 205:
   +-- 0.0.0.0/0 1 0 0
     |-- 0.0.0.0
        /0 universe UNICAST
     |-- 192.168.129.112
        /28 universe UNICAST
Main:
+-- 0.0.0.0/0 1 0 0
 |-- 0.0.0.0
    /0 universe UNICAST
 +-- 192.168.129.64/26 3 0 2
    |-- 192.168.129.64
       /29 link UNICAST
    |-- 192.168.129.72
       /29 link UNICAST
    |-- 192.168.129.80
       /29 link UNICAST
    |-- 192.168.129.96
       /29 link UNICAST
    |-- 192.168.129.104
       /29 link UNICAST
    |-- 192.168.129.112
       /28 link UNICAST
Local:
+-- 0.0.0.0/0 1 0 0
   +-- 127.0.0.0/8 1 0 0
      +-- 127.0.0.0/31 1 0 0
         |-- 127.0.0.0
            /32 link BROADCAST
            /8 host LOCAL
 (Snipped for brevity - not required for this matter)

Результаты команд ip addr, ip link и ip route показаны ниже:

IP-адрес

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
   valid_lft forever preferred_lft forever
inet6 ::1/128 scope host 
   valid_lft forever preferred_lft forever

2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master team0 state UP group default qlen 1000
link/ether 00:0a:f7:18:42:0c brd ff:ff:ff:ff:ff:ff
inet6 fe80::20a:f7ff:fe18:420c/64 scope link 
   valid_lft forever preferred_lft forever

3: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master team0 state UP group default qlen 1000
link/ether 00:0a:f7:18:42:0c brd ff:ff:ff:ff:ff:ff
inet6 fe80::20a:f7ff:fe18:420c/64 scope link 
   valid_lft forever preferred_lft forever

11: team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
link/ether 00:0a:f7:18:42:0c brd ff:ff:ff:ff:ff:ff
inet6 fe80::20a:f7ff:fe18:420c/64 scope link 
   valid_lft forever preferred_lft forever

12: team0.30@team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
link/ether 00:0a:f7:18:42:0c brd ff:ff:ff:ff:ff:ff
inet 192.168.129.66/29 brd 192.168.129.71 scope global team0.30
   valid_lft forever preferred_lft forever
inet 192.168.129.67/29 brd 192.168.129.71 scope global secondary team0.30
   valid_lft forever preferred_lft forever
inet6 fe80::20a:f7ff:fe18:420c/64 scope link 
   valid_lft forever preferred_lft forever

13: team0.31@team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
link/ether 00:0a:f7:18:42:0c brd ff:ff:ff:ff:ff:ff
inet 192.168.129.74/29 brd 192.168.129.79 scope global team0.31
   valid_lft forever preferred_lft forever
inet 192.168.129.75/29 brd 192.168.129.79 scope global secondary team0.31
   valid_lft forever preferred_lft forever
inet6 fe80::20a:f7ff:fe18:420c/64 scope link 
   valid_lft forever preferred_lft forever

14: team0.32@team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
link/ether 00:0a:f7:18:42:0c brd ff:ff:ff:ff:ff:ff
inet 192.168.129.82/29 brd 192.168.129.87 scope global team0.32
   valid_lft forever preferred_lft forever
inet 192.168.129.83/29 brd 192.168.129.87 scope global secondary team0.32
   valid_lft forever preferred_lft forever
inet6 fe80::20a:f7ff:fe18:420c/64 scope link 
   valid_lft forever preferred_lft forever

15: team0.36@team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
link/ether 00:0a:f7:18:42:0c brd ff:ff:ff:ff:ff:ff
inet 192.168.129.98/29 brd 192.168.129.103 scope global team0.36
   valid_lft forever preferred_lft forever
inet 192.168.129.99/29 brd 192.168.129.103 scope global secondary team0.36
   valid_lft forever preferred_lft forever
inet6 fe80::20a:f7ff:fe18:420c/64 scope link 
   valid_lft forever preferred_lft forever

16: team0.37@team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
link/ether 00:0a:f7:18:42:0c brd ff:ff:ff:ff:ff:ff
inet 192.168.129.106/29 brd 192.168.129.111 scope global team0.37
   valid_lft forever preferred_lft forever
inet 192.168.129.107/29 brd 192.168.129.111 scope global secondary team0.37
   valid_lft forever preferred_lft forever
inet6 fe80::20a:f7ff:fe18:420c/64 scope link 
   valid_lft forever preferred_lft forever

17: team0.38@team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
link/ether 00:0a:f7:18:42:0c brd ff:ff:ff:ff:ff:ff
inet 192.168.129.114/28 brd 192.168.129.127 scope global team0.38
   valid_lft forever preferred_lft forever
inet 192.168.129.115/28 brd 192.168.129.127 scope global secondary team0.38
   valid_lft forever preferred_lft forever
inet 192.168.129.120/28 brd 192.168.129.127 scope global secondary team0.38
   valid_lft forever preferred_lft forever
inet6 fe80::20a:f7ff:fe18:420c/64 scope link 
   valid_lft forever preferred_lft forever

IP-ссылка

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master team0 state UP mode DEFAULT group default qlen 1000
link/ether 00:0a:f7:18:42:0c brd ff:ff:ff:ff:ff:ff

3: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master team0 state UP mode DEFAULT group default qlen 1000
link/ether 00:0a:f7:18:42:0c brd ff:ff:ff:ff:ff:ff

11: team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
link/ether 00:0a:f7:18:42:0c brd ff:ff:ff:ff:ff:ff

12: team0.30@team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
link/ether 00:0a:f7:18:42:0c brd ff:ff:ff:ff:ff:ff

13: team0.31@team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
link/ether 00:0a:f7:18:42:0c brd ff:ff:ff:ff:ff:ff

14: team0.32@team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
link/ether 00:0a:f7:18:42:0c brd ff:ff:ff:ff:ff:ff

15: team0.36@team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
link/ether 00:0a:f7:18:42:0c brd ff:ff:ff:ff:ff:ff

16: team0.37@team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
link/ether 00:0a:f7:18:42:0c brd ff:ff:ff:ff:ff:ff

17: team0.38@team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
link/ether 00:0a:f7:18:42:0c brd ff:ff:ff:ff:ff:ff

IP-маршрут

default via 192.168.129.113 dev team0.38 
192.168.129.64/29 dev team0.30  proto kernel  scope link  src 192.168.129.66 
192.168.129.72/29 dev team0.31  proto kernel  scope link  src 192.168.129.74 
192.168.129.80/29 dev team0.32  proto kernel  scope link  src 192.168.129.82 
192.168.129.96/29 dev team0.36  proto kernel  scope link  src 192.168.129.98 
192.168.129.104/29 dev team0.37  proto kernel  scope link  src 192.168.129.106 
192.168.129.112/28 dev team0.38  proto kernel  scope link  src 192.168.129.114 

Маршруты в таблицах 200-205 включительно были заданы для "global global" (отображается как Unicast Universe в /proc /net /fib_trei), так как адреса в этих VLAN должны маршрутизироваться от источника к широкому диапазону "as- пока «неизвестные места назначения в Интернете (через первичное устройство маршрутизатора брандмауэра)», однако в ответе команды "ip route" маршруты отображаются как ссылки области, так как они находятся в таблице MAIN, а не в области global, как определено в таблицах пользовательских маршрутов 200. -205, а также в записях FIB_TREI .

Мне кажется, что Ядро принимает основную таблицу IP, а не как описано в документах Fedora, что любые таблицы и правила, правильно определенные и перечисленные ДО, т. Е. Меньший номер таблицы, должны иметь приоритет.

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

Любые советы, советы или подсказки будут с благодарностью, прежде чем я вырву, какие волосы у меня остались .....

Приветствия, Гарт.

1 ответ1

0

Был сделан вывод о том, что в установку "Сервер" Fedora 21 и 22 не включены файлы, необходимые для запуска fib_rules.c, который управляет правилами нескольких таблиц.

Пакеты, необходимые для маршрутизации политик с несколькими таблицами:

kernel-headers, kernel-devel и libnl3-devel

После того, как они были установлены, политика маршрутизации работает правильно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .