iproute2 命令启用 IPv4 地址

iproute2 命令启用 IPv4 地址

我正在研究如何拥有ip路由2命令替换了旧的ifconfigandifup ifdown命令,我发现了一些有趣的事情。

我的网卡设置是:

[16:07:41 root@vm network-scripts ]# cat /etc/sysconfig/network-scripts/ifcfg-eth2

DEVICE=eth2
ONBOOT=no
BOOTPROTO=dhcp

要打开和关闭接口,旧的方法是: ifup eth2 ifdown eth2

[16:25:10 root@vm network-scripts ]# ip a show eth2
4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 08:00:27:b8:13:b4 brd ff:ff:ff:ff:ff:ff

[16:25:14 root@vm network-scripts ]# ifup eth2

Determining IP information for eth2... done.

[16:25:22 root@vm network-scripts ]# ip a show eth2
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:b8:13:b4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.4/24 brd 192.168.1.255 scope global eth2
    inet6 fe80::a00:27ff:feb8:13b4/64 scope link
       valid_lft forever preferred_lft forever

[16:25:26 root@vm-cention network-scripts ]# ifdown eth2

[16:27:51 root@vm-cention network-scripts ]# ip a show eth2
4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 08:00:27:b8:13:b4 brd ff:ff:ff:ff:ff:ff

使用ip路由2命令来做到这一点,通常我们使用ip link set eth2 up,但显然只能iproute2调出网卡的链路层,而不能调出 IP 地址:

[16:36:25 root@vm network-scripts ]# ip link set eth2 up

[16:37:16 root@vm network-scripts ]# ip a show eth2
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:b8:13:b4 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::a00:27ff:feb8:13b4/64 scope link
       valid_lft forever preferred_lft forever

[16:37:20 root@vm network-scripts ]# ping yahoo.com
ping: unknown host yahoo.com

但传统的ifup可以做到这一点:

[16:37:39 root@vm network-scripts ]# ifup eth2

Determining IP information for eth2... done.

[16:39:59 root@vm network-scripts ]# ip a show eth2
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:b8:13:b4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.4/24 brd 192.168.1.255 scope global eth2
    inet6 fe80::a00:27ff:feb8:13b4/64 scope link
       valid_lft forever preferred_lft forever

[16:40:04 root@vm network-scripts ]# ping yahoo.com
PING yahoo.com (98.139.183.24) 56(84) bytes of data.
64 bytes from ir2.fp.vip.bf1.yahoo.com (98.139.183.24): icmp_seq=1 ttl=43 time=243 ms
64 bytes from ir2.fp.vip.bf1.yahoo.com (98.139.183.24): icmp_seq=2 ttl=43 time=341 ms

我认为这是由于ifup将链路层和 IPv4 地址放在一起。

所以我的问题是:我们如何使用 iproute2 来启用 IPv4 地址

边注: 有趣的是,当iproute2关闭链路层时,它不会禁用 IPv4 地址:

[16:42:50 root@vm network-scripts ]# ip a show eth2
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:b8:13:b4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.4/24 brd 192.168.1.255 scope global eth2
    inet6 fe80::a00:27ff:feb8:13b4/64 scope link
       valid_lft forever preferred_lft forever

[16:42:58 root@vm network-scripts ]# ip link set eth2 down

[16:43:04 root@vm network-scripts ]# ip a show eth2
4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 08:00:27:b8:13:b4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.4/24 brd 192.168.1.255 scope global eth2

[16:43:09 root@vm network-scripts ]# ping yahoo.com
ping: unknown host yahoo.com

答案1

ipifup服务于不同的目的,并且是免费的。ip不应该用来代替ifup.实际上,ifup是在更高的层面上运作。

ifconfig(传统的、可移植的)和ip(仅限 Linux,但界面更好)是两个具有相同目的的命令。它们用于直接设置接口配置。ip确实完全取代了ifconfig(以及route其中的一些netstat),因为它有更好的界面和更广泛的功能,除了ifconfig兼容性之外。

既不包含ip也不ifconfig管理持久配置。他们应用在命令行上收到的请求,仅此而已。

ifupifdown用于根据系统配置打开和关闭接口。在某些系统上,此配置保存在 中/etc/network/interfaces,在其他系统上则保存在 中/etc/sysconfig/something。他们的工作是读取整个配置,包括 IP 地址、路由、DNS 服务器、自定义脚本等,并将其应用到系统中。他们通过调用ipor来做到这一点(至少在概念上)ifconfig

您可以手动执行用于调出界面的所有ip命令,但请注意/持久状态信息将与现实不同步。即使您使用 启动后,仍会继续认为接口已关闭。ifupifupifdownifupip

答案2

ifup 是高层工具 - 它使用配置文件来启动和配置接口。如果你想通过 ip 命令来做到这一点,你可以使用如下命令:

ip link set eth0 up # to bring interface up
ip a a 192.168.1.4/24 dev eth0 # to add address to interface
ip route add default via 192.168.1.1 # to add default route via gateway in that interface

如果您希望使用 dhcp 自动配置此接口,您需要使用 dhcp 客户端 - 例如 dhclient 或 dhcpcd

相关内容