Интересно, что решает исходящий интерфейс. Вот моя установка
Eno1 - 192.168.3 0.2/24, Gateway - 192.168.30.1
Eno2 - 192.168.50.2/24, Gateway - 192.168.50.1
Моя таблица маршрутизации выглядит так:
[root ~]# ip route
default
nexthop via 192.168.30.2 dev eno1 weight 1
nexthop via 192.168.50.2 dev eno2 weight 1
192.168.30.0/24 dev eno1 proto kernel scope link src 192.168.30.2 metric 100
192.168.50.0/24 dev eno2 proto kernel scope link src 192.168.50.2 metric 101
А также
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default hostname 0.0.0.0 UG 0 0 0 eno1
192.168.30.0 0.0.0.0 255.255.255.0 U 0 0 0 eno1
192.168.50.0 0.0.0.0 255.255.255.0 U 0 0 0 eno2
После этой конфигурации, когда я пытаюсь спросить ядро Linux, какой интерфейс он будет использовать для случайного назначения… оно играет в игру в пинг-понг между eno1 и eno2.
[root@ ~]# ip route get 1.1.1.9
1.1.1.9 via 192.168.50.2 dev eno2 src 192.168.50.2
cache
[root@ ~]# ip route get 1.1.1.10
1.1.1.10 via 192.168.30.2 dev eno1 src 192.168.30.2
cache
[root@ ~]# ip route get 1.1.1.12
1.1.1.12 via 192.168.50.2 dev eno2 src 192.168.50.2
cache
[root@-2 ~]# ip route get 1.1.1.13
1.1.1.13 via 192.168.30.2 dev eno1 src 192.168.30.2
cache
[root@-2 ~]# ip route get 1.1.1.14
1.1.1.14 via 192.168.30.2 dev eno1 src 192.168.30.2
такое ощущение, что исходящий интерфейс выбирается рандомно помогите пожалуйста разобраться что решает исходящий интерфейс?
1 ответ
Это называется равноценным многолучевым распространением (ECMP).
Linux предназначен для распределения потоков пакетов по нескольким путям. Для отдельных пакетов этого не произойдет. Сетевой стек вычисляет хэш по подмножеству полей заголовка пакета. Вычисленный хэш будет использоваться для выбора следующего прыжка.
Обратите внимание, что балансировка не будет идеальной и на практике могут возникнуть значительные проблемы при развертывании, так как оно основано на маршрутах, а маршруты кэшируются. Это означает, что часто используемые IP-адреса всегда будут использовать один и тот же маршрут.
случайный1-й
