jak zrobić hosta w sieci LAN, aby przekazywał ruch między innymi hostami w tej samej sieci LAN w systemie Linux

0

Ustawiam topologię testową w Mininet jako:

sudo mn --mac --topo linear,3  --switch ovsk --controller=remote,ip=10.0.2.15,port=6653

w ten sposób: chcę, aby ruch z H1 do H3 odwiedził H2, zanim zostanie przekierowany do H3. Ustawiłem reguły przepływu na moich przełącznikach (Open vSwitch), aby to zrobić. Jednak gdy ruch trafia do H2, tam spada.
prosta topologia

Jakie konfiguracje powinienem dodać do H2 (Ubuntu 14.04), aby umożliwić H2 przekazywanie ruchu, który nie jest do niego przeznaczony ani z niego nie pochodzi?

Archaj
źródło
Czego używasz do stworzenia sieci LAN? Mininet? Oddzielić maszyny wirtualne za pomocą przełącznika? Proszę powiedz. To pomaga.
ytpillai
Używam mininetu z kontrolerem SDN Floodlight w następujący sposób: sudo mn --mac --topo linear, 3 - przełącznik ovsk --controller = remote, ip = 10.0.2.15, port = 6653
Archaj
Używam kontrolera Mininet i Floodlight, oto moja topologia: sudo mn --mac --topo linear, 3 - przełącznik ovsk --controller = remote, ip = 10.0.2.15, port = 6653
Archaj

Odpowiedzi:

0

Myślę, że musisz włączyć funkcję przekazywania IP .

Można to uzyskać za pomocą sysctlnarzędzia:

sysctl -a | grep forwarding produkuje (na moim Macu):

net.inet.ip.forwarding: 0
net.inet6.ip6.forwarding: 0

Może wyglądać nieco inaczej na Ubuntu. 0Wartość oznacza IP Forwarding jest wyłączone.

Aby włączyć IP Forwarding (v4), jako root:

[nevin-mac-mini:~] root# sysctl net.inet.ip.forwarding=1
net.inet.ip.forwarding: 0 -> 1

Powinno to zadziałać natychmiast, jednak nie będzie się utrzymywać po ponownym uruchomieniu. Aby tak było, umieściłbym

net.inet.ip.forwarding=1w /etc/sysctl.conf.

Nevin Williams
źródło
Dziękuję Nevin za odpowiedź. Aktywowałem przekazywanie za pomocą tej komendy na Ubuntu 14.04: sysctl -w net.ipv4.ip_forward = 1 Jednak ruch nadal spada na hoście 2, użyłem Tcpdump, aby zobaczyć ruch przychodzący, ale tam nie ma ruchu wychodzącego z interfejsu hosta 2.
Archaj,
Czy wszystkie hosty są w tej samej sieci IP? Jeśli tak, H2 spodziewałby się, że H1 i H3 rozmawiają bezpośrednio ze sobą, a zatem nie będą uczestniczyć w routingu: Gdyby tak się stało, umieszczałby zduplikowane dane w sieci. Proszę dołączyć tabele routingu każdego hosta, z netstat -rnpodobnym poleceniem.
Nevin Williams,
Dziękuję Williams, w końcu mogłem to zrobić, przepisując docelowy adres Mac w przełączniku. problem polegał na tym, że host 2 upuszcza pakiety, które nie są do niego przeznaczone (inny adres docelowy Maca). w ten sposób, przepisując docelowy adres Mac na adres Mac hosta 2 na przełączniku 2 i aktywując przekazywanie IP na hoście 2, ruch jest skutecznie przekierowywany.
Archaj,
Być może włączenie trybu „Promiscuous” karty sieciowej może utrzymać pakiet na tyle długo, aby można go było
przesłać
Proxy-ARP może być również inną drogą.
Nevin Williams
0

Dziękuję za odpowiedzi, w końcu mogłem to zrobić, przepisując docelowy adres Mac pakietów w przełączniku. problem polegał na tym, że host 2 upuszcza pakiety, które nie są do niego przeznaczone (inny adres docelowy Maca). w ten sposób, przepisując docelowy adres Mac na adres Mac hosta 2 na przełączniku 2 i aktywując przekazywanie IP na hoście 2, ruch jest skutecznie przekierowywany. więc pierwszym krokiem jest powiadomienie S2, aby wysłało ruch do hosta 2 z docelowym komputerem Mac hosta 2., a krok 2, aby nakazał S2 przepisanie adresu Mac ruchu powracającego z hosta 2 na hosta 3 adres Mac (w celu przywrócenia oryginalny adres mac).

Archaj
źródło