рдХреЕрд▓рд┐рдХреЛ рд╕рд╣ рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдг рдкрд░реНрдпрд╛рдп рд╕рдордЬреВрди рдШреЗрдгреЗ

рдХреЕрд▓рд┐рдХреЛ рд╕рд╣ рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдг рдкрд░реНрдпрд╛рдп рд╕рдордЬреВрди рдШреЗрдгреЗ

рдХреЕрд▓рд┐рдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд▓рдЧрдЗрди рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рд╣реЛрд╕реНрдЯ, рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрди рдЖрдгрд┐ рдкреЙрдбреНрд╕рдЪреЗ рд╕рдВрд░рдХреНрд╖рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдпреБрдирд┐рдлрд╛рдЗрдб рд╕рд┐рдВрдЯреЕрдХреНрд╕рд╕рд╣ рдиреЗрдЯрд╡рд░реНрдХ рдкреЙрд▓рд┐рд╕реАрдВрдЪреА рд╡рд┐рд╕реНрддреГрдд рд╢реНрд░реЗрдгреА рдкреНрд░рджрд╛рди рдХрд░рддреЗ. рд╣реА рдзреЛрд░рдгреЗ рдиреЗрдорд╕реНрдкреЗрд╕рдордзреНрдпреЗ рд▓рд╛рдЧреВ рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддрд╛рдд рдХрд┐рдВрд╡рд╛ рд▓рд╛рдЧреВ рд╣реЛрдгрд╛рд░реА рдЬрд╛рдЧрддрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдгреЗ рдЕрд╕реВ рд╢рдХрддрд╛рдд рд╣реЛрд╕реНрдЯ рдПрдВрдбрдкреЙрдЗрдВрдЯ (рдереЗрдЯ рд╣реЛрд╕реНрдЯрд╡рд░ рдЪрд╛рд▓реВ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдЪреЗ рд╕рдВрд░рдХреНрд╖рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА - рд╣реЛрд╕реНрдЯ рд╕рд░реНрд╡реНрд╣рд░ рдХрд┐рдВрд╡рд╛ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрди рдЕрд╕реВ рд╢рдХрддреЗ) рдХрд┐рдВрд╡рд╛ рд╡рд░реНрдХрд▓реЛрдб рдПрдВрдбрдкреЙрдЗрдВрдЯ (рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ рдХрд┐рдВрд╡рд╛ рд╣реЛрд╕реНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдирдордзреНрдпреЗ рдЪрд╛рд▓рдгрд╛рд▒реНрдпрд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдЪреЗ рд╕рдВрд░рдХреНрд╖рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА). рдХреЕрд▓рд┐рдХреЛ рдкреЙрд▓рд┐рд╕реА рддреБрдореНрд╣рд╛рд▓рд╛ рдкреНрд░реАрдбреАрдПрдирдПрдЯреА, рдЕрдирд░реЕрдХреНрдб рдЖрдгрд┐ рдЕрдкреНрд▓рд╛рдпрдСрди рдлреЙрд░рд╡рд░реНрдб рд╕рд╛рд░рдЦреНрдпрд╛ рдкрд░реНрдпрд╛рдпрд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рдкреЕрдХреЗрдЯрдЪреНрдпрд╛ рдорд╛рд░реНрдЧрд╛рд╡рд░реАрд▓ рд╡рд┐рд╡рд┐рдз рдмрд┐рдВрджреВрдВрд╡рд░ рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрд╛рдп рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддрд╛рдд. рд╣реЗ рдкрд░реНрдпрд╛рдп рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛рдд рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреЗ рддреБрдордЪреНрдпрд╛ рд╕рдВрдкреВрд░реНрдг рд╕рд┐рд╕реНрдЯрдордЪреА рд╕реБрд░рдХреНрд╖рд╛ рдЖрдгрд┐ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░рдгреНрдпрд╛рдд рдорджрдд рдХрд░реВ рд╢рдХрддреЗ. рд╣рд╛ рд▓реЗрдЦ рдпрд╛ рдХреЕрд▓рд┐рдХреЛ рдкреЙрд▓рд┐рд╕реА рдкрд░реНрдпрд╛рдпрд╛рдВрдЪреЗ рд╕рд╛рд░ рд╕реНрдкрд╖реНрдЯ рдХрд░рддреЛ (preDNAT, unraracked рдЖрдгрд┐ applyOnForward) рд╣реЛрд╕реНрдЯ рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕рд╡рд░ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд, рдкреЕрдХреЗрдЯ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдкрд╛рде (iptabels рдЪреЗрди) рдордзреНрдпреЗ рдХрд╛рдп рд╣реЛрддреЗ рдпрд╛рд╡рд░ рдЬреЛрд░ рджреЗрдКрди.

рд╣рд╛ рд▓реЗрдЦ рдЕрд╕реЗ рдЧреГрд╣реАрдд рдзрд░рддреЛ рдХреА рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдЖрдгрд┐ рдХреЕрд▓рд┐рдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдгреЗ рдХрд╢реА рдХрд╛рд░реНрдп рдХрд░рддрд╛рдд рдпрд╛рдЪреА рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдореВрд▓рднреВрдд рдорд╛рд╣рд┐рддреА рдЖрд╣реЗ. рдирд╕рд▓реНрдпрд╛рд╕, рдЖрдореНрд╣реА рдкреНрд░рдпрддреНрди рдХрд░рдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рддреЛ рдореВрд▓рднреВрдд рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдг рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ ╨╕ рд╣реЛрд╕реНрдЯ рд╕рдВрд░рдХреНрд╖рдг рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╣рд╛ рд▓реЗрдЦ рд╡рд╛рдЪрдгреНрдпрд╛рдкреВрд░реНрд╡реА рдХреЕрд▓рд┐рдХреЛ рд╡рд╛рдкрд░рдгреЗ. рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рдорд╛рдЪреА рдкреНрд░рд╛рдердорд┐рдХ рдорд╛рд╣рд┐рддреА рдЕрд╕рдгреЗ рдЕрдкреЗрдХреНрд╖рд┐рдд рдЖрд╣реЗ iptables рд▓рд┐рдирдХреНрд╕ рдордзреНрдпреЗ.

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

