Giao diện dựa trên Macvlan ping từ máy chủ nhưng không phải từ không gian tên


10

[BIÊN TẬP]

Hệ thống sản xuất hiện là một hệ thống dựa trên vật lý hỗn hợp và ESXi. Chúng tôi rõ ràng sẽ không bao giờ sử dụng hộp ảo ngay cả đối với môi trường tiền sản xuất! Nó chỉ được sử dụng ở đây để nhanh chóng thu hẹp vấn đề trực tiếp trên máy tính để bàn của tôi.

Cảm ơn lời giải thích cho việc "tạm dừng" trên meta!

[/BIÊN TẬP]

Thiết lập của tôi:

  1. Mạng riêng vboxnet110.0.7.0/24
  2. 1 máy chủ, máy tính để bàn Ubuntu
  3. 1 VM, máy chủ Ubuntu (VirtualBox)

Bố cục địa chỉ:

  1. GIỜ: 10.0.7.1
  2. VM: 10.0.7.101
  3. Tên máy ảo MAC : 10.0.7.102

Trên VM, tôi đã chạy các lệnh sau:

ip netns add mac                        # create a new nmespace
ip link add link eth0 mac0 type macvlan # create a new macvlan interface
ip link set mac0 netns mac

Trên mackhông gian tên, bên trong VM:

ip link set lo up
ip link set mac up
ip addr add 10.0.7.102/24 dev mac0

Vì vậy, về cơ bản chúng ta kết thúc với: (Giống như Inception?)

+------------------------+
| Host: 10.0.7.1         |
|                        |
| +--------------------+ |
| | VM: 10.0.7.101     | |
| |                    | |
| | +----------------+ | |
| | | NS: 10.0.7.102 | | |
| | |                | | |
| | +----------------+ | |
| +--------------------+ |
+------------------------+

Những gì hoạt động:

  • Ping giữa HostVM
  • Ping giữa NSNS
  • thông thái từ NS

Những gì không hoạt động:

  • ping giữa NSVM
  • ping giữa NSHost

Nơi tôi bắt đầu đi hạt dẻ:

  • tcpdump trên host(máy thật) thực sự hiển thị yêu cầu ARP VÀ trả lời
  • tcpdump trên NSchương trình yêu cầu ARP được gửi đến máy chủ
  • tcpdump trên VMlàm cho toàn bộ mớ hỗn độn hoạt động (!) -> ping bắt đầu nhận được câu trả lời khi tcpdump được khởi động trên VM?!?

Vì vậy, tôi cá là bạn rất háo hức với nó, câu hỏi của tôi là: làm thế nào để tôi làm cho nó hoạt động? Tôi nghi ngờ có gì đó không ổn với ARP trên macvlan bên trong NS nhưng không thể biết chính xác ...

Btw, tôi đã thực hiện các giải pháp tương tự với mac0giao diện trực tiếp trên VM (không có không gian tên) và nó hoạt động hoàn hảo.


4
Tôi không hiểu tại sao câu hỏi này được gắn cờ là lạc đề. Đây chắc chắn là một câu hỏi sysadmin / netadmin, liên quan đến nhiều môi trường ảo hóa và nó không phải là một câu hỏi nhỏ (hoặc, nếu có, 90% câu hỏi trên StackOverflow cũng không có chủ đề). Tôi rất thích nếu những người gắn cờ nó là "lạc đề" bận tâm giải thích lý do, thay vì sao chép một quy tắc rõ ràng là không áp dụng ở đây. Cảm ơn bạn!
jpetazzo

@jpetazzo Đây không phải là chủ đề ngoài ý muốn và tôi chỉ có thể giả sử rằng những người đóng cửa đã làm như vậy dựa trên tổ chức / trình bày câu hỏi kém (có thể do OP không phải là quản trị viên hệ thống / mạng). Ngoài ra, phạm vi của Server Fault (không chỉ là chủ đề) khác với Stack Overflow - đối số của bạn khiến tôi nghĩ rằng bạn đã không truy cập trung tâm trợ giúp của chúng tôi vì nó vô nghĩa.
Chris S

Câu trả lời:


13

OK, vì vậy, đối với hậu thế, thực tế là tcpdump làm cho tất cả các tác phẩm bất ngờ nên đã đưa tôi đi đúng hướng. Những gì nó làm trong nội bộ là chuyển eth0sang chế độ lăng nhăng. Điều đó có nghĩa là, eth0sẽ mang lại tất cả lưu lượng truy cập mạng, không chỉ với lưu lượng truy cập chính của máy chủMAC

Tuy nhiên, đây chính xác là cách thức macvlanhoạt động: nó thêm một địa chỉ MAC ảo thứ cấp mới mà bộ điều hợp mạng "vật lý" (đó là VM) không biết.

Vì vậy, cách giải quyết dễ dàng là thủ công: ifconfig eth0 promisc

Tôi hy vọng nó sẽ giúp!


Vì vậy, bạn phải bỏ chọn "không có chế độ lăng nhăng" trên VM đó, tôi cho rằng?
Nils

Thật vậy, nó không được kiểm tra.
yadutaf
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.