Example Новые Сюда

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
example:example_новые_сюда [24.04.2017 05:29]
admin ↷ Имя страницы example:новые_сюда изменено на example:example_новые_сюда
example:example_новые_сюда [20.05.2019 15:18] (текущий)
Строка 1: Строка 1:
 +Новые сюда НЕ Надо пишем сразу в статью если нет прав то в комент к статье в готовом формате
 <code bash> <code bash>
- 
 # Новые примеры добавляем сюда, админ отсортирует. # Новые примеры добавляем сюда, админ отсортирует.
 # статья начинается с # # статья начинается с #
Строка 13: Строка 13:
 # смена каталога ###cd ###tag2 ###tag3 # смена каталога ###cd ###tag2 ###tag3
 cd cd
 +</​code>##​ OpenVZ
 +
 +### Избавиться от default route на venet0
 +
 +Нужно для выстраивания виртуальных сетей сложнее чем просто выход в инет.
 +
 +Для использования в качестве виртуалки-роутера нужно:
 +
 +1. удалить IP из ct.conf
 +2. прописать в ct.conf `EXTERNAL_SCRIPT="/​usr/​sbin/​vznetaddbr"​`
 +3. стартануть виртуалку и выпилить venet0 из GATEWAYDEV и GATEWAYDEVIPv6 в /​etc/​sysconfig/​network.
 +4. добавить сетёвки в другие бриджи при необходимости.
 +5. включить в /​etc/​sysctl.conf ip_forward=1
 +6. для работы NAT в ct.conf виртуалки указать `NETFILTER="​full"​`
 +Враппер для добавления сетёвок в бриджи:​
 +
 +```
 +#!/bin/bash
 +
 +set -eu
 +[ "​$#"​ != 3 ] && echo '​usage:​ add2br.sh centos_gate br1 eth1' && exit 1
 +vm=$1
 +bridge=$2
 +eth=$3
 +set -x
 +vzctl set $vm --netif_add $eth,,,,​$bridge --save
 +```
 +
 +И `vznetaddrbr`:​
 +
 +```
 +#!/bin/sh
 +#
 +# Add virtual network interfaces (veth'​s) in a container to a bridge on CT0
 +
 +CONFIGFILE=/​etc/​vz/​conf/​$VEID.conf
 +. $CONFIGFILE
 +
 +NETIFLIST=$(printf %s "​$NETIF"​ |tr ';'​ '​\n'​)
 +
 +if [ -z "​$NETIFLIST"​ ]; then
 +   echo >&2 "​According to $CONFIGFILE,​ CT$VEID has no veth interface configured."​
 +   exit 1
 +fi
 +
 +for iface in $NETIFLIST; do
 +    bridge=
 +    host_ifname=
 +
 +    for str in $(printf %s "​$iface"​ |tr ','​ '​\n'​);​ do
 +    case "​$str"​ in
 +   ​bridge=*|host_ifname=*)
 +        eval "​${str%%=*}=\${str#​*=}"​ ;;
 +    esac
 +    done
 +
 +    [ "​$host_ifname"​ = "​$3"​ ] ||
 +    continue
 +
 +    [ -n "​$bridge"​ ] ||
 +    bridge=vmbr1
 +
 +    echo "​Adding interface $host_ifname to bridge $bridge on CT0 for CT$VEID"​
 +    ip link set dev "​$host_ifname"​ up
 +    ip addr add 0.0.0.0/0 dev "​$host_ifname"​
 +    echo 1 >"/​proc/​sys/​net/​ipv4/​conf/​$host_ifname/​proxy_arp"​
 +    echo 1 >"/​proc/​sys/​net/​ipv4/​conf/​$host_ifname/​forwarding"​
 +    brctl addif "​$bridge"​ "​$host_ifname"​
 +
 +    break
 +done
 +
 +exit 0
 +```
 +
 +В противном случае не избавиться от default route через venet0.
 +
 +~~OWNERAPPROVE~~
  
-</​code>​