Laba mishiin oo farsamo ah oo isku host ah waxay LAN-ka ku gaaraan buundo, qaanuunka ku yaal silsiladda ip forward-na wuxuu muujinayaa tirakoob aan waligiis dhaqaaqin. Fareemadu waa dhab, tarafikku wuu socdaa, iyo qaanuunku si fudud kuma jiro wadadiisa. Isbarbardhigga labada siyaabood ee Linux u soo bandhigo tarafikga buundada ayaa sharraxaya aamusanntan, wuxuuna kaloo sharraxayaa sababta module duug ah oo la raro ay tahay jawaab ka xun tan u eg.

Laba waddo oo dhex mara hal host

Baakaddu waxay ka bixi kartaa hostkan laba siyaabood oo aad u kala duwan, farqiguna wuxuu go'aamiyaa jillaabyada arki doona. Haddii meesha loo socdo ay ka shishaysa deked jireed oo fareemka lagu beddelo laba dekedood oo buundada, hostku wuxuu gudbiyaa fareem Ethernet; koodhka dariiqa lama weydiiyo, oo ma dhacdo wax boodh ah oo la dariiqay. Haddii meesha loo socdo ay tahay hostka laftiisa, ama shabakad lagu gaaro interface tunnel, baakaddu waa la dariiqaa oo jillaabyada lakabka IP runtii way khuseeyaan. Xusuuso qaybtan, maxaa yeelay su'aal kasta oo dambe oo ku saabsan silsiladaha iyo qoysaska waxay ka timaaddaa labada waddo midka fareemku qaato.

Farqigaasi waa sheekada oo dhan ee ka dambeysa qaanuun aan waxba tirin. Fareem buundo dhex mara oo ka yimid veth9a1 ilaa enp3s0 wuxuu ka gudbaa buundada, ma aha IP stack, sidaas darteed silsilad ip forward ma arko wax ay isbarbardhigto. Magacyada interface-ka ee tusaale hore ma go'aamiyaan waddada aad haysato, taasina waa sababta tallaabada koowaad ay tahay in la eego topology-ga halkii la eegi lahaa ururka qaanuunada.

Tunnel wuxuu ku darayaa kiis saddexaad oo istaahila magac. Qalabka TUN wuxuu baakadaha IP siiyaa hostka, sidaas darteed waa la dariiqaa oo runtii waxay dhex maraan silsiladaha IP, halka qalabka TAP ee buundada ku xiran uu siiyaa fareemada oo u dhaqmo sida kiiska buundada. Nooca qalabka, ma aha magaca badeecada, ayaa go'aamiya.

Isbarbar dhig labada qoys ee arki kara fareem buundo dhex mara

Linux wuxuu taageeraa shaandhaynta buundada asalka ah iyada oo loo marayo qoyska bridge ee nftables, umana baahna module duug ah si uu u baaro oo u tuuro fareemada inta ay duulayaan. Dukumeentiga buundada ee kernelka laftiisa ayaa si toos ah u bixiya taladaas, taas oo mudan in la ogaado ka hor inta natiijada raadinta aysan kuu sheegin inaad rarto module.

Observation pointWhat it seesWhat it costs
nftables bridge family chainsEthernet frames forwarded between bridge ports, in both directionsRules must be written in bridge syntax with link-layer matches
Legacy br_netfilter plus an ip chainBridged IPv4 and IPv6 packets, re-exposed through IP-layer hooksExisting host rules may begin matching traffic they never saw before
inet chain for routed trafficPackets the host routes, including traffic arriving from a TUN deviceNo visibility into purely switched frames

Isticmaalka amarka nft halkii iptables ma dhigo qaanuunka qoyska saxda ah iskiis. Silsilad lagu caddeeyay qoyska bridge waxay aragtaa fareemada; silsilad lagu caddeeyay ip, ip6 ama inet ma arko, iyadoon loo eegayn barnaamijka binary ee sameeyay. Qoysku waa sifo silsiladda, ma aha tan qalabka qoray.

Waddada hore si kale ayay u shaqaysaa, taasina waa sababta loo isbarbardhigayo halkii caado ahaan dhinac la dooran lahaa. Rarista br_netfilter iyo shididda dejinta bridge-nf-call waxay mar kale soo bandhigtaa tarafikga IPv4 iyo IPv6 ee buundada iyada oo loo marayo jillaabyada lakabka IP, sidaas darteed qaanuun caadi ah oo iptables ayaa ugu dambeyntii la jaanqaadi kara. Fareemadu ma isbeddelaan; waxa isbeddela waa ururka jillaabyada ay dhex maraan, taas oo macnaheedu yahay qaanuun kasta oo host oo jira uu hadda leeyahay dhegeysi cusub.

