2013-07-07 16 views
8

Jak ustawić adres IP dla interfejsu TUN na OSX? Nie wiem, jak skonfigurować adres IP dla mojego interfejsu bez określania docelowego adresu IP. Nie chcę tego robić - chcę bardziej lub mniej zbudować tunel pod dowolnym adresem w późniejszym czasie. Wcześniejsze pytania, które są bezużyteczne:Jak ustawić adres IP dla interfejsu TUN na OSX (bez adresu docelowego)?

  1. Istnieje a question że ma niejasną odpowiedź, więc próbowałem następujące odniesienia.
  2. This question Ustawia punkt do punktu adres IP dla urządzenia tun, więc ma cel, który jest dokładnie to, czego nie chcę.

Na stronie osxtuntap mówi:

ifconfig tap0 10.1.2.3 up 

nie mogę tej pracy na OSX 10.6 dla interfejsu TUN:

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

Dodawanie maskę nie Pomoc- OSX Wydaje się wymagać adresu docelowego:

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

Dla Linuxa, rozumiem jak to działa. Według this page, otwierasz() interfejsu i użyć polecenia ip i to zrobić i zrobiłem to przed zero problemów:

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

Wszystko co chcę zrobić to samo, co ja może zrobić w systemie Linux.


EDIT:

Piszę trochę UDP aplikacji tunelu. Tak:

tun1 -> udp app # 1 -> udp tunel -> udp app # 2 -> tun2

Jeśli UDP aplikacje znajdują się na różnych komputerach (powiedzmy lokalne i zdalne), ja jak połączyć swoje urządzenia tuningowe z adresem IP, więc mogę wysłać pakiet z lokalnego do zdalnego przez tunel, wysyłając pakiet na adres ip urządzenia tun na urządzeniu usuwającym.

Aby pożyczyć więcej z samouczka linux, autor ustawia urządzenie tun na lokalnych i zdalnych, kojarzy IPS i biegnie prostą aplikację tunelowania, a następnie pingi drugi koniec tunelu:

[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

Nikt nigdy nie mógł zrozumieć, co robił ten facet. Podobnie, absolutnie nie mam pojęcia, co robisz. Co próbujesz zrobić? –

+0

Zaktualizowałem swoją odpowiedź, podając konkretny przypadek użycia i przykład: – nflacco

+0

dlaczego dla dobra Boga to pytanie zostało przeniesione tutaj zamiast administratora? – jm666

Odpowiedz

9

Domyślnie urządzenia tun działają w trybie warstwy 3, czyli punkt po punkcie. Pytasz o tryb warstwy 2, który bardziej przypomina ogólne urządzenie Ethernet. Linux wywołuje te urządzenia z kranu. W OpenBSD możesz przełączyć urządzenie tuningowe do trybu warstwy 2 za pomocą "ifconfig tun0 link0". Sterownik tuntaposx dla komputerów Macintosh naśladuje schizmę urządzeń Linuksa; zamiast tego otwórz urządzenie z zaczepem.

Możesz chcieć przejrzeć https://community.openvpn.net/openvpn/wiki/BridgingAndRouting, aby określić, czy naprawdę chcesz używać urządzeń dotykowych. Dodają trochę narzut. Jeśli potrzebujesz tylko dwóch skrzynek do przesyłania pakietów IP między siebie i bez mostkowania lub nadawania do większej podsieci, punkt do punktu powinien wystarczyć.

Na przykład, jeśli masz dwie maszyny, jedną oznaczamy "lokalnie" adresem IP LAN, takim jak 192.168.0.12, a drugą etykietujemy "zdalnie" adresem IP LAN, takim jak 192.168.1.14, można przypisać adresy IP tunelu thusly:

ifconfig tun0 inet 10.0.0.1 10.0.0.2 up 

w systemie lokalnym, oraz:

ifconfig tun0 inet 10.0.0.2 10.0.0.1 up 

w systemie zdalnym. Zwróć uwagę na odwróconą perspektywę na zdalnym komputerze. Nie ustawiaj punktu, aby wskazywał adresy na cokolwiek w istniejącej podsieci; nie będzie poprawnie prowadzić.

Nie mogę tego wystarczająco podkreślić: przeczytaj i przeczytaj ponownie strony podręcznika ("man ifconfig" i "man tun", prawdopodobnie inne), dopóki nie będą miały sensu. Moje powyższe przykłady ifconfig mogą się nieznacznie różnić od systemu operacyjnego.

A dla innej perspektywy możesz zajrzeć do tuneli GRE, ponieważ ich funkcjonalność jest zgodna z opisem Twojego programu. Jednak GRE prawdopodobnie nie jest opłacalny w dzisiejszych sieciach TCP-centrycznych ani nie jest dobrym pomysłem ze względu na poważne problemy z bezpieczeństwem.

Jeśli Twoim celem jest obejście apodyktycznego firewalla, pamiętaj, że wiele takich zapór blokuje pakiety UDP (a zwłaszcza GRE). W takim przypadku wypróbuj tunelowanie interfejsu SSH, aby skonfigurować interfejsy tun/step i pakiety forward. Otrzymasz również szyfrowanie i opcjonalnie kompresję. :)

+0

Ach, to ma sens. Nie zdawałem sobie sprawy, że tun ma wbudowaną funkcję pobierania (http://www.monkey.org/openbsd/archive/tech/0406/msg00111.html) na bsd. Na Linuksie wierzę, że to samo się stało. – nflacco

+0

Przechodząc po stronach man z FreeBSD 9.1 i NetBSD 6, ta łatka dotyczy tylko OpenBSD. OpenBSD to dziwne wyjście, które nie oddziela tuningu od/dev. – dobbs

Powiązane problemy