Я знаю, что обсуждения маршрутизации от нескольких шлюзов (на основе политик) хэшировались много раз, но я все еще не нашел ответ на мою текущую проблему.
Сервер (работает под управлением 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, что любые таблицы и правила, правильно определенные и перечисленные ДО, т. Е. Меньший номер таблицы, должны иметь приоритет.
Есть ли что-то, что я пропустил, что может быть очевидным в настройках значений по умолчанию, или что-то неправильное в таблицах маршрутизации или правилах, которые могут исправить эту проблему?
Любые советы, советы или подсказки будут с благодарностью, прежде чем я вырву, какие волосы у меня остались .....
Приветствия, Гарт.