Топология сети
[комп] -> [Роутер (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 на адрес сети, а не интерфейса ?
А что собственно требуется?
Почему не маскарад для всей 192.168.0/24?
> А что собственно требуется?
> Почему не маскарад для всей 192.168.0/24?Потому что для адреса 192.168.0.101 будет NAT на другой адрес из сети xx.xx.xx.0/24
Требуется занатить не на адрес интерфейса (xx.xx.xx.2), а на адреса этой сети, например xx.xx.xx.10
> Каково правильное решение для NAT на адрес сети, а не интерфейса ?такого решения в такой терминологии нет.
>> Каково правильное решение для NAT на адрес сети, а не интерфейса ?
> такого решения в такой терминологии нет.Возможно не так высказался.
Есть eth0 с адресом xx.xx.xx.2/24
Нужно:
192.168.0.100 занатить на адрес xx.xx.xx.10
192.168.0.101 занатить на адрес xx.xx.xx.11
>>> Каково правильное решение для NAT на адрес сети, а не интерфейса ?
>> такого решения в такой терминологии нет.
> Возможно не так высказался.
> Есть eth0 с адресом xx.xx.xx.2/24
> Нужно:
> 192.168.0.100 занатить на адрес xx.xx.xx.10
> 192.168.0.101 занатить на адрес xx.xx.xx.11откройте для себя tcpdump.
После этого что-нибудь да, возможно, поймете.
может на внешний интерфейс нужно еще один IP добавить xx.xx.xx.10 ?
> может на внешний интерфейс нужно еще один IP добавить xx.xx.xx.10 ?Что-что, два адреса на одном компе с одной сети ?)
>> может на внешний интерфейс нужно еще один IP добавить xx.xx.xx.10 ?
> Что-что, два адреса на одном компе с одной сети ?)Именно. Чтобы на ARP запрос, ему было что ответить.
>>> может на внешний интерфейс нужно еще один IP добавить xx.xx.xx.10 ?
>> Что-что, два адреса на одном компе с одной сети ?)
> Именно. Чтобы на ARP запрос, ему было что ответить.Это понятно и это не выход. Не делать же мне теперь 254 интерфейса.
> Это понятно и это не выход. Не делать же мне теперь 254
> интерфейса.Более фееричного бреда, чем Ваш - еще не встречал. А не хотите ли занатить на (например) ДНС Гугла? Который 8.8.8.8. Вы вообще понимаете то, что Вы несете?
>> Это понятно и это не выход. Не делать же мне теперь 254
>> интерфейса.
> Более фееричного бреда, чем Ваш - еще не встречал. А не
> хотите ли занатить на (например) ДНС Гугла? Который 8.8.8.8. Вы вообще
> понимаете то, что Вы несете?Сам не неси бреда.
Гражданину дали /24 сеть белых адресов. Он хочет, чтобы определенные хосты из локалки наружу ходили со своими белыми адресами, отличными от адреса самого шлюза. Это самый обычный НАТ.
>>> Это понятно и это не выход. Не делать же мне теперь 254
>>> интерфейса.
>> Более фееричного бреда, чем Ваш - еще не встречал. А не
>> хотите ли занатить на (например) ДНС Гугла? Который 8.8.8.8. Вы вообще
>> понимаете то, что Вы несете?
> Сам не неси бреда.
> Гражданину дали /24 сеть белых адресов. Он хочет, чтобы определенные хосты из
> локалки наружу ходили со своими белыми адресами, отличными от адреса самого
> шлюза. Это самый обычный НАТ.Да, верно. Всё так и есть.
>>> Это понятно и это не выход. Не делать же мне теперь 254
>>> интерфейса.
>> Более фееричного бреда, чем Ваш - еще не встречал. А не
>> хотите ли занатить на (например) ДНС Гугла? Который 8.8.8.8. Вы вообще
>> понимаете то, что Вы несете?
> Сам не неси бреда.
> Гражданину дали /24 сеть белых адресов. Он хочет, чтобы определенные хосты из
> локалки наружу ходили со своими белыми адресами, отличными от адреса самого
> шлюза. Это самый обычный НАТ.Если бы ему дали /24, то её бы замаршрутизировали на него.
Ему дали "немножко адресов", возможно из /24, а это уже совсем другая ситуация, "которая требует 254 интерфейса", ога.
> Если бы ему дали /24, то её бы замаршрутизировали на него.
> Ему дали "немножко адресов", возможно из /24, а это уже совсем другая
> ситуация, "которая требует 254 интерфейса", ога.Тем не менее мне выдали /21.
> Тем не менее мне выдали /21.Судя по вопросам - зря выдали. Вы даже до двух IP еще не доросли. Судя по глупейшим вопросам.
>[оверквотинг удален]
>>> Более фееричного бреда, чем Ваш - еще не встречал. А не
>>> хотите ли занатить на (например) ДНС Гугла? Который 8.8.8.8. Вы вообще
>>> понимаете то, что Вы несете?
>> Сам не неси бреда.
>> Гражданину дали /24 сеть белых адресов. Он хочет, чтобы определенные хосты из
>> локалки наружу ходили со своими белыми адресами, отличными от адреса самого
>> шлюза. Это самый обычный НАТ.
> Если бы ему дали /24, то её бы замаршрутизировали на него.
> Ему дали "немножко адресов", возможно из /24, а это уже совсем другая
> ситуация, "которая требует 254 интерфейса", ога.Что мешает, интересно, провайдеру взять один IP из /24 взять себе, а остальное отдать юзверю? Это такая неимоверно фантастическая ситуация? Или даже скорее клиенту купить блок и чтобы не морочится с BGP и роутером, _выдать_ один IP _провайдеру_, а остальное использовать самим.
Вас, граждане, что-то перемкнуло и вы накинулись на начинающего.
> Что мешает, интересно, провайдеру взять один IP из /24 взять себе, а
> остальное отдать юзверю? Это такая неимоверно фантастическая ситуация? Или даже скорее
> клиенту купить блок и чтобы не морочится с BGP и роутером,
> _выдать_ один IP _провайдеру_, а остальное использовать самим.
> Вас, граждане, что-то перемкнуло и вы накинулись на начинающего.PavelR, этот тоже безнадежен.
> Сам не неси бреда.
> Гражданину дали /24 сеть белых адресов. Он хочет, чтобы определенные хосты из
> локалки наружу ходили со своими белыми адресами, отличными от адреса самого
> шлюза. Это самый обычный НАТ.Глупость Вы как раз говорите. Он при этом не хочет поднимать интерфейсы, в которые это всё будет НАТиться. И куда тогда (даже в случае он вылетит) придет ответный пакет? Не пробовали подумать? Рекомендую - может озарение наступит.
>> Сам не неси бреда.
>> Гражданину дали /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
Вот в 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.123R2#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 безо всякого дополнительного интерфейса.
К сожалению сходу в линухе я такой конфиг не набросаю, но не сомневаюсь, что достаточно просто добиться того-же или с небольшими доделками
>>>> может на внешний интерфейс нужно еще один IP добавить xx.xx.xx.10 ?
>>> Что-что, два адреса на одном компе с одной сети ?)
>> Именно. Чтобы на ARP запрос, ему было что ответить.
> Это понятно и это не выход. Не делать же мне теперь 254
> интерфейса.Каких еще 254 интерфейса и почему не выход?
Внешние адреса добавляются к одному интерфейсу.
>>>>> может на внешний интерфейс нужно еще один 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 начинает работать
>[оверквотинг удален]
>> Каких еще 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 трансляциям? Может что-то сломал на входе?
> А на входе пакеты проверяются по текущим NAT трансляциям? Может что-то сломал
> на входе?Честно говоря не понял вопроса. Больше правил в цепочке nat нет.
>> А на входе пакеты проверяются по текущим NAT трансляциям? Может что-то сломал
>> на входе?
> Честно говоря не понял вопроса. Больше правил в цепочке nat нет.Тут меня поправили. Я не много не правильно выразился. NAT судя по сниферу то есть. Но нет обратных пакетов. На роутере провайдера не создается arp запись, но с моим route на 127.0.0.1 создается. Почему так ?
> Почему так ?"так надо".
Детали вам могут рассказать книги и показать tcpdump.
Я не понимаю, с чего лично я, а возможно и прочие участники форума, должны думать, что вы будете читать ответы и распинаться вам с ответами на ваши вопросы, если вы не прочитали ни книг, ни гугла, а также не воспользовались уже данными советами.
> Тут меня поправили. Я не много не правильно выразился. NAT судя
> по сниферу то есть. Но нет обратных пакетов. На роутере провайдера
> не создается arp запись, но с моим route на 127.0.0.1 создается.
> Почему так ?Потому что "гладиолус", тупица! Подумай головой, а не жопой!
>>> А на входе пакеты проверяются по текущим NAT трансляциям? Может что-то сломал
>>> на входе?
>> Честно говоря не понял вопроса. Больше правил в цепочке nat нет.
> Тут меня поправили. Я не много не правильно выразился. NAT судя
> по сниферу то есть. Но нет обратных пакетов. На роутере провайдера
> не создается arp запись, но с моим route на 127.0.0.1 создается.
> Почему так ?ARP запросы от провайдера долетают?
> ARP запросы от провайдера долетают?Даже если они долетают - на них (что очевидно) никто не отвечает. Конфиги своих "сисек" можешь засунуть себе в ...ухо.
НАТить можно только на СУЩЕСТВУЮЩИЕ (в виде поднятого интерфейса) IP-адреса. У Вас же он, судя по Вашему описанию РЕАЛЬНО поднят только ОДИН. Выделили Вам /24, /21 или даже /16 сеть - в данном случае совершенно неважно.
Про ARP Вам тоде верно указали. Если Вы не понимаете суть этого протокола (и соответствующего уровня сетевой модели) - мне Вас искренне жаль.
>[оверквотинг удален]
> 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 к твоей сети.
Это пробовал?
> Это пробовал?
> http://www.agix.com.au/blog/?p=2232"Сказочный дол...б! Зачем его только из больницы выпцстили" (с) "Даун-хаус". У него проблема не в НАТе, как в таковом - судя по сообщениям в ветке, это уже до многих дошло, кроме тебя. Но ты продолжай и дальше тупить и радовать новостями со своих GNS
> "Сказочный дол...б! Зачем его только из больницы выпцстили" (с) "Даун-хаус". У
> него проблема не в НАТе, как в таковом - судя по
> сообщениям в ветке, это уже до многих дошло, кроме тебя. Но
> ты продолжай и дальше тупить и радовать новостями со своих GNSТем менее из всех присутствующих, на данном форуме, именно он мне помог.
>> Это пробовал?
>> http://www.agix.com.au/blog/?p=2232
> "Сказочный дол...б! Зачем его только из больницы выпцстили" (с) "Даун-хаус". У
> него проблема не в НАТе, как в таковом - судя по
> сообщениям в ветке, это уже до многих дошло, кроме тебя. Но
> ты продолжай и дальше тупить и радовать новостями со своих GNSТебя откуда выпустили, чудо?
> Тебя откуда выпустили, чудо?Вопрос в том, откуда выпустили тебя? Тупого, но решительного.
ShyLion, спасибо вам большое. С проблемой, можно сказать, разобрался. Сейчас всё работает как и должно.
> ShyLion, спасибо вам большое. С проблемой, можно сказать, разобрался. Сейчас всё работает
> как и должно.Ты уж поделись как победил. Для потомков.