1 (edytowany przez jaros1024 2017-07-02 23:25:05)

Temat: Tworzenie dwóch niezależnych sieci - problemy z routowaniem

Chcę utworzyć sobie osobną sieć WAN+LAN na telewizję. Ma działać równolegle z internetem, tak jakbym miał 2 routery w jednym. Utworzyłem 2 nowe VLANy, skonfigurowałem sieć, dodałem reguły firewalla (mają przepuszczać cały ruch), dodałem też wpisy DHCP.
Moja konfiguracja:
/etc/config/network

https://pastebin.com/ep0cydgr

/etc/config/firewall

https://pastebin.com/HaStrQme

/etc/config/dhcp

https://pastebin.com/CQjJzPsM

/etc/config/wireless

https://pastebin.com/GmKDQTRb

Ta konfiguracja nie do końca działa tak jak powinna. Kiedy używam tylko internetu (kabel od telewizji jest odłączony), wszystko jest ok. Jeśli odepnę internet i korzystam tylko z tej drugiej sieci, również wszystko działa. Ale kiedy przypinam oba kable, wszystko przestaje działać.

Mój sprzęt to WR1043ND V1 z OpenWRT Chaos Calmer 15.05.1, r48532.
Co tutaj może być źle?

TP-Link TL-WR1043ND V1, OpenWRT Chaos Calmer 15.05.1

2 (edytowany przez jaros1024 2017-07-02 19:11:43)

Odp: Tworzenie dwóch niezależnych sieci - problemy z routowaniem

Podbijam, zmieniłem Gargoyle na oryginalne OpenWRT i wyklikałem sobie w Luci, ale teraz pojawiły się inne problemy. Wyedytowałem pierwszy post.

TP-Link TL-WR1043ND V1, OpenWRT Chaos Calmer 15.05.1

3 (edytowany przez mar_w 2017-07-02 21:01:23)

Odp: Tworzenie dwóch niezależnych sieci - problemy z routowaniem

1. pewnie to nie pomoże, ale jak już mamy być konsekwentni w działaniu, to dobrze jest wyłączyć serwer DHCP na porcie "wan_tv" w /etc/config/dhcp - option ignore '1' (tego nie ma) bo w /etc/config/network "wan_tv" ustawiłeś jako klienta DHCP.

2. ponieważ masz 2 WAN-y i dwie różne sieci to może dodaj do /etc/config/firewall  dla każdej sieci osobno "wan" i "wan_tv" opcję maskarady TYLKO z konkretnej sieci LAN dla konkretnego WAN-u. opcja: option masq_src 192.168....  oraz być może też: option masq_dest 192.168....
chodzi o to żeby pakiety z LAN leciały tylko przez WAN, a pakiety z LAN_TV leciały tylko przez WAN_TV. Bo ogólna maskarada w obu strefach być może nie działa tak jak byś tego chciał.

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

4 (edytowany przez jaros1024 2017-07-02 22:56:05)

Odp: Tworzenie dwóch niezależnych sieci - problemy z routowaniem

1. Rzeczywiście, nie pomogło.
2. Dodałem option masq_src '192.168.3.0/24' dla sieci "wan" oraz option masq_src '192.168.4.0/24' dla sieci "wan_tv". Nie bardzo wiem jak mogłyby wyglądać opcje masq_dest, jeśli adresy IP obu interfejsów wan są przydzielane przez DHCP z zewnątrz. Jeśli ustawiłem je tak samo, jak masq_src, to żadna z sieci nie działała.
Tak czy inaczej, idziemy w dobrym kierunku. Zauważyłem, że jak tylko intefejs "wan_tv" wstaje, tj dostaje IP, to router od razu wysyła cały ruch właśnie tam.

EDIT: Dorzuciłem do stref "lan" oraz "lan_tv" jeszcze option subnet odpowiednio '192.168.3.0/24' i '192.168.4.0/24'. Teraz wszystko jest kierowane na "wan", z tym że pingi wychodzące z sieci "lan_tv" nie wracają, zaś te z sieci "lan" wracają jak najbardziej. Brak mi słów na to routowanie w OpenWRT.

TP-Link TL-WR1043ND V1, OpenWRT Chaos Calmer 15.05.1

5

Odp: Tworzenie dwóch niezależnych sieci - problemy z routowaniem

Masz drugi "wirtualny router", tak? Użyj poradnika "Zaawansowany routing i kształtowanie ruchu..." i skieruj wszystko z drugiego lanu na drugi wan.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

6

Odp: Tworzenie dwóch niezależnych sieci - problemy z routowaniem

