Новые сюда НЕ Надо пишем сразу в статью если нет прав то в комент к статье в готовом формате # Новые примеры добавляем сюда, админ отсортирует. # статья начинается с # # теги тройной ### # статья оканчивается пустой строкой # если нужна пустая строка ставьте пробел и рекомендуется тогда ставить две пустых строки в конце строки. # Пример: # вывод списка файлов ###ls ###dir ###tag3 ###tag4 ls # смена каталога ###cd ###tag2 ###tag3 cd ## 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~~