L2 рдореЛрдбрдордзреНрдпреЗ MetalLB рд╕рд╛рдареА рдлрд╛рдЗрди-рдЯреНрдпреВрдирд┐рдВрдЧ рд░реВрдЯрд┐рдВрдЧ

L2 рдореЛрдбрдордзреНрдпреЗ MetalLB рд╕рд╛рдареА рдлрд╛рдЗрди-рдЯреНрдпреВрдирд┐рдВрдЧ рд░реВрдЯрд┐рдВрдЧ
рдХрд╛рд╣реА рдХрд╛рд│рд╛рдкреВрд░реНрд╡реА рдорд▓рд╛ MetalLB рд╕рд╛рдареА рд░рд╛рдЙрдЯрд┐рдВрдЧ рд╕реЗрдЯ рдХрд░рдгреНтАНрдпрд╛рдЪреНтАНрдпрд╛ рдЕрддрд┐рд╢рдп рдЕрд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпрд╛рдЪрд╛ рд╕рд╛рдордирд╛ рдХрд░рд╛рд╡рд╛ рд▓рд╛рдЧрд▓рд╛. рд╕рд░реНрд╡ рдХрд╛рд╣реА рдареАрдХ рд╣реЛрдИрд▓, рдХрд╛рд░рдг ... рд╕рд╛рдорд╛рдиреНрдпрддрдГ MetalLB рд▓рд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рдЕрддрд┐рд░рд┐рдХреНрдд рдХреНрд░рд┐рдпрд╛рдВрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╕рддреЗ, рдкрд░рдВрддреБ рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЕрдЧрджреА рд╕рд╛рдзреНрдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирд╕рд╣ рдмрд▒реНрдпрд╛рдкреИрдХреА рдореЛрдард╛ рдХреНрд▓рд╕реНрдЯрд░ рдЖрд╣реЗ.

рдпрд╛ рд▓реЗрдЦрд╛рдд рдореА рддреБрдореНрд╣рд╛рд▓рд╛ рддреБрдордЪреНрдпрд╛ рдХреНрд▓рд╕реНрдЯрд░рдЪреНрдпрд╛ рдмрд╛рд╣реНрдп рдиреЗрдЯрд╡рд░реНрдХрд╕рд╛рдареА рд╕реНрд░реЛрдд-рдЖрдзрд╛рд░рд┐рдд рдЖрдгрд┐ рдзреЛрд░рдг-рдЖрдзрд╛рд░рд┐рдд рд░рд╛рдЙрдЯрд┐рдВрдЧ рдХрд╕реЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рд╛рдпрдЪреЗ рддреЗ рд╕рд╛рдВрдЧреЗрди.

MetalLB рдЗрдиреНрд╕реНрдЯреЙрд▓ рдЖрдгрд┐ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреНрдпрд╛рдмрджреНрджрд▓ рдореА рддрдкрд╢реАрд▓рд╛рдд рдЬрд╛рдгрд╛рд░ рдирд╛рд╣реА, рдХрд╛рд░рдг рдореА рдЧреГрд╣реАрдд рдзрд░рддреЛ рдХреА рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрдзреАрдЪ рдХрд╛рд╣реА рдЕрдиреБрднрд╡ рдЖрд╣реЗ. рдореА рд╕рд░рд│ рдмрд┐рдВрджреВрд╡рд░ рдЬрд╛рдгреНрдпрд╛рдЪрд╛ рд╕рд▓реНрд▓рд╛ рджреЗрддреЛ, рдореНрд╣рдгрдЬреЗ рд░рд╛рдЙрдЯрд┐рдВрдЧ рд╕реЗрдЯ рдХрд░рдгреЗ. рддрд░ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЪрд╛рд░ рдкреНрд░рдХрд░рдгреЗ рдЖрд╣реЗрдд:

рдХреЗрд╕ 1: рдЬреЗрд╡реНрд╣рд╛ рдХреЛрдгрддреЗрд╣реА рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдЖрд╡рд╢реНрдпрдХ рдирд╕рддреЗ

рдЪрд▓рд╛ рдПрдХ рд╕рд╛рдзреА рдХреЗрд╕ рдкрд╛рд╣реВ.

L2 рдореЛрдбрдордзреНрдпреЗ MetalLB рд╕рд╛рдареА рдлрд╛рдЗрди-рдЯреНрдпреВрдирд┐рдВрдЧ рд░реВрдЯрд┐рдВрдЧ

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: рдЬреЗрд╡реНрд╣рд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╛рдиреБрдХреВрд▓рди рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рддреЗ

