Technologieaustausch

47. DR von lvs

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. DR-Modus:

1.1, lvs drei Modi:

  1. NAT-Adressübersetzung

  2. DR-Direktroutenmodus

  3. Tun-Tunnel-Modus

1.2. Funktionen des DR-Modus:

  • Der Scheduler ist der wichtigste im gesamten LVS-Cluster. Im NAT-Modus empfängt die Last die Anfrage, leitet den Datenverkehr gemäß dem Lastausgleichsalgorithmus weiter und sendet die Antwort an den Client.

  • DR-Modus: Der Scheduler ist weiterhin dafür verantwortlich, Anfragen zu empfangen und sie gemäß dem Lastausgleichsalgorithmus an RS weiterzuleiten. Die Antwort wird von RS direkt an den Client gesendet.

  • Direktes Routing ist ein二层转发模式 .Was von der zweiten Schicht weitergeleitet wird, ist数据帧 .entsprechend源mac地址和目的mac地址nach vorne.

  • Die Quell-IP und Ziel-IP des Datenpakets werden nicht geändert und das Datenpaket wird basierend auf der MAC-Adresse weitergeleitet.

  • Im DR-Modus verwaltet LVS auch eine virtuelle IP-Adresse und alle Anforderungen werden an diese VIP gesendet. Da die Anforderung des Clients über die zweite Schicht weitergeleitet wird, wird ein RS gemäß dem Lastausgleichsalgorithmus ausgewählt Der VIP-Server wird zur MAC-Adresse von RS. Nachdem RS die Anfrage verarbeitet hat, kann er die Antwort entsprechend der Quell-Mac-Adresse des Clients in der Nachricht direkt senden, ohne den Scheduler zu durchlaufen.

Der Scheduler wird mit VIP konfiguriert, und die VIP-Adresse wird auch auf dem RS konfiguriert.

  • VIP-Adresskonflikte, Scheduler und RS befinden sich beide im selben Netzwerksegment und die ARP-Kommunikation ist gestört. Da das gesamte LAN sendet, empfangen alle Geräte es.

  • So blockieren Sie die Loopback-Antwort von lo, sodass nur die physische IP-Adresse des Servers antwortet.

Kernel-Parameter ändern:

  • arp_ignore=1------#Nur die physische IP-Adresse des Serversystems antwortet auf die Anfrage, lo antwortet nicht auf die ARP-Anfrage.

  • 2. Wenn die Nachricht zurückgegeben wird, ist die VIP-Adresse noch vorhanden. Wie kann der Client die Antwort erhalten?

  • arp_announce=2 – #Das System verwendet nicht die Quelladresse des IP-Pakets, um auf die Anfrage zu antworten, sondern sendet direkt die IP-Adresse der physischen Schnittstelle.

1、调度器的ip地址和RS的ip要在同一网段,数据先进行二层转发。

2、RS是一个公网地址,互联网可以直接访问RS的地址(不用)。

3、DR模式是走内核转发,内核来判断数据包的地址,根据RS的地址把数据包重新封装,修改mac地址。
4、调度器的地址只可以做为集群访问的入口,不能作为网关。

5、所有的RS上的lo(本地回环地址)都要配置vip地址。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

Fügen Sie hier eine Bildbeschreibung ein

Fügen Sie hier eine Bildbeschreibung ein

Implementierung des DR-Modus:

nignx1: RS1 192.168.168.10+vip

nginx2: RS2 192.168.168.20+vip

VIP: 192.168.168.100

test1: Scheduler vip

test2: Kunde

auf dem Planer

vim /etc/sysctl.conf

net.ipv4.ip_forward=0
#关闭数据包转发功能
net.ipv4.conf.all.send_redirects=0
#禁止系统发送icmp重定向的消息。回环地址不接受ping得消息。只针对真实得ip地址。
net.ipv4.conf.default.send_redirects=0
#禁止默认网络接口发送icmp重定向的消息。
net.ipv4.conf.ens33.send_redirects=0
#针对ens33设备,禁止发送icmp重定向消息。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • -A fügt VIP des virtuellen Servers hinzu

  • -D virtuelle Serveradresse löschen

  • -s gibt den Planungsalgorithmus für den Lastausgleich an

  • -a echten Server hinzufügen

  • -d echten Server löschen

  • -t gibt die VIP-Adresse und den Port an

  • -r gibt die Adresse und den Port des RIP an

  • -m verwendet den Nat-Modus

  • -g DR-Modus verwenden

  • -i Tunnelmodus verwenden

  • -w legt das Gewicht fest

  • -p 60: Die Verbindung wird für 60 aufrechterhalten, um die Aufbewahrungszeit festzulegen

  • -l: Listenansicht

  • -n: Digitalanzeige

  • -m gibt den Modus als NAT-Modus an

Stellen Sie die IP-Adresse auf 192.168.168.100 ein und fügen Sie sie als VIP von lvs zur Loopback-Schnittstelle hinzu. Per Routing-Modus an RS weitergeleitet

Dadurch kann VIP den tatsächlichen Server von RS identifizieren.

route add -host 192.168.233.100 dev lo:0

vim /etc/sysctl.conf

net.ipv4.conf.lo.arp_ignore = 1
#设置回环接口忽略来自任何接口的ARP请求net.ipv4.conf.lo.arp_announce =2
设置回环地址仅仅公告本地的ip地址,但是不响应ARP请求net.ipv4.conf.all.arp_ignore = 1
#设置所有接口忽略来自任何接口的ARP请求net.ipv4.conf.all.arp_announce =2
#设置所有接口仅仅公告本地的ip地址,但是不响应ARP请求。
  • 1
  • 2
  • 3
  • 4
  • 5

3. Im Linux-System,net.ipv4.conf.all.arp_ignore Ist ein Kernel-Parameter, der steuert, wie eine Netzwerkschnittstelle eingehende ARP-Anfragen (Address Resolution Protocol) verarbeitet. Dieser Parameter wird speziell in Servern und Netzwerkgeräten konfiguriert, um Sicherheitsrisiken durch ARP-Spoofing oder andere Netzwerkangriffe zu reduzieren.

Beim Einstellen net.ipv4.conf.all.arp_ignore = 1 Dies bedeutet, dass das System nur ARP-Anfragen beantwortet, deren Ziel-IP-Adresse eine Adresse auf der lokalen Empfangsschnittstelle ist. Mit anderen Worten: Wenn die Ziel-IP-Adresse einer ARP-Anfrage nicht mit der IP-Adresse der Schnittstelle übereinstimmt, die die Anfrage empfängt, ignoriert das System die ARP-Anfrage. Diese Einstellung ist besonders nützlich, um die Widerstandsfähigkeit des Systems gegen ARP-Spoofing-Angriffe zu erhöhen.

Speziell,arp_ignore Parameter können mehrere Werte haben, die jeweils ein anderes Verhalten darstellen:

  • 0(Standard): Reagieren Sie auf jede ARP-Anfrage auf einer beliebigen Netzwerkschnittstelle, solange die angeforderte Ziel-IP-Adresse mit einer IP-Adresse auf diesem Computer übereinstimmt.
  • 1 : Reagieren Sie nur auf ARP-Anfragen, deren Ziel-IP-Adresse die IP-Adresse der empfangenden Schnittstelle ist. Dadurch wird verhindert, dass die Schnittstelle als Proxy für andere Maschinen verwendet wird.
  • 2: Nur wenn die Ziel-IP-Adresse der ARP-Anfrage die IP-Adresse der empfangenden Schnittstelle ist und diese Schnittstelle primär ist (d. h. wenn die Schnittstelle mit mehreren IP-Adressen konfiguriert ist, werden nur ARP-Anfragen beantwortet, die mit der primären IP-Adresse übereinstimmen ).

4. Im Linux-System,net.ipv4.conf.all.arp_announce Ist ein Kernel-Parameter, der die IP-Adressauswahlrichtlinie steuert, die von einer Netzwerkschnittstelle beim Senden von ARP-Anfragen oder -Antworten (Address Resolution Protocol) verwendet wird. Dieser Parameter ist besonders nützlich, um ARP-Spoofing und Netzwerkadressenkonflikte zu verhindern, da er es dem System ermöglicht, die für den ARP-Verkehr verwendete Quell-IP-Adresse sorgfältiger auszuwählen.

Beim Einstellen net.ipv4.conf.all.arp_announce = 2 Das bedeutet, dass das System beim Senden einer ARP-Anfrage oder -Antwort nur die primäre IP-Adresse der Schnittstelle im selben Subnetz wie die Ziel-IP-Adresse der Anfrage (sofern verfügbar) verwendet. Wenn keine solche Schnittstelle vorhanden ist, wird keine ARP-Anfrage oder Antwort gesendet. Diese Einstellung kann dazu beitragen, durch ARP-Spoofing verursachte Netzwerkprobleme zu reduzieren, da sie die Schnittstellen und IP-Adressen begrenzt, die ARP-Verkehr senden können.

arp_announce Parameter können die folgenden Werte haben:

  • 0 (Standard): Wählen Sie eine beliebige IP-Adresse auf einer beliebigen Schnittstelle für die ARP-Anfrage oder -Antwort aus. Dies kann zu Sicherheitsproblemen führen, da ein Angreifer das System möglicherweise dazu verleiten kann, eine IP-Adresse zu verwenden, die nicht für die ARP-Kommunikation verwendet werden sollte.
  • 1 : Versuchen Sie zu vermeiden, die IP-Adresse der nicht anfordernden Schnittstelle als Quell-IP-Adresse der ARP-Anfrage zu verwenden. Wenn jedoch keine andere Möglichkeit besteht, kann weiterhin die IP-Adresse der nicht anfordernden Schnittstelle verwendet werden.
  • 2 : Verwenden Sie nur die primäre IP-Adresse der Schnittstelle im selben Subnetz wie die angeforderte Ziel-IP-Adresse (sofern verfügbar). Dies ist die restriktivste Einstellung und hilft, ARP-Spoofing zu verhindern.

Drei Arbeitsmodi von lvs:

NATDRTUN
VorteilEinfache Konfiguration, Adressübersetzungbeste LeistungWAN kann die Weiterleitung von Datenpaketen über größere Entfernungen realisieren
MangelLeistungsengpassNetzwerkübergreifende Segmente werden nicht unterstütztDedizierter Kanal, Sie müssen ein VPN öffnen (kostet Geld)
RS-AnforderungenUnbegrenztARP-Antworten für nicht-physische Schnittstellen müssen stillgelegt werdenZur Unterstützung des Tunnelmodus
RS-Menge10-20100 Einheiten100 Einheiten

Ändern Sie den VIP-Abfragealgorithmus:

ipvsadm -E -t 192.168.233.100:80 -s wrr

ipvsadm -e -t 192.168.233.100:80 -r 192.168.233.61:80 -w 3

2. Fragen im Vorstellungsgespräch

Beschreiben Sie kurz die drei Arten von LVS und ihre Unterschiede:

Der Arbeitsmodus und der Arbeitsprozess von LVS:

LVS verfügt über drei Lastausgleichsmodi, nämlich VS/NAT (Nat-Modus), VS/DR (Routing-Modus) und VS/TUN (Tunnelmodus).

1. NAT-Modus (VS-NAT)

Prinzip: Wenn der Load Balancer zunächst das Anforderungspaket des Kunden empfängt, bestimmt er anhand des Planungsalgorithmus, an welchen realen Backend-Server (RS) die Anforderung gesendet werden soll.
Der Load Balancer ändert dann die Ziel-IP-Adresse und den Ziel-Port des vom Client gesendeten Anforderungspakets in die IP-Adresse (RIP) des realen Back-End-Servers.
Nachdem der reale Server auf die Anfrage geantwortet hat, überprüft er die Standardroute und sendet das Antwortdatenpaket an den Load Balancer
Ändern Sie die Quelladresse des Pakets in eine virtuelle Adresse (VIP) und senden Sie es an den Client zurück.

Vorteile: Server im Cluster können jedes Betriebssystem verwenden, das TCP/IP unterstützt, sofern der Load Balancer über eine legale IP-Adresse verfügt.

Nachteile: Begrenzte Skalierbarkeit, wenn Serverknoten zu stark wachsen, da alle Anfragen und Antworten den Load Balancer durchlaufen müssen.
Daher wird der Load Balancer zum Flaschenhals des gesamten Systems.

2. Direkter Routing-Modus (VS-DR)

Prinzip: Wenn der Load Balancer zunächst das Anforderungspaket des Kunden empfängt, bestimmt er anhand des Planungsalgorithmus, an welchen realen Backend-Server (RS) die Anforderung gesendet werden soll.
Der Load Balancer ändert dann die Ziel-MAC-Adresse des vom Client gesendeten Anforderungspakets in die MAC-Adresse des realen Backend-Servers (R-MAC).
Nachdem der reale Server auf die Anfrage geantwortet hat, überprüft er die Standardroute und sendet das Antwortpaket direkt an den Client, ohne den Load Balancer zu durchlaufen.

Vorteile: Der Load Balancer ist nur für die Verteilung von Anforderungspaketen an Back-End-Knotenserver verantwortlich, während RS Antwortpakete direkt an Benutzer sendet.
Dadurch wird der große Datenfluss durch den Load Balancer reduziert. Der Load Balancer stellt nicht länger den Engpass des Systems dar und kann eine große Menge an Anfragen verarbeiten.

Nachteile: Sowohl der Load Balancer als auch der reale Server RS ​​müssen über eine Netzwerkkarte verfügen, die mit demselben physischen Netzwerksegment verbunden ist, und sie müssen sich in derselben LAN-Umgebung befinden.

3. IP-Tunnelmodus (VS-TUN)

Prinzip: Wenn der Load Balancer zunächst das Anforderungspaket des Kunden empfängt, bestimmt er anhand des Planungsalgorithmus, an welchen realen Backend-Server (RS) die Anforderung gesendet werden soll.
Anschließend kapselt der Load Balancer die vom Client gesendete Anforderungsnachricht mit einer IP-Tunnelschicht (T-IP) und leitet sie an den realen Server (RS) weiter.
Nachdem der reale Server auf die Anfrage geantwortet hat, überprüft er die Standardroute und sendet das Antwortpaket direkt an den Client, ohne den Load Balancer zu durchlaufen.

Vorteile: Der Load Balancer ist nur für die Verteilung von Anforderungspaketen an Back-End-Knotenserver verantwortlich, während RS Antwortpakete direkt an Benutzer sendet.
Dadurch wird der große Datenfluss durch den Load Balancer reduziert. Der Load Balancer stellt nicht länger den Engpass des Systems dar und kann eine große Menge an Anfragen verarbeiten.

Nachteile: RS-Knoten im Tunnelmodus erfordern eine legale IP, und diese Methode erfordert, dass alle Server „IP-Tunneling“ unterstützen.

Die Hochverfügbarkeitsarchitektur im LVS-Cluster dient nur der Hochverfügbarkeit des Schedulers.

Basierend auf vrrp werden die Haupt- und Backup-Scheduler implementiert.

Hochverfügbare HA-Architektur.

Hauptplaner, Backup-Planer (mehrere Einheiten)

Wenn der Hauptplaner normal arbeitet, befindet sich das Backup vollständig in einem redundanten Zustand (Standby). Es beteiligt sich nicht am Betrieb des Clusters. Nur wenn der Hauptplaner ausfällt, übernimmt der Standby die Arbeit des Hauptplaners. Wenn der primäre Scheduler seine Funktionalität wieder aufnimmt, fungiert der primäre Scheduler weiterhin als Eingang zum Cluster und der Backup-Scheduler befindet sich weiterhin in einem redundanten Zustand (abhängig von der Priorität).

Keepaliva implementiert eine Hochverfügbarkeitslösung basierend auf dem VRRP-Protokoll.

1. Multicast-Adresse:

224.0.0.18 kommuniziert basierend auf der Multicast-Adresse und sendet Nachrichten zwischen den primären und sekundären Geräten. Stellen Sie fest, ob die andere Partei am Leben ist.

2. Bestimmen Sie die primären und sekundären Standorte basierend auf der Priorität.

3. Failover: Wenn die primäre Maschine hängt, arbeitet die Backup-Maschine weiter. Wenn die Master-Maschine wiederhergestellt wird, wartet die Backup-Maschine weiter.

4. Das Umschalten zwischen primär und sekundär ist das Umschalten der VIP-Adresse.

Keepalive erscheint speziell für LVS, ist jedoch nicht exklusiv für LVS.

Fügen Sie hier eine Bildbeschreibung ein

Fügen Sie hier eine Bildbeschreibung ein

3. Der Unterschied zwischen lvs und nginx beim Lastausgleich:

LVS ist ein Vier-Schicht-Weiterleitungs-Kernel-Status-IP + Port-Schicht-Vier-Proxy

Der vierschichtige Nginx-Proxy kann auch ein siebenschichtiger Proxy sein

lvs (DR-Modus)+nginx+tomcat

LVS implementiert Layer-4-Weiterleitung + Nginx implementiert Layer-7-Weiterleitung (dynamisch)

Durch den Zugriff auf die VIP-Adresse von LVS kann die Trennung von dynamisch und statisch realisiert werden.

Fügen Sie hier eine Bildbeschreibung ein

4. Experimenteller Betrieb 1. Implementierung des DR-Modus:

Fügen Sie hier eine Bildbeschreibung ein

Implementierung des DR-Modus:

nignx1: RS1 192.168.168.10

nginx2: RS2 192.168.168.20

VIP: 192.168.168.100

test1:Scheduler 192.168.168.50

test2: Client 192.168.168.60

test1:planer

modprobe ip_vs startet den Kernel
yum -y install ipvsadm* installiere das LVS-Management-Tool

[root@test5 ~]# cd /etc/sysconfig/network-scripts/
[root@test5 Netzwerkskripte]# vim ifcfg-ens33:0

DEVICE=ens33:0 ##Virtuelle Netzwerkkarte hinzufügen
ONBOOT=ja
IPADDR=192.168.168.100
NETMASK=255.255.255.0

ifup ens33:0
ifconfig

Fügen Sie hier eine Bildbeschreibung ein

vim /etc/sysctl.conf

net.ipv4.ip_forward=0

#关闭数据包转发功能

net.ipv4.conf.all.send_redirects=0

#禁止系统发送icmp重定向的消息。###lo回环接口不接收icmp消息。只针对真实的ip地址。

net.ipv4.conf.default.send_redirects=0

#禁止网络接口发送icmp重定向的消息。

net.ipv4.conf.ens33.send_redirects=0

#针对ens33设备,禁止发送icmp重定向消息。

sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

Der Scheduler ermöglicht die Weiterleitung

ipvsadm -A -t 192.168.168.100:80 -s rr
[root@test5 opt]# ipvsadm -a -t 192.168.168.100:80 -r 192.168.168.10:80 -g
[root@test5 opt]# ipvsadm -a -t 192.168.168.100:80 -r 192.168.168.20:80 -g
[root@test5 opt]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@test5 opt]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.168.100:80 rr
  -> 192.168.168.10:80            Route   1      0          0         
  -> 192.168.168.20:80            Route   1      0          0  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

Richten Sie eine virtuelle Loopback-Schnittstelle ein

服务器1:

vim /usr/local/nginx/html/index.html 

this is nginx1

systemctl restart nginx

服务器2:

vim /usr/local/nginx/html/index.html 

this is nginx2

systemctl restart nginx

同时开启:

DEVICE=lo:0
IPADDR=192.168.168.100
NETMASK=255.255.255.255

ONBOOT=yes
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

cd /etc/sysconfig/netzwerkskripte/

vim /etc/sysctl.conf

Route hinzufügen -Host 192.168.168.100 dev lo:0

Legen Sie die IP-Adresse auf 192.168.168.100 fest, um nur als VIP von LVS zur Loopback-Schnittstelle hinzugefügt zu werden. Durch die Weiterleitung an RS über den Routing-Modus kann VIP den tatsächlichen Server identifizieren.

vim /etc/sysctl.conf

net.ipv4.conf.lo.arp_ignore = 1

#Stellen Sie die Loopback-Schnittstelle so ein, dass ARP-Anfragen von jeder Schnittstelle ignoriert werden
net.ipv4.conf.lo.arp_announce = 2
#Stellen Sie die Loopback-Adresse so ein, dass sie nur die lokale IP-Adresse ankündigt, aber nicht auf ARP-Anfragen antwortet
net.ipv4.conf.all.arp_ignore = 1
##Alle Schnittstellen so einstellen, dass ARP-Anfragen von allen Schnittstellen ignoriert werden
net.ipv4.conf.all.arp_announce = 2
##Stellen Sie alle Schnittstellen so ein, dass sie nur lokale IP-Adressen bekannt geben, aber nicht auf ARP-Anfragen reagieren.

sysctl -p

Locke 192.168.168.100

Fügen Sie hier eine Bildbeschreibung ein

5. DR-Modus + Nginx + Tomcat:

Fügen Sie hier eine Bildbeschreibung ein

Fügen Sie hier eine Bildbeschreibung ein

Implementierung des DR-Modus:

nignx1: RS1 192.168.168.10

nginx2: RS2 192.168.168.20

VIP: 192.168.168.100

test1:Scheduler 192.168.168.50

test2: Client 192.168.168.60

test1:planer

modprobe ip_vs startet den Kernel
yum -y install ipvsadm* installiere das LVS-Management-Tool

[root@test5 ~]# cd /etc/sysconfig/network-scripts/
[root@test5 Netzwerkskripte]# vim ifcfg-ens33:0

DEVICE=ens33:0 ##Virtuelle Netzwerkkarte hinzufügen
ONBOOT=ja
IPADDR=192.168.168.100
NETMASK=255.255.255.0

ifup ens33:0
ifconfig

Fügen Sie hier eine Bildbeschreibung ein

vim /etc/sysctl.conf

net.ipv4.ip_forward=0

#关闭数据包转发功能

net.ipv4.conf.all.send_redirects=0

#禁止系统发送icmp重定向的消息。###lo回环接口不接收icmp消息。只针对真实的ip地址。

net.ipv4.conf.default.send_redirects=0

#禁止网络接口发送icmp重定向的消息。

net.ipv4.conf.ens33.send_redirects=0

#针对ens33设备,禁止发送icmp重定向消息。

sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

Der Scheduler ermöglicht die Weiterleitung

ipvsadm -A -t 192.168.168.100:80 -s rr
[root@test5 opt]# ipvsadm -a -t 192.168.168.100:80 -r 192.168.168.10:80 -g
[root@test5 opt]# ipvsadm -a -t 192.168.168.100:80 -r 192.168.168.20:80 -g
[root@test5 opt]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@test5 opt]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.168.100:80 rr
  -> 192.168.168.10:80            Route   1      0          0         
  -> 192.168.168.20:80            Route   1      0          0  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

Richten Sie eine virtuelle Loopback-Schnittstelle ein

服务器1:

vim /usr/local/nginx/html/index.html 

this is nginx1

systemctl restart nginx

服务器2:

vim /usr/local/nginx/html/index.html 

this is nginx2

systemctl restart nginx

同时开启:

DEVICE=lo:0
IPADDR=192.168.168.100
NETMASK=255.255.255.255

ONBOOT=yes
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

cd /etc/sysconfig/netzwerkskripte/

vim /etc/sysctl.conf

Route hinzufügen -Host 192.168.168.100 dev lo:0

Legen Sie die IP-Adresse auf 192.168.168.100 fest, um nur als VIP von LVS zur Loopback-Schnittstelle hinzugefügt zu werden. Durch die Weiterleitung an RS über den Routing-Modus kann VIP den tatsächlichen Server identifizieren.

vim /etc/sysctl.conf

net.ipv4.conf.lo.arp_ignore = 1

#Stellen Sie die Loopback-Schnittstelle so ein, dass ARP-Anfragen von jeder Schnittstelle ignoriert werden
net.ipv4.conf.lo.arp_announce = 2
#Stellen Sie die Loopback-Adresse so ein, dass sie nur die lokale IP-Adresse ankündigt, aber nicht auf ARP-Anfragen antwortet
net.ipv4.conf.all.arp_ignore = 1
##Alle Schnittstellen so einstellen, dass ARP-Anfragen von allen Schnittstellen ignoriert werden
net.ipv4.conf.all.arp_announce = 2
##Stellen Sie alle Schnittstellen so ein, dass sie nur lokale IP-Adressen bekannt geben, aber nicht auf ARP-Anfragen reagieren.

sysctl -p

Locke 192.168.168.100

Fügen Sie hier eine Bildbeschreibung ein

Nginx1 und Nginx2 konfigurieren den Layer-7-Proxy zum Senden an Tomcat

vim /usr/local/nginx/conf/nginx.conf

#keepalive_timeout  0;
keepalive_timeout  65;
upstream tomcat {
    server 192.168.168.40:8080 weight=2;
    server 192.168.168.90:8080 weight=1;
            }
#gzip  on;

