Difference between revisions of "Iproute2"

From HackerNet
Jump to: navigation, search
m (TC additions)
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
Ifconfig, arp och route-kommandona är påväg bort, vänj dig vid iproute2. De två viktigaste verktygen är ip och tc (traffic control)<br/>
 
Ifconfig, arp och route-kommandona är påväg bort, vänj dig vid iproute2. De två viktigaste verktygen är ip och tc (traffic control)<br/>
 
Med dessa kommandon behöver man inte skriva ut alla bokstäver, likt switchar och routrar. T.ex. ip a s är samma som ip address show
 
Med dessa kommandon behöver man inte skriva ut alla bokstäver, likt switchar och routrar. T.ex. ip a s är samma som ip address show
 +
 +
{| class="wikitable"
 +
|-
 +
! Gamla kommandot
 +
! Nya kommandot
 +
! Kommentar
 +
|-
 +
| <code>ifconfig</code>
 +
| <code>ip addr</code>, <code>ip link</code>, <code>ip -s</code>
 +
| Adresser och länk config
 +
|-
 +
| <code>route</code>
 +
| <code>ip route</code>
 +
| Routing tables
 +
|-
 +
| <code>arp</code>
 +
| <code>ip neigh</code>
 +
| Neighbors
 +
|-
 +
| <code>iptunnel</code>
 +
| <code>ip tunnel</code>
 +
| Tunnels
 +
|-
 +
| <code>nameif</code>
 +
| <code>ifrename</code>, <code>ip link set name</code>
 +
| Byt namn på ett interface
 +
|-
 +
| <code>ipmaddr</code>
 +
| <code>ip maddr</code>
 +
| Multicast
 +
|-
 +
| <code>netstat</code>
 +
| <code>ip -s</code>, <code>ss</code>, <code>ip route</code>
 +
| Visar nät statistik, tex vilka portar man lyssnar på
 +
|}
  
 
==ip==
 
==ip==
===ip address show===
+
Version
 +
ip -V
 +
'''ip address show'''
 
  ip a
 
  ip a
 +
ip -br a
 
  ip a s eth0
 
  ip a s eth0
  
===ip routes show===
+
'''ip routes show'''
 
  ip r
 
  ip r
  
===ip link===
+
'''ip link''' <br/>
 
ifconfig
 
ifconfig
 
  ip l
 
  ip l
  ip -s l (med statistik)
+
ip -br l
 +
  ip -s l #med statistik
 
ifup/ifdown
 
ifup/ifdown
  ip link set dev eth0 up/down
+
  ip link set eth0 up/down
 
Description
 
Description
  ip link set dev eth0 alias "LAN interface"
+
  ip link set eth0 alias "LAN interface"
 +
Promiscuous mode på interface
 +
ip link set eth0 promisc on
 +
ip a | grep PROMISC
 
Macchanger
 
Macchanger
 
  ip link set dev eth0 address 00:11:22:33:44:55
 
  ip link set dev eth0 address 00:11:22:33:44:55
  
===ip neigh===
+
'''ip neigh''' <br/>
 
ARP/NDP
 
ARP/NDP
 
  ip n
 
  ip n
Flush
+
Flush cache
 
  ip n f
 
  ip n f
  
===Monitor===
+
'''Monitor''' <br/>
 
Monitor changes in network configuration, routing tables, and ARP/NDP tables from terminal.
 
Monitor changes in network configuration, routing tables, and ARP/NDP tables from terminal.
 
  ip monitor
 
  ip monitor
Line 36: Line 78:
 
'''Unicast'''
 
'''Unicast'''
 
  ip link add vxlan0 type vxlan id 10 remote 2.2.2.2 local 1.1.1.1 dev eth0
 
  ip link add vxlan0 type vxlan id 10 remote 2.2.2.2 local 1.1.1.1 dev eth0
Alternativt med multicast
+
VTEP-kommunikation görs alternativt med multicast.
 
  ip link add vxlan0 type vxlan id 10 group 239.1.1.1 dev eth0 dstport 4789
 
  ip link add vxlan0 type vxlan id 10 group 239.1.1.1 dev eth0 dstport 4789
  
 +
Vxlan-interfacet kopplas sedan till en [[Open_vSwitch|Open vSwitch]] eller [[Bridge|Linux Bridge]].
 +
brctl addif br0 vxlan0
 
Enablea interface
 
Enablea interface
 
  ip link set up dev vxlan0
 
  ip link set up dev vxlan0
Line 48: Line 92:
 
Delete interface
 
Delete interface
 
  ip link delete vxlan0
 
  ip link delete vxlan0
 +
 +
