Я экспериментирую на своем сервере Proxmox. Цель этого опыта - установить надежную и безотказную связь между двумя ПК, которые управляют промышленным оборудованием. но я озадачен результатами экспериментов.
Макет Ньюорка:
+-------------------------------------------+
| ens21 x | SRV1
| | | 172.16.1.2
| br0 |
| | |
|bond0.10. * - - - + - - - - - * bond0.20|
| | | |
| ens19 x...................x ens20 |
+-------------------------------------------+
| |
vlan10 | | vlan20
| |
+-------------------------------------------+
| eth3.10 x x eth4.20 | SW1
| |
| eth1.10 x x eth2.20 |
+-------------------------------------------+
| |
| |
other |
vlan10 bridges | vlan20
or |
switches |
| |
+-------------------------------------------+
| eth3.10 x x| eth4.20 | SW2
| |
| eth1.10 x eth2 x eth3.20 |
+-------------------------------------------+
| |
vlan10 | | vlan20
| |
+-------------------------------------------+ SRV2
| ens19 ...................x ens20 | 172.16.1.1
| | | |
|bond0.10. * - - - + - - - - - * bond0.20|
| | |
| br0 |
| | |
| ens21 x |
+-------------------------------------------+
Note:
x: NIC
*: Bonding interface
....: Bonding connection
- or | seperated by space: Bridging connection
Вот моя конфигурация SRV1:
auto bond0
iface bond0 inet manual
up ifconfig $IFACE promisc
up ifconfig bond0 0.0.0.0 up
bond-slaves ens19 ens20
#bond-miimon 100
bond-downdelay 200
bond-updelay 200
#arp_interval 100
#arp_ip_target 172.16.1.2
#bond-mode active-backup
bond-mode broadcast
#bond-mode balance-alb
#pre-up echo 100 > /sys/class/net/bond0/bonding/arp_interval
#pre-up echo +172.16.1.2 > /sys/class/net/bond0/bonding/arp_ip_target
auto bond0.10
iface bond0.10 inet manual
#iface bond0.10 inet static
# address 192.168.100.11
# netmask 2558.255.255.0
# vlan-raw_device bond0
auto bond0.20
iface bond0.20 inet manual
#iface bond0.20 inet static
# address 192.168.200.12
# netmask 255.255.255.0
# vlan-raw_device bond0
auto ens21
iface ens21 inet manual
up ifconfig $IFACE promisc
auto br0
iface br0 inet static
#bridge_ports bond0 ens21
bridge_ports bond0.10 bond0.20 ens21
address 172.16.1.1
broadcast 172.16.255.255
netmask 16
bridge_stp off
bridge_fd 0
/ etc / config / network на SW1:
config interface 'eth1_10'
option proto 'none'
option ifname 'eth1.10'
option auto '1'
config interface 'eth2_20'
option proto 'none'
option ifname 'eth2.20'
option auto '1'
config interface 'eth3_10'
option proto 'none'
option ifname 'eth3.10'
option auto '1'
config interface 'eth4_20'
option proto 'none'
option ifname 'eth4.20'
option auto '1'
config interface 'lan10'
option proto 'static'
option type 'bridge'
option ifname 'eth1.10 eth3.10'
config interface 'lan20'
option type 'bridge'
option proto 'none'
option auto '1'
option ifname 'eth2.20 eth4.20'
Когда я пингую с SRV1 на SRV2, я получаю задержки около 40 мс, и я не получаю повторяющихся пакетов:
root@SRV1:~# ping 172.16.1.2 -c 5
PING 172.16.1.2 (172.16.1.2) 56(84) bytes of data.
64 bytes from 172.16.1.2: icmp_seq=1 ttl=64 time=37.7 ms
64 bytes from 172.16.1.2: icmp_seq=2 ttl=64 time=44.0 ms
64 bytes from 172.16.1.2: icmp_seq=3 ttl=64 time=36.9 ms
64 bytes from 172.16.1.2: icmp_seq=4 ttl=64 time=46.1 ms
64 bytes from 172.16.1.2: icmp_seq=5 ttl=64 time=45.8 ms
--- 172.16.1.2 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 14ms
rtt min/avg/max/mdev = 36.864/42.085/46.071/3.986 ms
Я также обнаружил, что использование процессора PROXMOX и SRV1 составляет почти 98% и 86% соответственно. Контролируемый поток быстро увеличивается с 4 КБ до примерно 120 МБ.
Вношу следующие изменения:
/ etc / network / interfaces на SRV1:
auto br0
iface br0 inet static
bridge_ports bond0 ens21
#bridge_ports bond0.10 bond0.20 ens21
address 172.16.1.1
broadcast 172.16.255.255
netmask 16
bridge_stp off
bridge_fd 0
SW2 имеет аналогичную конфигурацию.
Вот файл / etc / config / network на SW1:
config interface 'lan10'
option proto 'static'
option type 'bridge'
option ifname 'eth1 eth3.10'
config interface 'lan20'
option type 'bridge'
option proto 'none'
option auto '1'
option ifname 'eth2 eth4.20
На этот раз вся система работает нормально: я получаю тройные пакеты и низкую латентность:
root@SRV1:~# ping 172.16.1.2 -c 5
PING 172.16.1.2 (172.16.1.2) 56(84) bytes of data.
64 bytes from 172.16.1.2: icmp_seq=1 ttl=64 time=0.989 ms
64 bytes from 172.16.1.2: icmp_seq=1 ttl=64 time=1.00 ms (DUP!)
64 bytes from 172.16.1.2: icmp_seq=1 ttl=64 time=1.05 ms (DUP!)
64 bytes from 172.16.1.2: icmp_seq=1 ttl=64 time=1.06 ms (DUP!)
<Other outputs ommited here>
64 bytes from 172.16.1.2: icmp_seq=5 ttl=64 time=0.825 ms
--- 172.16.1.2 ping statistics ---
5 packets transmitted, 5 received, +12 duplicates, 0% packet loss, time 10ms
rtt min/avg/max/mdev = 0.811/1.022/1.310/0.143 ms
Перед проведением этих двух экспериментов я ожидал:
Эксперимент 1 - широковещательный шторм не произойдет, поскольку все интерфейсы и соединения от ens19 SRV1 до ens19 SRV2 находятся в vlan10, а интерфейсы и соединения от ens20 SRV1 до ens20 SRV2 - во vlan20.
Эксперимент 2 - будет широковещательный шторм, потому что есть петля (ens19 @ SRV1 - ens19 @ SRV2 - ens20 @ SRV2 - ens20 @ SRV1 - ens19 @ SRV1). Но получаю обратный результат.
Не мог бы кто-нибудь сказать мне, почему в эксперименте 1 в сети был широковещательный шторм; а в Эксперименте 2 нет?
Большое спасибо!
может я немного запуталась в описании .... Дайте попробовать ;-).
SRV1/ens19 is access VLAN 10 on switch (untagged)
SRV1/ens20 is access VLAN 20 on switch (untagged)
Вы создаете интерфейс связи через соединение / порты с разными настройками. Мне это кажется ... не обычным. Рядом с ним, как только вы создадите эту связь, вы соедините VLAN вместе ... Я не уверен, что именно вы пытаетесь сделать. Вы логически соединяете вместе VLAN и создаете петли.
Я бы подумал о настройке магистрали на портах на коммутаторе и пометил VLAN и ту же конфигурацию на портах. Затем создайте соединение над этими портами. Тогда вы можете играть с bond0.10 и bond0.20.
Кстати. в случае, если вы установите мост на обоих концах, есть хороший логический цикл - вы уверены, что хотите такую настройку? Существуют ли какие-то STP для устранения этого?
Удачи.