nashvill Posted February 8, 2011 Posted February 8, 2011 Уткнулся в странную ситуацию, а именно: есть сервер на котором подняли isc dhcp v6 (специально для раздачи по dhcpv6 ipv6 адресов) сервер находится в другом L2 сегменте относительно потенциальных ipv6 клиентов. Клиент запрашивает IPv6 адрес - его отлавливает маршрутизатор и делает ipv6 dhcp-relay на ipv6 адрес где крутится isc dhcpv6. dhcpv6 видит этот запрос и отправляет ответ. Запущенный wireshark на клиентском компе так же видит как первоначальный запрос клиента, так и ответ сервера. Однако ничего не происходит (Ipv6 адрес не назначается) Изменяем условие и ставим тот же сервер, так же настроенный но в тот же L2 сегмент где клиент. Клиент запрашивает ipv6 адрес, его точно так же видит сервер и посылает ответ. Тем же wireshark'ом точно так же видим полученный от сервера ответ и хлоп, комп получает ipv6 адрес, адрес ДНС сервера и т.п. Единственное отличие между сдампленными через wireshark пакетами я увидел лишь в том, что сервер в качестве source port своих ответов использует 547й порт (dhcpv6-server), а в случае если есть релей в виде роутера, то релей отправляет пакеты от сервера в сторону клиента однако с source port 546 (dhcpv6-client). Кто сталкивался с раздачей ipv6 адресов клиентам без использования всяких pppoe и т.п. ? Вставить ник Quote
SokolovS Posted February 8, 2011 Posted February 8, 2011 то релей отправляет пакеты от сервера в сторону клиента однако с source port 546 (dhcpv6-client). Вот это не есть нормально! Клиент как раз смотрит только пакеты с src port 547 Вставить ник Quote
darkagent Posted February 9, 2011 Posted February 9, 2011 (edited) то релей отправляет пакеты от сервера в сторону клиента однако с source port 546 (dhcpv6-client).Вот это не есть нормально! Клиент как раз смотрит только пакеты с src port 547 однако ж, обратите внимание на то как работает релей в ipv4 - точно так же, через релей пакетики идут с dhcp-client сурсом, вместо dhcp-server, но при этом все работает. тут больше похоже на недопил со стороны dhcpv6-клиента в windows.точнее он просто не готов к возможному существованию dhcpv6 relay. http://social.technet.microsoft.com/Forums...9a-24e541a224ed - тут эта беда обсуждалась, но решения так и не последовало. гугл вобще завален темами с "dhcpv6 relay problem" заголовками ;) Edited February 9, 2011 by darkagent Вставить ник Quote
nashvill Posted February 9, 2011 Author Posted February 9, 2011 Итог таков: Если используется dhcpv6 relay, то Встроенный dhcpv6 клиент от Windows не может по каким-то своим причинам обработать ответ от dhcpv6 сервера, назначить адрес на интерфейсе и начать использовать ipv6 DNS сервера. Альтернативный dhcpv6 клиент (например dibbler dhcpv6) под Windows без проблем получает все настройки и все работает. wide-dhcpv6-client под убунтой так же без проблем принимает и обрабатывает ответы сервера и все корректно назначает. В ближайшие пару дней проведу эксперимент будет ли роутер (домашний) с прошивкой поддерживающей ipv6 корректно получать не только для себя адрес, но и блок для устройств за собой. О результатах отпишусь. Вставить ник Quote
nashvill Posted February 9, 2011 Author Posted February 9, 2011 windows какой? Windows 7 Вставить ник Quote
Ivan_83 Posted February 9, 2011 Posted February 9, 2011 Клиент запрашивает IPv6 адрес - его отлавливает маршрутизатор и делает ipv6 dhcp-relay на ipv6 адрес где крутится isc dhcpv6.dhcpv6 видит этот запрос и отправляет ответ. Если проблема только в адресах - перепишите релей чтобы выдавал то что нужно. однако ж, обратите внимание на то как работает релей в ipv4 - точно так же, через релей пакетики идут с dhcp-client сурсом, вместо dhcp-server, но при этом все работает. тут больше похоже на недопил со стороны dhcpv6-клиента в windows.точнее он просто не готов к возможному существованию dhcpv6 relay. DHCPv4 - сильно другой протокол, чем DHCPv6, не нужно их сравнивать и хотеть полной идентичности.DHCPv4 - наследник BOOTP, от него он получил полностью заголовок на 236 байт, которые почти всегда и полностью в нулях, дальше там 4 байта волшебная печенька и дальше расширения вендоров, которые потом стали называть опции. В DHCPv6 изначально нет заголовка такого большого, он там компактный-почти отсуствует, почти сразу идут опции. Кроме того для релеея в в6 выделены специально типы-коды сообщений, а в в4 таких кодов нет, там просто есть поле с адресом релей агента переславшего пакет те фактически там IP который стоит заголовке ип пакета. PS: не раньше чем месяца через 3 напишу под дхцпв6 приличный снифер-дампер-клиент пакетов с возможностью запросы слать, примерно как щас заканчиваю под в4 писать. Вставить ник Quote
nashvill Posted February 10, 2011 Author Posted February 10, 2011 Клиент запрашивает IPv6 адрес - его отлавливает маршрутизатор и делает ipv6 dhcp-relay на ipv6 адрес где крутится isc dhcpv6.dhcpv6 видит этот запрос и отправляет ответ. Если проблема только в адресах - перепишите релей чтобы выдавал то что нужно. релей на хардверном роутере, переписать мягко говоря затруднительно. провел дополнительный эксперимент - вместо компа в нем участвовал домашний роутер с поддержкой ipv6 и комп подключенный к роутеру. роутер удачно получил айпишник для себя и блок для устройств за собой. винда от роутера так же удачно получила адрес. впрочем и тут не без косяка - железный роутер который выступал релеем не создал маршрут выделенного блока на домашний роутер, но это уже вопрос к разработчикам железного роутера. навскидку - все что связано с ипв6 в сетях пока либо работает на бумаге либо чисто номинально с минимальным функционалом. Вставить ник Quote
ilili Posted February 10, 2011 Posted February 10, 2011 nashvill, если не трудно, dhcpd6.conf можете показать ? Вставить ник Quote
nashvill Posted February 10, 2011 Author Posted February 10, 2011 nashvill, если не трудно, dhcpd6.conf можете показать ? authoritative; log-facility local7; ddns-update-style none; ignore client-updates; option dhcp-renewal-time 3600; option dhcp-rebinding-time 7200; option dhcp6.rapid-commit; option dhcp6.name-servers 2a00:11d8::2; option dhcp6.domain-search "tiera.org"; option dhcp6.preference 255; option dhcp6.info-refresh-time 21600; dhcpv6-lease-file-name "/var/db/dhcpd6.leases"; subnet6 2a00:11d8::/126 { } subnet6 2a00:11d8:1601::/64 { range6 2a00:11d8:1601::/64; } Вставить ник Quote
Ivan_83 Posted February 10, 2011 Posted February 10, 2011 впрочем и тут не без косяка - железный роутер который выступал релеем не создал маршрут выделенного блока на домашний роутер, но это уже вопрос к разработчикам железного роутера. А где написано что дхцп релей должен вообще что то знать о маршрутах? Вставить ник Quote
nashvill Posted February 10, 2011 Author Posted February 10, 2011 впрочем и тут не без косяка - железный роутер который выступал релеем не создал маршрут выделенного блока на домашний роутер, но это уже вопрос к разработчикам железного роутера.А где написано что дхцп релей должен вообще что то знать о маршрутах? Если ничего не путаю, то здесь http://www.ietf.org/rfc/rfc3633.txt Впрочем, а как вы иначе себе представляете вариант когда, например, абонентский роутер получает айпишник и блок адресов для устройств за роутером? Вы сами ручками (или скриптом) будете ползать по своим роутерам и прописывать маршрут на эту подсеть? Вставить ник Quote
Ivan_83 Posted February 10, 2011 Posted February 10, 2011 Если ничего не путаю, то здесь http://www.ietf.org/rfc/rfc3633.txt 14. Relay agent behavior A relay agent forwards messages containing Prefix Delegation options in the same way as described in section 20, "Relay Agent Behavior" of RFC 3315. If a delegating router communicates with a requesting router through a relay agent, the delegating router may need a protocol or other out-of-band communication to add routing information for delegated prefixes into the provider edge router. Вы всё таки покажите с чего вы взяли что релей агент чего то ещё должен, кроме как пересылать, а особенно с маршрутами делать. Лично я себе могу много всего представить. Начиная с L2, которому нет дела до содержимого эзернет кадров, заканчивая примерно тем же самым на адсл в качестве L1. А конкретно для вашего случая: роутер клиента получает блок адресов, из которого берёт себе ИП а остальное отдаёт в локалку - устройствам за роутером, дальше он роутит. Ну да, на внешнем у него будет что вы захотите, на внутреннем то что он сам пожелает, как вариант ленивые китайцы сделают линклокал без вариантов. В данном случае это никаким боком не релей агент будет, потому что в локалку он будет отдавать со своего дхцп, который вам ничего рассказывать о лизах не станет. Вставить ник Quote
Lynx10 Posted February 10, 2011 Posted February 10, 2011 провел дополнительный эксперимент - вместо компа в нем участвовал домашний роутер с поддержкой ipv6 и комп подключенный к роутеру.роутер удачно получил айпишник для себя и блок для устройств за собой. винда от роутера так же удачно получила адрес. а детальней можна как вы выдали подсеть на домашний роутер и как он это скушал чтобы выдать из той получённой подсети адрес ПК Вставить ник Quote
nashvill Posted February 11, 2011 Author Posted February 11, 2011 (edited) А конкретно для вашего случая: роутер клиента получает блок адресов, из которого берёт себе ИП а остальное отдаёт в локалку - устройствам за роутером, дальше он роутит. Ну да, на внешнем у него будет что вы захотите, на внутреннем то что он сам пожелает, как вариант ленивые китайцы сделают линклокал без вариантов.В данном случае это никаким боком не релей агент будет, потому что в локалку он будет отдавать со своего дхцп, который вам ничего рассказывать о лизах не станет. Роутер абонента получает один адрес для себя и блок из которого раздает адреса устройствам за ним. L2 не является delegating router. А в вашем случае - если роутеру выдать ОДИН блок, то при всем желании он не сможет из ОДНОГО блока повесить два адреса (один в сторону оператора, а другой в сторону устройств) на свои интерфейсы. Исходя и обсуждений в интернете по поводу PD и dhcpv6 relay роутер как раз таки ДОЛЖЕН создать такой маршрут. провел дополнительный эксперимент - вместо компа в нем участвовал домашний роутер с поддержкой ipv6 и комп подключенный к роутеру.роутер удачно получил айпишник для себя и блок для устройств за собой. винда от роутера так же удачно получила адрес. а детальней можна как вы выдали подсеть на домашний роутер и как он это скушал чтобы выдать из той получённой подсети адрес ПК Тут обсуждение прошивки для домашнего роутера. Как раз один из наших абонентов с нами экспериментирует. http://wl500g.info/showthread.php?t=24357 А в настройках dhcp6 это выглядит так: host 32577844 { host-identifier option dhcp6.client-id 0:3:0:1:e0:cb:4e:f7:7f:58; fixed-address6 2a00:11d8:1601:0:1111:1111:1111:1111; fixed-prefix6 2a00:11d8:1601:7ff8:: /64; } Edited February 11, 2011 by nashvill Вставить ник Quote
ilili Posted February 11, 2011 Posted February 11, 2011 (edited) nashvill, попробовал собрать лабу с вашим dhcpd6.conf - не выходит каменный цветок :( может я /etc/network/interfaces неправильно настроил? auto loiface lo inet loopback #auto eth0 iface eth0 inet static address 10.0.1.107 netmask 255.255.255.0 gateway 10.0.1.1 ### Start IPV6 static configuration auto eth0 iface eth0 inet6 static pre-up modprobe ipv6 address 2a00:11d8:1601:0000:0000:0000:0000:0002 netmask 64 gateway 2a00:11d8:1601:0000:0000:0000:0000:0000 ### END IPV6 configuration /etc/init.d/networking restart -- всё гуд, ipv6 на интерфейсе eth0 вижу eth0 Link encap:Ethernet HWaddr 1c:6f:65:2b:6e:11 inet addr:10.0.1.107 Bcast:10.0.1.255 Mask:255.255.255.0 inet6 addr: 2a00:11d8:1601::2/64 Scope:Общий inet6 addr: fe80::1e6f:65ff:fe2b:6e11/64 Scope:Link Запрос от испытуемой машины по команде ipv6 renew приходит (WinXPSP2), но адрес не выдается Edited February 11, 2011 by ilili Вставить ник Quote
nashvill Posted February 11, 2011 Author Posted February 11, 2011 Запрос от испытуемой машины по команде ipv6 renew приходит (WinXPSP2), но адрес не выдается из конфига dhcpv6 уберите "authoritative;". ну и заодно запустите dhcpv6 с ключиком -d чтобы видеть что он вообще пишет при запросах Вставить ник Quote
ilili Posted February 11, 2011 Posted February 11, 2011 Запрос от испытуемой машины по команде ipv6 renew приходит (WinXPSP2), но адрес не выдается из конфига dhcpv6 уберите "authoritative;". ну и заодно запустите dhcpv6 с ключиком -d чтобы видеть что он вообще пишет при запросах Сейчас попробую, спасибо Вставить ник Quote
ilili Posted February 11, 2011 Posted February 11, 2011 Вот результат. Listening on Socket/6/eth0/2a00:11d8:1601::/64Sending on Socket/6/eth0/2a00:11d8:1601::/64 Solicit message from fe80::187f:ee7c:218a:162d port 546, transaction ID 0xC1AE3700 Picking pool address 2a00:11d8:1601:0:957:efcb:df:69b0 Т.е. по сути приходит только DHCPDISCOVER, который dhcpd получает, но ничего не делает... Вставить ник Quote
ilili Posted February 11, 2011 Posted February 11, 2011 Итак, предварительный результат уже есть. Тестовый клиент с Win7 получил IPv6 адрес вообще без всяких проблем. Только дефолтный шлюз ему не назначается - пока разбираюсь. Если у кого идеи - жду )) Вставить ник Quote
Ivan_83 Posted February 11, 2011 Posted February 11, 2011 Роутер абонента получает один адрес для себя и блок из которого раздает адреса устройствам за ним. L2 не является delegating router. А в вашем случае - если роутеру выдать ОДИН блок, то при всем желании он не сможет из ОДНОГО блока повесить два адреса (один в сторону оператора, а другой в сторону устройств) на свои интерфейсы. Исходя и обсуждений в интернете по поводу PD и dhcpv6 relay роутер как раз таки ДОЛЖЕН создать такой маршрут. Про L2 было к тому что роль CPE не значительна и может быть проигнорирована. Да всё он сможет. 1. Бридж с одним адресом: устройство забирает себе 1 адрес, назначает его внутреннему и внешнему интерфейсам. Все пакеты снаружи адресованные подсети гонятся внутрь, все пакеты изнутри адресованные не подсети улетают со внешнего интерфейса. И что то отдельное, возможно с мультикастом. 2. Два адреса - см п1. Разница только в том что будет анонсится в обе сети разные IP адреса для HW адресов интерфейсов. В обоих случаях в таблице маршрутизации всего две записи: локалка - внутренний интерфейс, дефолт - внешний. Что я упускаю такого, почему это не должно работать? (размер блока меньше 126 в расчёт не берём) Всё таки, куда вы собрались ставить "dhcpv6 relay роутер" ? Это клиентский CPE=роутер? PS: мало ли чего кто где обсуждает. Вставить ник Quote
nashvill Posted February 11, 2011 Author Posted February 11, 2011 Итак, предварительный результат уже есть. Тестовый клиент с Win7 получил IPv6 адрес вообще без всяких проблем. Только дефолтный шлюз ему не назначается - пока разбираюсь. Если у кого идеи - жду )) А в IPv6 шлюз не DHCP назначает. Вам нужен RA. например radvd сервис используйте. Всё таки, куда вы собрались ставить "dhcpv6 relay роутер" ?Это клиентский CPE=роутер? PS: мало ли чего кто где обсуждает. Релеем у меня выступает мой маршрутизатор, который является фактически шлюзом для абонента. У абонента есть свой роутер и свои компы. Попробуйте на два интерфейса одного устройства назначить по IP адресу из одного и того же блока (например, на один интерфейс 192.161.0.1/24 а на второй 192.168.0.2/24), а потом уже будем обсуждать дальше все относительно IPv6. Вставить ник Quote
Ivan_83 Posted February 11, 2011 Posted February 11, 2011 Попробуйте на два интерфейса одного устройства назначить по IP адресу из одного и того же блока (например, на один интерфейс 192.161.0.1/24 а на второй 192.168.0.2/24), а потом уже будем обсуждать дальше все относительно IPv6.Угу.Только одно НО: я не говорил что на обоих интерфейсах будет /24 Теперь схема. два роутера, фряха 8.2 х32, фаеры выключены, никаких хаков ядра и пр шарлатанства. bridge не используется, ни нетграфовский ни обычный. ТОЛЬКО РОУТИНГ 1. Подключён к локалке: 172.16.0.0.24, через неё же PPPoE в инет, через этот пппое обратно 2 впн является шлюзом по умолчанию для локалки, НАТит и фаерволит в инет. Фаер отключён только для внутреннего интерфейса. em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC> ether 00:1b:21:4f:f5:b3 inet 172.16.0.254 netmask 0xffffff00 broadcast 172.16.0.255 media: Ethernet autoselect (1000baseT <full-duplex>) status: active lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384 options=3<RXCSUM,TXCSUM> inet 127.0.0.1 netmask 0xff000000 ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1492 inet 92.124.34.252 --> 213.228.116.147 netmask 0xffffffff ng1: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1396 inet 172.16.0.254 --> 172.16.0.241 netmask 0xffffffff ng2: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1398 inet 172.16.0.254 --> 172.16.0.7 netmask 0xffffffff 2. Тестовый роутер, туда-сюда. На время теста подключён к тому же коммутатору что и роутер 1 через re0, к em0 подключён ноут (192.168.0.88) re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=389b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MA GIC> ether 00:1a:4d:55:9a:42 inet 192.168.0.1 netmask 0xffffffff broadcast 192.168.0.1 media: Ethernet autoselect (1000baseT <full-duplex>) status: active em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC> ether 00:07:e9:2a:6f:5c inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255 media: Ethernet autoselect (100baseTX <full-duplex>) status: active em1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC> ether 00:07:e9:39:2a:d5 media: Ethernet autoselect status: no carrier lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384 options=3<RXCSUM,TXCSUM> inet 127.0.0.1 netmask 0xff000000 3. моя рабочая станция, подключена в свич с роутерами: винда, 172.16.0.3/24, шлюз (роутер1) 172.16.0.254 4. ноут, подключён к em0 роутера 2, 192.168.0.88/24 шлюз 192.168.0.1 Схема: [192.168.0.88] <----> [192.168.0.1 (em0)==(re0) 192.168.0.1] <--------> { [172.16.0.254] + [172.16.0.3] } и вы думаете оно не работает?)))))))))) А я вам говорю что: 192.168.0.88 видит все компы из 172.16.0.0/24 и ходит в инет и из 172.16.0.0/24 192.168.0.88 - тоже пингуется. как сделано: на роутере 1: 1. нужно дать роутеру знать где у нас хост 192.168.0.1 (который шлюз для 192.168.0.0/24) route add -net 192.168.0.1/32 -interface em0 -iface 2. теперь указываем через какой шлюз слать пакеты в сеть 192.168.0.0/24 route add -net 192.168.0.0/24 192.168.0.1 на роутере 2 аналогично: 1. указываем что хост 172.16.0.254 у нас на этом интерфейсе route add -net 172.16.0.254/32 -interface re0 -iface 2. не долго думая объявляем его шлюзом по умолчанию для всего route add -net 0.0.0.0 172.16.0.254 получившиеся таблицы маршрутизации и арп: роутер 1 Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire default 213.228.116.147 UGS 0 6030759 ng0 92.124.34.252 link#3 UHS 0 66895 lo0 127.0.0.1 link#2 UH 0 1736721 lo0 172.16.0.0/24 link#1 U 0 17740725 em0 172.16.0.7 link#5 UH 0 6741 ng2 172.16.0.241 link#4 UH 0 385 ng1 172.16.0.254 link#1 UHS 2 2 lo0 192.168.0.0/24 192.168.0.1 UGS 0 1732 em0 192.168.0.1/32 00:1b:21:4f:f5:b3 US 0 258 em0 arp -an ? (192.168.0.1) at 00:1a:4d:55:9a:42 on em0 expires in 58 seconds [ethernet] ? (172.16.0.240) at 00:0e:08:16:31:f1 on em0 expires in 13 seconds [ethernet] ? (172.16.0.241) at 00:1b:21:4f:f5:b3 on em0 permanent published [ethernet] ? (172.16.0.7) at 00:1b:21:4f:f5:b3 on em0 permanent published [ethernet] ? (172.16.0.2) at (incomplete) on em0 expired [ethernet] ? (172.16.0.3) at 00:1a:4d:5e:59:e6 on em0 expires in 99 seconds [ethernet] роутер 2: Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire default 172.16.0.254 UGS 0 411 re0 127.0.0.1 link#4 UH 0 86 lo0 172.16.0.254/32 00:1a:4d:55:9a:42 US 0 1316 re0 192.168.0.0/24 link#2 U 0 4930 em0 192.168.0.1 link#2 UHS 1 0 lo0 => 192.168.0.1/32 link#1 U 0 0 re0 arp -an ? (192.168.0.1) at 00:07:e9:2a:6f:5c on em0 permanent [ethernet] ? (192.168.0.88) at 00:1f:c6:6c:e4:7f on em0 expires in 74 seconds [ethernet] ? (172.16.0.254) at 00:1b:21:4f:f5:b3 on re0 expires in 117 seconds [ethernet] ? (192.168.0.1) at 00:1a:4d:55:9a:42 on re0 permanent [ethernet] а потом уже будем обсуждать дальше все относительно IPv6я готов обсуждать дальше, а вы?) Вставить ник Quote
Ivan_83 Posted February 11, 2011 Posted February 11, 2011 Я тут попил чаю, и подумал: "какого чёрта!" и сделал на роутере 2: ifconfig em0 inet 192.168.1.1/32 route add -net 192.168.0.0/24 192.168.1.1 А на ноуте поставил шлюз: 192.168.1.1 (напоминаю что ноут: 192.168.0.88 / 255.255.255.0) Теперь с ноута сам шлюз 2: 192.168.0.1 не пингуется, а 192.168.1.1 пингуется. Шлюз 2 re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=389b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MA GIC> ether 00:1a:4d:55:9a:42 inet 192.168.0.1 netmask 0xffffffff broadcast 192.168.0.1 media: Ethernet autoselect (1000baseT <full-duplex>) status: active em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC> ether 00:07:e9:2a:6f:5c inet 192.168.1.1 netmask 0xffffffff broadcast 192.168.1.1 media: Ethernet autoselect (100baseTX <full-duplex>) status: active em1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC> ether 00:07:e9:39:2a:d5 media: Ethernet autoselect status: no carrier lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384 options=3<RXCSUM,TXCSUM> inet 127.0.0.1 netmask 0xff000000 Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire default 172.16.0.254 UGS 0 26104 re0 127.0.0.1 link#4 UH 0 172 lo0 172.16.0.254/32 00:1a:4d:55:9a:42 US 0 6621 re0 192.168.0.0/24 192.168.1.1 US 0 125 em0 192.168.0.1 link#2 UHS 0 0 lo0 => 192.168.0.1/32 link#1 U 0 0 re0 192.168.1.1 link#2 UHS 0 0 lo0 => 192.168.1.1/32 link#2 U 0 0 em0 Вот такой вот ip unnumbered получается обычным роутингом. Применительно к обсуждавшемуся выше. Показанное подтверждает, что можно выдавать клиентскому роутеру адрес из подсети которую ему же делегировали. Адрес он поставит себе на внешку /128, а внутри может использовать линклокал либо тот же что стоит на внешке, но при этом ему проще выставить реальный префикс. Либо вообще от балды любой адрес, главное анонсировать его соответствие HW адресу. (и чтобы конфликтов не вызвало) PS: в L2 сетях адрес L3 значения не имеет при пересылке пакета в L2, потому можно плевать на L3 адреса, префиксы и пр и слать куда/кому хочется и как хочется :) Можно даже на L2 роутить и натить :) Те IPv4, IPv6 или вообще IPX - разницы нет, принцип один. Вставить ник Quote
nnm Posted February 11, 2011 Posted February 11, 2011 Ivan_83, все это конечно очень интересно, но подумайте сами, что Вы продемонстрировали: на платформе с хорошим IP-стеком в ручном режиме можно строить всякие прикольные схемки. Отлично. Теперь посмотрим, что нужно индустрии. Абонент может подключаться к сети оператора либо непосредственно компом, либо через роутер. Определить тип подключения сложно. Т.е. нужна такая схема, чтобы автоматически работало и то и другое. Поэтому предлагают выдавать IP-адрес для сети между маршрутизатором и BRAS и отдельно префикс на сетку за маршрутизатором. Если у абонента просто комп, то да, выданный префикс просто не используется. Т.е. проблема совсем не в том, что нельзя отжечь на маршрутизаторе так, как это сделали Вы. А в том, что отжиг этот должен конфигурироваться динамически и конфигурация эта не должна ломаться если вместо маршрутизатора будет комп с виндой. Попробуйте описать какие DHCP опции должен передать Router 1 в сторону Router 2, чтобы то, что вы придумали, заработало. Я например очень сомневаюсь насчет вот этого: route add -net 172.16.0.254/32 -interface re0 -iface Если мне память не изменяет, DHCP не позволяет передать маршрут без next-hop. Да и маска /32 навевает сомнения. :) IPv6, кстати трудностей добавит т.к. там не рекомендуются маски длиннее /64. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.