Puncte:0

Nu se poate folosi fwmark pe Debian 11 (bulleyes) pentru a schimba comportamentul de rutare

drapel gf

Am o rețetă pe care o folosesc deja în multe cazuri, dar de data aceasta nu funcționează pe Debian 11 (kernel 5.10.0-10-amd64)

configurația mea este practic o interfață internă eth0 pentru un LAN RFC1918 și două interfețe externe conectate la o cutie a unui ISP:

eth1 pentru ISP1 ca router implicit la 10.0.0.254 cu IP public 1.2.3.4 (la figurat)

eth2 pentru ISP2 are un router la 10.0.3.254 cu public 2.3.4.5

Am un alt traseu posibil. Vreau să controlez ce rută urmează pachetul meu, așa că creez niște reguli și fwmark. Mai întâi atasez 2<tab>al doilea router în /etc/iproute2/rt_tables

regulă ip adăugați fwmark 0x3 căutare secundrouter
ip route add default via 10.0.3.254 table secondrouter

totul este bine in ceea ce priveste IP route list table secondrouter și lista de reguli ip

în acest moment sunt capabil să fac:

curl -4 ifconfig.me
1.2.3.4 #<- adresa IP publică a rutei mele implicite

Atunci o fac

iptables-legacy -t mangle -A OUTPUT -d 34.117.59.81 -j MARK --set-mark 0x3 

acum dacă o fac

curl -4 ifconfig.me
<timeout>

Unde mă așteptam la 2.3.4.5 ca IP public. Deci, în mod clar, pachetul marcat nu ia traseul din tabelul de rute IP, și mai rău, expiră.

Dacă fac acest lucru exact în același mod pe Debian mai vechi, funcționează perfect.

NB: daca fac a

IP route add 34.117.59.81 prin <al doilea router IP>

testul meu de bucle funcționează perfect așa cum era de așteptat

curl -4 ifconfig.me
2.3.4.5 #<- Adresa IP Pub a celui de-al doilea router al meu

Problema mea apare la utilizare iptables sau iptables-legacy pentru a marca pachetele pe ruta. BTW am o mulțime de reguli iptables care funcționează bine, așa că nu arată ca o problemă cu iptables.

iptables-legacy-save 
# Generat de iptables-save v1.8.7 pe duminica 23 ianuarie 22:35:06 2022
*calandru
:ACCEPTAREA PRE-ROUTARE [41:5019]
:INPUT ACCEPT [41:5019]
: FORWARD ACCEPT [0:0]
: ACCEPT IEȘIRE [44:4752]
: POSTROUTING ACCEPT [44:4752]
-A IEȘIRE -d 192.168.0.0/16 -j RETURN
-A IEȘIRE -d 172.16.0.0/12 -j RETURN
-A IEȘIRE -d 10.0.0.0/8 -j RETURN
-A IEȘIRE -d 34.117.59.81/32 -j MARK --set-xmark 0x3/0xffffffff
COMMIT
# Finalizat duminică, 23 ianuarie 22:35:06 2022
# Generat de iptables-save v1.8.7 pe duminica 23 ianuarie 22:35:06 2022
*filtru
:INPUT DROP [19:7746]
: FORWARD DROP [0:0]
: ACCEPT IEȘIRE [846:62420]
-A INPUT -m stare --stare INVALID -j DROP
-A INPUT -m stare --stare RELATED,STABLISHED -j ACCEPT
-A INTRARE -i lo -j ACCEPT
-A INTRARE -p icmp -j ACCEPT
-A INTRARE -p udp -m udp --dport 500 -j ACCEPT
-A INTRARE -p esp -j ACCEPT
-A INTRARE -p ah -j ACCEPT
-A INTRARE -p tcp -m tcp --dport 22 -j ACCEPT
-A INTRARE -s 192.168.0.0/16 -p tcp -m tcp --dport 3128 -j ACCEPT
-A INTRARE -s 172.16.0.0/12 -p tcp -m tcp --dport 3128 -j ACCEPT
-A INTRARE -s 10.0.0.0/8 -p tcp -m tcp --dport 3128 -j ACCEPT
-A FORWARD -m stare --stare INVALID -j DROP
-A FORWARD -m stare --stare RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.0.0/16 -d 10.0.6.0/24 -j ACCEPT
-A FORWARD -s 10.0.6.0/24 -d 192.168.0.0/16 -j ACCEPT
COMMIT
# Finalizat duminică, 23 ianuarie 22:35:06 2022
drapel us
Vă rugăm să adăugați rezultatul `iptables-save` la întrebare.
dominix avatar
drapel gf
@tero-kilkanen ... gata
Puncte:0
drapel gf

Când pachetul iese din mașină, i se dă o adresă IP sursă corespunzătoare interfeței implicite de ieșire.

Deci este necesar să adăugați o regulă MASQUERADE pe interfața de ieșire deoarece regulile de marcare oferă pachetului nostru o altă destinație decât cea planificată.

iptables-legacy -t nat -A POSTROUTING -o eth2 -j MASQUERADE

de dragul înțelegerii ordinii netfilter de procesare: (via Plouf)

                     (interfață de intrare)
                             |
                             v
                     /-------+-------\
                     | controale de sănătate |
                     \-------+-------/
                             |
                             v cârlig NF_IP_PRE_ROUTING
                      +------+------+
                      | conttrack |
                      | defrag. |
                      +-------------+
                      | mangle |
                      | PRERUTARE |
                      +-------------+
                      | nat (dst) |
                      | PRERUTARE |
                      +------+------+
                             |
                             v
        livrare locală /----+----\ forward
       +---------------+ traseu +---------------+
       | \---------/ |
       v v
 /-----+-----\ /-----+-----\
 | defrag. | | Verificare TTL |
 \-----+-----/ | dec. TTL |
       | \-----+-----/
       v cârlig NF_IP_LOCAL_IN |
+------+------+ |
| mangle (1) | |
| INTRARE | |
+-------------+ |
| filtru | v
| INTRARE | /-----+-----\
+-------------+ | verificare DF |
| nat (src)(2)| \-----+-----/
+-------------+ |
| conttrack | |
| confirma | | 
+------+------+ cârlig v NF_IP_FORWARD
       | +------+------+
       v | mangle (1) |
/------+--------\ | ÎNAINTE |
| proces local | +--------------|
\------+--------/ | filtru |
       | | ÎNAINTE |
       v +------+------+
 /-----+-----\ |
 | traseu | |
 | frag. | |
 \-----+-----/ |
       | |
       v cârlig NF_IP_LOCAL_OUT |
+------+------+ |
| conttrack | |
| defrag. | |
+-------------+ |
| mangle | |
| IEȘIRE | |
+-------------+ v
| nat (dst)(3)| /-----+-----\
| IEȘIRE | | frag. |
+-------------+ \-----+-----/
| filtru | |
| IEȘIRE | |
+------+------+ |
       | |
       v |
 /-----+-----\ |
 | redirecționare | |
 \-----+-----/ |
       | |
       +------------------+ +------------------+
                          | |
                          v v cârlig NF_IP_POST_ROUTING
                      +---+-----+---+
                      | mangle (1) |
                      | POSTRUTARE |
                      +-------------+
                      | nat (src) |
                      | defragmentare. |
                      | POSTRUTARE |
                      +-------------+
                      | conttrack |
                      | confirma |
                      | frag. |
                      +------+------+
                             |
                             v
                   (interfață de ieșire)

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.