Difference between revisions of "Iproute2"
Helikopter (talk | contribs) (→ip) |
Helikopter (talk | contribs) m (TC additions) |
||
(9 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== | ||
− | + | 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 r | ip r | ||
− | + | ||
+ | '''ip link''' <br/> | ||
+ | ifconfig | ||
ip l | ip l | ||
− | ip -s 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''' <br/> | ||
+ | ARP/NDP | ||
ip n | ip n | ||
− | + | Flush cache | |
ip n f | ip n f | ||
− | === | + | '''Monitor''' <br/> |
− | + | Monitor changes in network configuration, routing tables, and ARP/NDP tables from terminal. | |
− | ip | + | 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|Open vSwitch]] eller [[Bridge|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=== | ===Network Namespace=== | ||
Line 26: | Line 124: | ||
ip netns exec MGMT ip addr add 10.0.0.101/24 dev eth1 | 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 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== | ==ss== | ||
Line 32: | Line 148: | ||
==tc== | ==tc== | ||
− | Traffic control | + | Traffic control. Command wrapper: tcconfig. |
− | + | '''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 41: | 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å |
Contents
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