Saya memiliki topologi jembatan ganda asimetris seperti yang ditunjukkan di bawah ini ketika saya terhubung dari 172.16.11.5 dan 172.16.10.6 dengan ssh tetapi saya tidak dapat terhubung karena SynProxy.
-------
| |
---o--- 172.16.11.5
|
|
-----o----- 172.16.11.6
| |
| | default gw 1.1.1.1
| |
1.1.1.2/30 --o----o--- 2.2.2.2/30
| |
| |
| | (enp10s0f0)
----o----o-----
| |
| XXX |
| |
| br1 br0 | synproxy
| |
----o----o-----
| |
| |
| |
1.1.1.1/30 --o----o--- 2.2.2.1/30
| |
| | default gw 2.2.2.2
| |
-----o----- 172.16.10.1
|
|
---o--- 172.16.10.6
| |
-------
Pada semua mesin antara 172.16.11.5 dan 172.16.10.6 "rp filtering" mati dan "ip forwarding" menyala. Ada mesin di tengah topologi yang disebut mesin "XXX". XXX memiliki dua jembatan dan SynProxy.
Ketika SynProxy dimatikan pada XXX, saya dapat melakukan ping dari 172.16.11.5 ke 172.16.10.6 dan paket icmp mengikuti jalur ini: br1-> 172.16.10.1-> 172.16.10.6-> 172.16.10.1-> br0. Selain itu, saya dapat mengakses dari 172.16.11.5 hingga 172.16.10.6 dengan ssh. Jadi lalu lintas TCP berfungsi seperti yang saya harapkan.
Namun, ketika SynProxy diaktifkan ON di XXX, saya bisa melakukan ping dari 172.16.11.5 ke 172.16.10.6 dan paket icmp mengikuti jalur yang sama. Tetapi saya tidak dapat mengakses dari 172.16.11.5 hingga 172.16.10.6 menggunakan ssh. Ini karena synproxy tidak dapat mengirim balasan syn ack melalui br1 iface. Jika saya menambahkan rute untuk paket synack di XXX, saya dapat terhubung dari 172.16.11.5 ke 172.16.10.6 dengan ssh.
rute tambahkan 172.16.11.5 dev enp10s0f0
Aturan SynProxy untuk XXX:
iptables -t raw -A PREROUTING -i br0 -p tcp -m physdev --physdev-in
enp10s0f0 -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j CT --notrack
iptables -t raw -A PREROUTING -i br1 -p tcp -m physdev --physdev-in
enp11s0f0 -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j CT --notrack
iptables -t filter -A FORWARD -i br0 -p tcp -m physdev --physdev-in
enp10s0f0 -m tcp -m state --state INVALID,UNTRACKED -j SYNPROXY
--sack-perm --timestamp --wscale 7 --mss 1460
iptables -t filter -A FORWARD -i br0 -m physdev --physdev-in enp10s0f0
-m state --state INVALID -j DROP
iptables -t filter -A FORWARD -i br1 -p tcp -m physdev --physdev-in
enp11s0f0 -m tcp -m state --state INVALID,UNTRACKED -j SYNPROXY
--sack-perm --timestamp --wscale 7 --mss 1460
iptables -t filter -A FORWARD -i br1 -m physdev --physdev-in enp11s0f0
-m state --state INVALID -j DROP
Tetapi ini tidak dapat diterima karena jaringan 172.16.11.0 adalah cloud. Jadi saya tidak bisa menambahkan rute semua jaringan cloud ke tabel rute dan tidak bisa menambahkan alamat mac ke tabel arp.
Bagaimana saya bisa terhubung dari 172.16.11.5 ke mesin 172.16.10.6 menggunakan ssh ketika SynProxy dihidupkan pada XXX? atau mungkinkah?
Terima kasih sebelumnya,
sumber
medium_id
dimiliki antarmuka jembatan pada synproxy? Juga, apa aturan SYNPROXY Anda yang sebenarnya di semua tabel?Jawaban:
Cara paling sederhana yang bisa saya lihat untuk memperbaikinya adalah mengubah rute default pada mesin gateway untuk menggunakan jembatan yang sama sehingga tidak lagi asimetris.
Saya ingin tahu mengapa ini direkayasa dengan cara ini ... apa tujuan dari jembatan kedua?
sumber