Akhri waddada dhabta ah ka hor intaadan ku darin qaanuun

Saddex amarrood ayaa go'aamiya halka aad joogto: waxa buundadu ku xiran tahay, haddii module-ka duug ah uu firfircoon yahay, iyo silsiladaha hore ugu jira qoyska bridge. Socodsii ka hor intaadan wax qorin, maxaa yeelay jawaabtu waxay go'aamisaa labada naqshad midka aad ballaarinayso. Tallaabadaas boodidda waa sida qaanuun sax ah uu ku dhammaado silsilad aan waxba dhex marin.

bridge link show
lsmod | grep br_netfilter
nft list ruleset | grep -A4 "chain forward"

Soosaarku si nadiif ah ayuu u kala saaraa kiisaska. Dekedaha hoos ku taxan buundada waxay kuu sheegaan interface-yada la beddelayo; natiijo madhan lsmod waxay ka dhigan tahay ma jiro wax aragti ah lakabka IP ee fareemada buundada; silsilad forward oo qoyska bridge hore ugu jirtay waxay ka dhigan tahay milkiilaha siyaasadda hore u jiray oo qaanuunkaagu halkaas ku habboon yahay halkii uu ku noqon lahaa silsilad cusub oo u gaar ah.

Kadib ku dar hal qaanuun oo si fudud dib loo akhriyi karo, tirakoob la socda oo aan go'aanka beddelin, oo hal qulqul oo matala ku mari buundada. Tirakoobka dhaqaaqa wuxuu caddeeyaa in fareemku gaadhay qaanuunka. Taasi waa waxa kaliya ee uu caddeeyo, sidaas darteed la soco waddada la diiday sidoo kale, maxaa yeelay siyaasad wax walba aqbasha sidoo kale waxay soo saartaa tirakoob dhaqaaqa.

nft add rule bridge filter forward iifname "veth9a1" oifname "enp3s0" counter accept

Halka module-ka duug ah u beddelo hab-dhaqanka

Shidista waddada hore ee buundo shaqaynaysa ma aha fal dhexdhexaad ah oo aragti lagu darayo. Qaanuunada hore u ahaan jiray kuwo aan la gaari karin tarafikga buundada ayaa la gaari karaa, oo ay ku jiraan qaanuunada host ee loo qoray interface kale, iyo siyaasadda drop ee caadiga ah ee silsiladda ip forward ayaa si lama filaan ah u khusayn karta fareemada hore u dhex mari jiray iyagoon la taaban. Hostka lagu maamulo buundadaas, natiijadu waa xidhnaan aan console lahayn. Tani ma aha hannaan guuldarreyn mala-awaal ah; waa natiijada caadiga ah ee ballaarinta ururka jillaabyada mishiin aad ku gaarto waddada aad hadda ballaarisay.

Taxanaha badbaado badan waa in la go'aamiyo qoyska leh siyaasadda, qaanuunada halkaas lagu qoro, oo la hayo waddo soo kabasho madax banaan ka hor inta aan la beddelin sysctl kasta. Haddii laba qoys ay labaduba qaanuun hayaan, duub in midkaa awood leh yahay; laba siyaasadood oo is-dulsaada waa sida baakad lagu aqbalo meel laguna tuuro meel kale iyada oo aan hal fayl la akhrin karin.

Go'laabka laftiisa wali wuxuu u baahan yahay naqshad buuxda. U oggolaanshaha hal il inuu gaaro hal meel wuxuu caddeeyaa oo kaliya in hal qulqul uu shaqeeyo, halka shuruuddu inta badan tahay in VM uusan gaari karin derisyadiisa ama hostka. Tirakoobka qaanuunada diidmada ayaa ka muhiimsan tirakoobka qaanuunka aqbalaadda, maxaa yeelay tirakoobka aqbalaaddu waa kii aad hore u filayay inuu dhaqaaqo.

Ugu dambeyntii, kiiska gelinta hostka gaar u hay. Tarafikga loo jeediyay IP-da buundada lafteeda wuxuu yimaadaa input, ma aha forward, qaanuunka forward-na waligiis ma arko, qoyska aad doorataba. Saddex kiis, laba qoys, hal cashar: waddadu go'aamisaa jillaabka, jillaabkuna wuxuu go'aamiyaa haddii qaanuunkaagu uu jiro ama aanu jirin.

Maqaallo la xiriira