小编Tre*_*nin的帖子

IPv6地址分配

我刚开始使用IPv6,所以在过去的几天里我做了很多阅读.不幸的是,我的一些问题在我的研究中没有得到解答.

我的目标是跟踪分配的地址以及分配的接口.根据我的阅读,接口可以通过几种方式获取IPv6地址,我在下面的子部分中列出了这些方法.我已经突出了我到目前为止所发现的内容,并在这些部分提出了一些问题.如果有人可以对我学到的内容进行任何更正,或者对问题有答案,请这样做.如果有人知道某个地方我可以找到更多信息,我不介意自己研究它.

编辑:我发现前缀委派实际上并没有导致地址分配.DHCP服务器使用它来获取要从其他DHCP服务器使用的前缀.


获取IPv6地址的方法有:

  1. StateLess地址自动配置(SLAAC)
  2. 有状态DHCPv6

SLAAC

SLAAC用于小型网络,为接口生成IPv6地址.它需要(几乎)没有配置,基本上如下工作:

  1. 当接口联机时,客户端将使用其接口ID地址和链接本地前缀(FE80::/10)生成链接本地IPv6地址.
  2. 要验证此地址是唯一的,NS会向该地址发送Neighbor Solicitation()消息.如果有回复,则该地址正在使用中且无法使用.自动配置中止,配置应手动进行. 问题1a:这里真的没有倒退吗?
  3. 假设在超时时段结束时没有收到回复,则假定该地址是唯一的,并将其指定为接口的链路本地地址.

    现在,该节点已连接到此链接上的所有其他节点

  4. 节点等待接收Router Advertisement(RA),或者向RS所有路由器的多播组发送Router Solicitation()消息.当RS路由器收到a时,它会响应RA.在RA将包含一个前缀.

  5. 该节点将生成带有前缀及其接口ID的全球单播地址.
  6. 与创建链接本地地址时类似,节点将向该地址发送消息以确定它是否是唯一的. 问题2:这也是一条NS消息吗? 如果有回复,则该地址已被使用,地址分配必须手动进行. 问题1b:同样,有没有自动恢复方法?
  7. 假设在超时内没有回复,则将该地址指定为接口的全局IPv6地址.

问题3:接口可以有多个地址.实际上,在上述过程结束时,单个接口将具有2个地址 - 链路本地地址和全球单播地址.是否可以使用SLAAC获取此接口的其他地址?或者必须使用其他方法(例如DHCPv6)?

有状态DHCPv6

节点可以使用上面的步骤1-3获得链路本地地址.我相信这是可选的,它可以简单地使用::/128(未指定)作为DHCP请求中的源地址,直到它被分配一个地址.

有两种获取地址的方法 - 正常和快速提交.正常是一个4消息交换(Solicit,Advertise,Request,Reply),和快速是2消息交换(Solicit,Reply).当客户端Rapid-CommitSolicit消息中使用选项请求快速提交时.它与Normal基本相同,因为它对我的使用没有任何影响,我现在暂时忽略它.

此外,消息可能通过中继进行代理.从中继发送到服务器的RELAY_FORW消息是消息,从服务器发送到中继的RELAY_REPL消息是消息.客户端和服务器之间的实际对话框完全封装在一个OPTION_RELAY_MSG选项中.对于以下内容,我只处理非中继消息.如果消息被中继,则很容易对原始消息进行说明,并且以下内容仍然成立.

地址分配如下:

  1. 客户端向Solicit"所有DHCP服务器和中继"多播地址发送消息.此消息的目的是发现本地链路上的DHCP服务器的标识.
  2. DHCP服务器响应Advertise本地多播地址的消息. …

dhcp ipv6

6
推荐指数
1
解决办法
2896
查看次数

如何重置JDBC连接池

我有一个问题,我在用户通过tomcat web应用程序请求重置我的MySQL数据库后得到了tomcat异常.到目前为止,我已尝试将其分解为设置,问题和分析,以帮助任何人尝试阅读此内容.

建立

重置基本上包括从java代码调用bash脚本到:

  • 删除root mysql用户密码
  • 加载旧版本的数据库
  • 在其上运行一些脚本
  • 恢复所有密码

它是用户启动的过程,通常将数据库还原到以前的状态,但它也用于从另一个系统导入数据库.一切都完成后,用户就会尝试访问Web应用程序的不同部分(即使用相同的会话而无需注销/重新登录),执行数据库查询以获取某些数据.

问题

一旦tomcat应用程序查询了DB,就会出现异常:

Dec 29, 2014 3:49:50 PM ERROR BasicSecurityRealm:216 - 
ERROR: ----- SQLException -----

Dec 29, 2014 3:49:50 PM  INFO BasicSecurityRealm:218 - Exceptioncom.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet successfully received from the server was 234,810 milliseconds ago.  The last packet sent successfully to the server was 12 milliseconds ago.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
...
Caused by: java.io.EOFException: Can not read response from server. Expected to read …
Run Code Online (Sandbox Code Playgroud)

java tomcat connection-pooling jdbc

5
推荐指数
1
解决办法
1万
查看次数

std :: deque的错误?

我试图使用循环和迭代器从双端队列中删除一个元素.我正在关注在线示例,但看到了一个错误.

我正在使用g ++(GCC)4.8.3 20140911(Red Hat 4.8.3-9).

这是代码:

#include <iostream>
#include <deque>

using namespace std;

// Display the contents of a queue
void disp_deque(deque<int>& deque) {
  cout << "deque contains: ";
  for (auto itr = deque.begin(); itr!=deque.end(); ++itr)
    cout << *itr << ' ';
  cout << '\n';
}

int main(int argc, char** argv) {
  deque<int> mydeque;

  // Put 10 integers in the deque.
  for (int i=1; i<=10; i++) mydeque.push_back(i);
  disp_deque(mydeque);

  auto it = mydeque.begin(); 
  while (it!=mydeque.end()) {
    cout << …
Run Code Online (Sandbox Code Playgroud)

c++ iterator deque c++11

3
推荐指数
2
解决办法
942
查看次数

标签 统计

c++ ×1

c++11 ×1

connection-pooling ×1

deque ×1

dhcp ×1

ipv6 ×1

iterator ×1

java ×1

jdbc ×1

tomcat ×1