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

L2 рдореЛрдбрдорд╛ MetalLB рдХреЛ рд▓рд╛рдЧрд┐ рдлрд╛рдЗрди-рдЯреНрдпреВрдирд┐рдЩ рд░реВрдЯрд┐рдЩ
рдХреЗрд╣реА рд╕рдордп рдЕрдШрд┐ рдореИрд▓реЗ MetalLB рдХреЛ рд▓рд╛рдЧрд┐ рд░реВрдЯрд┐рдЩ рд╕реЗрдЯрдЕрдк рдЧрд░реНрдиреЗ рдзреЗрд░реИ рдЕрд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпрдХреЛ рд╕рд╛рдордирд╛ рдЧрд░реНрдиреБрдкрд░реЗрдХреЛ рдерд┐рдпреЛред рд╕рдмреИ рдареАрдХ рд╣реБрдиреЗрдЫ, рдХрд┐рдирднрдиреЗ ... рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ MetalLB рд▓рд╛рдИ рдХреБрдиреИ рдкрдирд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдпрд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрди, рддрд░ рд╣рд╛рдореНрд░реЛ рдХреЗрд╕рдорд╛ рд╣рд╛рдореАрд╕рдБрдЧ рдзреЗрд░реИ рд╕рд╛рдзрд╛рд░рдг рдиреЗрдЯрд╡рд░реНрдХ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдХреЛ рд╕рд╛рде рдПрдХрджрдо рдареВрд▓реЛ рдХреНрд▓рд╕реНрдЯрд░ рдЫред

рдпрд╕ рд▓реЗрдЦрдорд╛ рдо рддрдкрд╛рдЗрдБрд▓рд╛рдИ рддрдкрд╛рдЗрдБрдХреЛ рдХреНрд▓рд╕реНрдЯрд░рдХреЛ рдмрд╛рд╣реНрдп рдиреЗрдЯрд╡рд░реНрдХрдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрд░реЛрдд-рдЖрдзрд╛рд░рд┐рдд рд░ рдиреАрддрд┐-рдЖрдзрд╛рд░рд┐рдд рд░рд╛рдЙрдЯрд┐рдЩ рдХрд╕рд░реА рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдмрддрд╛рдЙрдиреЗрдЫреБред

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

рдХреЗрд╕ рез: рдЬрдм рдХреБрдиреИ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрди

рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдорд╛рдорд▓рд╛ рд╣реЗрд░реМрдВред

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 рдареЗрдЧрд╛рдирд╛ рд╕рдорд╛рд╡реЗрд╢ рдЫред рдпрджрд┐ рддрдкрд╛рдЗрдБ MetalLB рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдпреЛрдЬрдирд╛ рдмрдирд╛рдЙрдиреБрд╣реБрдиреНрдЫ рд░ рддрдкрд╛рдЗрдБрдХреЛ kube-proxy 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 рд╕реЗрд╡рд╛рд╣рд░реВ рдкрд╣реБрдБрдЪ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫред

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

рдХреЗрд╕ рек: рдЬрдм рддрдкрд╛рдИрд▓рд╛рдИ рдиреАрддрд┐рдорд╛ рдЖрдзрд╛рд░рд┐рдд рд░реБрдЯрд┐рдЩ рдЪрд╛рд╣рд┐рдиреНрдЫ

рдиреЗрдЯрд╡рд░реНрдХ рдЯреЛрдкреЛрд▓реЛрдЬреА рдЕрдШрд┐рд▓реНрд▓реЛ рдЙрджрд╛рд╣рд░рдгрдорд╛ рдЬрд╕реНрддреИ рдЫ, рддрд░ рдорд╛рдиреМрдВ рдХрд┐ рддрдкрд╛рдИрдВ рдмрд╛рд╣реНрдп рдкреВрд▓ рдареЗрдЧрд╛рдирд╛рд╣рд░реВ рдкрд╣реБрдБрдЪ рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫред 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.

рдпрд╕рд░реА, рдЕрд░реНрдХреЛ рдЗрдиреНрдЯрд░рдлреЗрд╕рдорд╛ рдкреНрд░рд╛рдкреНрдд рднрдПрдХрд╛ рдЕрдиреНрдп рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рдпрд╕ рдирд┐рдпрдордХреЛ рдЕрдзреАрдирдорд╛ рдЫреИрдирдиреН, рдЬрд╕рд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдорд╛рдирдХ Kubernetes рдЙрдкрдХрд░рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд░реВрдЯ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреЗрдЫред

рддреНрдпрд╣рд╛рдБ рдЕрд░реНрдХреЛ рдХреБрд░рд╛ рдЫ, рд▓рд┐рдирдХреНрд╕рдорд╛ рддреНрдпрд╣рд╛рдБ рдПрдХ рддрдерд╛рдХрдерд┐рдд рд░рд┐рднрд░реНрд╕ рдкрде рдлрд┐рд▓реНрдЯрд░ рдЫ, рдЬрд╕рд▓реЗ рд╕рдореНрдкреВрд░реНрдг рд░рд╛рд╕реНрдкрдмреЗрд░реАрд▓рд╛рдИ рдмрд┐рдЧрд╛рд░реНрдЫ; рдпрд╕рд▓реЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЬрд╛рдБрдЪ рдЧрд░реНрджрдЫ: рд╕рдмреИ рдЖрдЧрдорди рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, рдпрд╕рд▓реЗ рдкреНрд░реЗрд╖рдХ рдареЗрдЧрд╛рдирд╛рдХреЛ рд╕рд╛рде рдкреНрдпрд╛рдХреЗрдЯрдХреЛ рд╕реНрд░реЛрдд рдареЗрдЧрд╛рдирд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрджрдЫ рд░ рдЬрд╛рдБрдЪ рдЧрд░реНрджрдЫ рдХрд┐ред рдкреНрдпрд╛рдХреЗрдЯ рдЙрд╣реА рдЗрдиреНрдЯрд░рдлреЗрд╕ рдорд╛рд░реНрдлрдд рдЫреЛрдбреНрди рд╕рдХреНрдЫ рдЬрд╕рдорд╛ рдпреЛ рдкреНрд░рд╛рдкреНрдд рднрдПрдХреЛ рдерд┐рдпреЛ, рдпрджрд┐ рдЫреИрди рднрдиреЗ, рдпрд╕рд▓реЗ рдпрд╕рд▓рд╛рдИ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрдиреЗрдЫред

рд╕рдорд╕реНрдпрд╛ рдпреЛ рд╣реЛ рдХрд┐ рд╣рд╛рдореНрд░реЛ рдорд╛рдорд▓рд╛ рдорд╛ рдпреЛ рд╕рд╣реА рдХрд╛рдо рдЧрд░реНрджреИрди, рддрд░ рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рдЕрд╕рдХреНрд╖рдо рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ:

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди