Linux Policy Base Routing

Linux Policy Base Routing

Was ist überhaupt passiert?

Wenn Sie EC2 auf AWS erstellen, erreicht das Paket in den folgenden Situationen möglicherweise nicht EC2 mit mehreren Netzwerkkarten. Es handelt sich also um ein Memorandum. Als Konfiguration verfügt die EC2-Instanz über mehrere Netzwerkkarten, die jeweils zu einem anderen Subnetz gehören.

Screen Shot 2020-03-12 at 18.20.43.png

(Abbildung Zitat) http://blog.serverworks.co.jp/tech/2018/02/16/rhel-pbr-setting/

Der Status der Routing-Tabelle (main) lautet wie folgt. Das Standard-GW ist ein Subnetz-Router (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 

In dieser Situation habe ich versucht, PING von NW, das zu 10.0.1.0/24 gehört, zu NIC (eth1) von 10.0.2.x zu überspringen, aber es gibt kein Rückgabepaket. Als Ergebnis der Untersuchung, warum, ist PING am EC2 angekommen, aber wenn es das Rückgabepaket zurückgibt, sendet es ein Paket vom Standard-GW des EC2 und erreicht infolgedessen nicht die Quelle. Es war eine Sache.

Für dieselbe Kommunikation wird eine Kommunikation, bei der die empfangende Netzwerkkarte und die zurückkehrende Netzwerkkarte unterschiedlich sind, als asymmetrisches Routing bezeichnet. Unter Linux werden ab einer bestimmten Version die folgenden Kernelparameter so eingestellt, dass Pakete verworfen werden, wenn sich die NIC, die zurück kommuniziert, von der empfangenen NIC unterscheidet. Diese Einstellung ist am Ziel des Pakets aktiviert und nur die Rückkommunikation wird gefiltert.

Routenfilter zurückgeben


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

Es gibt eine Möglichkeit, das oben Gesagte zu deaktivieren, aber es ist eine Sicherheitseinstellung für das gesamte Betriebssystem, um IP-Spoofing zu verhindern. Um dies zu vermeiden, gibt es auch eine Funktion namens Policy Base Routing. Implementieren Sie sie daher.

Policy Base Routing

Die Standard-Routing-Tabelle leitet Pakete an einen bestimmten Router oder ein Standard-Gateway weiter, indem die Zieladresse überprüft wird. Andererseits ist Policy Base Routing (PBR) eine Funktion, die das Routing anhand der Quell-IP-Adresse und des TCP / UDP-Ports bestimmt. Priorisieren Sie PBR in der Regel gegenüber normalem Routing.

Daher kann in diesem Fall geschlossen werden, dass der PBR so eingestellt werden sollte, dass das Paket mit der Quell-IP-Adresse 10.0.2.0/24 zu 10.0.2.1 übersprungen wird. (Obwohl es sich um die hier erwähnte Quell-IP-Adresse handelt, bezieht sie sich auf den Teil des Rückgabepakets von PING. Wie Sie anhand von tcpdump sehen können, lautet das Rückgabepaket 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 

--Erstellen Sie Routentabellenregeln für PBR

vorübergehend


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

Dauerhaft


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
[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 

Referenz https://milestone-of-se.nesuke.com/nw-basic/routing/policy-based-routing/

Recommended Posts

Linux Policy Base Routing
PBR (Policy Base Routing) unter Linux
Linux