ip

Link / Interface

ip -d link show eth0.8
ip link show eno1
 
ip link set eth0 up
ip link set dev <interface> up
ip link set dev <interface> down
 
ip link del docker0
 
# shutdown interface
ip addr del 10.0.0.2/24 dev eth0
ip link set eth0 down
 
# Configure VLAN
ip link add link eth0 name eth0.100  type vlan id 100
 
# show VLAN
ip -d link show
 
# Delete virtual interface
ip link delete qvb333c3ed4-51

Address

ip addr show eth0
 
ip addr add 192.168.1.33/24 dev eth0
ip addr add 192.168.0.111/24 dev eth0:1
 
# remove ip
ip addr del 10.22.30.44/16 dev eth0
ip addr flush dev eth0
 
# output as json
ip -j a | jq
ip -o -4 -j a show eth0 | jq -r .[].addr_info[].local

MTU
https://www.networkworld.com/article/2224654/mtu-size-issues.html

ip ad | grep mtu
ip link set dev eth0 mtu 1400
ip l set mtu 1200 dev wlan0

ifconfig
https://p5r.uk/blog/2010/ifconfig-ip-comparison.html

ifconfig -a
ifconfig eth0 192.168.1.5 netmask 255.255.255.0 up
route add default gw 192.168.1.1
echo "nameserver 8.8.8.8" > /etc/resolv.conf

Route

ip route show default 0.0.0.0/0
 
sudo ip route del default
sudo ip route add default via 192.168.1.254
sudo ip route add 10.0.3.123 dev tun0 scope link
sudo ip route add 10.23.0.0/16 via $(getent hosts vpn.example.com | cut -d" " -f1)
ip r add ${NET} via ${GW} dev ${DEV} onlink
 
# route
#dep# sudo route add -net 192.168.254.0 gw 192.168.1.34 netmask 255.255.255.0 dev tap0
sudo brctl addbr br10
sudo ip link set dev br10 up
sudo ip route add 192.168.33.0/24 via 10.0.3.100 dev lxcbr0
 
# block route to
iptables -A OUTPUT -d 10.0.1.15 -j DROP
 
# block route without iptables
ip route add prohibit 10.0.1.15/32
 
# test (two routing tables)
echo "1 admin" >> /etc/iproute2/rt_tables
echo "2 users" >> /etc/iproute2/rt_tables
ip rule add from 192.168.122.40/32 dev eth0 table admin
ip rule add from 192.168.123.41/32 dev eth1 table users
ip route add default via 192.168.122.1 dev eth0 table admin
ip route add default via 192.168.123.1 dev eth1 table users
 
ip -4 route get 8.8.8.8
 
# show routing table
ip route

Bridge
http://panticz.de/brctl

# remove bridge
ip link set dev br10 down
brctl delbr br10
 
# delete interface
ip link delete br0

Bridge

apt install -y bridge-utils
brctl addif br0 enp0s8
ip addr flush dev enp0s8
ip link set br0 up
dhclient br0

Namespaces
https://unix.stackexchange.com/questions/210982/bind-unix-program-to-specific-network-interface

ip netns ls
ip netns exec qrouter-1111-2222-3333-4444-5555 ip a
ip netns pids qdhcp-1111-222-333-444-555-6666 | xargs ps -o pid,command -p
 
# find IP in namespaces
IP=172.16.100
for NS in $(ip netns | cut -d" " -f1); do
    ip netns exec ${NS} ip a | grep ${IP} && echo ${NS}
done

Bonding

ip link add bond0 type bond mode 802.3ad
ip link set eth0 master bond0
ip link set eth1 master bond0
ifdown eth0 && ifdown eth1 && ifup bond0
cat /proc/net/bonding/bond0
 
# Get error / dropped packet statistics
sudo netstat -i
 
ifenslave - Attach and detach slave network devices to a bonding device.

ARP

ip neighbor
 
# remove arp entry
ip neigh del 192.168.1.5 dev eth1
ip -s neigh f 192.168.1.5
arp -d 10.0.0.1
 
# remove all ARP entries
ip -s neigh flush all
 
# create ARP entry
ip neigh add 10.33.11.222 lladdr 00:11:22:33:44:55 dev dev-mgmt

Ping test
https://www.uptrends.com/tools/ping-test

Validate IP with BASH

if [[ $ip =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
  echo "success"
else
  echo "fail"
fi

Get primary IP address

hostname -I | cut -d" " -f1

Links
https://www.cyberciti.biz/faq/linux-ip-command-examples-usage-syntax/
https://wiki.archlinux.org/index.php/VLAN
https://www.cyberciti.biz/tips/configuring-static-routes-in-debian-or-red-hat-linux-systems.html
https://www.cyberciti.biz/faq/howto-linux-configuring-default-route-with-ipcommand/
http://www.tecmint.com/ip-command-examples/
https://tty1.net/blog/2010/ifconfig-ip-comparison_en.html