[][src]Struct dfw::types::ContainerToContainer

pub struct ContainerToContainer {
    pub default_policy: ChainPolicy,
    pub rules: Option<Vec<ContainerToContainerRule>>,
}

The container-to-container section, defining how containers can communicate amongst each other.

Fields

default_policy: ChainPolicy

The default_policy defines the default for when there is not a specific rule.

Filtering traffic within the same bridge

Depending on how your host is configured, traffic whose origin and destination interface are the same bridge is not filtered by the kernel netfilter module. This means that this default policy is not honored for traffic between containers that are on the same Docker network, but only for traffic that traverses two bridges.

If your kernel has the br_netfilter kernel-module available, you can set the sysctl net.bridge.bridge-nf-call-iptables to 1 to have the netfilter-module act on traffic within the same bridge, too. You can set this value temporarily like this:

sysctl net.bridge.bridge-nf-call-iptables=1

To permanently set this configuration, take a look at man sysctl.d and man sysctl.conf.

rules: Option<Vec<ContainerToContainerRule>>

An optional list of rules, see ContainerToContainerRule.

Example

The easiest way to define the rules is using TOMLs arrays of tables:

[container_to_container]
default_policy = "drop"

[[container_to_container.rules]]
# first rule here
[[container_to_container.rules]]
# second rule here

Trait Implementations

impl Clone for ContainerToContainer[src]

impl Debug for ContainerToContainer[src]

impl<'de> Deserialize<'de> for ContainerToContainer[src]

impl Eq for ContainerToContainer[src]

impl Hash for ContainerToContainer[src]

impl PartialEq<ContainerToContainer> for ContainerToContainer[src]

impl Process<Iptables> for ContainerToContainer[src]

impl Process<Nftables> for ContainerToContainer[src]

impl StructuralEq for ContainerToContainer[src]

impl StructuralPartialEq for ContainerToContainer[src]

Auto Trait Implementations

impl RefUnwindSafe for ContainerToContainer

impl Send for ContainerToContainer

impl Sync for ContainerToContainer

impl Unpin for ContainerToContainer

impl UnwindSafe for ContainerToContainer

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]

impl<Q, K> Equivalent<K> for Q where
    K: Borrow<Q> + ?Sized,
    Q: Eq + ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Sealed<T> for T where
    T: ?Sized

impl<T> SendSyncUnwindSafe for T where
    T: Send + Sync + UnwindSafe + ?Sized

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,