...

Package ebtables

import "k8s.io/utils/net/ebtables"
Overview
Index

Overview ▾

Package ebtables allows to control the ebtables Linux-based bridging firewall. Both chains and rules can be added, deleted and modified. For ebtables specific documentation see: http://ebtables.netfilter.org/

type Chain

Chain is an Ebtables chain type

type Chain string

Chains that are built-in in ebtables

const (
    ChainPostrouting Chain = "POSTROUTING"
    ChainPrerouting  Chain = "PREROUTING"
    ChainOutput      Chain = "OUTPUT"
    ChainInput       Chain = "INPUT"
    ChainBrouting    Chain = "BROUTING"
)

type Interface

Interface for running ebtables commands. Implementations must be goroutine-safe.

type Interface interface {
    // GetVersion returns the "X.Y.Z" semver string for ebtables.
    GetVersion() (string, error)
    // EnsureRule checks if the specified rule is present and, if not, creates it.  If the rule existed, return true.
    // WARNING: ebtables does not provide check operation like iptables do. Hence we have to do a string match of args.
    // Input args must follow the format and sequence of ebtables list output. Otherwise, EnsureRule will always create
    // new rules and causing duplicates.
    EnsureRule(position RulePosition, table Table, chain Chain, args ...string) (bool, error)
    // DeleteRule checks if the specified rule is present and, if so, deletes it.
    DeleteRule(table Table, chain Chain, args ...string) error
    // EnsureChain checks if the specified chain is present and, if not, creates it.  If the rule existed, return true.
    EnsureChain(table Table, chain Chain) (bool, error)
    // DeleteChain deletes the specified chain.  If the chain did not exist, return error.
    DeleteChain(table Table, chain Chain) error
    // FlushChain flush the specified chain.  If the chain did not exist, return error.
    FlushChain(table Table, chain Chain) error
}

func New

func New(exec utilexec.Interface) Interface

New returns a new Interface which will exec ebtables.

type RulePosition

RulePosition is the rule position within a table

type RulePosition string

Relative position for a new rule

const (
    Prepend RulePosition = "-I"
    Append  RulePosition = "-A"
)

type Table

Table is an Ebtables table type

type Table string

Tables available in ebtables by default

const (
    TableNAT    Table = "nat"
    TableFilter Table = "filter"
    TableBroute Table = "broute"
)