2013-07-07 42 views
8

Làm cách nào để đặt địa chỉ IP cho giao diện TUN trên OSX? Tôi không thể tìm ra cách để thiết lập một địa chỉ ip cho giao diện của tôi mà không chỉ định một IP đích. Tôi không muốn làm điều đó - Tôi muốn nhiều hơn hoặc ít hơn xây dựng một đường hầm đến một địa chỉ tùy ý tại một thời điểm sau đó. Các câu hỏi trước không hữu ích:Làm cách nào để đặt địa chỉ IP cho giao diện TUN trên OSX (không có địa chỉ đích)?

  1. Có câu trả lời không rõ ràng, vì vậy tôi đã thử làm theo tham chiếu.
  2. This question đặt địa chỉ ip điểm tới điểm cho thiết bị dò, vì vậy nó có đích, chính xác là điều tôi không muốn.

Trên trang cho osxtuntap nó nói:

ifconfig tap0 10.1.2.3 up 

Tôi không thể làm công việc này trên OSX 10,6 cho một giao diện TUN:

$ sudo ifconfig tun0 10.1.2.3 up 
ifconfig: ioctl (SIOCAIFADDR): Destination address required 

Thêm một mặt nạ mạng không Help- OSX dường như yêu cầu địa chỉ đích:

$ ifconfig tun0 10.0.0.1/24 netmask 255.255.255.0 
ifconfig: ioctl (SIOCAIFADDR): Destination address required 

Đối với Linux, tôi nhận được nó hoạt động như thế nào. Theo this page, bạn mở() giao diện, và sử dụng lệnh ip, và làm điều này, và tôi đã làm điều này trước với zero vấn đề:

$ ip link set tun0 up 
$ ip addr add 10.0.0.1/24 dev tun0 

Tất cả tôi muốn làm là điều tương tự mà tôi có thể làm trong linux.


EDIT:

Tôi đang viết một chút ứng dụng hầm UDP. Cũng giống như vậy:

tun1 -> udp ứng dụng # 1 -> udp hầm -> udp ứng dụng # 2 -> tun2

Nếu các ứng dụng udp là trên các máy tính khác nhau (giả sử địa phương và từ xa), tôi muốn thích kết hợp các thiết bị điều chỉnh tương ứng với địa chỉ ip, vì vậy tôi có thể gửi gói từ cục bộ đến xa thông qua đường hầm bằng cách gửi gói đến địa chỉ ip của thiết bị dò trên máy xóa.

Để vay nhiều hơn từ các hướng dẫn linux, tác giả thiết lập một thiết bị tun vào địa phương và từ xa, liên kết ip, và chạy một ứng dụng đường hầm đơn giản, và sau đó ping đầu kia của đường hầm:

[remote]# ip link set tun3 up 
[remote]# ip addr add 192.168.0.2/24 dev tun3 
[remote]$ ./simpletun -i tun3 -s 
# server blocks waiting for the client to connect 
[local]# ip link set tun11 up 
[local]# ip addr add 192.168.0.1/24 dev tun11 
[local]$ ./simpletun -i tun11 -c 10.2.3.4 
# nothing happens, but the peers are now connected 
[local]$ ping 192.168.0.2 
+0

Không ai có thể biết được người kia đã làm gì. Tương tự, tôi hoàn toàn không biết bạn đang làm gì. Bạn đang cố làm gì vậy? –

+0

Tôi đã cập nhật câu trả lời của mình với trường hợp sử dụng cụ thể mà tôi sẽ theo dõi và một ví dụ – nflacco

+0

tại sao vì lợi ích của thần là câu hỏi này được di chuyển ở đây thay vì superuser? – jm666

Trả lời

9

Theo mặc định, các thiết bị điều chỉnh hoạt động ở chế độ lớp 3, còn gọi là điểm tới điểm. Bạn đang yêu cầu chế độ lớp 2 gần giống với thiết bị Ethernet chung hơn. Linux gọi các thiết bị chạm này. Trong OpenBSD, bạn có thể chuyển thiết bị điều chỉnh sang chế độ lớp 2 bằng "ifconfig tun0 link0". Trình điều khiển tuntaposx của Macintosh bắt chước cấu trúc của thiết bị Linux; mở một thiết bị nhấn để thay thế.

Bạn có thể muốn xem lại https://community.openvpn.net/openvpn/wiki/BridgingAndRouting để xác định xem bạn có thực sự muốn chạm thiết bị hay không. Họ thêm một ít chi phí. Nếu bạn chỉ cần hai hộp để truyền các gói IP giữa nhau và không có cầu nối hoặc phát sóng đến một mạng con lớn hơn, điểm đến điểm phải là đủ. Ví dụ: nếu bạn có hai máy, một máy chúng tôi gắn nhãn "cục bộ" với địa chỉ IP LAN như 192.168.0.12 và một máy khác chúng tôi gắn nhãn "từ xa" với địa chỉ IP LAN như 192.168.1.14, bạn có thể gán địa chỉ IP tunnel thusly:

ifconfig tun0 inet 10.0.0.1 10.0.0.2 up 

trên hệ thống địa phương, và:

ifconfig tun0 inet 10.0.0.2 10.0.0.1 up 

trên hệ thống từ xa. Lưu ý phối cảnh đảo ngược trên máy từ xa. Không đặt điểm đến địa chỉ của bạn thành bất kỳ thứ gì trên mạng con hiện có; nó sẽ không định tuyến đúng cách.

Tôi không thể nhấn mạnh điều này: đọc và đọc lại các trang hướng dẫn sử dụng ("man ifconfig" và "man tun", có thể là các trang khác) cho đến khi chúng có ý nghĩa. Ví dụ ifconfig của tôi ở trên có thể hơi khác so với hệ điều hành của bạn.

Và đối với một viễn cảnh khác, bạn có thể xem xét các đường hầm GRE vì chức năng của chúng phản ánh những gì bạn mô tả cho chương trình của mình. Tuy nhiên, GRE có thể không tồn tại trong các mạng trung tâm TCP ngày nay và cũng không phải là một ý tưởng hay do các vấn đề an ninh lớn.

Nếu mục tiêu của bạn là phá vỡ tường lửa hách, hãy lưu ý rằng nhiều tường lửa như vậy chặn các gói UDP (và đặc biệt là GRE). Trong trường hợp này, hãy thử đường hầm giao diện SSH để thiết lập giao diện tun/tap và các gói chuyển tiếp. Bạn nhận được mã hóa và tùy chọn nén là tốt. :)

+0

Ah, điều đó có ý nghĩa. Tôi đã không nhận ra tun đã tap được xây dựng trong (http://www.monkey.org/openbsd/archive/tech/0406/msg00111.html) trên bsd. Trên linux tôi tin rằng điều tương tự đã xảy ra. – nflacco

+0

Đi theo các trang của người đàn ông từ FreeBSD 9.1 và NetBSD 6, bản vá đó chỉ áp dụng cho OpenBSD. OpenBSD là một trong những lẻ mà không tách vòi từ tun trong/dev. – dobbs

Các vấn đề liên quan