рдореВрд▓рднреВрдд рд╕реНрддрд░рд╛рд╡рд░, рдЬреЗрд╡реНрд╣рд╛ рдХреЕрд▓рд┐рдХреЛ рдкреЙрдбрд▓рд╛ рдиреЗрдЯрд╡рд░реНрдХрд╢реА рдЬреЛрдбрддреЗ (рдЦрд╛рд▓реАрд▓ рдЖрдХреГрддреА рдкрд╣рд╛), рддреЗрд╡реНрд╣рд╛ рддреЗ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдЗрдерд░рдиреЗрдЯ рдЗрдВрдЯрд░рдлреЗрд╕ (рд╡реЗрде) рд╡рд╛рдкрд░реВрди рд╣реЛрд╕реНрдЯрд╢реА рдЬреЛрдбрддреЗ. рдкреЙрдбрджреНрд╡рд╛рд░реЗ рдкрд╛рдард╡рд▓реЗрд▓рд╛ рдЯреНрд░реЕрдлрд┐рдХ рдпрд╛ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдЗрдВрдЯрд░рдлреЗрд╕рдордзреВрди рд╣реЛрд╕реНрдЯрдХрдбреЗ рдпреЗрддреЛ рдЖрдгрд┐ рдПрдЦрд╛рджреНрдпрд╛ рднреМрддрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлреЗрд╕рдордзреВрди рдЖрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗрдЪ рддреНрдпрд╛рд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗрд▓реА рдЬрд╛рддреЗ. рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░, рдХреЕрд▓рд┐рдХреЛ рдпрд╛ рдЗрдВрдЯрд░рдлреЗрд╕рдирд╛ рдХреЕрд▓реАрдПрдХреНрд╕рдПрдХреНрд╕рдПрдХреНрд╕ рдирд╛рд╡ рджреЗрддреЗ. рдЯреНрд░реЕрдлрд┐рдХ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдЗрдВрдЯрд░рдлреЗрд╕рджреНрд╡рд╛рд░реЗ рдпреЗрдд рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдкреЙрдб рдПрдХ рд╣реЙрдк рджреВрд░ рдЕрд╕рд▓реНрдпрд╛рд╕рд╛рд░рдЦреЗ рддреЗ iptables рдордзреВрди рдЬрд╛рддреЗ. рдореНрд╣рдгреВрди, рдЬреЗрд╡реНрд╣рд╛ рдкреЙрдбрд╡рд░/рд╡рд░реВрди рд░рд╣рджрд╛рд░реА рдпреЗрддреЗ, рддреЗрд╡реНрд╣рд╛ рддреЗ рд╣реЛрд╕реНрдЯрдЪреНрдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рддреВрди рдкреБрдвреЗ рдкрд╛рдард╡рд▓реЗ рдЬрд╛рддреЗ.

рдХреЕрд▓рд┐рдХреЛ рдЪрд╛рд▓рд╡рдгрд╛рд▒реНрдпрд╛ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдиреЛрдбрд╡рд░, рддреБрдореНрд╣реА рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рд╡рд░реНрдЪреНрдпреБрдЕрд▓ рдЗрдВрдЯрд░рдлреЗрд╕ (рд╡реЗрде) рдореЕрдк рдХрд░реВ рд╢рдХрддрд╛. рдЦрд╛рд▓реАрд▓ рдЙрджрд╛рд╣рд░рдгрд╛рдордзреНрдпреЗ, рддреБрдореНрд╣реА рдкрд╛рд╣реВ рд╢рдХрддрд╛ рдХреА veth#10 (calic1cbf1ca0f8) рдХреЕрд▓рд┐рдХреЛ-рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдиреЗрдорд╕реНрдкреЗрд╕рдордзреНрдпреЗ cnx-manager-* рд╢реА рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗрд▓реЗ рдЖрд╣реЗ.

[centos@ip-172-31-31-46 K8S]$ sudo ip a
...
10: calic1cbf1ca0f8@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1440 qdisc noqueue state UP group default
    link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff link-netnsid 5
    inet6 fe80::ecee:eeff:feee:eeee/64 scope link
       valid_lft forever preferred_lft forever
...

[centos@ip-172-31-31-46 K8S]$ calicoctl get wep --all-namespaces
...
calico-monitoring cnx-manager-8f778bd66-lz45m                            ip-172-31-31-46.ec2.internal 192.168.103.134/32
calic1cbf1ca0f8
...

рдХреЕрд▓рд┐рдХреЛ рд╕рд╣ рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдг рдкрд░реНрдпрд╛рдп рд╕рдордЬреВрди рдШреЗрдгреЗ

рдХреЕрд▓рд┐рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдХрд▓реЛрдбрд╕рд╛рдареА рд╡реЗрде рдЗрдВрдЯрд░рдлреЗрд╕ рддрдпрд╛рд░ рдХрд░рддреЗ рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрддрд╛, рддреЗ рдзреЛрд░рдгрд╛рдВрдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд╢реА рдХрд░рддреЗ? рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдХреЕрд▓рд┐рдХреЛ iptables рд╡рд╛рдкрд░реВрди рдкреЕрдХреЗрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдорд╛рд░реНрдЧрд╛рдЪреНрдпрд╛ рд╡рд┐рд╡рд┐рдз рд╕рд╛рдЦрд│реАрдВрдордзреНрдпреЗ рд╣реБрдХ рддрдпрд╛рд░ рдХрд░рддреЗ.

