On 2015-06-06 16:28, Eugene Berdnikov wrote:
On Sat, Jun 06, 2015 at 09:29:43PM +0300, Artem Chuprina wrote:
Кроме того. У меня в свое время был, гм, опыт. Были сервера в офисе.
Было два провайдера, основной и резервный. Адреса, правда, разные
(failover средствами DNS), но существенно не это. Существенно то, что
входящий TCP на резервный канал работал на ура, а вот UDP не везло,
потому что ответ на TCP идет с того же интерфейса, поскольку сеанс, а
Нет, в tcp никакой привязки коннекции к интерфейсу нет, поэтому такое
соединение должно было бы рваться, если бы не была обеспечена маршрутизация
пакетов с определёнными src_ip через своего провайдера. В линуксе это
достигается с помощью ip rules.
skip
Мне кажется, что дискуссия зашла не туда.
протоколам верхнего уровня все равно как идет фрейм, если только он
нормально доставлен.
ни IP ни TCP/UDP не имеют никакого представления об интерфейсе, кроме
его IP характеристик.
ниже разъяснение,
TL/DR:
в layer2 сети load balancing будет работать только если его настроить,
иначе будет работать только один из интерфейсов (в нашем случае оба
конца подключены к одному и тому же сегменту), блокируя второй
механизмами STP.
все ответы на ARP запросы были отосланы от MAC адреса br0, и
никогда от реального выходного интерфейса.
end of TL/DR
само разъяснение:
#brctl show
bridge namebridge idSTP enabledinterfaces
br08000.002427fe3fc8noeth0
eth2
# ip link | grep -A1 -E eth0|eth2
2: eth0: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc sfq master br0
state UP mode DEFAULT group default qlen 1000
link/ether aa:00:04:00:0a:04 brd ff:ff:ff:ff:ff:ff
--
5: eth2: BROADCAST,MULTICAST mtu 1500 qdisc noop state DOWN mode
DEFAULT group default qlen 1000
link/ether 00:24:27:fe:3f:c8 brd ff:ff:ff:ff:ff:ff
# ip link show dev br0
4: br0: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc noqueue state
UP mode DEFAULT group default
link/ether 00:24:27:fe:3f:c8 brd ff:ff:ff:ff:ff:ff
Отмечаем, что бридж имееет MAC адрес интерфейса, который в дауне
на соседней машине, откуда я зашел на этот сервер:
$ arp 192.168.1.1
? (192.168.1.1) at 0:24:27:fe:3f:c8 on en0 ifscope [ethernet]
(адрес бриджа)
# brctl delif br0 eth2(удаляем даун интерфейс)
# ip link show dev br0
4: br0: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc noqueue state
UP mode DEFAULT group default
link/ether aa:00:04:00:0a:04 brd ff:ff:ff:ff:ff:ff
мак адрес бриджа сменился на адрес от eth0
то же самое на клиенте
$ arp 192.168.1.1
? (192.168.1.1) at aa:0:4:0:a:4 on en0 ifscope [ethernet]
все это время я подключен к серверу и изменения мак адреса ловились
очень быстро, моя SSH сессия работала все это время.
Надеюсь помог.
С уважением
Тимур
smime.p7s
Description: S/MIME Cryptographic Signature