Không thể gán địa chỉ IP cho veth trực tiếp sau khi tạo cặp veth


0

Nếu tôi chạy như sau, thì địa chỉ IP không thực sự được thêm vào:

ip link add veth0 type veth peer name veth1; ip address add 10.0.1.2/24 dev veth1

Tuy nhiên, nếu tôi ngủ ở giữa các lệnh, thì nó sẽ được thêm vào:

ip link add veth0 type veth peer name veth1; sleep 0.1; ip address add 10.0.1.2/24 dev veth1

Tôi đã lặp đi lặp lại nhiều lần và kết quả phù hợp.

Có cách nào đẹp hơn để làm việc này hơn là chỉ ngủ ở giữa không?

CẬP NHẬT:

Sử dụng ip montitor, dường như rất nhiều công cụ đang được thực hiện khi cặp veth được tạo (không có ý tưởng gì) và khi cả hai lệnh được chạy trên cùng một dòng (không ngủ), việc tạo địa chỉ ip dừng rất nhiều công cụ này được thực hiện và các địa chỉ IP sẽ tự động bị xóa.

Có ai hiểu tất cả những thứ này là gì xảy ra khi cặp veth được tạo ra không?

đầu ra của màn hình ip để tạo veth:

ipv4 dev veth1 forwarding on rp_filter strict mc_forwarding off proxy_neigh off ignore_routes_with_linkdown off 
ipv6 dev veth1 forwarding off mc_forwarding off proxy_neigh off ignore_routes_with_linkdown off 
372: veth1@NONE: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default 
    link/ether da:a6:13:1a:29:31 brd ff:ff:ff:ff:ff:ff
ipv4 dev veth0 forwarding on rp_filter strict mc_forwarding off proxy_neigh off ignore_routes_with_linkdown off 
ipv6 dev veth0 forwarding off mc_forwarding off proxy_neigh off ignore_routes_with_linkdown off 
373: veth0@veth1: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN group default 
    link/ether 4a:9e:6c:13:13:34 brd ff:ff:ff:ff:ff:ff
372: veth1@veth0: <NO-CARRIER,BROADCAST,MULTICAST,UP,M-DOWN> mtu 1500 qdisc noqueue state LOWERLAYERDOWN group default 
    link/ether da:a6:13:1a:29:31 brd ff:ff:ff:ff:ff:ff
373: veth0@veth1: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state LOWERLAYERDOWN group default 
    link/ether 4a:9e:6c:13:13:34 brd ff:ff:ff:ff:ff:ff
ff00::/8 dev veth0 table local metric 256 pref medium
373: veth0@veth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 4a:9e:6c:13:13:34 brd ff:ff:ff:ff:ff:ff
ff00::/8 dev veth1 table local metric 256 pref medium
372: veth1@veth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether da:a6:13:1a:29:31 brd ff:ff:ff:ff:ff:ff
Deleted ff00::/8 dev veth0 table local metric 256 pref medium
372: veth1@veth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether da:a6:13:1a:29:31 brd ff:ff:ff:ff:ff:ff
Deleted ff00::/8 dev veth1 table local metric 256 pref medium
ff00::/8 dev veth1 table local metric 256 pref medium
373: veth0@veth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 4a:9e:6c:13:13:34 brd ff:ff:ff:ff:ff:ff
ff00::/8 dev veth0 table local metric 256 pref medium
372: veth1@veth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether da:a6:13:1a:29:31 brd ff:ff:ff:ff:ff:ff
Deleted ff00::/8 dev veth1 table local metric 256 pref medium
ff00::/8 dev veth1 table local metric 256 pref medium
fe80::/64 dev veth1 proto kernel metric 256 pref medium
373: veth0@veth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 4a:9e:6c:13:13:34 brd ff:ff:ff:ff:ff:ff
Deleted ff00::/8 dev veth0 table local metric 256 pref medium
ff00::/8 dev veth0 table local metric 256 pref medium
fe80::/64 dev veth0 proto kernel metric 256 pref medium

đầu ra màn hình ip để thêm địa chỉ IP:

372: veth1    inet 10.0.1.2/24 scope global veth1
       valid_lft forever preferred_lft forever
local 10.0.1.2 dev veth1 table local proto kernel scope host src 10.0.1.2
10.0.1.0/24 dev veth1 proto kernel scope link src 10.0.1.2
broadcast 10.0.1.0 dev veth1 table local proto kernel scope link src 10.0.1.2
broadcast 10.0.1.255 dev veth1 table local proto kernel scope link src 10.0.1.2

đầu ra màn hình ip khi chạy cả hai trên cùng một dòng (không ngủ). Dấu * cho biết dòng bắt đầu tạo địa chỉ IP:

ipv4 dev veth1 forwarding on rp_filter strict mc_forwarding off proxy_neigh off ignore_routes_with_linkdown off 
ipv6 dev veth1 forwarding off mc_forwarding off proxy_neigh off ignore_routes_with_linkdown off 
374: veth1@NONE: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default 
    link/ether 72:94:ec:5a:d7:76 brd ff:ff:ff:ff:ff:ff
