Puncte:1

Vlan-uri multiple pe aceeași interfață în aceeași subrețea

drapel ng

Într-o aplicație pentru dispozitiv folosim următoarea configurare a rețelei VLAN:

În dispozitiv avem o rețea internă pentru dispozitivele interne și o rețea externă pentru rețeaua client/client. Toate dispozitivele sunt conectate printr-un comutator gestionat la un modul de calcul raspberry pi, unde rulează aplicația.

În configurare, folosim următoarele VLAN-uri

  • VLAN 1: rețea externă
  • VLAN 2: rețea internă

Modulul de calcul are pe interfața eth0 cele două interfețe vlan eth0.1 (extern) și eth0.2 (intern). Acest lucru se face ca un client să nu vadă dispozitivele interne ale rețelei. Switch-ul gestionat are configurate VLAN-uri bazate pe porturi.

configurarea rețelei

Pentru rețeaua internă, modulul de calcul folosește eth0.2 cu adresa IP statică 192.168.2.1 - dispozitive de rețea internă tot în aceeași subrețea 192.168.2.x.

Pentru rețeaua externă, modulul de calcul folosește eth0.1 cu adresa IP statică 192.168.1.100.

Configurația noastră pe modulul de calcul:

/etc/sysctl.conf

net.ipv4.ip_forward = 1

/etc/network/interfaces

# Interfață externă VLAN
auto eth0.1
iface eth0.1 inet manual
    vlan-raw-device eth0


# Interfață internă VLAN
auto eth0.2
iface eth0.2 inet manual
    vlan-raw-device eth0

/etc/dhcpcd.conf

interfata eth0
static ip_address=
routere statice=
static domain_name_servers=
static domain_search=

interfață eth0.1
static ip_address=192.168.1.100/24
routere statice=
static domain_name_servers=
static domain_search=

interfata eth0.2
static ip_address=192.168.2.1/24
routere statice=
static domain_name_servers=
static domain_search=

Pentru comunicarea către dispozitivul intern 192.168.2.100 direct de la pc-ul clientului prin ip-ul extern, am făcut următoarele reguli. Cu aceasta, clientul va ajunge la 192.168.2.100:80 intern prin adresa IP externă 192.168.1.100:8080 pe portul 8080.

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.2.100:80
sudo iptables -t nat -A POSTROUTING -j MASQUERADE

În general, această configurare funcționează, dar nu în toate cazurile: clientul poate schimba adresa IP externă a eth0.1. Clientul poate configura ip-ul eth0.1 la o altă adresă IP statică sau dhcp. În cazul adresei IP statice 192.168.2.x pe eth0.1, clientul va ajunge la 192.168.2.1 din eth0.2.

Cum este posibil ca un client să nu ajungă la ip-ul intern 192.168.2.1 dacă ip-ul extern al lui eth0.1 este în aceeași subrețea? Cum este posibil să se separe eth0.1 și eth0.2 dacă sunt în aceeași subrețea sau au ambele 192.168.2.1?

De exemplu: Dacă eth0.2 are aceeași adresă ip ca un dispozitiv din rețeaua internă, atunci o conexiune la modulul de calcul nu este posibilă cu acest conflict ip.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.