Kaore i roa i mua ake nei ka raru ahau ki tetahi mahi tino rerekee ki te whakarite ararere mo MetalLB. Ka pai nga mea katoa, na te mea ... I te nuinga o te wa kaore a MetalLB e hiahia ki etahi atu mahi, engari i roto i ta maatau keehi he roopu tino nui me te whirihoranga whatunga tino ngawari.
I roto i tenei tuhinga ka korero atu ahau ki a koe me pehea te whirihora i te huarahi-a-puna me te huarahi-a-kaupapa mo te whatunga o waho o to huinga.
Kaore au e korero mo te whakauru me te whirihora i te MetalLB, na te mea kei te kii ahau kua whai wheako koe. Ko taku whakaaro me haere tika ki te kaupapa, ara ki te whakarite ararere. Na e wha nga keehi:
Take 1: Karekau he whirihoranga e hiahiatia ana
Kia titiro tatou ki tetahi keehi ngawari.
Kaore e hiahiatia etahi atu whirihoranga ararere ina noho nga wahitau i tukuna e MetalLB i roto i te kupengaroto rite ki nga wahitau o ou pona.
Hei tauira, he kupengaroto kei a koe 192.168.1.0/24
, he pouara tona 192.168.1.1
, ka whiwhi wāhitau ō kōpuku: 192.168.1.10-30
, na mo MetalLB ka taea e koe te whakatika i te awhe 192.168.1.100-120
kia mohio hoki ka mahi me te kore whirihoranga taapiri.
He aha tera? Nā te mea kua whirihora kē ō kōpuku:
# 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
A ka whakamahia ano e nga wahitau mai i taua awhe kaore he mahi taapiri.
Take 2: Ina hiahiatia etahi atu whakaritenga
Me whirihora e koe etahi atu ara i nga wa katoa karekau he wahitau IP kua whirihorahia, he huarahi ranei ki te kupenga-roto e tukuna ana e MetalLB nga wahitau.
Ka whakamāramahia e au i roto i nga korero iti. I nga wa katoa ka whakaputa a MetalLB i tetahi wahitau, ka taea te whakataurite ki tetahi mahi ngawari penei:
ip addr add 10.9.8.7/32 dev lo
Kia tupato ki:
- a) Kua tautapahia te wahitau me te prefix
/32
ara, karekau he huarahi e taapiri aunoatia ki te kupengaroto mo tera (he wahitau noa) - b) Ka honoa te wahitau ki tetahi atanga node (hei tauira te whakamuri). He pai ki te whakahua i konei nga ahuatanga o te kohinga whatunga Linux. Ahakoa ko tehea atanga ka taapirihia e koe te wahitau, ka tukuna e te kernel nga tono arp me te tuku urupare arp ki tetahi o enei, ka kiia tenei whanonga he tika, me te mea ano, ka whakamahia i roto i te taiao hihiri penei i a Kubernetes.
Ka taea te whakarite i tenei whanonga, hei tauira ma te whakamana i te arp tino:
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
I tenei keehi, ka tukuna noa nga whakautu arp mena kei roto i te atanga tetahi wahitau IP motuhake. Ka hiahiatia tenei tautuhinga ki te whakamahere koe ki te whakamahi i te MetalLB a kei te haere to kube-takawaenga ki te aratau IPVS.
Heoi, kaore a MetalLB e whakamahi i te kernel ki te tukatuka i nga tono arp, engari ka mahia e ia i roto i nga waahi-kaiwhakamahi, na tenei kowhiringa ka kore e pa ki te mahi a MetalLB.
Kia hoki ki ta tatou mahi. Mena karekau te ara mo nga wahitau kua tukuna i runga i o pona, taapirihia i mua ki nga pona katoa:
ip route add 10.9.8.0/24 dev eth1
Take 3: Ina hiahia ararere-a-puna
Me whirihora e koe te ararere-a-puna ina whiwhi koe i nga putea ma te keeti motuhake, kaua ko te mea i whirihorahia e te taunoa, no reira me haere ano nga paakete whakautu ma te keeti ano.
Hei tauira, he rite tonu to kupengaroto 192.168.1.0/24
i whakatapua ki o pona, engari kei te hiahia koe ki te whakaputa i nga wahitau o waho ma te whakamahi i te MetalLB. Me whakaaro he maha nga wahitau mai i te kupengaroto 1.2.3.0/24
kei roto i te VLAN 100 ka hiahia koe ki te whakamahi kia uru atu ki nga ratonga Kubernetes ki waho.
Ina whakapā atu 1.2.3.4
ka tono tono koe mai i tetahi ipurangiroto rereke 1.2.3.0/24
a tatari mo te whakautu. Ko te node te rangatira mo te wahitau i tukuna e MetalLB 1.2.3.4
, ka whiwhi i te putea mai i te pouara 1.2.3.1
, engari ko te whakautu ki a ia me haere i taua huarahi, ma 1.2.3.1
.
I te mea kua whirihorahia te kuaha taunoa o to tatou node 192.168.1.1
, ma te taunoa ka tae atu te whakautu ki a ia, kaore ki 1.2.3.1
, na reira i whiwhi ai matou i te kete.
Me pehea te aro ki tenei ahuatanga?
I tenei keehi, me whakarite e koe o kohanga katoa kia rite ai ratou ki te mahi i nga wahitau o waho kaore he taapiri taapiri. Arā, mo te tauira i runga ake nei, me hanga e koe he atanga VLAN i runga i te node i mua:
ip link add link eth0 name eth0.100 type vlan id 100
ip link set eth0.100 up
Na ka taapirihia nga huarahi:
ip route add 1.2.3.0/24 dev eth0.100 table 100
ip route add default via 1.2.3.1 table 100
Kia mahara ka taapirihia e matou nga huarahi ki tetahi ripanga ararere motuhake 100
ka rua noa nga huarahi e tika ana hei tuku i te putea whakautu ma te kuaha 1.2.3.1
, kei muri i te atanga eth0.100
.
Inaianei me taapiri he ture ngawari:
ip rule add from 1.2.3.0/24 lookup 100
e kii ana: mena kei roto te wahitau puna o te kete 1.2.3.0/24
, ka hiahia koe ki te whakamahi i te ripanga ararere 100
. I roto i tenei kua korerohia e matou te huarahi e tukuna ai ia 1.2.3.1
Take 4: Ina hiahia koe ki te ararere-a-kaupapa
Ko te topology whatunga he rite ki te tauira o mua, engari me kii ano kei te hiahia koe ki te uru atu ki nga wahitau puna wai o waho. 1.2.3.0/24
mai i o poti:
Ko te mea motuhake ko te wa e uru ana ki tetahi wahitau kei roto 1.2.3.0/24
, ka pa te kete whakautu ki te node me te wahitau puna kei roto i te awhe 1.2.3.0/24
ka tukuna marie ki eth0.100
, engari kei te pirangi matou kia tukuna ano e Kubernetes ki to maatau putunga tuatahi, i puta te tono taketake.
Ko te whakatau i tenei raru he uaua, engari na te ararere kaupapa here ka taea:
Mo te pai ake o te mohio ki te tukanga, koinei te hoahoa paraka netfilter:
Tuatahi, pera i te tauira o mua, me hanga he ripanga ararere atu:
ip route add 1.2.3.0/24 dev eth0.100 table 100
ip route add default via 1.2.3.1 table 100
Inaianei me taapiri etahi ture ki nga 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
Ka tohu enei ture i nga hononga taumai ki te atanga eth0.100
, te tohu i nga kete katoa me te tohu 0x100
, ko nga whakautu i roto i te hononga kotahi ka tohua ki te tohu ano.
Inaianei ka taea e tatou te taapiri i tetahi ture ararere:
ip rule add from 1.2.3.0/24 fwmark 0x100 lookup 100
Arā, ko ngā pākete katoa he wāhitau pūtake 1.2.3.0/24
me te tohu 0x100
me haere ma te whakamahi i te ripanga 100
.
No reira, ko etahi atu paatete ka riro mai i runga i tetahi atu atanga karekau i raro i tenei ture, ka taea te haere ma te whakamahi i nga taputapu Kubernetes paerewa.
He mea ano ano, kei roto i te Linux he tātari ara whakamuri e kiia nei, ka pahuatia te katoa; ka mahia e ia he tirotiro ngawari: mo nga paanui taumai katoa, ka huri i te wahitau puna o te kete me te wahitau kaituku me te tirotiro mehemea Ka taea e te paakete te wehe ma te atanga ano i riro mai ai, ki te kore, ka taraihia e ia.
Ko te raru ko te mea kaore e pai te mahi, engari ka taea e taatau te whakakore:
echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/eth0.100/rp_filter
Kia mahara ko te whakahau tuatahi e whakahaere ana i te whanonga o te ao o rp_filter; ki te kore e monokia, karekau he painga o te whakahau tuarua. Heoi, ka noho tonu nga toenga atanga me te rp_filter kua whakahohea.
Kia kore ai e tino whakawhāitihia te mahi o te tātari, ka taea e tatou te whakamahi i te whakatinanatanga rp_filter mo te netfilter. Ma te whakamahi i te rpfilter hei waahanga iptables, ka taea e koe te whirihora i nga ture ngawari, hei tauira:
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
taea te rp_filter i runga i te atanga eth0.100
mo nga waahi noho katoa engari 1.2.3.0/24
.
Source: will.com