рдЦрд╛рд▓реАрд▓ рдЖрдХреГрддреА iptables (рдХрд┐рдВрд╡рд╛ рдиреЗрдЯрдлрд┐рд▓реНрдЯрд░ рдЙрдкрдкреНрд░рдгрд╛рд▓реА) рдордзреНрдпреЗ рдкреЕрдХреЗрдЯ рдкреНрд░рдХреНрд░рд┐рдпреЗрдд рдЧреБрдВрддрд▓реЗрд▓реА рд╕рд╛рдЦрд│реА рджрд╛рдЦрд╡рддреЗ. рдЬреЗрд╡реНрд╣рд╛ рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлреЗрд╕рджреНрд╡рд╛рд░реЗ рдкреЕрдХреЗрдЯ рдпреЗрддреЗ, рддреЗрд╡реНрд╣рд╛ рддреЗ рдкреНрд░рдердо PREROUTING рд╕рд╛рдЦрд│реАрддреВрди рдЬрд╛рддреЗ. рддреНрдпрд╛рдирдВрддрд░ рд░рд╛рдЙрдЯрд┐рдВрдЧрдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ рддреНрдпрд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд, рдкреЕрдХреЗрдЯ рдПрдХрддрд░ INPUT (рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛрд╕реНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдирд┐рд░реНрджреЗрд╢рд┐рдд) рдХрд┐рдВрд╡рд╛ рдлреЙрд░рд╡рд░реНрдб (рдиреЗрдЯрд╡рд░реНрдХрд╡рд░реАрд▓ рдкреЙрдб рдХрд┐рдВрд╡рд╛ рдЕрдиреНрдп рдиреЛрдбрдХрдбреЗ рдирд┐рд░реНрджреЗрд╢рд┐рдд) рдордзреВрди рдЬрд╛рддреЗ. рд╕реНрдерд╛рдирд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпреЗрддреВрди, рдкреЕрдХреЗрдЯ рдХреЗрдмрд▓ рдЦрд╛рд▓реА рдкрд╛рдард╡рдгреНрдпрд╛рдкреВрд░реНрд╡реА OUTPUT рдЖрдгрд┐ рдирдВрддрд░ POSTROUTING рд╕рд╛рдЦрд│реАрддреВрди рдЬрд╛рддреЗ.

рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА рдкреЙрдб рджреЗрдЦреАрд▓ iptables рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪреНрдпрд╛ рджреГрд╖реНрдЯреАрдиреЗ рдПрдХ рдмрд╛рд╣реНрдп рдЕрд╕реНрддрд┐рддреНрд╡ (veth рд╢реА рдЬреЛрдбрд▓реЗрд▓реЗ) рдЖрд╣реЗ. рдЪрд▓рд╛ рд╕рд╛рд░рд╛рдВрд╢ рджреНрдпрд╛:

  • рдлреЙрд░рд╡рд░реНрдбреЗрдб рдЯреНрд░реЕрдлрд┐рдХ (рдиреЕрдЯ, рд░реВрдЯ рдХреЗрд▓реЗрд▓реЗ рдХрд┐рдВрд╡рд╛ рдкреЙрдбрд╡рд░реВрди/рдкреЙрдбрд╡рд░реВрди) рдкреНрд░реАрд░реВрдЯрд┐рдВрдЧ - рдлреЙрд░рд╡рд░реНрдб - рдкреЛрд╕реНрдЯрд░реЛрдЯрд┐рдВрдЧ рдЪреЗрдирдордзреВрди рдЬрд╛рддреЗ.
  • рд╕реНрдерд╛рдирд┐рдХ рдпрдЬрдорд╛рди рдкреНрд░рдХреНрд░рд┐рдпреЗрдХрдбреЗ рдЬрд╛рдгрд╛рд░реА рд╡рд╛рд╣рддреВрдХ PREROUTING - INPUT рд╕рд╛рдЦрд│реАрддреВрди рдЬрд╛рддреЗ.
  • рд╕реНрдерд╛рдирд┐рдХ рдпрдЬрдорд╛рди рдкреНрд░рдХреНрд░рд┐рдпреЗрддреАрд▓ рд░рд╣рджрд╛рд░реА OUTPUT - POSTROUTING рд╕рд╛рдЦрд│реАрддреВрди рдЬрд╛рддреЗ.

рдХреЕрд▓рд┐рдХреЛ рд╕рд╣ рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдг рдкрд░реНрдпрд╛рдп рд╕рдордЬреВрди рдШреЗрдгреЗ

рдХреЕрд▓рд┐рдХреЛ рдкреЙрд▓рд┐рд╕реА рдкрд░реНрдпрд╛рдп рдкреНрд░рджрд╛рди рдХрд░рддреЗ рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рд░реНрд╡ рд╕рд╛рдЦрд│реАрдВрд╡рд░ рдкреЙрд▓рд┐рд╕реА рд▓рд╛рдЧреВ рдХрд░реВ рджреЗрддреЗ. рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрдКрди, рдХреЕрд▓рд┐рдХреЛрдордзреНрдпреЗ рдЙрдкрд▓рдмреНрдз рдЕрд╕рд▓реЗрд▓реЗ рд╡рд┐рд╡рд┐рдз рдкреЙрд▓рд┐рд╕реА рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдкрд░реНрдпрд╛рдп рдкрд╛рд╣реВ. рдЦрд╛рд▓реАрд▓ рдкрд░реНрдпрд╛рдпрд╛рдВрдЪреНрдпрд╛ рд╕реВрдЪреАрддреАрд▓ рд╕рдВрдЦреНрдпрд╛ рд╡рд░реАрд▓ рдЖрдХреГрддреАрдордзреАрд▓ рд╕рдВрдЦреНрдпрд╛рдВрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗрдд.

  1. рд╡рд░реНрдХрд▓реЛрдб рдПрдВрдбрдкреЙрдЗрдВрдЯ (рдкреЙрдб) рдзреЛрд░рдг
  2. рд╣реЛрд╕реНрдЯ рдПрдВрдбрдкреЙрдЗрдВрдЯ рдзреЛрд░рдг
  3. ApplyOnForward рдкрд░реНрдпрд╛рдп
  4. PreDNAT рдзреЛрд░рдг
  5. рдЕрдирдЯреНрд░реЕрдХ рдХреЗрд▓реЗрд▓реЗ рдзреЛрд░рдг

рд╡рд░реНрдХрд▓реЛрдб рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕ (рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдкреЙрдбреНрд╕ рдХрд┐рдВрд╡рд╛ рдУрдкрдирд╕реНрдЯреЕрдХ рд╡реНрд╣реАрдПрдо) рд╡рд░ рдзреЛрд░рдгреЗ рдХрд╢реА рд▓рд╛рдЧреВ рдХреЗрд▓реА рдЬрд╛рддрд╛рдд рддреЗ рдмрдШреВрди рд╕реБрд░реБрд╡рд╛рдд рдХрд░реВ рдЖрдгрд┐ рдирдВрддрд░ рд╣реЛрд╕реНрдЯ рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕рд╕рд╛рдареА рдзреЛрд░рдг рдкрд░реНрдпрд╛рдп рдкрд╛рд╣реВ.

