URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID6
Нить номер: 1536
[ Назад ]

Исходное сообщение
"iptables nat"

Отправлено Sasha , 12-Ноя-14 06:00 
Топология сети
[комп]                    ->   [Роутер (linux)]
192.168.0.100/24     192.168.0.1/24  
                                     xx.xx.xx.2/24

На роутере делаю NAT на адрес интерфейса.
iptables -t nat -A POSTROUTING -s 192.168.0.100  -o eth0 -j SNAT --to-source xx.xx.xx.2
Всё замечательно работает.

Делаю NAT на другой адрес сети
iptables -t nat -A POSTROUTING -s 192.168.0.100  -o eth0 -j SNAT --to-source xx.xx.xx.10
Не натится, пока не добавлю странный route:
route add -net xx.xx.xx.0 netmask 255.255.255.0 gw 127.0.0.1

Почему так ? Каково правильное решение для NAT на адрес сети, а не интерфейса ?


Содержание

Сообщения в этом обсуждении
"iptables nat"
Отправлено DeerFriend , 12-Ноя-14 10:21 
А что собственно требуется?
Почему не маскарад для всей 192.168.0/24?

"iptables nat"
Отправлено Sasha , 12-Ноя-14 10:33 
> А что собственно требуется?
> Почему не маскарад для всей 192.168.0/24?

Потому что для адреса 192.168.0.101 будет NAT на другой адрес из сети xx.xx.xx.0/24

Требуется занатить не на адрес интерфейса (xx.xx.xx.2), а на адреса этой сети, например xx.xx.xx.10


"iptables nat"
Отправлено PavelR , 12-Ноя-14 12:20 
> Каково правильное решение для NAT на адрес сети, а не интерфейса ?

такого решения в такой терминологии нет.



"iptables nat"
Отправлено Sasha , 12-Ноя-14 12:40 
>> Каково правильное решение для NAT на адрес сети, а не интерфейса ?
> такого решения в такой терминологии нет.

Возможно не так высказался.
Есть eth0 с адресом xx.xx.xx.2/24
Нужно:
192.168.0.100 занатить на адрес xx.xx.xx.10
192.168.0.101 занатить на адрес xx.xx.xx.11


"iptables nat"
Отправлено PavelR , 12-Ноя-14 13:03 
>>> Каково правильное решение для NAT на адрес сети, а не интерфейса ?
>> такого решения в такой терминологии нет.
> Возможно не так высказался.
> Есть eth0 с адресом xx.xx.xx.2/24
> Нужно:
> 192.168.0.100 занатить на адрес xx.xx.xx.10
> 192.168.0.101 занатить на адрес xx.xx.xx.11

откройте для себя tcpdump.
После этого что-нибудь да, возможно, поймете.


"iptables nat"
Отправлено ShyLion , 12-Ноя-14 13:54 
может на внешний интерфейс нужно еще один IP добавить xx.xx.xx.10 ?


"iptables nat"
Отправлено Sasha , 12-Ноя-14 14:00 
> может на внешний интерфейс нужно еще один IP добавить xx.xx.xx.10 ?

Что-что, два адреса на одном компе с одной сети ?)


"iptables nat"
Отправлено ShyLion , 12-Ноя-14 14:06 
>> может на внешний интерфейс нужно еще один IP добавить xx.xx.xx.10 ?
> Что-что, два адреса на одном компе с одной сети ?)

Именно. Чтобы на ARP запрос, ему было что ответить.


"iptables nat"
Отправлено Аноним , 12-Ноя-14 14:20 
>>> может на внешний интерфейс нужно еще один IP добавить xx.xx.xx.10 ?
>> Что-что, два адреса на одном компе с одной сети ?)
> Именно. Чтобы на ARP запрос, ему было что ответить.

Это понятно и это не выход. Не делать же мне теперь 254 интерфейса.


"iptables nat"
Отправлено Аноним , 12-Ноя-14 15:23 
> Это понятно и это не выход. Не делать же мне теперь 254
> интерфейса.

Более фееричного бреда, чем Ваш - еще не встречал. А не хотите ли занатить на (например) ДНС Гугла? Который 8.8.8.8. Вы вообще понимаете то, что Вы несете?



"iptables nat"
Отправлено ShyLion , 12-Ноя-14 15:31 
>> Это понятно и это не выход. Не делать же мне теперь 254
>> интерфейса.
>  Более фееричного бреда, чем Ваш - еще не встречал. А не
> хотите ли занатить на (например) ДНС Гугла? Который 8.8.8.8. Вы вообще
> понимаете то, что Вы несете?

Сам не неси бреда.
Гражданину дали /24 сеть белых адресов. Он хочет, чтобы определенные хосты из локалки наружу ходили со своими белыми адресами, отличными от адреса самого шлюза. Это самый обычный НАТ.


"iptables nat"
Отправлено Аноним , 12-Ноя-14 15:58 
>>> Это понятно и это не выход. Не делать же мне теперь 254
>>> интерфейса.
>>  Более фееричного бреда, чем Ваш - еще не встречал. А не
>> хотите ли занатить на (например) ДНС Гугла? Который 8.8.8.8. Вы вообще
>> понимаете то, что Вы несете?
> Сам не неси бреда.
> Гражданину дали /24 сеть белых адресов. Он хочет, чтобы определенные хосты из
> локалки наружу ходили со своими белыми адресами, отличными от адреса самого
> шлюза. Это самый обычный НАТ.

Да, верно. Всё так и есть.


"iptables nat"
Отправлено PavelR , 12-Ноя-14 17:15 
>>> Это понятно и это не выход. Не делать же мне теперь 254
>>> интерфейса.
>>  Более фееричного бреда, чем Ваш - еще не встречал. А не
>> хотите ли занатить на (например) ДНС Гугла? Который 8.8.8.8. Вы вообще
>> понимаете то, что Вы несете?
> Сам не неси бреда.
> Гражданину дали /24 сеть белых адресов. Он хочет, чтобы определенные хосты из
> локалки наружу ходили со своими белыми адресами, отличными от адреса самого
> шлюза. Это самый обычный НАТ.

Если бы ему дали /24, то её бы замаршрутизировали на него.
Ему дали "немножко адресов", возможно из /24, а это уже совсем другая ситуация, "которая требует 254 интерфейса", ога.


"iptables nat"
Отправлено Sasha , 12-Ноя-14 17:18 
> Если бы ему дали /24, то её бы замаршрутизировали на него.
> Ему дали "немножко адресов", возможно из /24, а это уже совсем другая
> ситуация, "которая требует 254 интерфейса", ога.

Тем не менее мне выдали /21.


"iptables nat"
Отправлено Аноним , 12-Ноя-14 17:57 
> Тем не менее мне выдали /21.

Судя по вопросам - зря выдали. Вы даже до двух IP еще не доросли. Судя по глупейшим вопросам.



"iptables nat"
Отправлено ShyLion , 13-Ноя-14 14:10 
>[оверквотинг удален]
>>>  Более фееричного бреда, чем Ваш - еще не встречал. А не
>>> хотите ли занатить на (например) ДНС Гугла? Который 8.8.8.8. Вы вообще
>>> понимаете то, что Вы несете?
>> Сам не неси бреда.
>> Гражданину дали /24 сеть белых адресов. Он хочет, чтобы определенные хосты из
>> локалки наружу ходили со своими белыми адресами, отличными от адреса самого
>> шлюза. Это самый обычный НАТ.
> Если бы ему дали /24, то её бы замаршрутизировали на него.
> Ему дали "немножко адресов", возможно из /24, а это уже совсем другая
> ситуация, "которая требует 254 интерфейса", ога.

Что мешает, интересно, провайдеру взять один IP из /24 взять себе, а остальное отдать юзверю? Это такая неимоверно фантастическая ситуация? Или даже скорее клиенту купить блок и чтобы не морочится с BGP и роутером, _выдать_ один IP _провайдеру_, а остальное использовать самим.
Вас, граждане, что-то перемкнуло и вы накинулись на начинающего.


"iptables nat"
Отправлено Аноним , 13-Ноя-14 16:39 
> Что мешает, интересно, провайдеру взять один IP из /24 взять себе, а
> остальное отдать юзверю? Это такая неимоверно фантастическая ситуация? Или даже скорее
> клиенту купить блок и чтобы не морочится с BGP и роутером,
> _выдать_ один IP _провайдеру_, а остальное использовать самим.
> Вас, граждане, что-то перемкнуло и вы накинулись на начинающего.

PavelR, этот тоже безнадежен.



"iptables nat"
Отправлено SuSe , 12-Ноя-14 21:13 
> Сам не неси бреда.
> Гражданину дали /24 сеть белых адресов. Он хочет, чтобы определенные хосты из
> локалки наружу ходили со своими белыми адресами, отличными от адреса самого
> шлюза. Это самый обычный НАТ.

Глупость Вы как раз говорите. Он при этом не хочет поднимать интерфейсы, в которые это всё будет НАТиться. И куда тогда (даже в случае он вылетит) придет ответный пакет? Не пробовали подумать? Рекомендую - может озарение наступит.



"iptables nat"
Отправлено ShyLion , 13-Ноя-14 07:11 
>> Сам не неси бреда.
>> Гражданину дали /24 сеть белых адресов. Он хочет, чтобы определенные хосты из
>> локалки наружу ходили со своими белыми адресами, отличными от адреса самого
>> шлюза. Это самый обычный НАТ.
>  Глупость Вы как раз говорите. Он при этом не хочет поднимать
> интерфейсы, в которые это всё будет НАТиться. И куда тогда (даже
> в случае он вылетит) придет ответный пакет? Не пробовали подумать? Рекомендую
> - может озарение наступит.

Я смотрю тут богато специалистов разного уровня продвинутости.

Вот тебе рабочий конфиг кисы.


interface gi0/0
ip address 10.10.10.1 255.255.255.0
ip nat inside
!
interface gi0/1
ip address a.b.c.1 255.255.255.0
ip nat outside
!
ip nat inside source static 10.10.10.2 a.b.c.2
!
ip route 0.0.0.0 0.0.0.0 a.b.c.254
!

Давай, раскажи мне как это работать не будет, если вся сеть a.b.c.0/24 моя, кроме .254


"iptables nat"
Отправлено ShyLion , 13-Ноя-14 11:46 


Вот в GNS специально для вас всех собрал стендик:


interface FastEthernet0/0
ip address 10.0.0.2 255.255.255.0
ip nat inside
ip virtual-reassembly
duplex auto
speed auto
!
interface FastEthernet0/1
ip address 172.16.0.2 255.255.255.0
ip nat outside
ip virtual-reassembly
duplex auto
speed auto
!
ip route 0.0.0.0 0.0.0.0 172.16.0.254
!
!
ip nat inside source static 10.0.0.1 172.16.0.123

R2#sho ip nat translations
Pro Inside global      Inside local       Outside local      Outside global
icmp 172.16.0.123:0    10.0.0.1:0         192.168.1.1:0      192.168.1.1:0
icmp 172.16.0.123:1    10.0.0.1:1         192.168.1.1:1      192.168.1.1:1
--- 172.16.0.123       10.0.0.1           ---                ---
R2#sho arp
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  10.0.0.1                0   cc00.1638.0000  ARPA   FastEthernet0/0
Internet  10.0.0.2                -   cc01.1638.0000  ARPA   FastEthernet0/0
Internet  172.16.0.2              -   cc01.1638.0001  ARPA   FastEthernet0/1
Internet  172.16.0.123            -   cc01.1638.0001  ARPA   FastEthernet0/1
Internet  172.16.0.254            0   cc02.1698.0000  ARPA   FastEthernet0/1

Как видно, сиська сама в свою ARP таблицу добавила 172.16.0.123 безо всякого дополнительного интерфейса.

К сожалению сходу в линухе я такой конфиг не набросаю, но не сомневаюсь, что достаточно просто добиться того-же или с небольшими доделками


"iptables nat"
Отправлено ShyLion , 12-Ноя-14 15:26 
>>>> может на внешний интерфейс нужно еще один IP добавить xx.xx.xx.10 ?
>>> Что-что, два адреса на одном компе с одной сети ?)
>> Именно. Чтобы на ARP запрос, ему было что ответить.
> Это понятно и это не выход. Не делать же мне теперь 254
> интерфейса.

Каких еще 254 интерфейса и почему не выход?

Внешние адреса добавляются к одному интерфейсу.


"iptables nat"
Отправлено Sasha , 12-Ноя-14 16:04 
>>>>> может на внешний интерфейс нужно еще один IP добавить xx.xx.xx.10 ?
>>>> Что-что, два адреса на одном компе с одной сети ?)
>>> Именно. Чтобы на ARP запрос, ему было что ответить.
>> Это понятно и это не выход. Не делать же мне теперь 254
>> интерфейса.
> Каких еще 254 интерфейса и почему не выход?
> Внешние адреса добавляются к одному интерфейсу.

А если бы речь шла о /21 ?) Я не думаю что это правильный выход. Более того, я ведь могу указать NAT и так:
iptables -t nat -A POSTROUTING -j SNAT --to-source xx.xx.1.1-xx.xx.127.254
И это дается в примерах по NAT. Там не указано, что нужно создавать N адресов, это явно не правильно. А вот что именно нужно для правильно работы я нигде не могу найти. И не понятно, почему при странном route NAT начинает работать


"iptables nat"
Отправлено ShyLion , 12-Ноя-14 16:18 
>[оверквотинг удален]
>> Каких еще 254 интерфейса и почему не выход?
>> Внешние адреса добавляются к одному интерфейсу.
> А если бы речь шла о /21 ?) Я не думаю что
> это правильный выход. Более того, я ведь могу указать NAT и
> так:
> iptables -t nat -A POSTROUTING -j SNAT --to-source xx.xx.1.1-xx.xx.127.254
> И это дается в примерах по NAT. Там не указано, что нужно
> создавать N адресов, это явно не правильно. А вот что именно
> нужно для правильно работы я нигде не могу найти. И не
> понятно, почему при странном route NAT начинает работать

А на входе пакеты проверяются по текущим NAT трансляциям? Может что-то сломал на входе?


"iptables nat"
Отправлено Sasha , 12-Ноя-14 16:19 
> А на входе пакеты проверяются по текущим NAT трансляциям? Может что-то сломал
> на входе?

Честно говоря не понял вопроса. Больше правил в цепочке nat нет.


"iptables nat"
Отправлено Sasha , 12-Ноя-14 16:48 
>> А на входе пакеты проверяются по текущим NAT трансляциям? Может что-то сломал
>> на входе?
> Честно говоря не понял вопроса. Больше правил в цепочке nat нет.

Тут меня поправили. Я не  много не правильно выразился. NAT судя по сниферу то есть. Но нет обратных пакетов. На роутере провайдера не создается arp запись, но с моим route на 127.0.0.1 создается. Почему так ?


"iptables nat"
Отправлено PavelR , 12-Ноя-14 17:18 
> Почему так ?

"так надо".

Детали вам могут рассказать книги и показать tcpdump.

Я не понимаю, с чего лично я, а возможно и прочие участники форума, должны думать, что вы будете читать ответы и распинаться вам с ответами на ваши вопросы, если вы не прочитали ни книг, ни гугла, а также не воспользовались уже данными советами.



"iptables nat"
Отправлено Аноним , 12-Ноя-14 21:15 
> Тут меня поправили. Я не  много не правильно выразился. NAT судя
> по сниферу то есть. Но нет обратных пакетов. На роутере провайдера
> не создается arp запись, но с моим route на 127.0.0.1 создается.
> Почему так ?

Потому что "гладиолус", тупица! Подумай головой, а не жопой!



"iptables nat"
Отправлено ShyLion , 12-Ноя-14 21:50 
>>> А на входе пакеты проверяются по текущим NAT трансляциям? Может что-то сломал
>>> на входе?
>> Честно говоря не понял вопроса. Больше правил в цепочке nat нет.
> Тут меня поправили. Я не  много не правильно выразился. NAT судя
> по сниферу то есть. Но нет обратных пакетов. На роутере провайдера
> не создается arp запись, но с моим route на 127.0.0.1 создается.
> Почему так ?

ARP запросы от провайдера долетают?


"iptables nat"
Отправлено Аноним , 13-Ноя-14 12:09 
> ARP запросы от провайдера долетают?

Даже если они долетают - на них (что очевидно) никто не отвечает. Конфиги своих "сисек" можешь засунуть себе в ...ухо.



"iptables nat"
Отправлено SuSe , 12-Ноя-14 21:07 
НАТить можно только на СУЩЕСТВУЮЩИЕ (в виде поднятого интерфейса) IP-адреса. У Вас же он, судя по Вашему описанию РЕАЛЬНО поднят только ОДИН. Выделили Вам /24, /21 или даже /16 сеть - в данном случае совершенно неважно.

"iptables nat"
Отправлено SuSe , 12-Ноя-14 21:11 
Про ARP Вам тоде верно указали. Если Вы не понимаете суть этого протокола (и соответствующего уровня сетевой модели) - мне Вас искренне жаль.

"iptables nat"
Отправлено izyk , 12-Ноя-14 23:45 
>[оверквотинг удален]
>    xx.xx.xx.2/24
> На роутере делаю NAT на адрес интерфейса.
> iptables -t nat -A POSTROUTING -s 192.168.0.100  -o eth0 -j SNAT
> --to-source xx.xx.xx.2
> Всё замечательно работает.
> Делаю NAT на другой адрес сети
> iptables -t nat -A POSTROUTING -s 192.168.0.100  -o eth0 -j SNAT
> --to-source xx.xx.xx.10
> Не натится, пока не добавлю странный route:
> route add -net xx.xx.xx.0 netmask 255.255.255.0 gw 127.0.0.1

Ну, это не очень странно, странно, что сработал, этот костыль,
просто совпадение, объяснять долго, оставлять так не советую.
Должно быть что-то типа:
route add -net xx.xx.xx.3-254 netmask 255.255.255.0 gw 192.168.0.1
синтаксис не правильный, не проверял.

> Почему так ? Каково правильное решение для NAT на адрес сети, а
> не интерфейса ?

NAT здесь, не рекомендую применять.
Назначить eth0 маску xx.xx.xx.2/30 или 32 оставшиеся адреса xx.xx.xx.0/24,
выдавать прям в своей сети eth1(или что там внутри) xx.xx.xx.4/26.
Рассчеты не правильные я указал идею.
Если не хочешь давать эти адреса в своей сети подыми алиас:
eth1:0 xx.xx.xx.4/26.

Главное чтобы был маршрут для xx.xx.xx.3-254 к твоей сети.


"iptables nat"
Отправлено ShyLion , 13-Ноя-14 11:45 
Это пробовал?

http://www.agix.com.au/blog/?p=2232


"iptables nat"
Отправлено Аноним , 13-Ноя-14 12:12 
> Это пробовал?
> http://www.agix.com.au/blog/?p=2232

"Сказочный дол...б! Зачем его только из больницы выпцстили" (с) "Даун-хаус". У него проблема не в НАТе, как в таковом - судя по сообщениям в ветке, это уже до многих дошло, кроме тебя. Но ты продолжай и дальше тупить и радовать новостями со своих GNS



"iptables nat"
Отправлено Sasha , 13-Ноя-14 12:17 
>  "Сказочный дол...б! Зачем его только из больницы выпцстили" (с) "Даун-хаус". У
> него проблема не в НАТе, как в таковом - судя по
> сообщениям в ветке, это уже до многих дошло, кроме тебя. Но
> ты продолжай и дальше тупить и радовать новостями со своих GNS

Тем менее из всех присутствующих, на данном форуме, именно он мне помог.


"iptables nat"
Отправлено ShyLion , 13-Ноя-14 12:36 
>> Это пробовал?
>> http://www.agix.com.au/blog/?p=2232
>  "Сказочный дол...б! Зачем его только из больницы выпцстили" (с) "Даун-хаус". У
> него проблема не в НАТе, как в таковом - судя по
> сообщениям в ветке, это уже до многих дошло, кроме тебя. Но
> ты продолжай и дальше тупить и радовать новостями со своих GNS

Тебя откуда выпустили, чудо?


"iptables nat"
Отправлено Аноним , 13-Ноя-14 15:16 
> Тебя откуда выпустили, чудо?

Вопрос в том, откуда выпустили тебя? Тупого, но решительного.



"iptables nat"
Отправлено Sasha , 13-Ноя-14 12:15 
ShyLion, спасибо вам большое. С проблемой, можно сказать, разобрался. Сейчас всё работает как и должно.

"iptables nat"
Отправлено ShyLion , 13-Ноя-14 12:36 
> ShyLion, спасибо вам большое. С проблемой, можно сказать, разобрался. Сейчас всё работает
> как и должно.

Ты уж поделись как победил. Для потомков.