Tôi đang nghiên cứu làm thế nào để có các lệnh iproute2 thay thế lệnh cũ ifconfig
và ifup
ifdown
lệnh và tôi đã tìm ra một điều thú vị.
Thiết lập NIC của tôi là:
[16:07:41 root@vm network-scripts ]# cat /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE=eth2
ONBOOT=no
BOOTPROTO=dhcp
Để đưa lên và xuống một giao diện, cách cũ sẽ là:
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
Để sử dụng lệnh iproute2 để làm điều này, thông thường chúng ta sử dụng ip link set eth2 up
, nhưng rõ ràng iproute2
chỉ có thể hiển thị lớp liên kết của NIC chứ không phải địa chỉ 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
Nhưng truyền thống ifup
có thể làm điều đó:
[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
Tôi nghĩ rằng điều này là do ifup
đưa lên lớp liên kết, và cả địa chỉ IPv4 cùng nhau.
Vì vậy, câu hỏi của tôi là: làm thế nào để chúng tôi sử dụng iproute2 để kích hoạt địa chỉ IPv4 ?
Lưu ý bên lề:
Thật thú vị, khi iproute2
đưa xuống lớp liên kết, nó không vô hiệu hóa địa chỉ 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
ip
vàifup
đang chơi!