NAT на ubuntu

SkandaL

Гуру форума
Регистрация
5 Ноя 2010
Сообщения
251
Реакции
59
Нужно дать машине в локальной сети с серым адресом инет. Есть сервер с белым адресом в той же сети, хочу его "занатить", подскажите как?

ubuntu server 10.04
 
Нужно дать машине в локальной сети с серым адресом инет. Есть сервер с белым адресом в той же сети, хочу его "занатить", подскажите как?

ubuntu server 10.04
GUI есть или нет? Спрашиваю, чтобы понять уровень подготовленности.
 
Разрешите направление пакетов. Чтобы сделать это, отредактируйте /etc/sysctl.conf. Откройте сам файл командой:
Код:
sudo gedit /etc/sysctl.conf
А затем вставьте следующую строчку:
Код:
net.ipv4.ip_forward=1

Затем добавляем правило для Для просмотра ссылки Войди или Зарегистрируйся:
Код:
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.155/24 -j MASQUERADE
где eth0 название вашего интерфейса через который выходите в интернет.
192.168.0.155 - конкретный ip, если нужна вся сетка, то уберите кусок "-s 192.168.0.155/24"

Также добавляем правила роутинга:
Код:
up route add -net 192.168.0.0 netmask 255.255.255.0 dev eth1
up route add -net 0.0.0.0 netmask 255.255.255.255 dev eth0
 
Или включаете firestarter, если сложно все, что выше написано, и делаете из под него.
 
GUI есть или нет? Спрашиваю, чтобы понять уровень подготовленности.
gui есть, но пользуюсь редко. Подготовка норм :)

Или включаете firestarter, если сложно все, что выше написано, и делаете из под него.
дать шару не подойдет

Также добавляем правила роутинга:
Тут я забыл уточнить, у меня только eth0

Собственно, еще раз более детально:

Инет на сервере с ubuntu 10.04 со статическим IP и одной сетевой картой (80.150.12.1 к примеру)
Рядом клиентская машина с серым IP (192.168.123.22)
Друг друга пингуют

на 192.168.123.22 нужен выход в интернет через 80.150.12.1

Обе машины удаленные, если сетка рухнет, то ехать в серверную...
 
Последнее редактирование модератором:
Всё как выше писали, включите форвардинг в systemctl.
Одна сетевая и две разные сети пингуются? Что-то вы не договариваете :)
У вас либо на одной сетевухе альясами прописаны две сети. Либо все же две сетевые карты :)
Еще как вариант, можно сделать нат не через маскарад, а snat:

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 80.150.12.1

-o eth0 - надо указать какая сетевая карта смотрит в сторону интернета с этой сетевухой.
 
Одна сетевая и две разные сети пингуются? Что-то вы не договариваете :)
Не разные, а белый адреса и серые.

По порядку, соединил их пачкордом:
Сервер1 eth0 - 80.150.12.1 (белый Static IP)
Сервер1 eth1 - 192.168.1.1 / 255.255.255.0 net.ipv4.ip_forward=1 / iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 192.168.1.22
Сервер2 (eth1) - 192.168.1.22 / 255.255.255.0 / 192.168.1.1

ifconfig говорит что используется ipv6, может по этому не работает?

Сделал: $ sudo ip addr add 192.168.1.1/24 dev eth1

Запинговался, но инета нет.

Сделал как описано Для просмотра ссылки Войди или Зарегистрируйся

Заработало но ооочень медленно :(
 
Последнее редактирование модератором:
Не разные, а белый адреса и серые.

По порядку, соединил их пачкордом:
Сервер1 eth0 - 80.150.12.1 (белый Static IP)
Сервер1 eth1 - 192.168.1.1 / 255.255.255.0 net.ipv4.ip_forward=1 / iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 192.168.1.22
Сервер2 (eth1) - 192.168.1.22 / 255.255.255.0 / 192.168.1.1

Сервер 1:
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -F POSTROUTING
sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADE
Все

PS Запинговался, но инета нет: у вас DNS на второй коробке настроен?
sudo echo "nameserver 8.8.8.8" > /etc/resolv.conf
 
при обрыве связи MASQUERADE сбрасывает записи о "соединении" в connection tracking (всё равно адрес, вероятно, будет другой и запись о "соединении" теряет смысл), а SNAT нет (после обрыва и восстановления связи "соединения" могут "подхватиться").

Рекомендую SNAT.
 
DNS роли никакой не играет, вообще для меня не понятно, зачем такие вопросы задавать на форуме? есть же куча мануловна эту тему
iptables настройка NAT и готово
 
Назад
Сверху