рд╡рд░реНрдХрд▓реЛрдб рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕

рд╡рд░реНрдХрд▓реЛрдб рдПрдВрдбрдкреЙрдЗрдВрдЯ рдкреЙрд▓рд┐рд╕реА (1)

рддреБрдордЪреНрдпрд╛ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдЪреНрдпрд╛ рд╢реЗрдВрдЧрд╛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╣рд╛ рдкрд░реНрдпрд╛рдп рдЖрд╣реЗ. Calico Kubernetes NetworkPolicy рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕ рд╕рдорд░реНрдерди рджреЗрддреЗ, рдкрд░рдВрддреБ рддреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдзреЛрд░рдгреЗ рджреЗрдЦреАрд▓ рдкреНрд░рджрд╛рди рдХрд░рддреЗ - Calico NetworkPolicy рдЖрдгрд┐ GlobalNetworkPolicy. рдХреЕрд▓рд┐рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдбрд╕рд╛рдареА рдПрдХ рд╕рд╛рдЦрд│реА рддрдпрд╛рд░ рдХрд░рддреЗ (рд╡рд░реНрдХрд▓реЛрдб) рдЖрдгрд┐ INPUT рдЖрдгрд┐ OUTPUT рдЪреЗрдирдордзреНрдпреЗ рд╡рд░реНрдХрд▓реЛрдбрд╕рд╛рдареА FORWARD рдЪреЗрдирдЪреНрдпрд╛ рдлрд┐рд▓реНрдЯрд░ рдЯреЗрдмрд▓рд╡рд░ рд╣реБрдХ рдмрдирд╡рддреЗ.

рд╣реЛрд╕реНрдЯ рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕

рд╣реЛрд╕реНрдЯ рдПрдВрдбрдкреЙрдЗрдВрдЯ рдкреЙрд▓рд┐рд╕реА (2)

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

рдСрди рдлреЙрд░рд╡рд░реНрдб рдкреЙрд▓рд┐рд╕реА рд▓рд╛рдЧреВ рдХрд░рд╛ (3)

рдХреЕрд▓рд┐рдХреЛ рдЧреНрд▓реЛрдмрд▓ рдиреЗрдЯрд╡рд░реНрдХ рдкреЙрд▓рд┐рд╕реАрдордзреНрдпреЗ ApplyOnForward рдкрд░реНрдпрд╛рдп рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ рдЬреНрдпрд╛рдореБрд│реЗ рд╣реЛрд╕реНрдЯ рдПрдВрдбрдкреЙрдИрдВрдЯрдордзреВрди рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рд╕рд░реНрд╡ рдЯреНрд░реЕрдлрд┐рдХрд╡рд░, рд╣реЛрд╕реНрдЯрджреНрд╡рд╛рд░реЗ рдлреЙрд░рд╡рд░реНрдб рдХреЗрд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рдЯреНрд░реЕрдлрд┐рдХрд╕рд╣ рдзреЛрд░рдгреЗ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рдпреЗрддреАрд▓. рдпрд╛рдордзреНрдпреЗ рд╕реНрдерд╛рдирд┐рдХ рдкреЙрдбрд╡рд░ рдХрд┐рдВрд╡рд╛ рдиреЗрдЯрд╡рд░реНрдХрд╡рд░ рдЗрддрд░ рдХреЛрдареЗрд╣реА рдлреЙрд░рд╡рд░реНрдб рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЯреНрд░реЕрдлрд┐рдХрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рд╣реЛрддреЛ. Calico рд▓рд╛ рд╣реЗ рд╕реЗрдЯрд┐рдВрдЧ PreDNAT рд╡рд╛рдкрд░реВрди рдзреЛрд░рдгрд╛рдВрд╕рд╛рдареА рд╕рдХреНрд╖рдо рдХрд░рдгреЗ рдЖрдгрд┐ рдЕрдирдЯреНрд░реЕрдХ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдЦрд╛рд▓реАрд▓ рд╡рд┐рднрд╛рдЧ рдкрд╣рд╛. рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЬреНрдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рд░рд╛рдЙрдЯрд░ рдХрд┐рдВрд╡рд╛ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ NAT рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ рддреЗрдереЗ рд╣реЛрд╕реНрдЯ рд░рд╣рджрд╛рд░реАрдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА ApplyOnForward рдЪрд╛ рд╡рд╛рдкрд░ рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ.

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

PreDNAT рдзреЛрд░рдг (4)

Kubernetes рдордзреНрдпреЗ, NodePorts рдкрд░реНрдпрд╛рдп рд╡рд╛рдкрд░реВрди рдХрд┐рдВрд╡рд╛ рд╡реИрдХрд▓реНрдкрд┐рдХрд░рд┐рддреНрдпрд╛ (Calico рд╡рд╛рдкрд░рддрд╛рдирд╛), рдХреНрд▓рд╕реНрдЯрд░ IP рдХрд┐рдВрд╡рд╛ External IPs рдкрд░реНрдпрд╛рдп рд╡рд╛рдкрд░реВрди рддреНрдпрд╛рдВрдЪреА рдЬрд╛рд╣рд┐рд░рд╛рдд рдХрд░реВрди рд╕реЗрд╡рд╛ рд╕рдВрд╕реНрдерд╛ рдкреЛрд░реНрдЯ рдмрд╛рд╣реЗрд░реВрди рдЙрдШрдб рдХрд░рддрд╛ рдпреЗрддрд╛рдд. рдХреБрдмреЗ-рдкреНрд░реЙрдХреНрд╕реА DNAT рд╡рд╛рдкрд░реВрди рд╕рдВрдмрдВрдзрд┐рдд рд╕реЗрд╡реЗрдЪреНрдпрд╛ рдкреЙрдбреНрд╕рдЪреНрдпрд╛ рд╕реЗрд╡реЗрд╢реА рдмрдВрдзрдирдХрд╛рд░рдХ рдпреЗрдгрд╛рд░реА рд░рд╣рджрд╛рд░реА рд╕рдВрддреБрд▓рд┐рдд рдХрд░рддреЗ. рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрддрд╛, рдиреЛрдбрдкреЛрд░реНрдЯреНрд╕рджреНрд╡рд╛рд░реЗ рдпреЗрдгрд╛рд▒реНрдпрд╛ рд░рд╣рджрд╛рд░реАрд╕рд╛рдареА рддреБрдореНрд╣реА рдзреЛрд░рдгрд╛рдВрдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд╢реА рдХрд░рд╛рд▓? DNAT рджреНрд╡рд╛рд░реЗ рдЯреНрд░реЕрдлрд┐рдХрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА рд╣реА рдзреЛрд░рдгреЗ рд▓рд╛рдЧреВ рдХреЗрд▓реА рдЬрд╛рддреАрд▓ рдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА (рдЬреЗ рд╣реЛрд╕реНрдЯ:рдкреЛрд░реНрдЯ рдЖрдгрд┐ рд╕рдВрдмрдВрдзрд┐рдд рд╕реЗрд╡реЗрдордзреАрд▓ рдореЕрдкрд┐рдВрдЧ рдЖрд╣реЗ), рдХреЕрд▓рд┐рдХреЛ рдЧреНрд▓реЛрдмрд▓ рдиреЗрдЯрд╡рд░реНрдХ рдкреЙрд▓рд┐рд╕реАрд╕рд╛рдареА "preDNAT: true" рдирд╛рд╡рд╛рдЪреЗ рдкреЕрд░рд╛рдореАрдЯрд░ рдкреНрд░рджрд╛рди рдХрд░рддреЗ.