Dzięki, Cezary. Nie wiedziałem o istnieniu tych poradników.
Nie do końca wiem jak zaadaptować to do mojej sytuacji. Chodzi mi o to, że oba WANy dostają IP przez DHCP, z związku z tym nie mogę wprowadzić do tabel routowania adresów IP na sztywno. Da się tam jakoś routować na interfejs, a nie na IP?
I drugie pytanie - czy po wprowadzeniu tych zmian muszę coś zmieniać w /etc/config/firewall? Wywalać forwarding albo coś?

TP-Link TL-WR1043ND V1, OpenWRT Chaos Calmer 15.05.1

7

Odp: Tworzenie dwóch niezależnych sieci - problemy z routowaniem

1. mając dhcp to po prostu robisz się skrypt który po dostaniu adresu odczyta wszystko i odpowiednio ustawi.
2. zostawić firewall ustawiony ze wszystkim - drugi wan, masq, zezwolony forwarding wan2 <> lan2 itd.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

8 (edytowany przez mar_w 2017-07-03 17:55:19)

Odp: Tworzenie dwóch niezależnych sieci - problemy z routowaniem

jaros1024 napisał/a:

... Teraz wszystko jest kierowane na "wan", z tym że pingi wychodzące z sieci "lan_tv" nie wracają, zaś te z sieci "lan" wracają jak najbardziej. Brak mi słów na to routowanie w OpenWRT.

Przewaliłem podobny konfig (bardziej z ciekawości niż potrzeby) żeby sprawdzić chociażby te pingi. U mnie wszystkie pingi czy to z sieci LAN czy z sieci LANTV normalnie wracały. Jako klient Wifi LANTV pingowałem adres routera na porcie LANTV oraz adres routera na porcie WANTV. To samo jako klient Wifi dla sieci LAN-WAN.
Mniej więcej adresy wyglądają tak:

root@LEDE:~# ifconfig | grep br-lan -A 2
br-lan    Link encap:Ethernet  HWaddr ................  
          inet addr:192.168.11.1  Bcast:192.168.11.255  Mask:255.255.255.0
--
br-lantv  Link encap:Ethernet  HWaddr ................  
          inet addr:192.168.3.1  Bcast:192.168.3.255  Mask:255.255.255.0
         
########    OBA adresy WAN brane z DHCP z 2 różnych routerów    ################    

root@LEDE:~# ifconfig | grep eth0.2 -A 2
eth0.2    Link encap:Ethernet  HWaddr ...................  
          inet addr:10.0.0.102  Bcast:10.0.0.255  Mask:255.255.255.0
...
eth0.4    Link encap:Ethernet  HWaddr ..................  
          inet addr:192.168.1.180  Bcast:192.168.1.255  Mask:255.255.255.0
          

Z tym, że została nadpisana domyślna trasa przez serwer DHCP, który później zestawił pełne połączenie. Wniosek. Internet był tylko z tej drugiej sieci WIFI, co oczywiste, ale wszystko poza tym było z obu sieci :

root@LEDE:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0.4
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0.2
10.0.0.1        0.0.0.0         255.255.255.255 UH    0      0        0 eth0.2
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0.4
192.168.1.1     0.0.0.0         255.255.255.255 UH    0      0        0 eth0.4
192.168.3.0     0.0.0.0         255.255.255.0   U     0      0        0 br-lantv
192.168.11.0    0.0.0.0         255.255.255.0   U     0      0        0 br-lan

konfigi: https://pastebin.com/XG5dCdsM  pozostałe opcje "wan" i inne - zostały oryginalne openwrt.

A dopisując option metric 1 w sekcji network WANTV mam obie domyślne trasy i teraz tylko co będę chciał to pójdzie tą bramą którą będę chciał po odpowiedniej dalszej konfiguracji:

root@LEDE:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.1        0.0.0.0         UG    0      0        0 eth0.2
0.0.0.0         192.168.1.1     0.0.0.0         UG    1      0        0 eth0.4
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0.2
10.0.0.1        0.0.0.0         255.255.255.255 UH    0      0        0 eth0.2
192.168.1.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0.4
192.168.1.1     0.0.0.0         255.255.255.255 UH    1      0        0 eth0.4
192.168.3.0     0.0.0.0         255.255.255.0   U     0      0        0 br-lantv
192.168.11.0    0.0.0.0         255.255.255.0   U     0      0        0 br-lan
Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

9 (edytowany przez jaros1024 2017-07-03 19:45:37)

Odp: Tworzenie dwóch niezależnych sieci - problemy z routowaniem

mar_w napisał/a:

Z tym, że została nadpisana domyślna trasa przez serwer DHCP, który później zestawił pełne połączenie.

Zgadza się. I dlatego Cezary ma rację, że potrzebne są dwie tablice routowania, tak żeby to działało niezależnie od siebie. Metric 1 można ustawić, ale wtedy ten z niższą metryką będzie miał priorytet, a nie można ustawić dwóch takich samych metryk na dwóch urządzeniach.

