L2 рдореЛрдб рдореЗрдВ MetalLB рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрди-рдЯреНрдпреВрдирд┐рдВрдЧ рд░реВрдЯрд┐рдВрдЧ

L2 рдореЛрдб рдореЗрдВ MetalLB рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрди-рдЯреНрдпреВрдирд┐рдВрдЧ рд░реВрдЯрд┐рдВрдЧ
рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдореБрдЭреЗ рдореЗрдЯрд▓рдПрд▓рдмреА рдХреЗ рд▓рд┐рдП рд░реВрдЯрд┐рдВрдЧ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдПрдХ рдмрд╣реБрдд рд╣реА рдЕрд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдп рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдерд╛ред рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐... рдЖрдорддреМрд░ рдкрд░ рдореЗрдЯрд▓рдПрд▓рдмреА рдХреЛ рдХрд┐рд╕реА рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдиреЗрдЯрд╡рд░реНрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдлреА рдмрдбрд╝рд╛ рдХреНрд▓рд╕реНрдЯрд░ рд╣реИред

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЕрдкрдиреЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдмрд╛рд╣рд░реА рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд-рдЖрдзрд╛рд░рд┐рдд рдФрд░ рдиреАрддрд┐-рдЖрдзрд╛рд░рд┐рдд рд░реВрдЯрд┐рдВрдЧ рдХреЛ рдХреИрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред

рдореИрдВ рдореЗрдЯрд▓рдПрд▓рдмреА рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдирд╣реАрдВ рдмрддрд╛рдКрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рдЕрдиреБрднрд╡ рд╣реИред рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рд╕реАрдзреЗ рдореБрджреНрджреЗ рдкрд░ рдЬрд╛рдПрдВ, рдЕрд░реНрдерд╛рддреН рд░реВрдЯрд┐рдВрдЧ рд╕реЗрдЯ рдХрд░реЗрдВред рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЪрд╛рд░ рдорд╛рдорд▓реЗ рд╣реИрдВ:

рдХреЗрд╕ 1: рдЬрдм рдХрд┐рд╕реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ

рдЖрдЗрдП рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдорд╛рдорд▓реЗ рдкрд░ рдирдЬрд░ рдбрд╛рд▓реЗрдВред

L2 рдореЛрдб рдореЗрдВ MetalLB рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрди-рдЯреНрдпреВрдирд┐рдВрдЧ рд░реВрдЯрд┐рдВрдЧ

рдЬрдм рдореЗрдЯрд▓рдПрд▓рдмреА рджреНрд╡рд╛рд░рд╛ рдЬрд╛рд░реА рдкрддреЗ рдЖрдкрдХреЗ рдиреЛрдбреНрд╕ рдХреЗ рдкрддреЗ рдХреЗ рд╕рдорд╛рди рд╕рдмрдиреЗрдЯ рдореЗрдВ рд╣реЛрдВ рддреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдЯрд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╕рдмрдиреЗрдЯ рд╣реИ 192.168.1.0/24, рдЗрд╕рдореЗрдВ рдПрдХ рд░рд╛рдЙрдЯрд░ рд╣реИ 192.168.1.1, рдФрд░ рдЖрдкрдХреЗ рдиреЛрдбреНрд╕ рдХреЛ рдкрддреЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ: 192.168.1.10-30, рдлрд┐рд░ рдореЗрдЯрд▓рдПрд▓рдмреА рдХреЗ рд▓рд┐рдП рдЖрдк рд░реЗрдВрдЬ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ 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 рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрди-рдЯреНрдпреВрдирд┐рдВрдЧ рд░реВрдЯрд┐рдВрдЧ

рдЬрдм рднреА рдЖрдкрдХреЗ рдиреЛрдбреНрд╕ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдЖрдИрдкреА рдкрддрд╛ рдпрд╛ рд╕рдмрдиреЗрдЯ рдХреЗ рд▓рд┐рдП рд░реВрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдореЗрдЯрд▓рдПрд▓рдмреА рдкрддреЗ рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рдереЛрдбрд╝рд╛ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛рдКрдВрдЧрд╛. рдЬрдм рднреА MetalLB рдХреЛрдИ рдкрддрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХреА рддреБрд▓рдирд╛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рд╕реЗ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ рдЬреИрд╕реЗ:

ip addr add 10.9.8.7/32 dev lo

рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ:

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

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

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

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдЖрд░рдкреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ рдХреЗрд╡рд▓ рддрднреА рднреЗрдЬреА рдЬрд╛рдПрдВрдЧреА рдЬрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрдИрдкреА рдкрддрд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдк рдореЗрдЯрд▓рдПрд▓рдмреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХрд╛ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдЖрдИрдкреАрд╡реАрдПрд╕ рдореЛрдб рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рддреЛ рдпрд╣ рд╕реЗрдЯрд┐рдВрдЧ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐, 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 рд╡реАрдПрд▓рдПрдПрди 100 рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ рдФрд░ рдЖрдк рдмрд╛рд╣рд░реА рд░реВрдк рд╕реЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реЗрд╡рд╛рдУрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

L2 рдореЛрдб рдореЗрдВ MetalLB рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрди-рдЯреНрдпреВрдирд┐рдВрдЧ рд░реВрдЯрд┐рдВрдЧ

рд╕рдВрдкрд░реНрдХ рдХрд░рддреЗ рд╕рдордп 1.2.3.4 рдЖрдк рдХрд┐рд╕реА рднрд┐рдиреНрди рд╕рдмрдиреЗрдЯ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░ рд░рд╣реЗ рд╣реЛрдВрдЧреЗ 1.2.3.0/24 рдФрд░ рдЙрддреНрддрд░ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ. рд╡рд╣ рдиреЛрдб рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореЗрдЯрд▓рдПрд▓рдмреА рджреНрд╡рд╛рд░рд╛ рдЬрд╛рд░реА рдкрддреЗ рдХрд╛ рдорд╛рд╕реНрдЯрд░ рд╣реИ 1.2.3.4, рд░рд╛рдЙрдЯрд░ рд╕реЗ рдкреИрдХреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ 1.2.3.1, рд▓реЗрдХрд┐рди рдЙрд╕рдХреЗ рд▓рд┐рдП рдЙрддреНрддрд░ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдЙрд╕реА рдорд╛рд░реНрдЧ рд╕реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП 1.2.3.1.

рдЪреВрдБрдХрд┐ рд╣рдорд╛рд░реЗ рдиреЛрдб рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЧреЗрдЯрд╡реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╣реИ 192.168.1.1, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЙрд╕рдХреЗ рдкрд╛рд╕ рдЬрд╛рдПрдЧреА, рди рдХрд┐ рдЙрд╕рдХреЗ рдкрд╛рд╕ 1.2.3.1рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рдореЗрдВ рдкреИрдХреЗрдЬ рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖред

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯреЗрдВ?

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕рднреА рдиреЛрдбреНрд╕ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдмрд┐рдирд╛ рдмрд╛рд╣рд░реА рдкрддреЗ рдХреА рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрдВред рдЕрд░реНрдерд╛рддреН, рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рдиреЛрдб рдкрд░ рдПрдХ рд╡реАрдПрд▓рдПрдПрди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛:

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, рд▓реЗрдХрд┐рди рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рдкрд╣рд▓реЗ рдкреЙрдб рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░реЗ, рдЬрд┐рд╕рдиреЗ рдореВрд▓ рдЕрдиреБрд░реЛрдз рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ред

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдХрдард┐рди рд╣реЛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдиреАрддрд┐-рдЖрдзрд╛рд░рд┐рдд рд░реВрдЯрд┐рдВрдЧ рдХреЗ рдХрд╛рд░рдг рдпрд╣ рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛:

рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдмреЗрд╣рддрд░ рд╕рдордЭ рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рдПрдХ рдиреЗрдЯрдлрд╝рд┐рд▓реНрдЯрд░ рдмреНрд▓реЙрдХ рдЖрд░реЗрдЦ рд╣реИ:
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 рд╕рдХреНрд╖рдо рдХреЗ рд╕рд╛рде рдмрдиреЗ рд░рд╣реЗрдВрдЧреЗред

рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реАрдорд┐рдд рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдиреЗрдЯрдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рд▓рд┐рдП rp_filter рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ iptables рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ rpfilter рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдХрд╛рдлреА рд▓рдЪреАрд▓реЗ рдирд┐рдпрдореЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