рдЬреЗрд╡реНрд╣рд╛ рдкреНрд░реА-DNAT рд╕рдХреНрд╖рдо рдХреЗрд▓реЗ рдЬрд╛рддреЗ, рддреЗрд╡реНрд╣рд╛ рд╣реА рдзреЛрд░рдгреЗ (4) рдЖрдХреГрддреАрдордзреНрдпреЗ - PREROUTING рд╕рд╛рдЦрд│реАрдЪреНрдпрд╛ рдореЕрдВрдЧрд▓ рдЯреЗрдмрд▓рдордзреНрдпреЗ - DNAT рдЪреНрдпрд╛ рд▓рдЧреЗрдЪ рдЖрдзреА рд▓рд╛рдЧреВ рдХреЗрд▓реА рдЬрд╛рддрд╛рдд. рдпреЗрдереЗ рдзреЛрд░рдгрд╛рдВрдЪрд╛ рдиреЗрд╣рдореАрдЪрд╛ рдХреНрд░рдо рдкрд╛рд│рд▓рд╛ рдЬрд╛рдд рдирд╛рд╣реА, рдХрд╛рд░рдг рдпрд╛ рдзреЛрд░рдгрд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рдЯреНрд░реЕрдлрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪреНрдпрд╛ рдорд╛рд░реНрдЧрд╛рдд рдЦреВрдк рдЖрдзреА рд╣реЛрддреЛ. рддрдерд╛рдкрд┐, preDNAT рдзреЛрд░рдгреЗ рдЖрдкрд╛рдкрд╕рд╛рдд рдЕрд░реНрдЬ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдХреНрд░рдорд╛рдЪрд╛ рдЖрджрд░ рдХрд░рддрд╛рдд.

рдкреНрд░реА-DNAT рд╕рд╣ рдзреЛрд░рдгреЗ рддрдпрд╛рд░ рдХрд░рддрд╛рдирд╛, рдЖрдкрдг рдЬреНрдпрд╛ рдЯреНрд░реЕрдлрд┐рдХрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░реВ рдЗрдЪреНрдЫрд┐рддрд╛ рддреНрдпрд╛рдмрджреНрджрд▓ рд╕рд╛рд╡рдзрдЧрд┐рд░реА рдмрд╛рд│рдЧрдгреЗ рдЖрдгрд┐ рдмрд╣реБрд╕рдВрдЦреНрдп рдирд╛рдХрд╛рд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдкреНрд░реА-DNAT рдкреЙрд▓рд┐рд╕реАрдордзреНрдпреЗ 'рдкрд░рд╡рд╛рдирдЧреА рджреНрдпрд╛' рдореНрд╣рдгреВрди рдЪрд┐рдиреНрд╣рд╛рдВрдХрд┐рдд рдХреЗрд▓реЗрд▓реА рд░рд╣рджрд╛рд░реА рдпрд╛рдкреБрдвреЗ рд╣реЛрд╕реНрдЯрдВрдбрдкреЙрдИрдВрдЯ рдкреЙрд▓рд┐рд╕реАрджреНрд╡рд╛рд░реЗ рддрдкрд╛рд╕рд▓реА рдЬрд╛рдгрд╛рд░ рдирд╛рд╣реА, рддрд░ DNAT-рдкреВрд░реНрд╡ рдзреЛрд░рдгрд╛рд╕ рдЕрдкрдпрд╢реА рдард░рдгрд╛рд░реА рд░рд╣рджрд╛рд░реА рдЙрд░реНрд╡рд░рд┐рдд рд╕рд╛рдЦрд│реАрдВрдордзреВрди рд╕реБрд░реВ рд░рд╛рд╣реАрд▓.
рдХреЕрд▓рд┐рдХреЛрдиреЗ preDNAT рд╡рд╛рдкрд░рддрд╛рдирд╛ ApplyOnForward рдкрд░реНрдпрд╛рдп рд╕рдХреНрд╖рдо рдХрд░рдгреЗ рдЕрдирд┐рд╡рд╛рд░реНрдп рдХреЗрд▓реЗ рдЖрд╣реЗ, рдХрд╛рд░рдг рд╡реНрдпрд╛рдЦреНрдпреЗрдиреБрд╕рд╛рд░ рд░рд╣рджрд╛рд░реАрдЪреЗ рдЧрдВрддрд╡реНрдпрд╕реНрдерд╛рди рдЕрджреНрдпрд╛рдк рдирд┐рд╡рдбрд▓реЗрд▓реЗ рдирд╛рд╣реА. рдЯреНрд░реЕрдлрд┐рдХ рд╣реЛрд╕реНрдЯ рдкреНрд░рдХреНрд░рд┐рдпреЗрдХрдбреЗ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рдХрд┐рдВрд╡рд╛ рддреЗ рдкреЙрдб рдХрд┐рдВрд╡рд╛ рджреБрд╕рд░реНрдпрд╛ рдиреЛрдбрдХрдбреЗ рдкрд╛рдард╡рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ.

