Tôi gặp sự cố: có đường dẫn không mong muốn giữa các thiết bị mạng ảo.
Hãy tạo hai cặp thiết bị veth-peer độc lập:
$ liên kết sudo ip thêm veth0 gõ veth tên ngang hàng ngang hàng0
$ liên kết sudo ip thêm veth1 gõ tên veth ngang hàng ngang hàng1
Gán địa chỉ cho các thiết bị ngang hàng:
$ sudo ip addr thêm ab:: dev ngang hàng0
$ sudo ip addr thêm cd :: dev ngang hàng1
Thiết lập tất cả các thiết bị:
$ liên kết ip sudo thiết lập dev veth0 lên
$ liên kết ip sudo thiết lập dev veth1 lên
$ sudo ip link set dev peer1 up
$ liên kết ip sudo thiết lập dev peer0 lên
Kiểm tra các thiết bị:
$ip một
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 trạng thái qdisc noqueue nhóm UNKNOWN mặc định qlen 1000
liên kết/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
máy chủ phạm vi inet 127.0.0.1/8 lo
hợp lệ_lft mãi mãi ưa thích_lft mãi mãi
inet6 ::1/128 máy chủ phạm vi
hợp lệ_lft mãi mãi ưa thích_lft mãi mãi
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc trạng thái fq_codel LÊN nhóm mặc định qlen 1000
liên kết/ether 02:82:b2:df:b0:58 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 phạm vi động toàn cầu enp0s3
hợp lệ_lft 84429sec ưa thích_lft 84429sec
liên kết phạm vi inet6 fe80::82:b2ff:fedf:b058/64
hợp lệ_lft mãi mãi ưa thích_lft mãi mãi
3: peer0@veth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 trạng thái qdisc noqueue UP nhóm mặc định qlen 1000
liên kết/ether 6e:8d:c0:7c:02:9c brd ff:ff:ff:ff:ff:ff
inet6 ab::/128 phạm vi toàn cầu
hợp lệ_lft mãi mãi ưa thích_lft mãi mãi
liên kết phạm vi inet6 fe80::6c8d:c0ff:fe7c:29c/64
hợp lệ_lft mãi mãi ưa thích_lft mãi mãi
4: veth0@peer0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 trạng thái qdisc noqueue UP nhóm mặc định qlen 1000
liên kết/ether 4e:43:26:75:10:11 brd ff:ff:ff:ff:ff:ff
liên kết phạm vi inet6 fe80::4c43:26ff:fe75:1011/64
hợp lệ_lft mãi mãi ưa thích_lft mãi mãi
5: peer1@veth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc trạng thái noqueue nhóm LÊN mặc định qlen 1000
liên kết/ether ea:8c:82:e6:2e:a9 brd ff:ff:ff:ff:ff:ff
inet6 cd::/128 phạm vi toàn cầu
hợp lệ_lft mãi mãi ưa thích_lft mãi mãi
liên kết phạm vi inet6 fe80::e88c:82ff:fee6:2ea9/64
hợp lệ_lft mãi mãi ưa thích_lft mãi mãi
6: veth1@peer1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc trạng thái noqueue nhóm LÊN mặc định qlen 1000
liên kết/ether da:5a:68:b1:e8:43 brd ff:ff:ff:ff:ff:ff
liên kết phạm vi inet6 fe80::d85a:68ff:feb1:e843/64
hợp lệ_lft mãi mãi ưa thích_lft mãi mãi
và các tuyến đường:
$ ip r
mặc định qua 10.0.2.2 dev enp0s3 proto dhcp src 10.0.2.15 số liệu 100
10.0.2.0/24 dev enp0s3 liên kết phạm vi kernel proto src 10.0.2.15
10.0.2.2 dev enp0s3 liên kết phạm vi proto dhcp src 10.0.2.15 số liệu 100
Bây giờ hãy nghe peer0 trên cổng UDP 2000:
$ nc -u -6 -l ab:: 2000
Và gửi gói qua peer1:
$ echo -n abc nc -u -6 -s cd:: ab:: 2000
Và lắng nghe nc
bản in abc
! Nhưng mà tại sao? ngang hàng0
và ngang hàng1
không được kết nối theo bất kỳ cách nào. Nếu tôi hiểu đúng, lắng nghe nc
nên liên kết với ngang hàng0
và gửi nc
nên liên kết với ngang hàng1
.