ipv4 dev veth0 forwarding on rp_filter strict mc_forwarding off proxy_neigh off ignore_routes_with_linkdown off 
ipv6 dev veth0 forwarding off mc_forwarding off proxy_neigh off ignore_routes_with_linkdown off 
375: veth0@veth1: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN group default 
    link/ether b6:7f:f2:e5:69:e6 brd ff:ff:ff:ff:ff:ff
****************************************************************
374: veth1    inet 10.0.1.2/24 scope global veth1
       valid_lft forever preferred_lft forever
****************************************************************
local 10.0.1.2 dev veth1 table local proto kernel scope host src 10.0.1.2 
375: veth0@veth1: <NO-CARRIER,BROADCAST,MULTICAST,UP,M-DOWN> mtu 1500 qdisc noqueue state LOWERLAYERDOWN group default 
    link/ether b6:7f:f2:e5:69:e6 brd ff:ff:ff:ff:ff:ff
374: veth1@veth0: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state LOWERLAYERDOWN group default 
    link/ether 72:94:ec:5a:d7:76 brd ff:ff:ff:ff:ff:ff
10.0.1.0/24 dev veth1 proto kernel scope link src 10.0.1.2 
broadcast 10.0.1.0 dev veth1 table local proto kernel scope link src 10.0.1.2 
broadcast 10.0.1.255 dev veth1 table local proto kernel scope link src 10.0.1.2 
ff00::/8 dev veth1 table local metric 256 pref medium
374: veth1@veth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 72:94:ec:5a:d7:76 brd ff:ff:ff:ff:ff:ff
ff00::/8 dev veth0 table local metric 256 pref medium
375: veth0@veth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether b6:7f:f2:e5:69:e6 brd ff:ff:ff:ff:ff:ff
Deleted 10.0.1.0/24 dev veth1 proto kernel scope link src 10.0.1.2 
Deleted ff00::/8 dev veth1 table local metric 256 pref medium
Deleted 374: veth1    inet 10.0.1.2/24 scope global veth1
       valid_lft forever preferred_lft forever
Deleted broadcast 10.0.1.255 dev veth1 table local proto kernel scope link src 10.0.1.2 
Deleted broadcast 10.0.1.0 dev veth1 table local proto kernel scope link src 10.0.1.2 
Deleted local 10.0.1.2 dev veth1 table local proto kernel scope host src 10.0.1.2 
375: veth0@veth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether b6:7f:f2:e5:69:e6 brd ff:ff:ff:ff:ff:ff
Deleted ff00::/8 dev veth0 table local metric 256 pref medium
ff00::/8 dev veth0 table local metric 256 pref medium
374: veth1@veth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 72:94:ec:5a:d7:76 brd ff:ff:ff:ff:ff:ff
ff00::/8 dev veth1 table local metric 256 pref medium
375: veth0@veth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether b6:7f:f2:e5:69:e6 brd ff:ff:ff:ff:ff:ff
Deleted ff00::/8 dev veth0 table local metric 256 pref medium
ff00::/8 dev veth0 table local metric 256 pref medium
fe80::/64 dev veth0 proto kernel metric 256 pref medium
374: veth1@veth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 72:94:ec:5a:d7:76 brd ff:ff:ff:ff:ff:ff
Deleted ff00::/8 dev veth1 table local metric 256 pref medium
ff00::/8 dev veth1 table local metric 256 pref medium
fe80::/64 dev veth1 proto kernel metric 256 pref medium
374: veth1    inet6 fe80::1ab9:60e6:dfe2:5904/64 scope link 
       valid_lft forever preferred_lft forever
local fe80::1ab9:60e6:dfe2:5904 dev veth1 table local proto kernel metric 0 pref medium
374: veth1    inet6 fe80::1ab9:60e6:dfe2:5904/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
Deleted fe80::/64 dev veth1 proto kernel metric 256 pref medium
fe80::/64 dev veth1 proto kernel metric 256 pref medium
fe80::/64 dev veth1 proto kernel metric 102 pref medium
375: veth0    inet6 fe80::aa07:cb3f:757e:f3f4/64 scope link 
       valid_lft forever preferred_lft forever
local fe80::aa07:cb3f:757e:f3f4 dev veth0 table local proto kernel metric 0 pref medium
375: veth0    inet6 fe80::aa07:cb3f:757e:f3f4/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
Deleted fe80::/64 dev veth0 proto kernel metric 256 pref medium
fe80::/64 dev veth0 proto kernel metric 256 pref medium
fe80::/64 dev veth0 proto kernel metric 101 pref medium

Bạn có thể thử lại lệnh đầu tiên không, nhưng trong khi chạy ip monitor trong một nhà ga khác? Liệu nó hiển thị địa chỉ được thêm vào và nhanh chóng bị xóa, hoặc nó không hiển thị gì cả?
grawity

Đó là một điều kiện cuộc đua: Nhân phải hoàn thành việc thêm thẻ trước khi có thể định cấu hình thẻ, ngay cả khi ip lệnh trả về. Nếu vì lý do nào đó việc thêm chậm, bạn phải đợi cho đến khi nó xuất hiện. Bạn có thể lặp lại ip link show | grep veth1 vv, nhưng nếu sleep đã hoạt động ...
dirkt

@grawity Cảm ơn vì điều đó, tôi đã cập nhật câu hỏi với đầu ra màn hình ip
Jonny Shanahan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.