IP передавая Ubuntu

Для моей работы у нас есть пространство тестирования с сервером Ubuntu, который является также маршрутизатором. Вчера мы поместили новое в стойку, и наше значение должно было сделать ее веб-сервером, который доступен из Интернета. Сервер/маршрутизатор Ubuntu был только маршрутизатором сначала, который перенаправляет трафик изнутри к внешней стороне, и это был сервер DHCP.

Чтобы заставить маршрутизатор направить к Интернету, мы использовали iptables для NAT:

*nat
:PREROUTING ACCEPT [323:23056]
:INPUT ACCEPT [59:6795]
:OUTPUT ACCEPT [31:2677]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o eth5 -j MASQUERADE
-A POSTROUTING -o eth2 -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [278:36336]
:FORWARD ACCEPT [18603:9408689]
:OUTPUT ACCEPT [105:12060]
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
COMMIT

Теперь мы хотим перенаправить некоторый трафик к веб-серверу, но у нас есть несколько общедоступных IP-адресов. Мы хотим направить весь трафик к IP-адресу xxx.xxx.xxx.14 к внутреннему IP-адресу 10.10.10.10.

Я пытался применить следующие правила в iptables:

iptables -t nat -A PREROUTING -d xxx.xxx.xxx.14 -j DNAT --to 10.10.10.10
iptables -t nat -A POSTROUTING -s 10.10.10.10 -j SNAT --to-source xxx.xxx.xxx.14

Но это, кажется, не добивается цели.

Так как мои навыки Ubuntu/Linux являются очень низкими, я не делаю точно, что я делаю неправильно. Кто-то может помочь мне с моей проблемой?

Значение состоит в том, что весь трафик к IP xxx.xxx.xxx.14 перенаправляется к 10.10.10.10. Все другие передают трафик, не должен быть затронут и может быть перенаправлен как нормальный трафик NAT к eth5.

eth2 внешний порт Ethernet. eth5 внутренний порт Ethernet.

1
задан 14 July 2015 в 21:41

1 ответ

Проверьте, включена ли IP передача, и если не затем включают его.

$ cat /proc/sys/net/ipv4/ip_forward
1


$ sudo su
# echo "1" > /proc/sys/net/ipv4/ip_forward
# exit
exit
$

РЕДАКТИРОВАНИЕ: хорошо. таким образом, ip_forward включен.

затем удаляют строку, которая действительно ПОДМЕНЯЕТ к eth5.
удостоверяются, что Ваша определенная команда POSTROUTING находится в наборе правила перед универсальным. Я говорю что это:

iptables -t nat -A POSTROUTING -s 10.10.10.10 -j SNAT --to-source xxx.xxx.xxx.14

, возможно, должен был бы быть этим:

iptables -t nat -I 1 POSTROUTING -s 10.10.10.10 -j SNAT --to-source xxx.xxx.xxx.14

(или подобный, я не проверял синтаксис) или если у Вас есть весь основной набор правила, поместите его перед другим.

Примечания:
С правилами политики по умолчанию ПРИНИМАЮТ, Вам не нужно Ваше условное выражение, ПРИНИМАЕТ.

0
ответ дан 4 October 2019 в 00:31

Другие вопросы по тегам:

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