Disable source-address learning, detta kan t.ex. göras om man har BGP EVPN som synkroniserar FDBs.
 +
ip link add vxlan0 type vxlan id 10 remote 2.2.2.2 local 1.1.1.1 dev eth0 '''nolearning'''
  
 
Skapa entry manuellt
 
Skapa entry manuellt
 
  bridge fdb add to 00:00:0c:80:bb:07 dst 2.2.2.2 dev vxlan0
 
  bridge fdb add to 00:00:0c:80:bb:07 dst 2.2.2.2 dev vxlan0
 +
 +
===GRETAP===
 +
Generic Routing Encapsulation on linux.
 +
ip link add GRETAP1 type gretap local 172.16.0.10 remote 192.168.0.10 dev eth0
 +
ip link add br0 type bridge
 +
ip link set eth1 master br0
 +
ip link set eth1 up
 +
ip link set br0 up
 +
ip link set GRETAP1 up
 +
ip link set GRETAP1 master br0
 +
ifconfig br0 promisc
  
 
===L2TPv3===
 
===L2TPv3===
 +
Layer Two Tunneling Protocol - Version 3.
 
  modprobe l2tp_eth
 
  modprobe l2tp_eth
 
  ip l2tp add tunnel local 1.1.1.1 remote 2.2.2.2 tunnel_id 100 peer_tunnel_id 200 encap udp udp_sport 5000 udp_dport 5000
 
  ip l2tp add tunnel local 1.1.1.1 remote 2.2.2.2 tunnel_id 100 peer_tunnel_id 200 encap udp udp_sport 5000 udp_dport 5000
Line 66: Line 125:
 
  ip netns exec MGMT ip route add default via 10.0.0.1
 
  ip netns exec MGMT ip route add default via 10.0.0.1
 
  ip netns list
 
  ip netns list
 +
 +
===Subinterface===
 +
ip link add link eth1 name eth1.20 type vlan id 20
 +
ip address add 192.168.20.1/24 dev eth1.20
 +
ip link set eth1.20 up
  
 
===MAC VLAN===
 
===MAC VLAN===
Med MAC VLAN kan man assigna flera MAC-adresser till samma interface. Man kan uppnå samma resultat som med [[Bridge]] men är mer light-weight. Det kan skapas i 4 modes: private, vepa, bridge eller passthru beroende på säkerhetskraven. Det går att köra MAC VLAN tillsammans med [[KVM]].
+
Med MAC VLAN kan man assigna flera MAC-adresser till samma interface. Man kan uppnå samma resultat som med [[Bridge]] men det är mer light-weight. Det kan skapas i 4 modes: private, vepa, bridge eller passthru beroende på säkerhetskraven. Det går att köra MAC VLAN tillsammans med [[KVM]].
  ip li add link eth0 mac0 type macvlan
+
  ip link add link eth0 mac0 type macvlan
  
 
===Blackhole===
 
===Blackhole===
Line 84: Line 148:
  
 
==tc==
 
==tc==
Traffic control
+
Traffic control. Command wrapper: tcconfig.
  
===Netem===
+
'''Network Emulator''' <br/>
 
Delay
 
Delay
 
  tc qdisc change dev eth0 root netem delay 100ms 20ms distribution normal
 
  tc qdisc change dev eth0 root netem delay 100ms 20ms distribution normal
Line 93: Line 157:
 
Reorder
 
Reorder
 
  tc qdisc change dev eth0 root netem delay 10ms reorder 25% 50%
 
  tc qdisc change dev eth0 root netem delay 10ms reorder 25% 50%
 
+
Policing
 +
tc qdisc add dev eth0 root tbf rate 2mbit burst 32kbit latency 600ms
 +
Show config
 +
tc qdisc show dev eth0
 +
Clear config
 +
tc qdisc del dev eth0 root
  
 
[[Category:Tools]]
 
[[Category:Tools]]

Latest revision as of 14:39, 28 September 2021

Ifconfig, arp och route-kommandona är påväg bort, vänj dig vid iproute2. De två viktigaste verktygen är ip och tc (traffic control)
Med dessa kommandon behöver man inte skriva ut alla bokstäver, likt switchar och routrar. T.ex. ip a s är samma som ip address show

Gamla kommandot Nya kommandot Kommentar
ifconfig ip addr, ip link, ip -s Adresser och länk config
route ip route Routing tables
arp ip neigh Neighbors
iptunnel ip tunnel Tunnels
nameif ifrename, ip link set name Byt namn på ett interface
ipmaddr ip maddr Multicast
netstat ip -s, ss, ip route Visar nät statistik, tex vilka portar man lyssnar på

ip

