[DOCKER] Pour moi: notes sur l'infrastructure et le réseau

introduction

J'ai beaucoup oublié car le réseau est fait depuis longtemps. Après un long moment, j'ai passé en revue le réseau et en ai appris davantage. Notez son contenu ici. Si vous faites une erreur ou avez des conseils, il serait utile que vous me disiez gentiment ~

TCP Grâce à L3, il est possible d'envoyer des paquets à l'autre partie, mais je ne sais pas s'il est réellement arrivé. Donc, l'autre partie a reçu le paquet quand il est arrivé! C'est TCP. (Les détails sont omis) qui a une règle à enseigner

Vous devez spécifier le numéro de PORT lors de l'envoi du paquet. Dans le cas de TCP, il est nécessaire de recevoir le paquet de l'autre partie, donc le demandeur spécifie également le numéro de PORT utilisé pour cette communication. Le numéro de PORT source est sélectionné dans [Numéro de port dynamique / privé (49152–65535)]. En d'autres termes, si vous ne concevez pas une connexion TCP simultanée vers l'extérieur qui dépasse 65535-49152 = 16383 qui dépasse le numéro de port pour cette sortie, c'est fondamentalement impossible. Le PORT source est également requis pour UDP.

ARP http://www5e.biglobe.ne.jp/aji/3min/26.html

ARP est un protocole L3, et vous pouvez obtenir la réponse ARP incluse dans la requête ARP en diffusant la requête ARP. Il arrive avec l'adresse MAC demandée incluse dans la réponse ARP. En utilisant cela, les paquets peuvent être livrés même si la table ARP n'a pas d'adresse Mac de destination.

ARP usecase partie 4

Si vous n'avez jamais communiqué en externe avec l'adresse IP statique définie manuellement, l'adresse mac n'est pas enregistrée dans la table ARP du pont ou du routeur. Dans une telle situation, le routeur utilise ARP pour trouver l'adresse Mac de l'adresse IP de destination reçue.

firewall Je n'ouvre souvent que le port 80 avec pare-feu. Dans ce cas, si tous les paquets avec des ports autres que le port 80 sont définis pour être perdus, même les paquets avec des numéros de port dynamiques seront rejetés. Dans ce cas, vous ne pourrez pas communiquer avec TCP. Donc, bien sûr, c'est essentiellement pour les entrées et les sorties, et les considérations et les paramètres de sécurité vont changer. À propos, dans le cas d'UDP, il n'est pas nécessaire de sécuriser un port pour la réponse avec un numéro de port dynamique, donc s'il y a un client qui est garanti de ne faire que des requêtes UDP, les données peuvent être envoyées vers l'extérieur même si tous les ports sont fermés. Masu.

NIC eh0 est le 0e nic et eth1 est le 1er nic En gros, il est normal de reconnaître ethN == nic Lors de l'envoi d'un paquet à la couche physique, envoyez un paquet d'envoi à eth, et eth l'envoie au pair d'eth (Nic est connecté à une paire de nics tels qu'un pont et un routeur via un câble Ethernet de base, etc. La paire est appelée pair.

Concept de création de routeur

http://redhatlinux.kt.fc2.com/cont/router.htm Ce site est détaillé. Si vous ne savez pas comment lire route -n, vous pouvez visiter ce site. https://xtech.nikkei.com/it/article/COLUMN/20080520/303086/ http://linux.kororo.jp/cont/intro/dgate.php

Le routeur le plus simple, qui a été mis de côté pour la convergence, ne peut être réalisé que par ip forward, qui est une technologie qui envoie les paquets reçus d'une carte réseau à une autre carte réseau. Pour activer le transfert d'ip sur Linux, ajoutez net.ipv4.ip_forward = 1 à / etc / sysctl.conf et redémarrez le réseau pour activer la fonction de transfert d'ip.

ifconfig vs ip command ifconfig est une commande incluse dans le package net-tools. D'autres commandes fréquemment utilisées telles que route, netstat et arp sont également incluses dans le package net-tools. Le package net-tools est actuellement obsolète.

Comment faire un pont virtuel

le pont peut être créé à partir de l'un des éléments suivants

