L2 เชฎเซ‹เชกเชฎเชพเช‚ MetalLB เชฎเชพเชŸเซ‡ เชซเชพเช‡เชจ-เชŸเซเชฏเซเชจเชฟเช‚เช— เชฐเซ‚เชŸเซ€เช‚เช—

L2 เชฎเซ‹เชกเชฎเชพเช‚ MetalLB เชฎเชพเชŸเซ‡ เชซเชพเช‡เชจ-เชŸเซเชฏเซเชจเชฟเช‚เช— เชฐเซ‚เชŸเซ€เช‚เช—
เชฅเซ‹เชกเชพ เชธเชฎเชฏ เชชเชนเซ‡เชฒเชพ เชฎเชจเซ‡ MetalLB เชฎเชพเชŸเซ‡ เชฐเซ‚เชŸเซ€เช‚เช— เชธเซ‡เชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช–เซ‚เชฌ เชœ เช…เชธเชพเชฎเชพเชจเซเชฏ เช•เชพเชฐเซเชฏเชจเซ‹ เชธเชพเชฎเชจเซ‹ เช•เชฐเชตเซ‹ เชชเชกเซเชฏเซ‹ เชนเชคเซ‹. เชฌเชงเซเช‚ เชธเชพเชฐเซเช‚ เชฐเชนเซ‡เชถเซ‡, เช•เชพเชฐเชฃ เช•เซ‡ ... เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ MetalLB เชจเซ‡ เช•เซ‹เชˆ เชตเชงเชพเชฐเชพเชจเซ€ เช•เซเชฐเชฟเชฏเชพเช“เชจเซ€ เชœเชฐเซ‚เชฐ เชนเซ‹เชคเซ€ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เช…เชฎเชพเชฐเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เช–เซ‚เชฌ เชœ เชธเชฐเชณ เชจเซ‡เชŸเชตเชฐเซเช• เช—เซ‹เช เชตเชฃเซ€ เชธเชพเชฅเซ‡ เชเช•เชฆเชฎ เชฎเซ‹เชŸเซเช‚ เช•เซเชฒเชธเซเชŸเชฐ เช›เซ‡.

เช† เชฒเซ‡เช–เชฎเชพเช‚ เชนเซเช‚ เชคเชฎเชจเซ‡ เช•เชนเซ€เชถ เช•เซ‡ เชคเชฎเชพเชฐเชพ เช•เซเชฒเชธเซเชŸเชฐเชจเชพ เชฌเชพเชนเซเชฏ เชจเซ‡เชŸเชตเชฐเซเช• เชฎเชพเชŸเซ‡ เชธเซเชคเซเชฐเซ‹เชค-เช†เชงเชพเชฐเชฟเชค เช…เชจเซ‡ เชจเซ€เชคเชฟ-เช†เชงเชพเชฐเชฟเชค เชฐเซ‚เชŸเซ€เช‚เช—เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช—เซ‹เช เชตเชตเซเช‚.

เชนเซเช‚ เชฎเซ‡เชŸเชฒเชเชฒเชฌเซ€เชจเซ‡ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพ เช…เชจเซ‡ เช—เซ‹เช เชตเชตเชพ เชตเชฟเชถเซ‡ เชตเชฟเช—เชคเชฎเชพเช‚ เชœเชˆเชถ เชจเชนเซ€เช‚, เช•เชพเชฐเชฃ เช•เซ‡ เชนเซเช‚ เชงเชพเชฐเซเช‚ เช›เซเช‚ เช•เซ‡ เชคเชฎเชจเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชฅเซ‹เชกเซ‹ เช…เชจเซเชญเชต เช›เซ‡. เชนเซเช‚ เชธเซ€เชงเชพ เชฌเชฟเช‚เชฆเซ เชชเชฐ เชœเชตเชพเชจเซเช‚ เชธเซ‚เชšเชจ เช•เชฐเซเช‚ เช›เซเช‚, เชเชŸเชฒเซ‡ เช•เซ‡ เชฐเชพเช‰เชŸเซ€เช‚เช— เชธเซ‡เชŸ เช•เชฐเซ‹. เชคเซ‡เชฅเซ€ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชšเชพเชฐ เช•เซ‡เชธ เช›เซ‡:

เช•เซ‡เชธ 1: เชœเซเชฏเชพเชฐเซ‡ เช•เซ‹เชˆ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชœเชฐเซ‚เชฐเซ€ เชจเชฅเซ€

เชšเชพเชฒเซ‹ เชเช• เชธเชฐเชณ เช•เซ‡เชธ เชœเซ‹เชˆเช.

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 เชธเชฐเชจเชพเชฎเซเช‚ เชนเซ‹เชฏ เชคเซ‹ เชœ arp เชชเซเชฐเชคเชฟเชธเชพเชฆเซ‹ เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡. เชœเซ‹ เชคเชฎเซ‡ MetalLB เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เชฏเซ‹เชœเชจเชพ เช˜เชกเซ€ เชฐเชนเซเชฏเชพ เชนเซ‹เชต เช…เชจเซ‡ เชคเชฎเชพเชฐเซ€ kube-proxy IPVS เชฎเซ‹เชกเชฎเชพเช‚ เชšเชพเชฒเซ€ เชฐเชนเซ€ เชนเซ‹เชฏ เชคเซ‹ เช† เชธเซ‡เชŸเชฟเช‚เช— เชœเชฐเซ‚เชฐเซ€ เช›เซ‡.

เชœเซ‹ เช•เซ‡, เชฎเซ‡เชŸเชฒเชเชฒเชฌเซ€ เชเช†เชฐเชชเซ€ เชตเชฟเชจเช‚เชคเซ€เช“ เชชเชฐ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฐเซเชจเชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเซเช‚ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชคเซ‡ เชชเซ‹เชคเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ-เชœเช—เซเชฏเชพเชฎเชพเช‚ เช•เชฐเซ‡ เช›เซ‡, เชคเซ‡เชฅเซ€ เช† เชตเชฟเช•เชฒเซเชช เชฎเซ‡เชŸเชฒเชเชฒเชฌเซ€เชจเซ€ เช•เชพเชฎเช—เซ€เชฐเซ€เชจเซ‡ เช…เชธเชฐ เช•เชฐเชถเซ‡ เชจเชนเซ€เช‚.

เชšเชพเชฒเซ‹ เช†เชชเชฃเชพ เช•เชพเชฐเซเชฏ เชชเชฐ เชชเชพเช›เชพ เช†เชตเซ€เช. เชœเซ‹ เชœเชพเชฐเซ€ เช•เชฐเชพเชฏเซ‡เชฒเชพ เชธเชฐเชจเชพเชฎเชพเช‚ เชฎเชพเชŸเซ‡เชจเซ‹ เชฎเชพเชฐเซเช— เชคเชฎเชพเชฐเชพ เชจเซ‹เชกเซเชธ เชชเชฐ เช…เชธเซเชคเชฟเชคเซเชตเชฎเชพเช‚ เชจเชฅเซ€, เชคเซ‹ เชคเซ‡เชจเซ‡ เช…เช—เชพเช‰เชฅเซ€ เชคเชฎเชพเชฎ เชจเซ‹เชกเซเชธเชฎเชพเช‚ เช‰เชฎเซ‡เชฐเซ‹:

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

เช•เซ‡เชธ 4: เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเชจเซ‡ เชจเซ€เชคเชฟ-เช†เชงเชพเชฐเชฟเชค เชฐเซ‚เชŸเซ€เช‚เช—เชจเซ€ เชœเชฐเซ‚เชฐ เชนเซ‹เชฏ

เชจเซ‡เชŸเชตเชฐเซเช• เชŸเซ‹เชชเซ‹เชฒเซ‹เชœเซ€ เช เชชเชพเช›เชฒเชพ เช‰เชฆเชพเชนเชฐเชฃเชจเซ€ เชœเซ‡เชฎ เชœ เช›เซ‡, เชชเชฐเช‚เชคเซ เชšเชพเชฒเซ‹ เช•เชนเซ€เช เช•เซ‡ เชคเชฎเซ‡ เชฌเชพเชนเซเชฏ เชชเซ‚เชฒ เชธเชฐเชจเชพเชฎเชพเช‚เช“เชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเชตเชพเชฎเชพเช‚ เชชเชฃ เชธเช•เซเชทเชฎ เชฌเชจเชตเชพ เชฎเชพเช‚เช—เซ‹ เช›เซ‹ 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.

เช†เชฎ, เช…เชจเซเชฏ เชˆเชจเซเชŸเชฐเชซเซ‡เชธ เชชเชฐ เชชเซเชฐเชพเชชเซเชค เชฅเชฏเซ‡เชฒเชพ เช…เชจเซเชฏ เชชเซ‡เช•เซ‡เชŸเซ‹ เช† เชจเชฟเชฏเชฎเชจเซ‡ เช†เชงเซ€เชจ เชจเชฅเซ€, เชœเซ‡ เชคเซ‡เชฎเชจเซ‡ เชชเซเชฐเชฎเชพเชฃเชญเซ‚เชค เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชŸเซ‚เชฒเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชฐเซ‚เชŸ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเชถเซ‡.

เชคเซเชฏเชพเช‚ เชเช• เชตเชงเซ เชตเชธเซเชคเซ เช›เซ‡, เชฒเชฟเชจเช•เซเชธเชฎเชพเช‚ เชเช• เช•เชนเซ‡เชตเชพเชคเชพ เชฐเชฟเชตเชฐเซเชธ เชชเชพเชฅ เชซเชฟเชฒเซเชŸเชฐ เช›เซ‡, เชœเซ‡ เช†เช–เซ€ เชตเชธเซเชคเซเชจเซ‡ เชฌเช—เชพเชกเซ‡ เช›เซ‡; เชคเซ‡ เชเช• เชธเชฐเชณ เชคเชชเชพเชธ เช•เชฐเซ‡ เช›เซ‡: เชฌเชงเชพ เช†เชตเชจเชพเชฐเชพ เชชเซ‡เช•เซ‡เชŸเซ‹ เชฎเชพเชŸเซ‡, เชคเซ‡ เชชเซเชฐเซ‡เชทเช•เชจเชพ เชธเชฐเชจเชพเชฎเชพ เชธเชพเชฅเซ‡ เชชเซ‡เช•เซ‡เชŸเชจเชพ เชธเซเชคเซเชฐเซ‹เชค เชธเชฐเชจเชพเชฎเชพเช‚เชจเซ‡ เชฌเชฆเชฒเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเชชเชพเชธเซ‡ เช›เซ‡ เช•เซ‡ เชถเซเช‚ เชชเซ‡เช•เซ‡เชŸ เช เชœ เช‡เชจเซเชŸเชฐเชซเซ‡เชธเชฎเชพเช‚เชฅเซ€ เชจเซ€เช•เชณเซ€ เชถเช•เซ‡ เช›เซ‡ เชœเซ‡เชจเชพ เชชเชฐ เชคเซ‡ เชชเซเชฐเชพเชชเซเชค เชฅเชฏเซเช‚ เชนเชคเซเช‚, เชœเซ‹ เชจเชนเซ€เช‚, เชคเซ‹ เชคเซ‡ เชคเซ‡เชจเซ‡ เชซเชฟเชฒเซเชŸเชฐ เช•เชฐเชถเซ‡.

เชธเชฎเชธเซเชฏเชพ เช เช›เซ‡ เช•เซ‡ เช…เชฎเชพเชฐเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เชคเซ‡ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เช•เชพเชฎ เช•เชฐเชถเซ‡ เชจเชนเซ€เช‚, เชชเชฐเช‚เชคเซ เช…เชฎเซ‡ เชคเซ‡เชจเซ‡ เช…เช•เซเชทเชฎ เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช:

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 เชธเช•เซเชทเชฎ เชธเชพเชฅเซ‡ เชœ เชฐเชนเซ‡เชถเซ‡.

เชซเชฟเชฒเซเชŸเชฐเชจเซ€ เช•เชพเชฎเช—เซ€เชฐเซ€เชจเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ เชจเซ‡เชŸเชซเชฟเชฒเซเชŸเชฐ เชฎเชพเชŸเซ‡ rp_filter เช…เชฎเชฒเซ€เช•เชฐเชฃเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช. iptables เชฎเซ‹เชกเซเชฏเซเชฒ เชคเชฐเซ€เช•เซ‡ rpfilter เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡, เชคเชฎเซ‡ เชคเชฆเซเชฆเชจ เชฒเชตเชšเซ€เช• เชจเชฟเชฏเชฎเซ‹เชจเซ‡ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชฟเชค เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡:

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

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