Routage de base de politique Linux

Linux Policy Base Routing

Qu'est-il arrivé en premier lieu?

Lors de la création d'EC2 sur AWS, le paquet peut ne pas atteindre EC2 avec plusieurs cartes réseau dans les situations suivantes, il s'agit donc d'un mémorandum. En tant que configuration, l'instance EC2 possède plusieurs cartes réseau, chacune appartenant à un sous-réseau différent.

Screen Shot 2020-03-12 at 18.20.43.png

(Citation de la figure) http://blog.serverworks.co.jp/tech/2018/02/16/rhel-pbr-setting/

L'état de la table de routage (principal) est le suivant. Le GW par défaut est un routeur de sous-réseau (10.0.1.0/24).

[root@ip-10-0-1-5 etc]# ip route show table main
10.0.1.0/24 dev eth0  proto kernel  scope link  src 10.0.1.5 
10.0.2.0/24 dev eth1  proto kernel  scope link  src 10.0.2.5 
default via 10.0.1.1 dev eth0 

Dans cette situation, j'ai essayé de sauter PING de NW appartenant à 10.0.1.0/24 à NIC (eth1) de 10.0.2.x, mais il n'y a pas de paquet de retour. En raison de la recherche de pourquoi, PING est arrivé à l'EC2, mais lors du retour du paquet de retour, il envoie un paquet à partir du GW par défaut de l'EC2 et, par conséquent, il n'atteint pas la source. C'était une chose.

Pour la même communication, une communication dans laquelle le NIC de réception et le NIC de retour sont différents est appelée routage asymétrique. Sous Linux, à partir de certaines versions, les paramètres de noyau suivants sont définis pour supprimer les paquets si la carte réseau qui communique est différente de la carte réseau reçue. Ce paramètre est activé à la destination du paquet et seule la communication de retour est filtrée.

Filtre d'itinéraire de retour


net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

Il existe un moyen de désactiver ce qui précède, mais il s'agit d'un paramètre de sécurité pour l'ensemble du système d'exploitation pour empêcher l'usurpation d'adresse IP. Afin d'éviter cela, il existe également une fonction appelée Routage de base de politique, alors implémentez-la.

Policy Base Routing

La table de routage standard examine l'adresse de destination et achemine le paquet vers un routeur spécifique ou une passerelle par défaut. D'autre part, le routage de base de politique (PBR) est une fonction qui détermine le routage en regardant l'adresse IP source et le port TCP / UDP. En règle générale, donnez la priorité au PBR par rapport au routage normal.

Par conséquent, dans ce cas, on peut conclure que le PBR doit être défini de telle sorte que le paquet dont l'adresse IP source est 10.0.2.0/24 soit passé à 10.0.2.1. (Bien que ce soit l'adresse IP source mentionnée ici, elle fait référence à la partie du paquet de retour de PING. Comme vous pouvez le voir par tcpdump, le paquet de retour est 10.0.2.x ==> 10.0.1.x.)

[root@ip-10-0-1-5 etc]# ip rule show
0:	from all lookup local 
32766:	from all lookup main 
32767:	from all lookup default 

--Créer des règles de table de routage pour PBR

temporaire


ip route flush table 2000
ip route add table 2000 to 10.0.2.0/24 dev eth1
ip route add table 2000 to default via 10.0.2.1 dev eth1
ip rule add from 10.0.2.0/24 table 2000 priority 200

Permanent


cat << EOF > /etc/sysconfig/network-scripts/pbr02-eth1
from 10.0.2.0/24 table 2000 priority 200
EOF

cat << EOF > /etc/sysconfig/network-scripts/route-eth1
10.0.2.0/24 dev eth1 table pbr02
default via 10.0.2.1 dev eth1 table 2000
EOF

-Système de confirmation de réglage

[root@ip-10-0-1-5 network-scripts]# ip rule show
0:	from all lookup local 
200:	from 10.0.2.0/24 lookup pbr02 
32766:	from all lookup main 
32767:	from all lookup default 

[root@ip-10-0-1-5 network-scripts]# ip route show table 2000
10.0.2.0/24 dev eth1  scope link 
default via 10.0.2.1 dev eth1 

Référence https://milestone-of-se.nesuke.com/nw-basic/routing/policy-based-routing/

Recommended Posts

Routage de base de politique Linux
PBR (Policy Base Routing) sur Linux
Linux