Содержание
ip
iproute2
link
Отключить интерфейс:
ip link set имя_интерфейса down
Сменить mac:
ip link set имя_интерфейса address XX:XX:XX:XX:XX:XX
addr
Добавить дополнительный ip адрес на интерфейс eth0 (не будет виден в ifconfig):
ip addr add 10.0.10.99/24 brd + dev eth0
Добавить дополнительный ip адрес на интерфейс eth0 с именем (будет виден в ifconfig):
ip addr add 10.0.10.99/24 brd + dev eth0 label eth0:Name
route
Показать все id таблиц:
ip route show table all | grep "table" | sed 's/.*\(table.*\)/\1/g' | awk '{print $2}' | sort | uniq #или ip route show table all | grep -Po 'table \K[^\s]+' | sort -u
2 ip адреса
Добавляем 2 таблицы в /etc/iproute2/rt_tables
201 T1 202 T2
командами под sudo:
grep T1 /etc/iproute2/rt_tables >/dev/null || echo 201 T1 >> /etc/iproute2/rt_tables grep T2 /etc/iproute2/rt_tables >/dev/null || echo 202 T2 >> /etc/iproute2/rt_tables
Прописываем маршруты:
#!/bin/sh IP1=10.0.10.3 IP2=192.168.10.3 GW1=10.0.10.254 GW2=192.168.10.1 ip route add default via $GW1 table T1 ip route add default via $GW2 table T2 ip route add default via $GW1 ip rule add from $IP1 table T1 ip rule add from $IP2 table T2
Пример настройки 2-х ip из одной сети на разных интерфейсах:
#!/bin/sh grep T1 /etc/iproute2/rt_tables >/dev/null || echo 201 T1 >> /etc/iproute2/rt_tables grep T2 /etc/iproute2/rt_tables >/dev/null || echo 202 T2 >> /etc/iproute2/rt_tables IP1=192.168.10.148 IP2=192.168.10.142 DEV1=ens18 DEV2=ens19 GW=192.168.10.1 ip route list table T1 | grep "default via $GW dev $DEV1" || ip route add default via $GW dev $DEV1 table T1 ip route list table T2 | grep "default via $GW dev $DEV2" || ip route add default via $GW dev $DEV2 table T2 ip rule list | grep "from $IP1 lookup T1" || ip rule add from $IP1 table T1 ip rule list | grep "from $IP2 lookup T2" || ip rule add from $IP2 table T2
Bound
Bridge
Добавить мост br0:
ip link add br0 type bridge ip link set br0 up
Добавить интерфейс eth0 в мост br0:
ip link set eth0 master br0
Удалить интерфейс eth0 из моста:
ip link set dev eth0 nomaster
Удалить мост br0
ip link del br0
VXLAN
Unicast
Связать в хоста: 1 хост:
ip link add vxlan154 type vxlan id 154 remote 192.168.255.253 local 192.168.255.254 dstport 4789 ip link set vxlan154 up
2 хост:
ip link add vxlan154 type vxlan id 154 remote 192.168.255.254 local 192.168.255.253 dstport 4789 ip link set vxlan154 up
Посмотреть информацию:
ip -d link show vxlan154
Для прохождения пакетов более 1450 необходимо изменить mtu:
ip link set vxlan154 mtu 1450
https://net-labs.in/2014/07/03/vxlan-%D0%B2-linux-unicast-mode/
https://www.kernel.org/doc/Documentation/networking/vxlan.txt
Проблемы
В dmesg и syslog генерируются сообщения: vxlan: non-ECT from X.X.X.X with TOS=0x2
Решение:
echo N | sudo tee /sys/module/vxlan/parameters/log_ecn_error echo "options vxlan log_ecn_error=N" | sudo tee /etc/modprobe.d/vxlan-ecn.conf
GRE
Добавить туннель:
ip tunnel add gre01 mode gre remote remote 192.168.255.254 local 192.168.255.253 ip link set gre01 up
Удалить туннель:
ip link set gre01 down ip tunnel del gre01
L2TP
Возможно понадобится установить linux-modules-extra-*
Показать туннели l2tp:
ip l2tp show tunnel
https://blog.erben.sk/2022/11/07/layer-2-vpn-from-mikrotik-to-linux-proxmox-pve/ - L2TP L2 по UDP с ipsec шифрованием внутри
Проблемы
При добавлении L2TP туннеля:
RTNETLINK answers: No such file or directory Error talking to the kernel
Решение, установить пакет linux-modules-extra-* для текущего ядра:
#apt-file search l2tp_eth.ko apt install linux-modules-extra-6.8.0-1021-azure
