LINUX.ORG.RU

История изменений

Исправление router, (текущая версия) :

Дальше мне надо мой wlan0 засунуть в ns LEFT и вот тут смысл вот этого я не вкурил даже после man'а:

ip link add name ve0a type veth peer name ve0b

netspace создаётся изолированным. Представь его как отдельный комп. Чтобы он мог выйти в сеть, нужно соединить его линком с основным компом

Приведённая выше команда создаст этот линк. Появятся 2 сетевых интерфейса - ve0a и ve0b. Дальше один из них настраиваешь в основной системе, другой прокидываешь в namespace и настраиваешь там

ip address add 10.10.10.1/24 dev ve0a
ip link set dev ve0a up
ip link set dev ve0b netns LEFT
ip netns exec LEFT bash
# уже в netspace LEFT:
ip address add 10.10.10.2/24 dev ve0b
ip link set dev ve0b up
ip route add default via 10.10.10.1 dev ve0b

После этого всё равно придётся настраивать форвардинг и нат/маскарад, т.к. для ядра этот трафик будет «чужим»

iptables -P FORWARD DROP
iptables -I FORWARD 1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -s 10.10.10.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 ! -d 10.10.10.0/24 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

Исходная версия router, :

Дальше мне надо мой wlan0 засунуть в ns LEFT и вот тут смысл вот этого я не вкурил даже после man'а:

ip link add name ve0a type veth peer name ve0b

netspace создаётся изолированным. Представь его как отдельный комп. Чтобы он мог выйти в сеть, нужно соединить его линком с основным компом

Приведённая выше команда создаст этот линк. Появятся 2 сетевых интерфейса - ve0a и ve0b. Дальше один из них настраиваешь в основной системе, другой прокидываешь в namespace и настраиваешь там

ip address add 10.10.10.1/24 dev ve0a
ip link set dev ve0a up
ip link set dev ve0b netns LEFT
ip netns exec LEFT bash
# уже в netspace LEFT:
ip address add 10.10.10.2/24 dev ve0b
ip link set dev ve0b up
ip route add default via 10.10.10.1 dev ve0a

После этого всё равно придётся настраивать форвардинг и нат/маскарад, т.к. для ядра этот трафик будет «чужим»

iptables -P FORWARD DROP
iptables -I FORWARD 1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -s 10.10.10.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 ! -d 10.10.10.0/24 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward