Fa'ata'ita'i lelei auala mo MetalLB ile L2 mode

Fa'ata'ita'i lelei auala mo MetalLB ile L2 mode
E leʻi leva talu ai na ou feagai ai ma se galuega e le masani ai o le faʻatulagaina o auala mo MetalLB. O le a lelei mea uma, aua... E masani lava e le manaʻomia e MetalLB soʻo se gaioiga faʻaopoopo, ae i la matou tulaga o loʻo i ai se fuifui lapoʻa tele ma se faʻaogaina faigofie tele o fesoʻotaiga.

I totonu o lenei tusiga o le a ou taʻuina atu ia te oe le faʻaogaina o auala faʻavae ma faiga faʻavae mo le fesoʻotaʻiga fafo o lau fuifui.

O le a ou le faʻamatalaina auiliili e uiga i le faʻapipiʻiina ma le faʻatulagaina o MetalLB, talu ai ou te manatu ua i ai sou poto masani. Ou te fautua atu e alu sao i le tulaga, o le setiina o le auala. O lea e fa a matou mataupu:

Tulaga 1: Pe a leai se fa'atulagaga e mana'omia

Sei o tatou vaai i se mataupu faigofie.

Fa'ata'ita'i lelei auala mo MetalLB ile L2 mode

E le mana'omia le fa'aopoopoina o feso'ota'iga pe a tu'uina atu tuatusi e MetalLB i totonu ole laiga tutusa ma tuatusi o au pona.

Mo se faʻataʻitaʻiga, o loʻo i ai sau subnet 192.168.1.0/24, o loʻo i ai se router 192.168.1.1, ma o au nodes e maua tuatusi: 192.168.1.10-30, ona mo MetalLB e mafai ona e fetuunai le laina 192.168.1.100-120 ma ia mautinoa o le a latou galulue e aunoa ma se faʻaopoopo faʻaopoopo.

Aisea ua faapea ai? Aua ua uma ona fetuutuunai au ala:

# 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

Ma o tuatusi mai le laina tutusa o le a toe faʻaaogaina e aunoa ma ni gaioiga faʻaopoopo.

Tulaga 2: Pe a mana'omia le fa'aopoopo fa'aopoopo

Fa'ata'ita'i lelei auala mo MetalLB ile L2 mode

E tatau ona e fetuutuuna'i auala fa'aopoopo i so'o se taimi e leai se tuatusi IP fa'atulagaina po'o se auala i le subnet lea e tu'uina atu e MetalLB tuatusi.

O le a ou faʻamatalaina i se faʻamatalaga atili. So'o se taimi e tu'uina atu ai e MetalLB se tuatusi, e mafai ona fa'atusaina i se galuega faigofie e pei o:

ip addr add 10.9.8.7/32 dev lo

Fa'alogo i:

  • a) O le tuatusi o lo'o tu'uina atu i se prefix /32 o lona uiga, o se auala o le a le otometi ona faʻaopoopo i le subnet mo ia (naʻo se tuatusi)
  • b) O le tuatusi o lo'o fa'apipi'i i so'o se fa'aoga node (fa'ata'ita'iga loopback). E taua le taʻua iinei o foliga o le Linux network stack. E tusa lava po o le a le atinaʻe e te faʻaopopo i ai le tuatusi, o le kernel o le a faʻagasolo pea talosaga arp ma lafo tali arp i soʻo se tasi oi latou, o lenei amio e manatu saʻo ma, e le gata i lea, e faʻaaogaina lautele i se siosiomaga malosi e pei o Kubernetes.

O lenei amio e mafai ona faʻavasegaina, mo se faʻataʻitaʻiga e ala i le faʻatagaina o le arp:

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

I lenei tulaga, o tali arp o le a naʻo le lafoina pe afai o le atinaʻe o loʻo iai se tuatusi IP patino. E mana'omia lenei fa'atulagaga pe afai e te fuafua e fa'aoga MetalLB ma o lo'o fa'agasolo lau kube-proxy ile faiga IPVS.

Ae ui i lea, e le faʻaogaina e MetalLB le fatu e faʻatautaia ai talosaga arp, ae faia lava i le avanoa faʻaoga, o lea e le afaina ai le faʻaogaina o MetalLB i lenei filifiliga.

Tatou toe foi i la tatou galuega. Afai e le o iai le auala mo tuatusi na tu'uina atu i au pona, fa'aopoopo muamua i pona uma:

ip route add 10.9.8.0/24 dev eth1

Tulaga 3: Pe a e mana'omia le fa'aogaina o alaala

E te manaʻomia le faʻatulagaina o auala faʻavae pe a e mauaina pepa e ala i se isi faitotoa, ae le o le mea na faʻatulagaina e ala i le faaletonu, o lea e tatau ai foi ona ui atu pepa tali i le faitotoa lava e tasi.

Mo se faʻataʻitaʻiga, o loʻo ia te oe le subnet tutusa 192.168.1.0/24 tuuto atu i au nodes, ae e te manaʻo e tuʻuina atu tuatusi fafo e faʻaaoga ai MetalLB. Se'i faapea e tele au tuatusi mai se subnet 1.2.3.0/24 o lo'o i totonu o le VLAN 100 ma e te mana'o e fa'aoga e maua ai auaunaga a Kubernetes i fafo.

Fa'ata'ita'i lelei auala mo MetalLB ile L2 mode

Pe a fa'afeso'ota'i 1.2.3.4 o le ae faia ni talosaga mai se isi subnet ese nai lo 1.2.3.0/24 ma faatali mo se tali. O le node o lo'o avea nei ma matai mo le tuatusi na tu'uina mai e MetalLB 1.2.3.4, o le a maua le afifi mai le router 1.2.3.1, ae o le tali mo ia e tatau ona alu i le ala lava e tasi, e ui atu ai 1.2.3.1.