Des appareils réels tels que eth0 et des appareils virtuels tels que veth peuvent être connectés au pont.

Comment créer un réseau virtuel

Si vous créez une carte réseau virtuelle et la connectez à un pont virtuel, vous pouvez créer un réseau privé virtuel.

Cependant, à ce rythme, le réseau privé ne peut pas communiquer avec Internet. Si vous vous connectez directement à eth0, eth0 sera occupé cette fois, et ceux qui n'appartiennent pas au réseau privé ne pourront pas se connecter à Internet. Ainsi, vous pouvez le faire en utilisant iptables et le masquage IP. Ainsi, si vous supprimez le paramètre de mascarade IP du pont tel que docker, vous pouvez vous déconnecter complètement du réseau.

mascarade IP (NAPT

Vous pouvez utiliser la mascarade IP en utilisant iptables. Avec ip masquerade, vous pouvez faire le transfert de port et la sécurité ainsi que les fonctions NAPT.

port forward https://qiita.com/Ayaka14/items/449e2236af4b8c2beb81 Comme ça Vous pouvez également le faire avec iptables Les paquets arrivant sur un port spécifique peuvent être transférés vers un port avec une adresse IP spécifique. Peut être utilisé comme proxy pour L2. Il peut également être utilisé pour connecter des segments de réseau. VXLAN peut être construit en connectant des segments de réseau.

VXLAN https://tech.uzabase.com/entry/2017/08/23/175813 Ce site est détaillé.

Redondance

Étant donné que nous souhaitons placer un seul microservice sur plusieurs hôtes, essentiellement en raison de la tolérance aux pannes, nous déployons un microservice sur plusieurs segments de réseau.

Impressions de VXLAN

Après tout, j'avais envie de définir le routage. J'ai l'impression de donner divers noms spéciaux tels que le transfert de port au réglage d'éléments spécifiques de routage.

VRRP Lors de la mise à l'échelle d'une application, placez un équilibreur de charge au premier plan et faites-le trier plus tard. Cependant, s'il n'y a qu'un seul équilibreur de route, c'est un seul obstacle. Par conséquent, afin de rendre l'équilibreur de charge redondant, keepalived etc. qui implémente VRRP est utilisé. Avec cela, plusieurs hôtes ont reçu la même adresse IP virtuelle et la même adresse MAC virtuelle (dérivée de l'adresse IP virtuelle), et si l'hôte de haute priorité n'a pas contacté pendant 3 secondes, l'attente de priorité la plus élevée suivante a été effectuée. L'hôte devient le détenteur de cette adresse IP et de ce MAC et gère la demande. Pour plus d'informations sur le fonctionnement du protocole VRRP, consultez cet article ou recherchez-le de manière appropriée sur Google.

Remarques sur la configuration du maître esclave MySQL

Dans le cas de la configuration Master Slave, HAProxy est le principal proxy pour l'équilibrage de charge vers le maître ou l'esclave en regardant le contenu de Query. Ou, dans l'équilibrage de charge client, si vous souhaitez émettre une série de requêtes, y compris une mise à jour, envoyez-la au maître et, s'il s'agit uniquement de lecture, transmettez la requête à l'esclave. Dans ce cas, il existe différentes méthodes d'équilibrage de charge de l'esclave, mais la configuration redondante de l'équilibreur de charge avec l'équilibreur de charge TCP + keepalive de NGINX semble être bonne. Cela peut être fait et cela semble simple.

Les références

Recommended Posts

Pour moi: notes sur l'infrastructure et le réseau
Mémo pour moi graphique csv python
Mémo réseau (principalement Linux)
Créez facilement une infrastructure réseau et EC2 avec AWS CDK Python
Avec moi, cp et sous-processus
Remarques sur tf.function et traçage
Remarques sur les * args et ** kargs
Mémo Python Tkinter (pour moi)
Mémorandum d'apprentissage pour moi w
Notes sur pyenv et Atom
Pièges et solutions de contournement pour pandas.DataFrame.to_sql
py, shebang, venv et moi
Notes pour le concours de programmation HHKB 2020
Avec moi, NER et Flair
Conseils et précautions lors de l'analyse des données