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