рдЕрдирдЯреНрд░реЕрдХ рдХреЗрд▓реЗрд▓реЗ рдзреЛрд░рдг (рел)

рдиреЗрдЯрд╡рд░реНрдХ рдЖрдгрд┐ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдордзреНрдпреЗ рд╡рд░реНрддрдирд╛рдордзреНрдпреЗ рдореЛрдард╛ рдлрд░рдХ рдЕрд╕реВ рд╢рдХрддреЛ. рдХрд╛рд╣реА рдЕрддреНрдпрдВрдд рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ, рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЕрдиреЗрдХ рдЕрд▓реНрдкрд╛рдпреБрд╖реА рдХрдиреЗрдХреНрд╢рди рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрддрд╛рдд. рдпрд╛рдореБрд│реЗ рдХреЙрдиреНрдЯреНрд░реЕрдХ (рд▓рд┐рдирдХреНрд╕ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рд╕реНрдЯреЕрдХрдЪрд╛ рдореБрдЦреНрдп рдШрдЯрдХ) рдореЗрдорд░реА рд╕рдВрдкреБрд╖реНрдЯрд╛рдд рдпреЗрдК рд╢рдХрддреЗ. рдкрд╛рд░рдВрдкрд╛рд░рд┐рдХрдкрдгреЗ, рд▓рд┐рдирдХреНрд╕рд╡рд░ рдпрд╛ рдкреНрд░рдХрд╛рд░рдЪреЗ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд╛рд▓рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣рд╛рд▓рд╛ рдХреЙрдиреНрдЯреНрд░реЕрдХ рдореЕрдиреНрдпреБрдЕрд▓реА рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд┐рдВрд╡рд╛ рдЕрдХреНрд╖рдо рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓ рдХрд┐рдВрд╡рд╛ рдХреЙрдиреНрдЯреНрд░реЕрдХрд▓рд╛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА iptables рдирд┐рдпрдо рд▓рд┐рд╣рд╛рд╡реЗ рд▓рд╛рдЧрддреАрд▓. рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рд╢рдХреНрдп рддрд┐рддрдХреНрдпрд╛ рд▓рд╡рдХрд░ рдХрдиреЗрдХреНрд╢рдирд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рд╛рдпрдЪреА рдЕрд╕реЗрд▓ рддрд░ рдХреЕрд▓рд┐рдХреЛрдордзреАрд▓ рдЕрдирдЯреНрд░реЕрдХ рдХреЗрд▓реЗрд▓реЗ рдзреЛрд░рдг рд╣рд╛ рдПрдХ рд╕реЛрдкрд╛ рдЖрдгрд┐ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдо рдкрд░реНрдпрд╛рдп рдЖрд╣реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЖрдкрдг рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рд╡рд╛рдкрд░рд▓реНрдпрд╛рд╕ memcache рдХрд┐рдВрд╡рд╛ рд╡рд┐рд░реБрджреНрдз рд╕рдВрд░рдХреНрд╖рдг рдЕрддрд┐рд░рд┐рдХреНрдд рдЙрдкрд╛рдп рдореНрд╣рдгреВрди рдбреАрдбреАрдУрдПрд╕.

рд╣реЗ рд╡рд╛рдЪ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ (рдХрд┐рдВрд╡рд╛ рдЖрдордЪреЗ рднрд╛рд╖рд╛рдВрддрд░) рдЯреНрд░реЕрдХ рди рдХреЗрд▓реЗрд▓реЗ рдзреЛрд░рдг рд╡рд╛рдкрд░реВрди рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдЪрд╛рдЪрдгреНрдпрд╛рдВрд╕рд╣ рдЕрдзрд┐рдХ рдорд╛рд╣рд┐рддреАрд╕рд╛рдареА.

рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА Calico globalNetworkPolicy рдордзреНрдпреЗ "doNotTrack: true" рдкрд░реНрдпрд╛рдп рд╕реЗрдЯ рдХрд░рддрд╛, рддреЗрд╡реНрд╣рд╛ рддреЗ **рдЯреНрд░реЕрдХ рди рдХреЗрд▓реЗрд▓реЗ** рдзреЛрд░рдг рдмрдирддреЗ рдЖрдгрд┐ Linux рдкреЕрдХреЗрдЯ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдордзреНрдпреЗ рдЕрдЧрджреА рд▓рд╡рдХрд░ рд▓рд╛рдЧреВ рд╣реЛрддреЗ. рд╡рд░реАрд▓ рдЖрдХреГрддреА рдкрд╛рд╣рддрд╛, рдХрдиреЗрдХреНрд╢рди рдЯреНрд░реЕрдХрд┐рдВрдЧ (рдХреЙрдиреНрдЯреНрд░реЕрдХ) рд╕реБрд░реВ рд╣реЛрдгреНрдпрд╛рдкреВрд░реНрд╡реА рд░реЙ рдЯреЗрдмрд▓рдордзреАрд▓ рдкреНрд░реАрд░реЙрдЙрдЯрд┐рдВрдЧ рдЖрдгрд┐ рдЖрдЙрдЯрдкреБрдЯ рдЪреЗрдирдордзреНрдпреЗ рдЕрдирдЯреНрд░реЕрдХ рди рдХреЗрд▓реЗрд▓реА рдкреЙрд▓рд┐рд╕реА рд▓рд╛рдЧреВ рдХреЗрд▓реА рдЬрд╛рддрд╛рдд. рдЯреНрд░реЕрдХ рди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдзреЛрд░рдгрд╛рджреНрд╡рд╛рд░реЗ рдкреЕрдХреЗрдЯрд▓рд╛ рдкрд░рд╡рд╛рдирдЧреА рджрд┐рд▓реА рдЬрд╛рддреЗ рддреЗрд╡реНрд╣рд╛, рддреНрдпрд╛ рдкреЕрдХреЗрдЯрд╕рд╛рдареА рдХрдиреЗрдХреНрд╢рди рдЯреНрд░реЕрдХрд┐рдВрдЧ рдЕрдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЪрд┐рдиреНрд╣рд╛рдВрдХрд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рдпрд╛рдЪрд╛ рдЕрд░реНрде:

  • рдЕрдирдЯреНрд░реЕрдХ рдХреЗрд▓реЗрд▓реЗ рдзреЛрд░рдг рдкреНрд░рддрд┐-рдкреЕрдХреЗрдЯ рдЖрдзрд╛рд░рд╛рд╡рд░ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рдХрдиреЗрдХреНрд╢рдирдЪреА (рдХрд┐рдВрд╡рд╛ рдкреНрд░рд╡рд╛рд╣) рд╕рдВрдХрд▓реНрдкрдирд╛ рдирд╛рд╣реА. рдХрдиреЗрдХреНрд╢рдирдЪреНрдпрд╛ рдХрдорддрд░рддреЗрдЪреЗ рдЕрдиреЗрдХ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рдгрд╛рдо рдЖрд╣реЗрдд:
  • рддреБрдореНрд╣рд╛рд▓рд╛ рд╡рд┐рдирдВрддреА рдЖрдгрд┐ рдкреНрд░рддрд┐рд╕рд╛рдж рджреЛрдиреНрд╣реА рд░рд╣рджрд╛рд░реАрд▓рд╛ рдЕрдиреБрдорддреА рджреНрдпрд╛рдпрдЪреА рдЕрд╕рд▓реНрдпрд╛рд╕, рддреБрдореНрд╣рд╛рд▓рд╛ рдЗрдирдмрд╛рдЙрдВрдб рдЖрдгрд┐ рдЖрдЙрдЯрдмрд╛рдЙрдВрдб рджреЛрдиреНрд╣реАрд╕рд╛рдареА рдПрдХ рдирд┐рдпрдо рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ (рдХрд╛рд░рдг рдХреЕрд▓рд┐рдХреЛ рд╕рд╛рдорд╛рдиреНрдпрдд: рдкреНрд░рддрд┐рд╕рд╛рдж рдЯреНрд░реЕрдлрд┐рдХрд▓рд╛ рдкрд░рд╡рд╛рдирдЧреА рдореНрд╣рдгреВрди рдЪрд┐рдиреНрд╣рд╛рдВрдХрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЙрдиреНрдЯреНрд░реЕрдХ рд╡рд╛рдкрд░рддреЗ).
  • рдЯреНрд░реЕрдХ рди рдХреЗрд▓реЗрд▓реЗ рдзреЛрд░рдг Kubernetes рд╡рд░реНрдХрд▓реЛрдбреНрд╕ (рдкреЙрдбреНрд╕) рд╕рд╛рдареА рдХрд╛рд░реНрдп рдХрд░рдд рдирд╛рд╣реА, рдХрд╛рд░рдг рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд рдкреЙрдбрдордзреВрди рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдХрдиреЗрдХреНрд╢рди рдЯреНрд░реЕрдХ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдХреЛрдгрддрд╛рд╣реА рдорд╛рд░реНрдЧ рдирд╛рд╣реА.
  • NAT рдЯреНрд░реЕрдХ рди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкреЕрдХреЗрдЯрд╕рд╣ рдпреЛрдЧреНрдпрд░рд┐рддреНрдпрд╛ рдХрд╛рд░реНрдп рдХрд░рдд рдирд╛рд╣реА (рдХрд╛рд░рдг рдХрд░реНрдирд▓ NAT рдореЕрдкрд┐рдВрдЧ рдХреЙрдиреНрдЯреНрд░реЕрдХрдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЗ).
  • рдЕрдирдЯреНрд░реЕрдХ рди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкреЙрд▓рд┐рд╕реАрдордзреАрд▓ "рд╕рд░реНрд╡рд╛рдВрдирд╛ рдкрд░рд╡рд╛рдирдЧреА рджреНрдпрд╛" рдирд┐рдпрдорд╛рддреВрди рдЬрд╛рддрд╛рдирд╛, рд╕рд░реНрд╡ рдкреЕрдХреЗрдЯ рдЕрдирдЯреНрд░реЕрдХ рдХреЗрд▓реЗрд▓реЗ рдореНрд╣рдгреВрди рдЪрд┐рдиреНрд╣рд╛рдВрдХрд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреАрд▓. рд╣реЗ рдЬрд╡рд│рдЬрд╡рд│ рдиреЗрд╣рдореАрдЪ рддреБрдореНрд╣рд╛рд▓рд╛ рд╣рд╡реЗ рддрд╕реЗ рдирд╕рддреЗ, рддреНрдпрд╛рдореБрд│реЗ рдЯреНрд░реЕрдХ рди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдзреЛрд░рдгрд╛рдВрджреНрд╡рд╛рд░реЗ рдкрд░рд╡рд╛рдирдЧреА рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдкреЕрдХреЗрдЯреНрд╕рдмрджреНрджрд▓ рдЦреВрдк рдирд┐рд╡рдбрдХ рдЕрд╕рдгреЗ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ (рдЖрдгрд┐ рдмрд╣реБрддреЗрдХ рдЯреНрд░реЕрдлрд┐рдХрд▓рд╛ рд╕рд╛рдорд╛рдиреНрдп рдЯреНрд░реЕрдХ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдзреЛрд░рдгрд╛рдВрджреНрд╡рд╛рд░реЗ рдЬрд╛рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреНрдпрд╛).
  • рдкреЕрдХреЗрдЯ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдЪреНрдпрд╛ рдЕрдЧрджреА рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ рдЯреНрд░реЕрдХ рди рдХреЗрд▓реЗрд▓реА рдкреЙрд▓рд┐рд╕реА рд▓рд╛рдЧреВ рдХреЗрд▓реА рдЬрд╛рддреЗ. рдХреЕрд▓рд┐рдХреЛ рдкреЙрд▓рд┐рд╕реА рддрдпрд╛рд░ рдХрд░рддрд╛рдирд╛ рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреЗ рдлрд╛рд░ рдорд╣рддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ. рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдСрд░реНрдбрд░:1 рдЕрд╕рд▓реЗрд▓реА рдкреЙрдб рдкреЙрд▓рд┐рд╕реА рдЖрдгрд┐ рдСрд░реНрдбрд░:1000 рд╕рд╣ рдЕрдирдЯреНрд░реЕрдХ рдХреЗрд▓реЗрд▓реА рдкреЙрд▓рд┐рд╕реА рдЕрд╕реВ рд╢рдХрддреЗ. рдХрд╛рд╣реА рдлрд░рдХ рдкрдбрдгрд╛рд░ рдирд╛рд╣реА. рдкреЙрдбрд╕рд╛рдареА рдкреЙрд▓рд┐рд╕реАрдкреВрд░реНрд╡реА рдЕрдирдЯреНрд░реЕрдХ рдХреЗрд▓реЗрд▓реЗ рдкреЙрд▓рд┐рд╕реА рд▓рд╛рдЧреВ рдХреЗрд▓реА рдЬрд╛рдИрд▓. рдЕрдирдЯреНрд░реЕрдХ рди рдХреЗрд▓реЗрд▓реЗ рдзреЛрд░рдгреЗ рдХреЗрд╡рд│ рдЖрдкрд╛рдкрд╕рд╛рддрдЪ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЖрджреЗрд╢рд╛рдЪрд╛ рдЖрджрд░ рдХрд░рддрд╛рдд.

