แแ แช แแกแ แแแแ แฎแแแก แฌแแ แแ แแแแแฌแงแ แซแแแแแ แฃแฉแแแฃแแ แแแแแแแแ MetalLB-แกแแแแก แแแ แจแ แฃแขแแแแชแแแก แแแงแแแแแแก แจแแกแแฎแแ. แงแแแแแคแแ แ แแแ แแแ แแฅแแแแ, แ แแแแแ... แ แแแแ แช แฌแแกแ, MetalLB แแ แกแแญแแ แแแแก แแแแแขแแแแ แแแฅแแแแแแแแก, แแแแ แแ แฉแแแแก แจแแแแฎแแแแแจแ แแแแฅแแก แกแแแแแแ แแแแ แแแแกแขแแ แ แซแแแแแ แแแ แขแแแ แฅแกแแแแก แแแแคแแแฃแ แแชแแแ.
แแ แกแขแแขแแแจแ แแ แแแขแงแแแ, แแฃ แ แแแแ แฃแแแ แแแแแแแคแแแฃแ แแ แแ แฌแงแแ แแแ แแแคแฃแซแแแแฃแแ แแ แแแแแขแแแแแ แแแคแฃแซแแแแฃแแ แแแ แจแ แฃแขแแแแชแแ แแฅแแแแ แแแแกแขแแ แแก แแแ แ แฅแกแแแแกแแแแก.
แแ แแ แแแแแแฎแแแแ แแแขแแแแแก MetalLB-แแก แแแกแขแแแแชแแแกแ แแ แแแแคแแแฃแ แแชแแแก แจแแกแแฎแแ, แ แแแแแ แแคแแฅแ แแ, แแฅแแแ แฃแแแ แแแฅแแ แแแ แแแแฃแแ แแแแแชแแแแแแ. แแ แแแแแแแแแ แแแ แแแแแ แกแแฅแแแแ แแแแแกแแแแก, แแแ แซแแ, แแแ แจแ แฃแขแแแแชแแแก แแแงแแแแแแก. แแกแ แ แแ, แแแแฅแแก แแแฎแ แจแแแแฎแแแแ:
แจแแแแฎแแแแ 1: แ แแแแกแแช แแแแคแแแฃแ แแชแแ แแ แแ แแก แกแแญแแ แ
แแแแแ แจแแแฎแแแแ แแแ แขแแ แจแแแแฎแแแแแก.
แแแ แจแ แฃแขแแแแชแแแก แแแแแขแแแแแ แแแแคแแแฃแ แแชแแ แกแแญแแ แ แแ แแ แแก, แ แแแแกแแช 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: แ แแแแกแแช แกแแญแแ แแ แแแแแขแแแแแ แแแ แกแแแแแแแแชแแ
แแฅแแแ แฃแแแ แแแแแแแคแแแฃแ แแ แแ แแแแแขแแแแแ แแแ แจแ แฃแขแแแ, แ แแแแกแแช แแฅแแแแก แแแแแซแแแก แแ แแฅแแ แแแแคแแแฃแ แแ แแแฃแแ IP แแแกแแแแ แแ แแ แแแ แจแ แฃแขแ แแ แฅแแแฅแกแแแจแ, แ แแแแแกแแแแกแแช MetalLB แแแแแจแแแแแก แแแกแแแแ แแแแแ.
แชแแขแ แฃแคแ แ แแแขแแแฃแ แแ แแแแฎแกแแแ. แ แแแแกแแช MetalLB แแแแแกแชแแแก แแแกแแแแ แแก, แแก แจแแแซแแแแ แจแแแแแแ แแ แแแ แขแแ แแแแแแแแแก, แ แแแแ แแชแแ:
ip addr add 10.9.8.7/32 dev lo
แงแฃแ แแแฆแแแ แแแแฅแชแแแ:
- a) แแแกแแแแ แแ แแแแญแแแ แแ แแคแแฅแกแแ
/32
แแแฃ แแแ แจแ แฃแขแ แแแขแแแแขแฃแ แแ แแ แแแแแแขแแแ แแแแกแแแแก แฅแแแฅแกแแแจแ (แแก แแฎแแแแ แแแกแแแแ แแแ) - b) แแแกแแแแ แแ แแแแแแ แแแฃแแแ แแแแแกแแแแ แ แแแแแซแแก แแแขแแ แคแแแกแแ (แแแแแแแแแ, loopback). แแฅ แฃแแแ แแฆแแแแจแแแก Linux แฅแกแแแแก แกแขแแแแก แแแฎแแกแแแแแแแแแ. แแ แแฅแแก แแแแจแแแแแแแ แ แแแแ แแแขแแ แคแแแกแก แแแแแแขแแแ แแแกแแแแ แแก, แแแ แแแ แงแแแแแแแแก แแแฃแจแแแแแก arp แแแแฎแแแแแแก แแ แแแแแแแแแก arp แแแกแฃแฎแแแก แ แแแแแแแ แแแแแแแแ, แแก แฅแชแแแ แกแฌแแ แแ แแแแแแแ แแ, แฃแคแ แ แแแขแแช, แกแแแแแแ แคแแ แแแ แแแแแแงแแแแแ แแกแแ แแแแแแแฃแ แแแ แแแแจแ, แ แแแแ แแชแแ Kubernetes.
แแ แฅแชแแแแก แแแ แแแแ แจแแกแแซแแแแแแแ, แแแแแแแแแ แแแแชแ แ arp-แแก แฉแแ แแแแ:
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
แแ แจแแแแฎแแแแแจแ, arp แแแกแฃแฎแแแ แแแแแแแแแแแ แแฎแแแแ แแ แจแแแแฎแแแแแจแ, แแฃ แแแขแแ แคแแแกแ แแจแแแ แแ แจแแแชแแแก แแแแแ แแขแฃแ IP แแแกแแแแ แแก. แแก แแแ แแแแขแ แ แกแแญแแ แแ, แแฃ แแแแแแแ MetalLB-แแก แแแแแงแแแแแแก แแ แแฅแแแแ kube-proxy แแฃแจแแแแก IPVS แ แแแแแจแ.
แแฃแแชแ, MetalLB แแ แแงแแแแแก แแแ แแแก arp แแแแฎแแแแแแแก แแแกแแแฃแจแแแแแแแ, แแแแ แแ แแแแก แแแแแ แแแแแแแก แแแแฎแแแ แแแแแก แกแแแ แชแแจแ, แแแแขแแ แแก แแแ แแแแขแ แ แแ แแแแฅแแแแแแก MetalLB-แแก แแฃแจแแแแแแ.
แแแแฃแแ แฃแแแแ แฉแแแแก แแแแชแแแแก. แแฃ แแแชแแแฃแแ แแแกแแแแ แแแแแก แแแ แจแ แฃแขแ แแ แแ แกแแแแแก แแฅแแแแก แแแแแซแแแแ, แแแแแแขแแ แแแ แฌแแแแกแฌแแ แงแแแแ แแแแแซแจแ:
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 แกแแ แแแกแแแแ แแแ แแแแ แฌแแแแแแกแแแแก.
แแแแแแจแแ แแแแกแแก 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
แแฅแแแแ แฌแแแฌแแแแแแ:
แแแแแกแแแฃแ แแแ แแก แแ แแก, แ แแ แแแแแกแแแแ แแแกแแแแ แแแ แฌแแแแแแกแแก 1.2.3.0/24
, แกแแแแกแฃแฎแ แแแแแขแ แฎแแแแแ แแแแแซแก แแ แแฅแแก แฌแงแแ แแก แแแกแแแแ แแ แแแแแแแแแจแ 1.2.3.0/24
แแแ แฉแแแแ แแแแแแแแแแแ eth0.100
, แแแแ แแ แฉแแแ แแแแแแ Kubernetes-แแ แแแแแแแกแแแแ แแแก แแแ แฉแแแแก แแแ แแแ แแแแแ, แ แแแแแแแช แจแแฅแแแ แแ แแแแแแแฃแ แ แแแแฎแแแแ.
แแ แแ แแแแแแแก แแแแแแ แแแ แ แแฃแแ แแฆแแแฉแแแ, แแแแ แแ แแก แจแแกแแซแแแแแแ แแแฎแแ แแแแแขแแแแแ แแแคแฃแซแแแแฃแแ แแแ แจแ แฃแขแแก แฌแงแแแแแแ:
แแ แแชแแกแแก แฃแแแ แแแกแแแแแแ, แแฅ แแ แแก netfilter แแแแแแก แแแแแ แแแ:
แแแ แแแ แ แแแจแ, แ แแแแ แช แฌแแแ แแแแแแแแจแ, แจแแแฅแแแแ แแแแแขแแแแแ แแแ แจแ แฃแขแแแแชแแแก แชแฎแ แแแ:
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
.
แแแ แแแแ, แกแฎแแ แแแขแแ แคแแแกแแ แแแฆแแแฃแแ แกแฎแแ แแแแแขแแแ แแ แแฅแแแแแแแแ แแแ แแ แฌแแกแก, แ แแช แกแแจแฃแแแแแแก แแแกแชแแแก แแแ แแแแแแขแแแแ แกแขแแแแแ แขแฃแแ Kubernetes แแแกแขแ แฃแแแแขแแแแก แแแแแงแแแแแแ.
แแ แแก แแแแแ แแ แแ แ แแ, Linux-แจแ แแ แแก แแแ แแ แฌแแแแแฃแแ แกแแแแ แแกแแแ แ แแแแแแแก แคแแแขแ แ, แ แแแแแแช แแคแฃแญแแแก แแแแ แแแแแก, แแฎแแ แชแแแแแแก แแแ แขแแ แจแแแแฌแแแแแก: แงแแแแ แจแแแแแแแแแ แแแแแขแแกแแแแก แชแแแแก แแแแแขแแก แฌแงแแ แแก แแแกแแแแ แแก แแแแแแแแแแก แแแกแแแแ แแแ แแ แแแแฌแแแแก แแฃ แแ แ. แแแแแขแก แจแแฃแซแแแ แแแขแแแแก แแแแแ แแแขแแ แคแแแกแ, แ แแแแแแแแแช แแก แแฅแแ แแแฆแแแฃแแ, แแฃ แแ แ, แแก แแแคแแแขแ แแแก แแแก.
แแ แแแแแแ แแก แแ แแก, แ แแ แฉแแแแก แจแแแแฎแแแแแจแ แแก แกแฌแแ แแ แแ แแแฃแจแแแแแก, แแแแ แแ แจแแแแแซแแแ แแแแแ แแแ:
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 แแแแฎแแ แชแแแแแแ netfilter-แแกแแแแก. rpfilter-แแก, แ แแแแ แช iptables แแแแฃแแแก แแแแแงแแแแแแ, แจแแแแซแแแแ แกแแแแแแ แแแฅแแแแ แฌแแกแแแแก แแแแคแแแฃแ แแชแแ, แแแแแแแแแ:
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