Documentation ¶
Overview ¶
Package iptables manages iptables-related configuration for Cilium.
Index ¶
- func InstallNoTrackRules(IP string, port uint16, ipv6 bool) error
- func KernelHasNetfilter() bool
- func RemoveNoTrackRules(IP string, port uint16, ipv6 bool) error
- type IptablesManager
- func (m *IptablesManager) GetProxyPort(name string) uint16
- func (m *IptablesManager) Init()
- func (m *IptablesManager) InstallProxyRules(proxyPort uint16, ingress bool, name string) error
- func (m *IptablesManager) InstallRules(ifName string, firstInitialization, install bool) (err error)
- func (m *IptablesManager) SupportsOriginalSourceAddr() bool
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func InstallNoTrackRules ¶ added in v1.10.0
InstallNoTrackRules is explicitly called when a pod has valid "io.cilium.no-track-port" annotation. When InstallNoConntrackIptRules flag is set, a super set of v4 NOTRACK rules will be automatically installed upon agent bootstrap (via function addNoTrackPodTrafficRules) and this function will be skipped. When InstallNoConntrackIptRules is not set, this function will be executed to install NOTRACK rules. The rules installed by this function is very specific, for now, the only user is node-local-dns pods.
func KernelHasNetfilter ¶
func KernelHasNetfilter() bool
KernelHasNetfilter probes whether iptables related modules are present in the kernel and returns true if indeed the case, else false.
Types ¶
type IptablesManager ¶
type IptablesManager struct {
// contains filtered or unexported fields
}
IptablesManager manages the iptables-related configuration for Cilium.
func (*IptablesManager) GetProxyPort ¶
func (m *IptablesManager) GetProxyPort(name string) uint16
GetProxyPort finds a proxy port used for redirect 'name' installed earlier with InstallProxyRules. By convention "ingress" or "egress" is part of 'name' so it does not need to be specified explicitly. Returns 0 a TPROXY entry with 'name' can not be found.
func (*IptablesManager) Init ¶
func (m *IptablesManager) Init()
Init initializes the iptables manager and checks for iptables kernel modules availability.
func (*IptablesManager) InstallProxyRules ¶
func (m *IptablesManager) InstallProxyRules(proxyPort uint16, ingress bool, name string) error
func (*IptablesManager) InstallRules ¶
func (m *IptablesManager) InstallRules(ifName string, firstInitialization, install bool) (err error)
InstallRules installs iptables rules for Cilium in specific use-cases (most specifically, interaction with kube-proxy).
func (*IptablesManager) SupportsOriginalSourceAddr ¶
func (m *IptablesManager) SupportsOriginalSourceAddr() bool
SupportsOriginalSourceAddr tells if an L7 proxy can use POD's original source address and port in the upstream connection to allow the destination to properly derive the source security ID from the source IP address.