L2 рдореЛрдбрдордзреНрдпреЗ MetalLB рд╕рд╛рдареА рдлрд╛рдЗрди-рдЯреНрдпреВрдирд┐рдВрдЧ рд░реВрдЯрд┐рдВрдЧ

рддреБрдордЪреНрдпрд╛ рдиреЛрдбреНрд╕рдордзреНрдпреЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗрд▓рд╛ IP рдкрддреНрддрд╛ рдХрд┐рдВрд╡рд╛ MetalLB рдЬреНрдпрд╛ рд╕рдмрдиреЗрдЯрд╕рд╛рдареА рдкрддреНрддреЗ рдЬрд╛рд░реА рдХрд░рддреЗ рддреНрдпрд╛ рдорд╛рд░реНрдЧрд╛рдЪрд╛ рдорд╛рд░реНрдЧ рдирд╕реЗрд▓ рддреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рдЕрддрд┐рд░рд┐рдХреНрдд рдорд╛рд░реНрдЧ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗрдд.

рдореА рдереЛрдбреЗ рдЕрдзрд┐рдХ рддрдкрд╢реАрд▓рд╡рд╛рд░ рд╕рдордЬрд╛рд╡реВрди рд╕рд╛рдВрдЧреЗрди. рдЬреЗрд╡реНрд╣рд╛ рдЬреЗрд╡реНрд╣рд╛ MetalLB рдкрддреНрддрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддреЗ, рддреЗрд╡реНрд╣рд╛ рддреНрдпрд╛рдЪреА рддреБрд▓рдирд╛ рд╕рд╛рдзреНрдпрд╛ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯрд╢реА рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ рдЬрд╕реЗ рдХреА:

ip addr add 10.9.8.7/32 dev lo

рдХрдбреЗ рд▓рдХреНрд╖ рджреЗрдгреЗ:

  • a) рдкрддреНрддрд╛ рдЙрдкрд╕рд░реНрдЧрд╛рд╕рд╣ рдирд┐рдпреБрдХреНрдд рдХреЗрд▓рд╛ рдЖрд╣реЗ /32 рдореНрд╣рдгрдЬреЗрдЪ, рдорд╛рд░реНрдЧ рддреНрдпрд╛рдЪреНрдпрд╛рд╕рд╛рдареА рд╕рдмрдиреЗрдЯрдордзреНрдпреЗ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рдЬреЛрдбрд▓рд╛ рдЬрд╛рдгрд╛рд░ рдирд╛рд╣реА (рддреЛ рдлрдХреНрдд рдПрдХ рдкрддреНрддрд╛ рдЖрд╣реЗ)
  • b) рдкрддреНрддрд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рдиреЛрдб рдЗрдВрдЯрд░рдлреЗрд╕рд╢реА рд╕рдВрд▓рдЧреНрди рдЖрд╣реЗ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде рд▓реВрдкрдмреЕрдХ). рд▓рд┐рдирдХреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдЯреЕрдХрдЪреНрдпрд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдЪрд╛ рдпреЗрдереЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдгреЗ рдпреЛрдЧреНрдп рдЖрд╣реЗ. рддреБрдореНтАНрд╣реА рдХреЛрдгрддреНтАНрдпрд╛ рдЗрдВрдЯрд░рдлреЗрд╕рдордзреНтАНрдпреЗ рдкрддреНрддрд╛ рдЬреЛрдбрд▓рд╛ рд╣реЗ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдирд╛рд╣реА, рдХрд░реНрдирд▓ рдиреЗрд╣рдореА рдПрдЖрд░рдкреА рд╡рд┐рдирдВрддреНтАНрдпрд╛рдВрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░реЗрд▓ рдЖрдгрд┐ рддреНтАНрдпрд╛рдкреИрдХреА рдХреЛрдгрд╛рд▓рд╛рд╣реА рдПрдЖрд░рдкреА рдкреНрд░рддрд┐рд╕рд╛рдж рдкрд╛рдард╡реЗрд▓, рд╣реЗ рд╡рд░реНрддрди рдмрд░реЛрдмрд░ рдорд╛рдирд▓реЗ рдЬрд╛рддреЗ рдЖрдгрд┐ рд╢рд┐рд╡рд╛рдп, рдХреБрдмрд░рдиреЗрдЯ рд╕рд╛рд░рдЦреНрдпрд╛ рдЧрддрд┐рдорд╛рди рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рд╡рд░ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ.

