У меня есть глупая проблема (надеюсь), которая сводит меня с ума 😊 Я создал сеть, изображенную ниже.
-------------+ ROUTER 1 ROUTER 2
| +-----------------+ +------------------+
| | | | |
internet | | eth0 | | eth0 |
| | 192.168.2.50/24 | | 192.168.5.100/24 |-----+
router |----+----| | | | |
IP (LAN) | | | | | | |
192.168.2.1 | | | | | | |
(/24) | | | sl0 | | sl0 | |
| | | 192.168.22.1 |-----| 192.168.22.2 | |
-------------+ | +-----------------+ +------------------+ |
| |
+-----------------+ +-----------------+
| 192.168.2.2/24 | | 192.168.5.10/24 |
| GW 192.168.2.254| | GW 192.168.5.100|
| CLIENT A | | CLIENT B |
+-----------------+ +-----------------+
На обоих маршрутизаторах я включил IP_FORWARD и Debian в качестве ОС.
Цель:
-Убедитесь, что Клиент B может выходить в Интернет и иметь доступ к сети 192.168.2.0/24.
-Клиент A должен иметь доступ к сети 192.168.5.0/24 (и это делается путем добавления простого правила маршрута на клиенте A) и, очевидно, в Интернет.
Подключение SLIP (sl0) осуществляется через 3-проводное соединение с 2 адаптерами USB-RS232 (FT232 - чипсет FTDI). С приведенными ниже конфигурациями действительно возможно сделать то, о чем я прошу. MTU Sl0 намеренно понижен.
Если с клиента B я пытаюсь открыть веб-страницу с включенным TSHARK на интерфейсе sl0, я вижу большое количество ошибок в TCP-пакетах.
Я так много вижу:
TCP Dup ACK
Time-to-live exceeded
TCP Retransmission
Что делает невозможным открытие веб-страницы.
Если вместо этого я открою веб-страницу с маршрутизатора 2, количество ошибок резко упадет, и можно будет (медленно) перемещаться.
Start config of Sl0
## ROUTER 1
stty -F /dev/ttyUSB0 115200 raw
modprobe slip
slattach -L -s 115200 -p cslip /dev/ttyUSB0 &
ifconfig sl0 192.168.22.1 dstaddr 192.168.22.2 mtu 296 txqueuelen 3
echo 0 > /proc/sys/net/ipv4/tcp_fastopen
route add -net 192.168.22.0 netmask 255.255.255.0 gw 192.168.22.1
route add -net 192.168.5.0 netmask 255.255.255.0 gw 192.168.22.2
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 296
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
## ROUTER 2
stty -F /dev/ttyUSB0 115200 raw
modprobe slip
slattach -L -s 115200 -p cslip /dev/ttyUSB0 &
ifconfig sl0 192.168.22.2 dstaddr 192.168.22.1 mtu 296 txqueuelen 3
echo 0 > /proc/sys/net/ipv4/tcp_fastopen
route add -net 192.168.5.0 netmask 255.255.255.0 gw 192.168.5.100
route add -net 192.168.22.0 netmask 255.255.255.0 gw 192.168.22.2
ip route add default via 192.168.22.1
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 296
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
Где я не прав?
У меня есть некоторые сомнения по поводу конфигурации IPTABLES и / или карты маршрутизации. Я подозреваю, что пакеты подпрыгивают между различными интерфейсами
Я тоже пробовал это: Изменить MSS в iptables И есть уменьшение погрешности.
Спасибо заранее за любые предложения!
#### Router 1 - routing table
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.2.1 0.0.0.0 UG 202 0 0 eth0
192.168.2.0 0.0.0.0 255.255.255.0 U 202 0 0 eth0
192.168.5.0 192.168.22.2 255.255.255.0 UG 0 0 0 sl0
192.168.22.0 192.168.22.1 255.255.255.0 UG 0 0 0 sl0
192.168.22.2 0.0.0.0 255.255.255.255 UH 0 0 0 sl0
#### Router 2 – routing table
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.22.1 0.0.0.0 UG 0 0 0 sl0
192.168.5.0 0.0.0.0 255.255.255.0 U 200 0 0 eth0
192.168.22.0 192.168.22.2 255.255.255.0 UG 0 0 0 sl0
192.168.22.1 0.0.0.0 255.255.255.255 UH 0 0 0 sl0