рдХрд╛рд░рдг doNotTrack рдкреЙрд▓рд┐рд╕реАрдЪрд╛ рдПрдХ рдЙрджреНрджреЗрд╢ Linux рдкреЕрдХреЗрдЯ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдордзреНрдпреЗ рдкреЙрд▓рд┐рд╕реАрдЪреА рдЕрдЧрджреА рд▓рд╡рдХрд░ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд░рдгреЗ рд╣рд╛ рдЖрд╣реЗ, рдХреЕрд▓рд┐рдХреЛрдиреЗ doNotTrack рд╡рд╛рдкрд░рддрд╛рдирд╛ applyOnForward рдкрд░реНрдпрд╛рдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреЗ рдЕрдирд┐рд╡рд╛рд░реНрдп рдХреЗрд▓реЗ рдЖрд╣реЗ. рдкреЕрдХреЗрдЯ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдбрд╛рдпрдЧреНрд░рд╛рдордЪрд╛ рд╕рдВрджрд░реНрдн рджреЗрдд, рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА рдХреЛрдгрддреНрдпрд╛рд╣реА рд░рд╛рдЙрдЯрд┐рдВрдЧ рдирд┐рд░реНрдгрдпрд╛рдкреВрд░реНрд╡реА рдЕрдирдЯреНрд░реЕрдХ рдХреЗрд▓реЗрд▓реЗ(5) рдзреЛрд░рдг рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рдЯреНрд░реЕрдлрд┐рдХ рд╣реЛрд╕реНрдЯ рдкреНрд░рдХреНрд░рд┐рдпреЗрдХрдбреЗ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рдХрд┐рдВрд╡рд╛ рддреЗ рдкреЙрдб рдХрд┐рдВрд╡рд╛ рджреБрд╕рд░реНрдпрд╛ рдиреЛрдбрдХрдбреЗ рдкрд╛рдард╡рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ.

рдкрд░рд┐рдгрд╛рдо

рдЖрдореНрд╣реА рдХреЕрд▓рд┐рдХреЛрдордзреАрд▓ рд╡рд┐рд╡рд┐рдз рдзреЛрд░рдг рдкрд░реНрдпрд╛рдп (рд╣реЛрд╕реНрдЯ рдПрдВрдбрдкреЙрдЗрдВрдЯ, рдЕрдкреНрд▓рд╛рдпрдСрдирдлреЙрд░реНрд╡рд░реНрдб, рдкреНрд░реАрдбреАрдПрдирдПрдЯреА рдЖрдгрд┐ рдЕрдирдЯреНрд░реЕрдХ рдХреЗрд▓реЗрд▓реЗ) рдЖрдгрд┐ рддреЗ рдкреЕрдХреЗрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдорд╛рд░реНрдЧрд╛рд╡рд░ рдХрд╕реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд рддреЗ рдкрд╛рд╣рд┐рд▓реЗ. рддреЗ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛рдд рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреЗ рдкреНрд░рднрд╛рд╡реА рдЖрдгрд┐ рд╕реБрд░рдХреНрд╖рд┐рдд рдзреЛрд░рдгреЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдгреНрдпрд╛рдд рдорджрдд рдХрд░рддреЗ. рдХреЕрд▓рд┐рдХреЛрд╕рд╣ рддреБрдореНрд╣реА рд▓реЗрдмрд▓рд╡рд░ рд▓рд╛рдЧреВ рд╣реЛрдгрд╛рд░реЗ рдЬрд╛рдЧрддрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдзреЛрд░рдг рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛ (рдиреЛрдбреНрд╕ рдЖрдгрд┐ рдкреЙрдбреНрд╕рдЪрд╛ рд╕рдореВрд╣) рдЖрдгрд┐ рд╡рд┐рд╡рд┐рдз рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рд╕рд╣ рдзреЛрд░рдгреЗ рд▓рд╛рдЧреВ рдХрд░реВ рд╢рдХрддрд╛. рд╣реЗ рд╕реБрд░рдХреНрд╖рд╛ рдЖрдгрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдбрд┐рдЭрд╛рдЗрди рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХрд╛рдВрдирд╛ рдХреЕрд▓рд┐рдХреЛ рдкреЙрд▓рд┐рд╕реАрдВрд╕рд╣ рдПрдХрд▓ рдкреЙрд▓рд┐рд╕реА рднрд╛рд╖рд╛ рд╡рд╛рдкрд░реВрди рдПрдХрд╛рдЪ рд╡реЗрд│реА "рд╕рд░реНрд╡рдХрд╛рд╣реА" (рдПрдВрдбрдкреЙрдЗрдВрдЯ рдкреНрд░рдХрд╛рд░) рд╕реЛрдпреАрд╕реНрдХрд░рдкрдгреЗ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ.

рдкреЛрдЪрдкрд╛рд╡рддреА: рдореА рдЖрднрд╛рд░ рдорд╛рдиреВ рдЗрдЪреНрдЫрд┐рддреЛ рд╢реЙрди рдХреНрд░реЕрдореНрдкреНрдЯрди ╨╕ рдЕрд▓реЗрдХреНрд╕рд╛ рдкреЛрд▓рд┐рдЯрд╛ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдкреБрдирд░рд╛рд╡рд▓реЛрдХрдирд╛рд╕рд╛рдареА рдЖрдгрд┐ рдореМрд▓реНрдпрд╡рд╛рди рдорд╛рд╣рд┐рддреАрд╕рд╛рдареА.

рд╕реНрддреНрд░реЛрдд: www.habr.com

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