Version

ip -V

ip address show

ip a
ip -br a
ip a s eth0

ip routes show

ip r

ip link
ifconfig

ip l
ip -br l
ip -s l  #med statistik

ifup/ifdown

ip link set eth0 up/down

Description

ip link set eth0 alias "LAN interface"

Promiscuous mode på interface

ip link set eth0 promisc on
ip a | grep PROMISC

Macchanger

ip link set dev eth0 address 00:11:22:33:44:55

ip neigh
ARP/NDP

ip n

Flush cache

ip n f

Monitor
Monitor changes in network configuration, routing tables, and ARP/NDP tables from terminal.

ip monitor

VXLAN

VXLAN är ett tunnlingsprotokoll designat för att lösa skalbarhetsbegränsningar med VLAN. Det ökar från 4096 till 24 bitar (16 miljoner) id:n. Protokollet körs över en enskild konfigurerbar UDP-port. EN VXLAN-enhet kan lära sig MAC/IP-adresser tillhörande andra sidan tunneln antingen dynamiskt likt en switch eller med statiska forwarding entries.

Unicast

ip link add vxlan0 type vxlan id 10 remote 2.2.2.2 local 1.1.1.1 dev eth0

VTEP-kommunikation görs alternativt med multicast.

ip link add vxlan0 type vxlan id 10 group 239.1.1.1 dev eth0 dstport 4789

Vxlan-interfacet kopplas sedan till en Open vSwitch eller Linux Bridge.

brctl addif br0 vxlan0

Enablea interface

ip link set up dev vxlan0

Kolla interface och forwarding table

ip -d link show vxlan0
bridge fdb show dev vxlan0

Delete interface

ip link delete vxlan0

Disable source-address learning, detta kan t.ex. göras om man har BGP EVPN som synkroniserar FDBs.

ip link add vxlan0 type vxlan id 10 remote 2.2.2.2 local 1.1.1.1 dev eth0 nolearning

Skapa entry manuellt

bridge fdb add to 00:00:0c:80:bb:07 dst 2.2.2.2 dev vxlan0

GRETAP

Generic Routing Encapsulation on linux.

ip link add GRETAP1 type gretap local 172.16.0.10 remote 192.168.0.10 dev eth0
ip link add br0 type bridge
ip link set eth1 master br0
ip link set eth1 up
ip link set br0 up
ip link set GRETAP1 up
ip link set GRETAP1 master br0
ifconfig br0 promisc

L2TPv3

Layer Two Tunneling Protocol - Version 3.

modprobe l2tp_eth
ip l2tp add tunnel local 1.1.1.1 remote 2.2.2.2 tunnel_id 100 peer_tunnel_id 200 encap udp udp_sport 5000 udp_dport 5000
ip l2tp add session tunnel_id 100 session_id 300 peer_session_id 300

Show

ip l2tp show tunnel

Network Namespace

Skapa VRF, assigna interface och sätt adress

ip netns add MGMT
ip link set eth1 netns MGMT
ip netns exec MGMT ip addr add 10.0.0.101/24 dev eth1
ip netns exec MGMT ip route add default via 10.0.0.1
ip netns list

Subinterface

ip link add link eth1 name eth1.20 type vlan id 20
ip address add 192.168.20.1/24 dev eth1.20 
ip link set eth1.20 up

MAC VLAN

Med MAC VLAN kan man assigna flera MAC-adresser till samma interface. Man kan uppnå samma resultat som med Bridge men det är mer light-weight. Det kan skapas i 4 modes: private, vepa, bridge eller passthru beroende på säkerhetskraven. Det går att köra MAC VLAN tillsammans med KVM.

ip link add link eth0 mac0 type macvlan

Blackhole

Discard traffic sent to unwanted destinations

ip route add blackhole 192.168.2.0/30

Configuration Caching

Ska man flytta en IP-adress från ett interface till ett annat är det bra att flusha cachen emellan för att säkerställa att det inte hänger kvar något.

ip a flush dev <OLD-device>

ss

Socket statistics. Användbart och lättmemorerat kommando som ersätter netstat:

ss -tulpan

tc

Traffic control. Command wrapper: tcconfig.

Network Emulator
Delay

tc qdisc change dev eth0 root netem delay 100ms 20ms distribution normal

Packet loss

tc qdisc change dev eth0 root netem loss 0.3% 25%

Reorder

tc qdisc change dev eth0 root netem delay 10ms reorder 25% 50%

Policing

tc qdisc add dev eth0 root tbf rate 2mbit burst 32kbit latency 600ms

Show config

tc qdisc show dev eth0

Clear config

tc qdisc del dev eth0 root