Ich untersuche, wie iproute2- Befehle die alten ifconfig
und Befehle ersetzen können ifup
ifdown
, und habe etwas Interessantes herausgefunden.
Mein NIC-Setup lautet:
[16:07:41 root@vm network-scripts ]# cat /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE=eth2
ONBOOT=no
BOOTPROTO=dhcp
Um eine Schnittstelle auf und ab zu bringen, lautet der alte Weg:
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
Um den Befehl iproute2 zu verwenden, verwenden wir normalerweise ip link set eth2 up
, aber anscheinend iproute2
kann der nur die Verbindungsschicht der Netzwerkkarte aufrufen, nicht aber die IP-Adresse:
[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
Aber das Traditionelle ifup
kann das:
[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
Ich denke, dies ist darauf zurückzuführen, ifup
dass die Verbindungsschicht und auch die IPv4-Adresse zusammengeführt werden.
Meine Frage lautet also: Wie verwenden wir iproute2, um auch die IPv4-Adresse zu aktivieren ?
Randnotiz:
Interessanterweise wird beim iproute2
Herunterfahren der Verbindungsschicht die IPv4-Adresse nicht deaktiviert:
[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
ip
undifup
spiele!