echo "200 television" >> /etc/iproute2/rt_tables
ip route add default via 10.10.10.10 dev eth0.4 table television
ip rule add from 192.168.4.0/24 table television
ip rule add from 10.10.10.0/24 table television
ip rule add 10.10.10.10 via 10.10.10.1 table television

Cezary, takiego czegoś potrzebuję? (zakładając że dostałem na WAN od telewizji adres 10.10.10.10 przy masce 255.255.255.0 i bramie domyślnej 10.10.10.1, załatwię te zmienne parametry skryptem)
I jeszcze jedna sprawa, jest jakiś skrypt odpalany w momencie gdy wstaje interfejs? Bo dodawanie tego do rc.local nie będzie dobrym pomysłem, biorąc pod uwagę że w momencie bootowania routera, może nie być urządzenia dostarczającego telewizję.

TP-Link TL-WR1043ND V1, OpenWRT Chaos Calmer 15.05.1

10

Odp: Tworzenie dwóch niezależnych sieci - problemy z routowaniem

Na hotplugu oczywiście - tak uruchamiane są inne demony jak interfejsy wstają.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

11

Odp: Tworzenie dwóch niezależnych sieci - problemy z routowaniem

jaros1024 napisał/a:
mar_w napisał/a:

Z tym, że została nadpisana domyślna trasa przez serwer DHCP, który później zestawił pełne połączenie.

Zgadza się. I dlatego Cezary ma rację, że potrzebne są dwie tablice routowania,....

Zgadza się. Ja tylko sprawdziłem te pingi które Tobie z sieci lan_tv nie wracały. Niezrozumienie polegało na tym, że nie napisałeś skąd miałyby wracać: z Internetu czy z sieci wan_tv.

jaros1024 napisał/a:

...a nie można ustawić dwóch takich samych metryk na dwóch urządzeniach....

I tak i nie. Jeżeli w /etc/config/network na obu wanach nic nie napiszesz jeśli chodzi o metryki to drugi wan nadpisze domyślną trasę.
Ale gdy już wstaną wszystkie interfejsy to można "z palca" wpisać drugą trasę domyślną z metryką 0 i będą obie trasy.
Inny problem, że zawsze będzie brana pierwsza z listy, ale ustawić się da smile

root@LEDE:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.1        0.0.0.0         UG    0      0        0 eth0.2
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0.4
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0.2
10.0.0.1        0.0.0.0         255.255.255.255 UH    0      0        0 eth0.2
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0.4
192.168.1.1     0.0.0.0         255.255.255.255 UH    0      0        0 eth0.4
192.168.3.0     0.0.0.0         255.255.255.0   U     0      0        0 br-lantv
192.168.11.0    0.0.0.0         255.255.255.0   U     0      0        0 br-lan

###   domyślna trasa przez Hilinka z pierwszego routera  ###

root@LEDE:~# traceroute -I -m 2 www.google.pl
traceroute to [url=http://www.google.pl]www.google.pl[/url] (216.58.214.99), 2 hops max, 38 byte packets
 1  10.0.0.1 (10.0.0.1)  0.369 ms  0.294 ms  0.271 ms
 2  192.168.8.1 (192.168.8.1)  15.899 ms  17.902 ms  9.171 ms

###  trasa przez innego Hilinka z routera nr 2  ###

root@LEDE:~# traceroute -I -m 2 -i eth0.4 www.google.pl
traceroute to [url=http://www.google.pl]www.google.pl[/url] (216.58.214.99), 2 hops max, 38 byte packets
 1  192.168.1.1 (192.168.1.1)  0.433 ms  0.367 ms  0.341 ms
 2  192.168.10.1 (192.168.10.1)  1.403 ms  1.175 ms  1.155 ms
Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

12 (edytowany przez jaros1024 2017-07-05 13:20:26)

Odp: Tworzenie dwóch niezależnych sieci - problemy z routowaniem

Postawiłem dwie tablice routowania, wrzuciłem skrypty, wszystko działa. Problem jest przy transmisji TCP dekodera (przy połączeniu z internetem przez ten "wirtualny router", przez który docelowo ma iść telewizja nie ma problemów).
http://i.imgur.com/2fWOlcM.png
Nie wiem czemu dekoder nie zauważa tych przychodzących ACK i rozpoczyna retransmisję. Czym to może spowodowane?
Jest możliwość, że po prostu router nie wyrabia z przekazywaniem pakietów odpowiednio szybko? Mam też WR1043ND V2, który ma chyba nieco szybszy procesor, więc mogę je zamienić miejscami.

TP-Link TL-WR1043ND V1, OpenWRT Chaos Calmer 15.05.1