рд╣реЗ рд╡рд░реНрддрди рд╕рд╛рдиреБрдХреВрд▓рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде рдХрдареЛрд░ рдПрдЖрд░рдкреА рд╕рдХреНрд╖рдо рдХрд░реВрди:

echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдЬрд░ рдЗрдВрдЯрд░рдлреЗрд╕рдордзреНрдпреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ IP рдкрддреНрддрд╛ рдЕрд╕реЗрд▓ рддрд░рдЪ arp рдкреНрд░рддрд┐рд╕рд╛рдж рдкрд╛рдард╡рд▓реЗ рдЬрд╛рддреАрд▓. рдЬрд░ рддреБрдореНрд╣реА MetalLB рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдпреЛрдЬрдирд╛ рдЖрдЦрдд рдЕрд╕рд╛рд▓ рдЖрдгрд┐ рддреБрдордЪреА рдХреНрдпреБрдм-рдкреНрд░реЙрдХреНрд╕реА 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 рдордзреНтАНрдпреЗ рд╕реНрдерд┐рдд рдЖрд╣реЗ рдЖрдгрд┐ рддреБрдореНтАНрд╣рд╛рд▓рд╛ рддреЗ рдХреБрдмрд░рдиреЗрдЯ рд╕реЗрд╡рд╛ рдмрд╛рд╣реЗрд░реВрди рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНтАНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд╛рдпрдЪреЗ рдЖрд╣реЗрдд.

L2 рдореЛрдбрдордзреНрдпреЗ MetalLB рд╕рд╛рдареА рдлрд╛рдЗрди-рдЯреНрдпреВрдирд┐рдВрдЧ рд░реВрдЯрд┐рдВрдЧ

рд╕рдВрдкрд░реНрдХ рдХрд░рддрд╛рдирд╛ 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 рддреБрдордЪреНрдпрд╛ рд╢реЗрдВрдЧрд╛ рдкрд╛рд╕реВрди:

L2 рдореЛрдбрдордзреНрдпреЗ MetalLB рд╕рд╛рдареА рдлрд╛рдЗрди-рдЯреНрдпреВрдирд┐рдВрдЧ рд░реВрдЯрд┐рдВрдЧ

рд╡реИрд╢рд┐рд╖реНрдареНрдп рдореНрд╣рдгрдЬреЗ рдХреЛрдгрддреНрдпрд╛рд╣реА рдкрддреНрддреНрдпрд╛рд╡рд░ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛рдирд╛ 1.2.3.0/24, рдкреНрд░рддрд┐рд╕рд╛рдж рдкреЕрдХреЗрдЯ рдиреЛрдбрд╡рд░ рдЖрджрд│рддреЗ рдЖрдгрд┐ рд╢реНрд░реЗрдгреАрдордзреНрдпреЗ рд╕реНрддреНрд░реЛрдд рдкрддреНрддрд╛ рдЕрд╕рддреЛ 1.2.3.0/24 рдЖрдЬреНрдЮрд╛рдзрд╛рд░рдХрдкрдгреЗ рдкрд╛рдард╡рд▓реЗ рдЬрд╛рдИрд▓ eth0.100, рдкрд░рдВрддреБ рдЖрдореНрд╣рд╛рд▓рд╛ Kubernetes рдиреЗ рддреЗ рдЖрдордЪреНрдпрд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рдкреЙрдбрд╡рд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рд╛рдпрдЪреЗ рдЖрд╣реЗ, рдЬреНрдпрд╛рдиреЗ рдореВрд│ рд╡рд┐рдирдВрддреА рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реА.

рдпрд╛ рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреЗ рдХрдареАрдг рдЭрд╛рд▓реЗ, рдкрд░рдВрддреБ рдзреЛрд░рдг-рдЖрдзрд╛рд░рд┐рдд рд░рд╛рдЙрдЯрд┐рдВрдЧрдореБрд│реЗ рддреЗ рд╢рдХреНрдп рдЭрд╛рд▓реЗ:

рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪреНрдпрд╛ рдЪрд╛рдВрдЧрд▓реНрдпрд╛ рдкреНрд░рдХрд╛рд░реЗ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА, рдпреЗрдереЗ рдПрдХ рдиреЗрдЯрдлрд┐рд▓реНрдЯрд░ рдмреНрд▓реЙрдХ рдЖрдХреГрддреА рдЖрд╣реЗ:
L2 рдореЛрдбрдордзреНрдпреЗ MetalLB рд╕рд╛рдареА рдлрд╛рдЗрди-рдЯреНрдпреВрдирд┐рдВрдЧ рд░реВрдЯрд┐рдВрдЧ

