ΠΠ΅ΠΎΡΠ΄Π°Π²Π½Π° Π±ΡΡ
ΠΈΠ·ΠΏΡΠ°Π²Π΅Π½ ΠΏΡΠ΅Π΄ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±ΠΈΡΠ°ΠΉΠ½Π° Π·Π°Π΄Π°ΡΠ° Π΄Π° Π½Π°ΡΡΡΠΎΡ ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π·Π° MetalLB. ΠΡΠΈΡΠΊΠΎ Π±ΠΈ Π±ΠΈΠ»ΠΎ Π½Π°ΡΠ΅Π΄, Π·Π°ΡΠΎΡΠΎ... ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ MetalLB Π½Π΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π½ΠΎ Π² Π½Π°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ ΠΈΠΌΠ°ΠΌΠ΅ Π΄ΠΎΡΡΠ° Π³ΠΎΠ»ΡΠΌ ΠΊΠ»ΡΡΡΠ΅Ρ Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠ° ΠΌΡΠ΅ΠΆΠΎΠ²Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ.
Π ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΡΠ΅ Π²ΠΈ ΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ Π±Π°Π·ΠΈΡΠ°Π½ΠΎ Π½Π° ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ ΠΈ Π±Π°Π·ΠΈΡΠ°Π½ΠΎ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π·Π° Π²ΡΠ½ΡΠ½Π°ΡΠ° ΠΌΡΠ΅ΠΆΠ° Π½Π° Π²Π°ΡΠΈΡ ΠΊΠ»ΡΡΡΠ΅Ρ.
ΠΡΠΌΠ° Π΄Π° Π½Π°Π²Π»ΠΈΠ·Π°ΠΌ Π² ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΎΡΠ½ΠΎΡΠ½ΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° MetalLB, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΠΌ, ΡΠ΅ Π²Π΅ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΎΠΏΠΈΡ. ΠΡΠ΅Π΄Π»Π°Π³Π°ΠΌ Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΎ ΠΊΡΠΌ ΡΠΎΡΠΊΠ°ΡΠ°, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅. Π’Π°ΠΊΠ° ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ ΡΠ΅ΡΠΈΡΠΈ ΡΠ»ΡΡΠ°Ρ:
Π‘Π»ΡΡΠ°ΠΉ 1: ΠΠΎΠ³Π°ΡΠΎ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ
ΠΠ΅ΠΊΠ° Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π΅Π΄ΠΈΠ½ ΠΏΡΠΎΡΡ ΡΠ»ΡΡΠ°ΠΉ.
ΠΠ΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅, ΠΊΠΎΠ³Π°ΡΠΎ Π°Π΄ΡΠ΅ΡΠΈΡΠ΅, ΠΈΠ·Π΄Π°Π΄Π΅Π½ΠΈ ΠΎΡ MetalLB, ΡΠ° Π² ΡΡΡΠ°ΡΠ° ΠΏΠΎΠ΄ΠΌΡΠ΅ΠΆΠ° ΠΊΠ°ΡΠΎ Π°Π΄ΡΠ΅ΡΠΈΡΠ΅ Π½Π° Π²Π°ΡΠΈΡΠ΅ Π²ΡΠ·Π»ΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠΌΠ°ΡΠ΅ ΠΏΠΎΠ΄ΠΌΡΠ΅ΠΆΠ° 192.168.1.0/24
, ΠΈΠΌΠ° ΡΡΡΠ΅Ρ 192.168.1.1
ΠΈ Π²Π°ΡΠΈΡΠ΅ Π²ΡΠ·Π»ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ Π°Π΄ΡΠ΅ΡΠΈ: 192.168.1.10-30
, ΡΠΎΠ³Π°Π²Π° Π·Π° MetalLB ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅Π³ΡΠ»ΠΈΡΠ°ΡΠ΅ ΠΎΠ±Ρ
Π²Π°ΡΠ° 192.168.1.100-120
ΠΈ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠΈΠ³ΡΡΠ½ΠΈ, ΡΠ΅ ΡΠ΅ ΡΠ°Π±ΠΎΡΡΡ Π±Π΅Π· Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ.
ΠΠ°ΡΠΎ ΡΠ°ΠΊΠ°? Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π²Π°ΡΠΈΡΠ΅ Π²ΡΠ·Π»ΠΈ Π²Π΅ΡΠ΅ ΠΈΠΌΠ°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ΠΈ ΠΌΠ°ΡΡΡΡΡΠΈ:
# ip route
default via 192.168.1.1 dev eth0 onlink
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.10
Π Π°Π΄ΡΠ΅ΡΠΈΡΠ΅ ΠΎΡ ΡΡΡΠΈΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΠ΅ Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π±Π΅Π· Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
Π‘Π»ΡΡΠ°ΠΉ 2: ΠΠΎΠ³Π°ΡΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅
Π’ΡΡΠ±Π²Π° Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΌΠ°ΡΡΡΡΡΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ Π²Π°ΡΠΈΡΠ΅ Π²ΡΠ·Π»ΠΈ Π½ΡΠΌΠ°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ IP Π°Π΄ΡΠ΅Ρ ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΡΡΡ ΠΊΡΠΌ ΠΏΠΎΠ΄ΠΌΡΠ΅ΠΆΠ°ΡΠ°, Π·Π° ΠΊΠΎΡΡΠΎ MetalLB ΠΈΠ·Π΄Π°Π²Π° Π°Π΄ΡΠ΅ΡΠΈ.
Π©Π΅ ΠΎΠ±ΡΡΠ½Ρ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ. ΠΡΠ΅ΠΊΠΈ ΠΏΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ MetalLB ΠΈΠ·Π²Π΅ΠΆΠ΄Π° Π°Π΄ΡΠ΅Ρ, ΡΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΡΠ°Π²Π½ΠΈ Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΈΡΠ²ΠΎΡΠ²Π°Π½Π΅ ΠΊΠ°ΡΠΎ:
ip addr add 10.9.8.7/32 dev lo
ΠΠ±ΡΡΡΠ°ΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π°:
- a) ΠΠ΄ΡΠ΅ΡΡΡ ΡΠ΅ Π·Π°Π΄Π°Π²Π° Ρ ΠΏΡΠ΅ΡΠΈΠΊΡ
/32
ΡΠΎΠ΅ΡΡ ΠΌΠ°ΡΡΡΡΡ Π½ΡΠΌΠ° Π΄Π° Π±ΡΠ΄Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΊΡΠΌ ΠΏΠΎΠ΄ΠΌΡΠ΅ΠΆΠ°ΡΠ° Π·Π° Π½Π΅Π³ΠΎ (ΡΠΎΠ²Π° Π΅ ΠΏΡΠΎΡΡΠΎ Π°Π΄ΡΠ΅Ρ) - b) ΠΠ΄ΡΠ΅ΡΡΡ Π΅ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ΅Π½ ΠΊΡΠΌ Π²ΡΠ΅ΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° Π²ΡΠ·Π΅Π» (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ½Π° Π²ΡΡΠ·ΠΊΠ°). Π’ΡΠΊ ΡΠΈ ΡΡΡΡΠ²Π° Π΄Π° ΡΠΏΠΎΠΌΠ΅Π½Π΅ΠΌ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈΡΠ΅ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ ΡΡΠ΅ΠΊ Π½Π° Linux. ΠΠ΅Π· Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΠΊΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ Π°Π΄ΡΠ΅ΡΠ°, ΡΠ΄ΡΠΎΡΠΎ Π²ΠΈΠ½Π°Π³ΠΈ ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° arp Π·Π°ΡΠ²ΠΊΠΈ ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ° arp ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ Π½Π° Π²ΡΡΠΊΠ° ΠΎΡ ΡΡΡ , ΡΠΎΠ²Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ΅ ΡΡΠΈΡΠ° Π·Π° ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ ΠΈ ΠΎΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΄ΠΎΡΡΠ° ΡΠΈΡΠΎΠΊΠΎ Π² ΡΠ°ΠΊΠ°Π²Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½Π° ΡΡΠ΅Π΄Π° ΠΊΠ°ΡΠΎ Kubernetes.
Π’ΠΎΠ²Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠ΅Π· Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΡΠΎΠ³ arp:
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ arp ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈΡΠ΅ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ΠΈ ΡΠ°ΠΌΠΎ Π°ΠΊΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡΡ ΠΈΠ·ΡΠΈΡΠ½ΠΎ ΡΡΠ΄ΡΡΠΆΠ° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ IP Π°Π΄ΡΠ΅Ρ. Π’Π°Π·ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°, Π°ΠΊΠΎ ΠΏΠ»Π°Π½ΠΈΡΠ°ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ MetalLB ΠΈ Π²Π°ΡΠ΅ΡΠΎ kube-ΠΏΡΠΎΠΊΡΠΈ ΡΠ°Π±ΠΎΡΠΈ Π² ΡΠ΅ΠΆΠΈΠΌ IPVS.
MetalLB ΠΎΠ±Π°ΡΠ΅ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ΄ΡΠΎΡΠΎ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° arp Π·Π°ΡΠ²ΠΊΠΈ, Π° Π³ΠΎ ΠΏΡΠ°Π²ΠΈ ΡΠ°ΠΌ Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ°Π·ΠΈ ΠΎΠΏΡΠΈΡ Π½ΡΠΌΠ° Π΄Π° ΠΏΠΎΠ²Π»ΠΈΡΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° MetalLB.
ΠΠ° ΡΠ΅ ββΠ²ΡΡΠ½Π΅ΠΌ ΠΊΡΠΌ Π½Π°ΡΠ°ΡΠ° Π·Π°Π΄Π°ΡΠ°. ΠΠΊΠΎ ΠΌΠ°ΡΡΡΡΡΡΡ Π·Π° ΠΈΠ·Π΄Π°Π΄Π΅Π½ΠΈΡΠ΅ Π°Π΄ΡΠ΅ΡΠΈ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° Π½Π° Π²Π°ΡΠΈΡΠ΅ Π²ΡΠ·Π»ΠΈ, Π΄ΠΎΠ±Π°Π²Π΅ΡΠ΅ Π³ΠΎ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΊΡΠΌ Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ·Π»ΠΈ:
ip route add 10.9.8.0/24 dev eth1
Π‘Π»ΡΡΠ°ΠΉ 3: ΠΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ Π±Π°Π·ΠΈΡΠ°Π½ΠΎ Π½Π° ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊΠ° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅
Π©Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ Π±Π°Π·ΠΈΡΠ°Π½ΠΎ Π½Π° ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊΠ° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅, ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΏΡΠ΅Π· ΠΎΡΠ΄Π΅Π»Π΅Π½ ΡΠ»ΡΠ·, Π° Π½Π΅ ΡΠΎΠ·ΠΈ, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ Ρ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ ΡΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Ρ ΠΏΡΠ΅Π· ΡΡΡΠΈΡ ΡΠ»ΡΠ·.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠΌΠ°ΡΠ΅ Π΅Π΄Π½Π° ΠΈ ΡΡΡΠ° ΠΏΠΎΠ΄ΠΌΡΠ΅ΠΆΠ° 192.168.1.0/24
ΠΏΠΎΡΠ²Π΅ΡΠ΅Π½ Π½Π° Π²Π°ΡΠΈΡΠ΅ Π²ΡΠ·Π»ΠΈ, Π½ΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΈΠ·Π΄Π°Π²Π°ΡΠ΅ Π²ΡΠ½ΡΠ½ΠΈ Π°Π΄ΡΠ΅ΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° MetalLB. ΠΠ° ΠΏΡΠΈΠ΅ΠΌΠ΅ΠΌ, ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π°Π΄ΡΠ΅ΡΠ° ΠΎΡ ΠΏΠΎΠ΄ΠΌΡΠ΅ΠΆΠ° 1.2.3.0/24
ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈ Π²ΡΠ² VLAN 100 ΠΈ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π·Π° Π²ΡΠ½ΡΠ΅Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΡΠ»ΡΠ³ΠΈΡΠ΅ Π½Π° Kubernetes.
ΠΡΠΈ ΠΊΠΎΠ½ΡΠ°ΠΊΡ 1.2.3.4
ΡΠ΅ ΠΏΡΠ°Π²ΠΈΡΠ΅ Π·Π°ΡΠ²ΠΊΠΈ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½Π° ΠΏΠΎΠ΄ΠΌΡΠ΅ΠΆΠ° 1.2.3.0/24
ΠΈ ΠΈΠ·ΡΠ°ΠΊΠ°ΠΉΡΠ΅ ΠΎΡΠ³ΠΎΠ²ΠΎΡ. ΠΡΠ·Π΅Π»ΡΡ, ΠΊΠΎΠΉΡΠΎ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π΅ Π³Π»Π°Π²Π΅Π½ Π·Π° Π°Π΄ΡΠ΅ΡΠ°, ΠΈΠ·Π΄Π°Π΄Π΅Π½ ΠΎΡ MetalLB 1.2.3.4
, ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΎΡ ΡΡΡΠ΅ΡΠ° 1.2.3.1
, Π½ΠΎ ΠΎΡΠ³ΠΎΠ²ΠΎΡΡΡ Π·Π° Π½Π΅Π³ΠΎ Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΌΠΈΠ½Π°Π²Π° ΠΏΠΎ ΡΡΡΠΈΡ ΠΌΠ°ΡΡΡΡΡ, ΠΏΡΠ΅Π· 1.2.3.1
.
Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π½Π°ΡΠΈΡΡ Π²ΡΠ·Π΅Π» Π²Π΅ΡΠ΅ ΠΈΠΌΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ ΡΠ»ΡΠ· ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ 192.168.1.1
, ΡΠΎΠ³Π°Π²Π° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΎΡΠ³ΠΎΠ²ΠΎΡΡΡ ΡΠ΅ ΠΎΡΠΈΠ΄Π΅ ΠΏΡΠΈ Π½Π΅Π³ΠΎ, Π° Π½Π΅ Π΄ΠΎ 1.2.3.1
, ΡΡΠ΅Π· ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡ
ΠΌΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ°.
ΠΠ°ΠΊ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΠΈΠΌ Ρ ΡΠ°Π·ΠΈ ΡΠΈΡΡΠ°ΡΠΈΡ?
Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈΡΠ΅ Π²ΡΠΈΡΠΊΠΈΡΠ΅ ΡΠΈ Π²ΡΠ·Π»ΠΈ ΠΏΠΎ ΡΠ°ΠΊΡΠ² Π½Π°ΡΠΈΠ½, ΡΠ΅ Π΄Π° ΡΠ° Π³ΠΎΡΠΎΠ²ΠΈ Π΄Π° ΠΎΠ±ΡΠ»ΡΠΆΠ²Π°Ρ Π²ΡΠ½ΡΠ½ΠΈ Π°Π΄ΡΠ΅ΡΠΈ Π±Π΅Π· Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ Π·Π° Π³ΠΎΡΠ½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΡΠ±Π²Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ VLAN ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° Π²ΡΠ·Π΅Π»Π°:
ip link add link eth0 name eth0.100 type vlan id 100
ip link set eth0.100 up
Π ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΄ΠΎΠ±Π°Π²Π΅ΡΠ΅ ΠΌΠ°ΡΡΡΡΡΠΈ:
ip route add 1.2.3.0/24 dev eth0.100 table 100
ip route add default via 1.2.3.1 table 100
ΠΠΎΠ»Ρ, ΠΎΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΠΌΠ΅ ΠΌΠ°ΡΡΡΡΡΠΈ ΠΊΡΠΌ ΠΎΡΠ΄Π΅Π»Π½Π° ΡΠ°Π±Π»ΠΈΡΠ° Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ 100
ΡΠΎΠΉ ΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ° ΡΠ°ΠΌΠΎ Π΄Π²Π° ΠΌΠ°ΡΡΡΡΡΠ°, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ Ρ ΠΎΡΠ³ΠΎΠ²ΠΎΡ ΠΏΡΠ΅Π· ΡΠ»ΡΠ·Π° 1.2.3.1
, ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Π·Π°Π΄ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° eth0.100
.
Π‘Π΅Π³Π° ΡΡΡΠ±Π²Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ:
ip rule add from 1.2.3.0/24 lookup 100
ΠΊΠΎΠ΅ΡΠΎ ΠΈΠ·ΡΠΈΡΠ½ΠΎ ΠΊΠ°Π·Π²Π°: Π°ΠΊΠΎ Π°Π΄ΡΠ΅ΡΡΡ Π½Π° ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ° Π΅ Π² 1.2.3.0/24
, ΡΠΎΠ³Π°Π²Π° ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ 100
. Π Π½Π΅Π³ΠΎ Π²Π΅ΡΠ΅ ΡΠΌΠ΅ ΠΎΠΏΠΈΡΠ°Π»ΠΈ ΠΌΠ°ΡΡΡΡΡΠ°, ΠΏΠΎ ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π³ΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠΈΠΌ 1.2.3.1
Π‘Π»ΡΡΠ°ΠΉ 4: ΠΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅, Π±Π°Π·ΠΈΡΠ°Π½ΠΎ Π½Π° ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ
Π’ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° Π½Π° ΠΌΡΠ΅ΠΆΠ°ΡΠ° Π΅ ΡΡΡΠ°ΡΠ° ΠΊΠ°ΡΠΎ Π² ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ, Π½ΠΎ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ, ΡΠ΅ ΠΈΡΠΊΠ°ΡΠ΅ ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° ΠΈΠΌΠ°ΡΠ΅ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π²ΡΠ½ΡΠ½ΠΈ Π°Π΄ΡΠ΅ΡΠΈ Π½Π° ΠΏΡΠ» 1.2.3.0/24
ΠΎΡ Π²Π°ΡΠΈΡΠ΅ ΠΊΠ°ΠΏΡΡΠ»ΠΈ:
ΠΡΠΎΠ±Π΅Π½ΠΎΡΠΎ Π΅, ΡΠ΅ ΠΏΡΠΈ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ Π°Π΄ΡΠ΅Ρ Π² 1.2.3.0/24
, ΠΏΠ°ΠΊΠ΅ΡΡΡ Ρ ΠΎΡΠ³ΠΎΠ²ΠΎΡ ΡΠ΄ΡΡ Π²ΡΠ·Π΅Π»Π° ΠΈ ΠΈΠΌΠ° Π°Π΄ΡΠ΅Ρ Π½Π° ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° 1.2.3.0/24
ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΠΎΡΠ»ΡΡΠ½ΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ Π΄ΠΎ eth0.100
, Π½ΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Kubernetes Π΄Π° Π³ΠΎ ΠΏΡΠ΅Π½Π°ΡΠΎΡΠΈ ΠΊΡΠΌ ΠΏΡΡΠ²ΠΈΡ Π½ΠΈ pod, ΠΊΠΎΠΉΡΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠ° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½Π°ΡΠ° Π·Π°ΡΠ²ΠΊΠ°.
Π Π΅ΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠ΅ ΠΎΠΊΠ°Π·Π° ΡΡΡΠ΄Π½ΠΎ, Π½ΠΎ ΡΡΠ°Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π±Π°Π·ΠΈΡΠ°Π½ΠΎΡΠΎ Π½Π° ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅:
ΠΠ° ΠΏΠΎ-Π΄ΠΎΠ±ΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ°, Π΅ΡΠΎ Π±Π»ΠΎΠΊΠΎΠ²Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ° Π½Π° netfilter:
ΠΡΡΠ²ΠΎ, ΠΊΠ°ΠΊΡΠΎ Π² ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ΠΊΠ° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΡΠ°Π±Π»ΠΈΡΠ° Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅:
ip route add 1.2.3.0/24 dev eth0.100 table 100
ip route add default via 1.2.3.1 table 100
Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΊΡΠΌ iptables:
iptables -t mangle -A PREROUTING -i eth0.100 -j CONNMARK --set-mark 0x100
iptables -t mangle -A PREROUTING -j CONNMARK --restore-mark
iptables -t mangle -A PREROUTING -m mark ! --mark 0 -j RETURN
iptables -t mangle -A POSTROUTING -j CONNMARK --save-mark
Π’Π΅Π·ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΠ΅ ΠΌΠ°ΡΠΊΠΈΡΠ°Ρ Π²Ρ
ΠΎΠ΄ΡΡΠΈΡΠ΅ Π²ΡΡΠ·ΠΊΠΈ ΠΊΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° eth0.100
, ΠΌΠ°ΡΠΊΠΈΡΠ°ΠΉΠΊΠΈ Π²ΡΠΈΡΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ Ρ Π΅ΡΠΈΠΊΠ΅ΡΠ° 0x100
, ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈΡΠ΅ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΡΡΡΠ°ΡΠ° Π²ΡΡΠ·ΠΊΠ° ΡΡΡΠΎ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΌΠ°ΡΠΊΠΈΡΠ°Π½ΠΈ ΡΡΡ ΡΡΡΠΈΡ Π΅ΡΠΈΠΊΠ΅Ρ.
Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π·Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅:
ip rule add from 1.2.3.0/24 fwmark 0x100 lookup 100
Π’ΠΎΠ΅ΡΡ Π²ΡΠΈΡΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ Ρ Π°Π΄ΡΠ΅Ρ Π½Π° ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ 1.2.3.0/24
ΠΈ Π΅ΡΠΈΠΊΠ΅Ρ 0x100
ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠ°Π±Π»ΠΈΡΠ° 100
.
ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ Π΄ΡΡΠ³ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ, ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈ Π½Π° Π΄ΡΡΠ³ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π½Π΅ ΡΠ° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ Π½Π° ΡΠΎΠ²Π° ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΠΈΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π½Π° Kubernetes.
ΠΠΌΠ° ΠΎΡΠ΅ Π½Π΅ΡΠΎ, Π² Linux ΠΈΠΌΠ° ΡΠ°ΠΊΠ° Π½Π°ΡΠ΅ΡΠ΅Π½ ΡΠΈΠ»ΡΡΡ Π·Π° ΠΎΠ±ΡΠ°ΡΠ΅Π½ ΠΏΡΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ°Π·Π²Π°Π»Ρ Π²ΡΠΈΡΠΊΠΎ; ΡΠΎΠΉ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΏΡΠΎΡΡΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°: Π·Π° Π²ΡΠΈΡΠΊΠΈ Π²Ρ ΠΎΠ΄ΡΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΏΡΠΎΠΌΠ΅Π½Ρ Π°Π΄ΡΠ΅ΡΠ° Π½Π° ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ° Ρ Π°Π΄ΡΠ΅ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° Π΄Π°Π»ΠΈ ΠΏΠ°ΠΊΠ΅ΡΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π»Π΅Π·Π΅ ΠΏΡΠ΅Π· ΡΡΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π½Π° ΠΊΠΎΠΉΡΠΎ Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½, Π°ΠΊΠΎ Π½Π΅, ΡΠΎΠΉ ΡΠ΅ Π³ΠΎ ΡΠΈΠ»ΡΡΠΈΡΠ°.
ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Π΅, ΡΠ΅ Π² Π½Π°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ Π½ΡΠΌΠ° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ, Π½ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π³ΠΎ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΠΌΠ΅:
echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/eth0.100/rp_filter
ΠΠΎΠ»Ρ, ΠΈΠΌΠ°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄, ΡΠ΅ ΠΏΡΡΠ²Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ° Π³Π»ΠΎΠ±Π°Π»Π½ΠΎΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π° rp_filter; Π°ΠΊΠΎ Π½Π΅ Π΅ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π°, Π²ΡΠΎΡΠ°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½ΡΠΌΠ° Π΄Π° ΠΈΠΌΠ° Π΅ΡΠ΅ΠΊΡ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, ΠΎΡΡΠ°Π½Π°Π»ΠΈΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ ΡΠ΅ ΠΎΡΡΠ°Π½Π°Ρ Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ rp_filter.
ΠΠ° Π΄Π° Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠΌ Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΠΈΠ»ΡΡΡΠ°, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° rp_filter Π·Π° netfilter. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ rpfilter ΠΊΠ°ΡΠΎ iptables ΠΌΠΎΠ΄ΡΠ», ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ Π΄ΠΎΡΡΠ° Π³ΡΠ²ΠΊΠ°Π²ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
iptables -t raw -A PREROUTING -i eth0.100 -d 1.2.3.0/24 -j RETURN
iptables -t raw -A PREROUTING -i eth0.100 -m rpfilter --invert -j DROP
Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΠΉΡΠ΅ rp_filter Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° eth0.100
Π·Π° Π²ΡΠΈΡΠΊΠΈ Π°Π΄ΡΠ΅ΡΠΈ Ρ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° 1.2.3.0/24
.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com