У меня здесь небольшой офис с несколькими рабочими станциями, и я хотел бы реализовать небольшой сервер для таких вещей, как прокси-сервер, самба и т. Д. Это топология указанной сети:
+-----+ dynamic +--------+ +-------------------+ +--+workstation1
| | /56 prefix | | | Debian server | +--------+
| ISP +--------------+ Router +-+eth0+-+ +-+eth1+-+ switch +--+workstation2
| | dynamic | | | (squid,dhcp,etc.) | +--------+
+-----+ IPv4 address +--------+ +-------------------+ +--+workstationX
Я хотел бы, чтобы сервер назначал глобальные (возможно, локальные) адреса IPv6 и частные адреса IPv4 всем устройствам, подключенным к eth1 через коммутатор. Мне удалось заставить маскировку NAT работать с dnsmasq и iptables, но я не могу получить трафик IPv6 или даже распределить адреса IPv6 для работы. На вкладке DHCP-сервера IPv6 маршрутизатор имеет три различных параметра:
Я пробовал следовать это руководство. В нем описывается, как настроить сервер DHCPv6 с помощью dnsmasq. У меня есть рабочий eth0, который получает глобальный, уникальный локальный и локальный адрес ссылки. Но мой интерфейс eth1 никогда не получает глобального IPv6-адреса, только локальный для ссылки. Все устройства за сервером имеют рабочий IPv4-адрес, но я не могу установить статический IP-адрес, потому что префикс динамический и меняется каждую ночь. В настоящее время я застрял на этом этапе.
Вот это мои файлы конфигурации.
Спасибо за помощь.
Я нашел способ. Мой интерфейс eth0 получил его IP из-за включенного net.ipv6.conf.eth0.accept_ra = 2 в /etc/sysctl.conf
. Wide-dhcpv6-client снова попытался установить адрес eth0, но он уже был установлен в объявлении маршрутизатора. Итак, если вы хотите, чтобы wide-dhcpv6-client устанавливал ip только для внутреннего интерфейса (eth1
в моем случае) вы должны опустить
id-assoc na 1 {
# id-assoc for eth1
};
часть из опубликованного руководства. В противном случае dhcp6c остановится, увидев, что адрес уже используется.
interface eth0 {
send ia-pd 1;
request domain-name;
request domain-name-servers;
script "/etc/wide-dhcpv6/dhcp6c-script";
};
id-assoc pd 1 {
prefix ::/64 infinity;
prefix-interface eth1 {
sla-len 0;
sla-id 1;
ifid 1;
};
};
Теперь все работает как шарм. Надеюсь, эта информация поможет любому, у кого есть подобная проблема.
Вам нужно будет назначить IPv6-адрес для eth1
поскольку он не может быть настроен автоматически. Выберите /64
адрес из вашего /56
хотя вы можете использовать свой /56
. Я использовал префикс 2001:0db8:a1b2:c2d3::/64
в примере ниже.
# This is an IPv6 interface
iface eth1 inet6 static
address 2001:0db8:a1b2:c2d3::1
netmask 64