ambrop7 80e002aa74 ncd/examples/router/README: mention that a DNS server is started преди 12 години
..
README 80e002aa74 ncd/examples/router/README: mention that a DNS server is started преди 12 години
add-port-forwarding edd3faca44 ncd: add router example преди 12 години
dhcp_server.ncdi edd3faca44 ncd: add router example преди 12 години
list-port-forwardings edd3faca44 ncd: add router example преди 12 години
ncd.conf edd3faca44 ncd: add router example преди 12 години
network.ncdi edd3faca44 ncd: add router example преди 12 години
network_control_server.ncdi edd3faca44 ncd: add router example преди 12 години
port_forwarding.ncdi edd3faca44 ncd: add router example преди 12 години
pppoe.ncdi edd3faca44 ncd: add router example преди 12 години
remove-port-forwarding edd3faca44 ncd: add router example преди 12 години
unbound.ncdi edd3faca44 ncd: add router example преди 12 години

README

NCD Router Example

-- Operation ---

These are the NCD scripts I run on my home router.
Three network interfaces are being configured:

1. The LAN interface.
The DHCP server is started for this interface, and also a DNS server (unbound).
2. The Internet interface.
This is a PPPoE interface with NAT.
3. The ServerIf interface.
This one behaves similarly to the LAN interface, except that there is no DHCP server.
The intention is to put servers here so you can restrict communication not only between Internet and the servers,
but also between LAN and the servers (though this configuration doesn't actually do the latter).

Hosts on the LAN and ServerIf interfaces can access the Internet, and source NAT is used here.
Additionally, it is possible to add port forwardings (DNAT) from the Internet interface to either
of those two interfaces. These can be managed with the scripts {list,add,remove}-port-forwarding.
The list of port forwarding is stored in the file /var/lib/ncd-port-forwardings.ncdvalue.
However, you should NOT modify this file while NCD is running. You should not modify it at all, because
NCD may accidentally overwrite your changes. Just use the scripts.

Iptables is used to filter incoming connections from the Internet interface.
Exceptions can be added; for example, there's a commented line in template network_internet_pppoe_preup which allows access to the local SSH server.
To allow access to servers running on other hosts (LAN or ServerIf interface), a port forwarding should be added dynamically.

-- Installation --

The following pppd patch is required for PPPoE to work:
https://code.google.com/p/ambro-gentoo-overlay/source/browse/trunk/net-dialup/ppp/files/pppd-configurable-paths.patch

Copy ncd.conf to /etc/, and copy all other files here into a new directory /etc/ncd-network.
Explanation: ncd.conf just loads network.ncdi, which is where the bulk of the configuration is defined.
Make the {list,add,remove}-port-forwarding scripts executable. Additionally, if your NCD interpreter is not located at /usr/bin/badvpn-ncd,
adjust the interpreter paths inside them.