рдкреНрд░рдердо, рдорд╛рдЧреАрд▓ рдЙрджрд╛рд╣рд░рдгрд╛рдкреНрд░рдорд╛рдгреЗ, рдЕрддрд┐рд░рд┐рдХреНрдд рд░рд╛рдЙрдЯрд┐рдВрдЧ рдЯреЗрдмрд▓ рддрдпрд╛рд░ рдХрд░реВрдпрд╛:

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.

рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рджреБрд╕рд░реНтАНрдпрд╛ рдЗрдВрдЯрд░рдлреЗрд╕рд╡рд░ рдкреНрд░рд╛рдкреНрдд рдЭрд╛рд▓реЗрд▓реЗ рдЗрддрд░ рдкреЕрдХреЗрдЯреНрд╕ рдпрд╛ рдирд┐рдпрдорд╛рдЪреНрдпрд╛ рдЕрдзреАрди рдирд╛рд╣реАрдд, рдЬреЗ рддреНрдпрд╛рдВрдирд╛ рдорд╛рдирдХ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдЯреВрд▓реНрд╕ рд╡рд╛рдкрд░реВрди рд░рд╛рдЙрдЯ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрдИрд▓.

рдЖрдгрдЦреА рдПрдХ рдЧреЛрд╖реНрдЯ рдЖрд╣реЗ, рд▓рд┐рдирдХреНрд╕рдордзреНрдпреЗ рдПрдХ рддрдерд╛рдХрдерд┐рдд рд░рд┐рд╡реНрд╣рд░реНрд╕ рдкрде рдлрд┐рд▓реНрдЯрд░ рдЖрд╣реЗ, рдЬреЛ рд╕рдВрдкреВрд░реНрдг рдЧреЛрд╖реНрдЯ рдЦрд░рд╛рдм рдХрд░рддреЛ; рддреЛ рдПрдХ рд╕рд╛рдзреА рддрдкрд╛рд╕рдгреА рдХрд░рддреЛ: рд╕рд░реНрд╡ рдпреЗрдгрд╛рд░реНтАНрдпрд╛ рдкреЕрдХреЗрдЯрд╕рд╛рдареА, рддреЗ рдкреНрд░реЗрд╖рдХрд╛рдЪреНрдпрд╛ рдкрддреНрддреНрдпрд╛рд╕рд╣ рдкреЕрдХреЗрдЯрдЪрд╛ рд╕реНрддреНрд░реЛрдд рдкрддреНрддрд╛ рдмрджрд▓рддреЛ рдЖрдгрд┐ рддрдкрд╛рд╕рддреЛ рдХреА рдирд╛рд╣реА. рдкреЕрдХреЗрдЯ рдЬреНрдпрд╛ рдЗрдВрдЯрд░рдлреЗрд╕рд╡рд░ рдкреНрд░рд╛рдкреНрдд рдЭрд╛рд▓реЗ рддреНрдпрд╛рдЪ рдЗрдВрдЯрд░рдлреЗрд╕рдордзреВрди рдЬрд╛рдК рд╢рдХрддреЗ, рдЬрд░ рдирд╕реЗрд▓ рддрд░ рддреЗ рддреЗ рдлрд┐рд▓реНрдЯрд░ рдХрд░реЗрд▓.

рд╕рдорд╕реНрдпрд╛ рдЕрд╢реА рдЖрд╣реЗ рдХреА рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рддреЗ рдпреЛрдЧреНрдпрд░рд┐рддреНрдпрд╛ рдХрд╛рд░реНрдп рдХрд░рдгрд╛рд░ рдирд╛рд╣реА, рдкрд░рдВрддреБ рдЖрдореНрд╣реА рддреЗ рдЕрдХреНрд╖рдо рдХрд░реВ рд╢рдХрддреЛ:

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 рд╕рдХреНрд╖рдо рдХрд░реВрди рд░рд╛рд╣рддреАрд▓.

рдлрд┐рд▓реНрдЯрд░рдЪреЗ рдСрдкрд░реЗрд╢рди рдкреВрд░реНрдгрдкрдгреЗ рдорд░реНрдпрд╛рджрд┐рдд рди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА netfilter рд╕рд╛рдареА rp_filter рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╡рд╛рдкрд░реВ рд╢рдХрддреЛ. 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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