Talu ai o la tatou node ua uma ona faʻapipiʻiina le faitotoa faʻaletonu 192.168.1.1, ona o le le mafai lea ona alu atu le tali ia te ia, ae le o 1.2.3.1, lea na matou maua ai le afifi.

E faapefea ona taulimaina lenei tulaga?

I lenei tulaga, e tatau ona e saunia uma au nodes i se auala latou te sauni e tuʻuina atu tuatusi fafo e aunoa ma se faʻaopoopoga faʻaopoopo. O lona uiga, mo le faʻataʻitaʻiga o loʻo i luga, e tatau ona e fatuina se VLAN interface i luga o le node muamua:

ip link add link eth0 name eth0.100 type vlan id 100
ip link set eth0.100 up

Ona faaopoopo lea o auala:

ip route add 1.2.3.0/24 dev eth0.100 table 100
ip route add default via 1.2.3.1 table 100

Fa'amolemole matou te fa'aopoopoina auala i se isi laulau fa'ata'avalevale 100 o le a aofia ai na'o le lua auala e mana'omia e lafo ai se pepa tali i le faitotoa 1.2.3.1, o lo'o i tua o le fa'aoga eth0.100.

Ole taimi nei e tatau ona tatou faʻaopoopoina se tulafono faigofie:

ip rule add from 1.2.3.0/24 lookup 100

lea e ta'u manino mai: pe afai o lo'o i totonu le tuatusi fa'apogai o le afifi 1.2.3.0/24, ona e manaʻomia lea ona e faʻaogaina le laulau faʻasolosolo 100. I totonu ua uma ona matou faamatalaina le ala o le a auina atu ai o ia 1.2.3.1

Tulaga 4: A e mana'omia faiga fa'avae fa'avae

Ole topology fesoʻotaʻiga e tutusa ma le faʻataʻitaʻiga muamua, ae seʻi tatou fai atu e te manaʻo foi e mafai ona e mauaina tuatusi vaituloto fafo. 1.2.3.0/24 mai lau pusa:

Fa'ata'ita'i lelei auala mo MetalLB ile L2 mode

O le uiga ese o le taimi e maua ai soʻo se tuatusi i totonu 1.2.3.0/24, o le tali tali e lavea i le node ma o loʻo i ai se tuatusi faʻapogai i le laina 1.2.3.0/24 o le a auina atu ma le usiusitai i eth0.100, ae matou te mananaʻo e toe faʻafeiloaʻi e Kubernetes i la matou pod muamua, lea na faʻatupuina ai le uluai talosaga.

O le foia o lenei faafitauli na foliga mai e faigata, ae na mafai ona faʻafetai i faiga faʻavae faʻavae:

Mo se malamalama sili atu i le faagasologa, o se ata poloka poloka netfilter:
Fa'ata'ita'i lelei auala mo MetalLB ile L2 mode

Muamua, e pei o le faʻataʻitaʻiga muamua, seʻi o tatou fatuina se laulau faʻaopoopo faʻasologa:

ip route add 1.2.3.0/24 dev eth0.100 table 100
ip route add default via 1.2.3.1 table 100

Sei o tatou faʻaopoopo ni nai tulafono ile 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

O nei tulafono o le a faʻailogaina fesoʻotaʻiga o loʻo oʻo mai i le atinaʻe eth0.100, maka uma afifi i le pine 0x100, o tali i totonu o le feso'ota'iga tutusa o le a fa'ailogaina fo'i i le pine lava e tasi.

Ole taimi nei e mafai ona tatou fa'aopoopoina se tulafono fa'aalaala:

ip rule add from 1.2.3.0/24 fwmark 0x100 lookup 100

O lona uiga, o afifi uma e iai se tuatusi fa'apogai 1.2.3.0/24 ma fa'ailoga 0x100 e tatau ona fa'aogaina e fa'aaoga ai se laulau 100.

O le mea lea, o isi pepa e maua i luga o se isi atinaʻe e le o noatia i lenei tulafono, lea o le a mafai ai ona latou faʻaogaina e faʻaaoga ai meafaigaluega masani Kubernetes.

O loʻo i ai se isi mea, i Linux o loʻo i ai se mea e taʻua o le faʻafefe o le auala, lea e faʻaleagaina ai le mea atoa; e faia se siaki faigofie: mo paʻu uma o loʻo oʻo mai, e suia ai le tuatusi faʻapogai o le afifi ma le tuatusi o le auina atu ma siaki pe e mafai ona alu ese le afifi e ala i le atinaʻe tutusa lea na maua ai, a leai, o le a faʻamama ese.

O le faʻafitauli o loʻo i ai i la matou tulaga o le a le saʻo lelei, ae mafai ona matou faʻamalo:

echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/eth0.100/rp_filter

Faamolemole ia matau o le poloaiga muamua e pulea le amio a le lalolagi o rp_filter; afai e le faʻaletonu, o le a leai se aoga o le poloaiga lona lua. Ae ui i lea, o fesoʻotaʻiga o loʻo totoe o le a tumau pea i le rp_filter ua mafai.

Ina ia le faʻatapulaʻaina atoa le faʻaogaina o le faamama, e mafai ona matou faʻaogaina le faʻatinoga rp_filter mo netfilter. Faʻaaogaina rpfilter o se iptables module, e mafai ona e faʻatulagaina tulafono faigofie, mo se faʻataʻitaʻiga:

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

fa'ataga le rp_filter i luga o le fa'aoga eth0.100 mo tuatusi uma vagana ai 1.2.3.0/24.

puna: www.habr.com

Faaopoopo i ai se faamatalaga