server {
    listen       80;
    server_name  localhost;
#charset koi8-r;

#access_log  logs/host.access.log  main;
location ~ .*.jsp$ {
proxy_pass http://tomcat;
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

tomcat1:

vim /usr/local/tomcat/conf/server.xml

 <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
    <Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" />
  • 1
  • 2

mkdir -p /usr/local/tomcat/webapps/test

cd /usr/local/tomcat/webapps/test

vim index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>

<head>
<title>JSP test1 page</title>
</head>

<body>
<% out.println("动态页面 1,http://www.test1.com");%>
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

cd /usr/local/tomcat/bin/

./shutdown.sh

./startup.sh

netstat -antp | grep 8080

tomcat2:

vim /usr/local/tomcat/conf/server.xml

 <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
    <Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" />
  • 1
  • 2

mkdir -p /usr/local/tomcat/webapps/test

cd /usr/local/tomcat/webapps/test

vim index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>

<head>
<title>JSP test2 page</title>
</head>

<body>
<% out.println("动态页面 2,http://www.test2.com");%>
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

cd /usr/local/tomcat/bin/

./shutdown.sh

./startup.sh

netstat -antp | grep 8080

Fügen Sie hier eine Bildbeschreibung ein

1. Gründe für die Konfiguration einer virtuellen IP (VIP):

Die Layer-2-Weiterleitung ändert nur den Mac-Header.

Durch die Weiterleitung der Datenverbindungsschicht wird nicht der IP-Header, sondern nur der Mac-Header geändert und das Datenpaket an den Back-End-RS-Server weitergeleitet. Da die Ziel-IP des von RS empfangenen Datenpakets immer noch VIP ist, wird sichergestellt, dass RS Kann dieses Paket korrekt verarbeiten und anstatt es zu verwerfen, muss VIP auf der Loopback-Netzwerkkarte des RS konfiguriert werden (lo). Auf diese Weise geht RS davon aus, dass dieser VIP seine eigene IP ist und kann diese Anfrage bearbeiten. -----Es entspricht Ihrer eigenen Adressanforderung und wird dann über ARP-Broadcast an alle Hosts gesendet. Erreichen Sie den Client über einen abgeschirmten virtuellen Host.

  1. Kehren Sie direkt zum Kunden zurück : Wenn der Client im DR-Modus Anforderungen an den VIP sendet, werden diese Anforderungen über den LVS-Scheduler (Director Server) an den Back-End-RS-Server weitergeleitet. Nachdem der RS-Server die Anfrage verarbeitet hat, muss er die Antwort direkt an den Client zurücksenden, anstatt sie an den LVS-Scheduler zurückzugeben. Um dies zu erreichen, muss der RS-Server mit derselben VIP-Adresse wie der LVS-Scheduler konfiguriert werden, um sicherzustellen, dass der Client den RS-Server erkennen und Antworten von ihm empfangen kann.Der Client greift auf die IP des Schedulers zu und leitet sie daher mit der virtuellen URL des Schedulers zurück, um sicherzustellen, dass der Client ihn identifizieren kann.
  2. Umschreiben der MAC-Adresse : Im DR-Modus leitet der LVS-Scheduler die Anfrage an den RS-Server weiter, indem er die Ziel-MAC-Adresse der Anfragenachricht neu schreibt. Wenn der RS-Server die Anfrage empfängt und verarbeitet, sendet der RS-Server die Antwort direkt an den Client, ohne den LVS-Planer zu durchlaufen, da die Ziel-IP der Anfrage eine VIP ist. Wenn der RS-Server zu diesem Zeitpunkt nicht mit einem VIP konfiguriert ist, kann es sein, dass der Client den Empfang der Antwort verweigert, da er die Quelle der Antwort nicht identifizieren kann.

2. Der Grund, warum die virtuelle VIP-IP auf der lo-Schnittstelle konfiguriert ist

Verhindern Sie ARP-Tabellenstörungen : Wenn VIP auf der Ausgangsnetzwerkkarte von RS festgelegt ist, antwortet RS auf die ARP-Anfrage des Clients, was zu Verwirrung in der ARP-Tabelle des Clients oder Gateways führen und dadurch den normalen Betrieb des gesamten Lastausgleichssystems beeinträchtigen kann.Durch die Konfiguration von VIP auf der lo-Schnittstelle können Sie verhindern, dass RS auf ARP-Anfragen reagiert, und so die Stabilität der Netzwerkumgebung aufrechterhalten.

Die Konfiguration von lo (lokale Loopback-Adresse) als VIP-Adresse (Virtual IP) auf dem RS-Server (Real Server) basiert hauptsächlich auf den spezifischen Anforderungen und Implementierungsmechanismen der Lastausgleichstechnologie (z. B. LVS-DR-Modus). Im Folgenden finden Sie eine detaillierte Rollenanalyse:

1. Stellen Sie sicher, dass RS IP-Pakete mit der Zieladresse VIP verarbeiten kann

  • Anfragen entgegennehmen und bearbeiten : In Lastausgleichsmodi wie LVS-DR wird die Ziel-IP des Clients auf VIP gesetzt, nachdem das Anforderungspaket des Clients den Lastausgleichsdienst erreicht hat. Der Lastausgleichsdienst ändert jedoch nicht die IP und den Port des Anforderungspakets, sondern nur die MAC-Adresse. MAC-Adresse des End-RS und Weiterleitung des Datenpakets an den RS. Da die Ziel-IP des von RS empfangenen Pakets immer noch VIP ist, muss VIP auf der Loopback-Netzwerkkarte (lo) von RS konfiguriert werden, um sicherzustellen, dass RS das Paket korrekt verarbeiten kann, anstatt es zu verwerfen. Auf diese Weise geht RS davon aus, dass dieser VIP seine eigene IP ist und kann diese Anfrage bearbeiten.

2. Vermeiden Sie Verwirrung bei ARP-Anfragen und -Antworten

  • Verhindern Sie ARP-Tabellenstörungen : Wenn VIP auf der Ausgangsnetzwerkkarte von RS festgelegt ist, antwortet RS auf die ARP-Anfrage des Clients, was zu Verwirrung in der ARP-Tabelle des Clients oder Gateways führen und dadurch den normalen Betrieb des gesamten Lastausgleichssystems beeinträchtigen kann. Durch die Konfiguration von VIP auf der lo-Schnittstelle können Sie verhindern, dass RS auf ARP-Anfragen reagiert, und so die Stabilität der Netzwerkumgebung aufrechterhalten.

3. Verbessern Sie die Systemsicherheit und -stabilität

  • Verbessern Sie die Robustheit von TCP-Verbindungen : Bei der Konfiguration dynamischer Routing-Protokolle (wie OSPF, BGP) wird normalerweise die IP-Adresse der Loopback-Schnittstelle als Router-ID verwendet. Dies liegt daran, dass die Loopback-Schnittstelle als eine Schnittstelle betrachtet wird, die niemals ausfällt, wodurch die Stabilität verbessert wird und Stabilität der TCP-Verbindung. Obwohl sich dieser Effekt nicht direkt in dem Szenario widerspiegelt, in dem die VIP direkt als Lo-Adresse auf dem RS-Server konfiguriert ist, spiegelt er den universellen Wert der Loopback-Schnittstelle bei der Verbesserung der Systemstabilität und -sicherheit wider.

4. Vereinfachen Sie Konfiguration und Verwaltung

  • Einheitliche Konfiguration und Verwaltung : Die Konfiguration der lo-Schnittstelle als VIP-Adresse auf dem RS-Server kann die Konfiguration aller RS ​​konsistent machen und eine einheitliche Verwaltung und Wartung erleichtern. Da die Loopback-Schnittstelle virtuell ist und nicht die Ressourcen der physischen Netzwerkschnittstelle belegt, hat sie gleichzeitig keinen Einfluss auf die physische Netzwerkkonfiguration des Servers.

5. Vorsichtsmaßnahmen

  • Stellen Sie sicher, dass das Netzwerk zwischen RS und Client erreichbar ist : Nachdem RS die Anfrage verarbeitet hat, muss die Antwort direkt an den Client zurückgegeben werden, sodass das Netzwerk zwischen RS und dem Client erreichbar sein muss. Dies wird normalerweise dadurch erreicht, dass sichergestellt wird, dass das Standard-Gateway oder Routing des RS richtig eingestellt ist.
  • Konfigurieren Sie die entsprechenden Kernel-Parameter: Um sicherzustellen, dass RS IP-Pakete, deren Zieladresse VIP ist, korrekt verarbeiten kann, müssen Sie möglicherweise einige Kernel-Parameter (z. B. arp_ignore und arp_announce) konfigurieren, um das Antwortverhalten von RS auf ARP-Anfragen zu steuern.

Zusammenfassend lässt sich sagen, dass die Hauptfunktion der Konfiguration von lo als VIP-Adresse auf dem RS-Server darin besteht, sicherzustellen, dass der RS ​​IP-Pakete mit der Zieladresse VIP empfangen und verarbeiten kann, während gleichzeitig Verwirrung bei ARP-Anfragen und -Antworten vermieden und die Sicherheit und Sicherheit verbessert werden Stabilität des Systems. Darüber hinaus trägt diese Konfiguration dazu bei, den Konfigurations- und Verwaltungsprozess zu vereinfachen.

Die Loopback-Schnittstelle ist eine spezielle Netzwerkschnittstelle, die als virtuelle Netzwerkschnittstelle im Netzwerkprotokollstapel des Computers verwendet wird. Der Hauptzweck der Loopback-Schnittstelle besteht darin, dem System die Netzwerkkommunikation mit sich selbst zu ermöglichen, ohne eine physische Netzwerkschnittstelle nutzen zu müssen. Diese Kommunikationsmethode wird Loopback oder Circular genannt

  1. Verwendung im LVS DR-Modus: Im DR-Modus (Direct Routing) von LVS (Linux Virtual Server) wird die Loopback-Schnittstelle zum Konfigurieren der virtuellen IP-Adresse (VIP) verwendet, um sicherzustellen, dass der reale Backend-Server nicht auf die ARP-Anfrage des VIP antwortet, wodurch eine Adressierung vermieden wird Konflikte und mögliche Kommunikationsprobleme.

6. Schnittstellenerklärung:

Eine Netzwerkschnittstelle ist ein Gerät oder eine Software in einem Computersystem, das mit einem Computernetzwerk verbunden ist. Es stellt eine Kommunikationsschnittstelle zwischen dem Computer und dem Netzwerk bereit und fungiert als Brücke zwischen dem Computer und dem Netzwerk. Im Folgenden finden Sie die spezifische Definition und zugehörige Informationen der Netzwerkschnittstelle:

Definition

  • körperliche Ebene: Eine Netzwerkschnittstelle bezieht sich normalerweise auf einen Port oder ein Gerät, das einen Computer über eine physische Verbindung (z. B. ein Ethernet-Kabel, eine drahtlose Netzwerkkarte usw.) mit dem Netzwerk verbindet.
  • Softwareebene: Die Netzwerkschnittstelle interagiert mit dem Netzwerk über den vom Betriebssystem bereitgestellten Netzwerkprotokollstapel und Treiber.

Wirkung

  • Datenübertragung: Die Netzwerkschnittstelle ist für die Übertragung von Daten an das Netzwerk oder den Empfang von Daten vom Netzwerk verantwortlich und realisiert die Datenübertragungsfunktion zwischen dem Computer und dem Netzwerk.
  • Protokollverarbeitung: Die Netzwerkschnittstelle verarbeitet verschiedene Netzwerkprotokolle (z. B. TCP/IP, UDP usw.), um sicherzustellen, dass Daten auf die im Protokoll angegebene Weise übertragen und verarbeitet werden können.
  • Adressverwaltung: Die Netzwerkschnittstelle ist für die Verwaltung der Adresszuweisung und Verwaltung von Computern im Netzwerk verantwortlich, einschließlich der Konfiguration und Verwaltung von Netzwerkparametern wie IP-Adresse, Subnetzmaske und Standard-Gateway.
  • Ablaufsteuerung: Die Netzwerkschnittstelle passt die Datenübertragungsrate und -priorität entsprechend dem Grad der Netzwerküberlastung und den Datenübertragungsanforderungen an, um die Netzwerklast auszugleichen und Netzwerkstabilität und -leistung sicherzustellen.
  • Fehlererkennung und -korrektur: Die Netzwerkschnittstelle verfügt über Funktionen zur Fehlererkennung und -korrektur und verbessert die Zuverlässigkeit und Genauigkeit der Datenübertragung durch Technologien wie Prüfsummen und Fehlerkorrekturcodes.

Typ

Es gibt verschiedene Arten von Netzwerkschnittstellen, und jede Art von Netzwerkschnittstelle hat ihre eigenen Eigenschaften und anwendbaren Szenarien:

  • Ethernet-Schnittstelle : Die gebräuchlichste kabelgebundene Netzwerkschnittstelle, die einen Computer über ein Ethernet-Kabel mit einem LAN oder WAN verbindet. Die Ethernet-Schnittstelle nutzt das Ethernet-Protokoll zur Datenübertragung und unterstützt so die Hochgeschwindigkeits-Datenübertragung und eine Vielzahl von Netzwerkanwendungen.
  • Wireless LAN-Schnittstelle (WLAN-Schnittstelle): Ein Computer ist über drahtlose Signale mit einem lokalen Netzwerk verbunden und für die Datenübertragung wird ein drahtloses LAN-Protokoll (z. B. Wi-Fi) verwendet. Es ist häufig in drahtlosen Routern, Laptops, Smartphones und anderen Geräten zu finden.
  • Bluetooth-Schnittstelle: Eine drahtlose Kommunikationstechnologie mit kurzer Reichweite, die drahtlose Verbindungen zwischen Geräten über Bluetooth-Signale ermöglicht.
  • serielle Schnittstelle: Übertragen Sie Daten Stück für Stück zwischen dem Computer und externen Geräten über serielle Kommunikation. Zu den gängigen seriellen Schnittstellen gehören RS-232 und USB, die zum Anschluss von Druckern, Modems und anderen Geräten verwendet werden.

Gemeinsame Schnittstellenstandards

  • RJ-45-Schnittstelle: Dies ist derzeit die gebräuchlichste Schnittstelle für Netzwerkgeräte und wird allgemein als „Kristallkopf“ bezeichnet. Der technische Begriff lautet RJ-45-Anschluss, der zum Twisted-Pair-Ethernet-Schnittstellentyp gehört.
  • SC-Glasfaserschnittstelle : Es wurde auch im Ethernet-Zeitalter verwendet, war aber aufgrund seiner hohen Kosten in der Anfangszeit nicht beliebt. Mit der Förderung von Gigabit-Netzwerken haben SC-Glasfaserschnittstellen erneut Aufmerksamkeit erhalten.
  • AUI-Schnittstelle: Wird speziell zum Anschluss dicker Koaxialkabel verwendet. Es handelt sich um eine übliche Schnittstelle bei frühen Netzwerkkarten und wird heute nur noch selten verwendet.
  • BNC-Schnittstelle: Eine Schnittstelle, die speziell für den Anschluss an dünne Koaxialkabel entwickelt wurde und heutzutage seltener in Schaltern verwendet wird.

Zusammenfassend lässt sich sagen, dass die Netzwerkschnittstelle eine Schlüsselkomponente für die Kommunikation zwischen dem Computer und dem Netzwerk ist. Sie realisiert die Datenübertragung und Kommunikation zwischen dem Computer und dem Netzwerk über physische Verbindungen oder drahtlose Signale. Verschiedene Arten von Netzwerkschnittstellen eignen sich für unterschiedliche Szenarien und Anwendungen und bieten wichtige Unterstützung für die Kommunikation zwischen Computern und Netzwerken.

Interview Fragen

Wie kann das Split-Brain-Problem von Keepalive gelöst werden?

Es gibt verschiedene Arten von Netzwerkschnittstellen, und jede Art von Netzwerkschnittstelle hat ihre eigenen Eigenschaften und anwendbaren Szenarien:

  • Ethernet-Schnittstelle : Die gebräuchlichste kabelgebundene Netzwerkschnittstelle, die einen Computer über ein Ethernet-Kabel mit einem LAN oder WAN verbindet. Die Ethernet-Schnittstelle nutzt das Ethernet-Protokoll zur Datenübertragung und unterstützt so die Hochgeschwindigkeits-Datenübertragung und eine Vielzahl von Netzwerkanwendungen.
  • Wireless LAN-Schnittstelle (WLAN-Schnittstelle): Ein Computer ist über drahtlose Signale mit einem lokalen Netzwerk verbunden und für die Datenübertragung wird ein drahtloses LAN-Protokoll (z. B. Wi-Fi) verwendet. Es ist häufig in drahtlosen Routern, Laptops, Smartphones und anderen Geräten zu finden.
  • Bluetooth-Schnittstelle: Eine drahtlose Kommunikationstechnologie mit kurzer Reichweite, die drahtlose Verbindungen zwischen Geräten über Bluetooth-Signale ermöglicht.
  • serielle Schnittstelle: Übertragen Sie Daten Stück für Stück zwischen dem Computer und externen Geräten über serielle Kommunikation. Zu den gängigen seriellen Schnittstellen gehören RS-232 und USB, die zum Anschluss von Druckern, Modems und anderen Geräten verwendet werden.

Gemeinsame Schnittstellenstandards

  • RJ-45-Schnittstelle: Dies ist derzeit die gebräuchlichste Schnittstelle für Netzwerkgeräte und wird allgemein als „Kristallkopf“ bezeichnet. Der technische Begriff lautet RJ-45-Anschluss, der zum Twisted-Pair-Ethernet-Schnittstellentyp gehört.
  • SC-Glasfaserschnittstelle : Es wurde auch im Ethernet-Zeitalter verwendet, war aber aufgrund seiner hohen Kosten in der Anfangszeit nicht beliebt. Mit der Förderung von Gigabit-Netzwerken haben SC-Glasfaserschnittstellen erneut Aufmerksamkeit erhalten.
  • AUI-Schnittstelle: Wird speziell zum Anschluss dicker Koaxialkabel verwendet. Es handelt sich um eine übliche Schnittstelle bei frühen Netzwerkkarten und wird heute nur noch selten verwendet.
  • BNC-Schnittstelle: Eine Schnittstelle, die speziell für den Anschluss an dünne Koaxialkabel entwickelt wurde und heutzutage seltener in Schaltern verwendet wird.

Zusammenfassend lässt sich sagen, dass die Netzwerkschnittstelle eine Schlüsselkomponente für die Kommunikation zwischen dem Computer und dem Netzwerk ist. Sie realisiert die Datenübertragung und Kommunikation zwischen dem Computer und dem Netzwerk über physische Verbindungen oder drahtlose Signale. Verschiedene Arten von Netzwerkschnittstellen eignen sich für unterschiedliche Szenarien und Anwendungen und bieten wichtige Unterstützung für die Kommunikation zwischen Computern und Netzwerken.

Interview Fragen

Wie kann das Split-Brain-Problem von Keepalive gelöst werden?