iproute2工具笔记

net-toolsbridge-utils等老旧工具转向iproute2的路上所付出的代价.html

地址管理

1
2
3
4
(ifconfig ...)
# ip addr show [dev] DEVICE
# ip addr <add|del> ADDRESS/PREFIXLEN dev DEVICE
# ip link set DEVICE addr MACADDR

ARP

1
2
(arp ...)
# ip neigh

路由管理

1
2
3
(route ...)
# ip [-4|-6] route
# ip [-4|-6] route <add|del> ROUTE OPTIONS

常用选项:onlink:假设下一跳主机与本机直接连接,即使没有匹配的前缀。

网桥

1
2
3
4
(brctl ...)
# ip link add name $MASTER type bridge
# ip link set dev $MASTER up
# ip link set dev $SLAVE master $MASTER

(R)STP

1
2
(brctl stp DEVICE <on|off>)
# ip link set DEVICE type bridge stp_state <0|1>

找了一整天,似乎说到这条指令的并不多,其中还有错误的信息;抓包分析表明网桥驱动似乎仍在使用STP协议。

VLAN

1
2
3
4
5
# ip link add link $IF name $IFNAME_VLAN_DEVICE type vlan id $VID

# bridge vlan show
# bridge vlan add dev DEVICE <vid,pvid,untagged,self,master>
# bridge vlan delete dev DEVICE

网桥设备需要启用VLAN过滤(默认为0关闭):

1
# ip link set dev $BRIDGE type bridge vlan_filtering 1

链路聚合

Linux下的称呼为“bonding”。

Update: 或者使用更现代化的teaming。2022-05-25

目前并没有关于Link Aggregation的准确对应;常见的软件实现包括bondingteaming等。

1
2
3
# modprobe bonding
# ip link add $BOND type bond
# ip link set $SLAVE master $BOND

or

1
2
3
# modprobe team
# ip link add $TEAM type team
    ...