Как сбросить сеансы в таблице nat?

Для Centos 7 или RHEL 7 :Я столкнулся с этой проблемой при установке pycharm -community -2017.1.4 на RHEL 7.1. Ошибка была:

Unsupported Java Version: Cannot start under Java 1.7.0_75-mockbuild_2015_01_16_09_12-b00: Java 1.8 or later is required

Я обнаружил, что требуемая версия Java установлена, но не обнаружена. Затем я провел поиск в Интернете и использовал следующее для решения этой проблемы:

# alternatives --config java

выход:

Selection    Command
-----------------------------------------------
*  1           /usr/lib/jvm/java-1.7.0-openjdk1.7.0.75-2.5.4.2.el7_0.x86_64 /jre/bin/java
   2           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
 + 3           /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.31-2.b13.el7.x86_64/jre/bin/java
   4           /usr/java/jdk1.8.0_91/jre/bin/java

Enter to keep the current selection[+], or type selection number:

Теперь введите номер нужной версии и нажмите клавишу ввода следующим образом:

Enter to keep the current selection[+], or type selection number:4

Проверить версию Java:

# java -version

Выход:

java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
1
17.05.2021, 08:44
1 ответ

В дополнение к сетевому стеку Linux существует дополнительный «стек», предназначенный для изменения поведения, но максимально отделенный от сетевого стека :Netfilter. Эта функция позволяет клиентам (, все еще находящимся в ядре ), подключаться к нему для перехвата пакетов в различных стратегически важных местах в течение его жизни в сетевом стеке :, который используется для брандмауэра и выполнения NAT. Среди этих клиентов, но не только, есть iptables и nftables . Вот соответствующая схема потока пакетов в Netfilter и General Networking :

Packet flow in Netfilter and General Networking
Автор Ян Энгельхардт-Собственная работа, происхождение SVGPNG , CC BY -SA 3.0 , Ссылка

Хотя эта схема была создана с учетом iptables , она также применима к nftables . В этом ответе nftables играет ту же роль, что и iptables . Большая часть того, что здесь сказано о nftables , применимо к iptables(legacy или версии nft )и наоборот -.

Как видно, другим важным клиентом (, который действительно считается частью Netfilter ), является conntrack, который отслеживает все наблюдаемые потоки, а также выполняет большую часть обработки NAT, используя тот же поток. бухгалтерия. NAT на самом деле не обрабатывается nftables :, как написано в центре схемы,он будет получать только первый пакет каждого потока, чтобы иметь возможность задать правило изменения, которое будет определять судьбу всего потока (, а не отдельного пакета ):, как только информация будет сохранена в записи поиска conntrack, conntrackбудет обрабатывать его автономно, а цепочки типа ловушек natне будут видеть следующие пакеты из этого потока.

Таким образом, не имеет значения :, если поток уже обрабатывается conntrack, на него не повлияют никакие изменения в natправилах, даже если правил больше нет, просто потому, что эти правила больше не используются.

Что можно сделать, чтобы повлиять на этот поток, так это запросить непосредственно средство conntrack. Соответствующий инструмент для этого называетсяconntrack(из https://conntrack-tools.netfilter.org/).

Как писал ОП, его можно использовать для чтения информации о conntrackзаписи, но также можно использовать для обновления, создания, удаления или очистки (удаления всех )записей.

Можно выбрать степень детализации:

  • удалить все записи:

    conntrack -F
    
  • удалить все записи snat -ed (технически это означает, что адрес получателя ответа не совпадает с исходным адресом источника в таблице поиска):

    conntrack -D --src-nat
    
  • вплоть до хирургического удаления записи OP с указанием всех элементов, включая точный идентификатор ICMP (, чтобы это не нарушило идентичную команду ping, которая также была запущена до удаления правил NAT, поскольку идентификатор, безусловно, быть другим):

    # conntrack -D -p icmp --orig-src 192.168.2.100  --orig-dst 8.8.8.8 --reply-src 8.8.8.8 --reply-dst 192.168.1.10 --icmp-type 8 --icmp-code 0 --icmp-id 13006
    icmp     1 28 src=192.168.2.100 dst=8.8.8.8 type=8 code=0 id=13006 src=8.8.8.8 dst=192.168.1.10 type=0 code=0 id=13006 mark=0 use=1
    conntrack v1.4.6 (conntrack-tools): 1 flow entries have been deleted.
    

    (нет причин, по которым Ubuntu 18.04LTS conntrack1.4.4 ведет себя по-другому)

После удаления этой записи следующий пакет, который ранее был частью этого потока, будет рассматриваться как новый пакет. Находясь в состоянии NEW , он снова получит шанс быть измененным и пройдет по цепочкам nat. Так как переделки больше не будет,если это был выход, он пройдет через NAT -к следующему маршрутизатору, который, вероятно, отбросит его или передаст маршрутизатору, который отбросит его (из-за строгой переадресации обратного пути или из-за определенных правил маршрутизации для адреса RFC1918 ), если это был поздний входной ответ от 8.8.8.8, он будет локально маршрутизирован и проигнорирован сетевым стеком :команда ping прервана и теперь истекает время ожидания.

4
28.07.2021, 11:31

Теги

Похожие вопросы