Example Новые Сюда
Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
example:example_новые_сюда [24.04.2017 05:10] admin |
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> |