一些比赛考试中的问题:
The subnet mask for a particular network is 255.255.31.0. Which of the following pairs of IP addressed could belong to this network?
1: 172.57.88.62 & 172.56.87.23
2: 10.35.28.2 & 10.35.29.4
3: 191.203.31.87 & 192.234.31.88
4: 128.8.129.43 & 128.8.161.55
Run Code Online (Sandbox Code Playgroud)
现在我对这个问题感到困惑,我已经读过一个子网掩码是模式的:
1111 1111. 1111 1111. 1111 1
我的意思是从左侧开始1但是在这个子网掩码中:
1111 1111. 1111 1111. 0001 1111. 0000 0000
Run Code Online (Sandbox Code Playgroud)
那么背后的实际原则是什么呢?请解释.我完全糊涂了.
提前致谢 :)
如何根据子网掩码测试两个IP是否在同一网络中?
比如我有IP地址1.2.3.4 1.2.4.3和:两者都是在同一个网络中,如果掩码是255.0.0.0或255.255.0.0甚至255.255.248.0但如果掩码为255.255.255.0 ..
考虑一个互连三个子网的路由器:Subnet1,Subnet2和Subnet3.假设这三个子网中的每一个的所有接口都需要具有前缀223.1.17/24.还假设Subnet#1支持至少60个接口Subnet#2支持至少90个接口Subnet#3支持至少12个接口.提供满足这些约束的三个网络地址(格式为abcd/x).
我的想法是子网1:223.1.17.0/26子网2:223.1.17.64/25子网3:223.1.17.192/28
它是否正确?
我正在创建一个基本的 AWS CloudFormation 模板,其中包含一个 VPC、3 个安全组和 5 个 EC2 实例,我的安全组看起来像这样 -
{
"WebApplicationServerSG": {
"Type": "AWS::EC2::SecurityGroup",
"Properties": {
"VpcId": {
"Ref": "DevVpc"
},
"GroupDescription": "Enable HTTP, HTTPS and SSH access",
"Tags": [
{
"Key": "Name",
"Value": "WebApplicationServer Service Group"
}
],
"SecurityGroupIngress": [
{
"IpProtocol": "tcp",
"FromPort": "443",
"ToPort": "443",
"CidrIp": "0.0.0.0/0"
},
{
"IpProtocol": "tcp",
"FromPort": "80",
"ToPort": "80",
"CidrIp": "0.0.0.0/0"
},
{
"IpProtocol": "tcp",
"FromPort": "22",
"ToPort": "22",
"CidrIp": "0.0.0.0/0"
}
],
"SecurityGroupEgress": [
{
"IpProtocol": "tcp",
"FromPort": …Run Code Online (Sandbox Code Playgroud) amazon-ec2 subnet amazon-web-services aws-cloudformation aws-security-group
我已经为此苦苦挣扎了几个小时。因此,我创建了我的 VPC 以及 4 个不同的子网。前三个连接到常规 Internet 网关。最后一个连接到 NAT 网关(以 0.0.0.0/0 作为目标)。我的 CodeBuild 项目设置为使用此 VPC 和最后一个子网。
当我在 CodeBuild 项目环境中单击“验证 VPC 设置”时,我收到以下警告:
“ID 为*的 VPC可能没有互联网连接。CodeBuild 找不到子网 ID 为 * 的目标互联网网关的 0.0.0.0/0 目的地。”
如果我尝试运行 CodeBuild 项目,它将超时,因为它无法访问 Internet 并且无法从 CodeCommit 下载源...
我在这里缺少什么?我的子网的路由表附加到 NAT 网关,目标是 0.0.0.0/0,所以上面的错误消息对我没有任何意义。
谢谢!
我见过很多伟大的C#示例其中演示了如何在CIDR标记提供的IPv4地址转换(如192.168.0.1/25)到他们的相关范围(192.168.0.1 - 192.168.0.126).我的程序需要能够这样做(计算我本地子网中的所有地址),但我也想支持IPv6.
如果我的C#程序有我所有的典型IPCONFIG信息(IPv4地址,子网掩码,IPv6地址,链路本地V6地址,默认网关) - 我怎么会去生成所有IPv6的列表在我的本地子网地址,将它们输出到控制台?
我有一个nat设置,连接了数千个设备.网关的网络由eth0提供,LAN侧的设备连接到网关上的eth1.
我有iptables的以下设置:
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
eth1配置如下:
ip: 192.168.0.1
subnet: 255.255.0.0
Run Code Online (Sandbox Code Playgroud)
为客户端分配ips 192.168.0.2到192.168.255.254.
在/etc/sysctl.conf中我为ip_conntrack_tcp_timeout_established设置了以下设置
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=1200
Run Code Online (Sandbox Code Playgroud)
由于连接到此网关的客户端设备数量,我无法使用默认的5天超时.
这似乎运行良好,并已测试超过10000客户端设备的设置.
但是,我看到的问题是tcp建立的超时1200仅适用于ip范围192.168.0.2到192.168.0.255的设备.在192.168.1.x到192.168.255.x范围内具有ips的所有设备仍在使用5天默认超时.
这会在/ proc/net/ip_conntrack表中留下太多"ESTABLISHED"连接并最终填满,即使它们应该在20分钟内超时,它们显示它们将在5天内超时.
显然我错过了某个地方的设置或者错误地配置了某些东西.
有什么建议?
谢谢
如何在CloudFormation脚本中引用现有VPC的VPC Id(之前已在单独的CloudFormation脚本中创建)以便在VPC中创建子网?
在CloudFormation中,我正在创建一个VPC,两个EC2实例和一个Elasticache.在模板中,我正在尝试将弹性缓存添加到vpc中.在创建AWS :: Elasticache :: SubnetGroup时发生了问题
"CacheSubnetGroup" : {
"Type" : "AWS::ElastiCache::SubnetGroup",
"Properties" : {
"Description" : "Subnets available for the ElastiCache Cluster",
"SubnetIds" : [ ... ]
}
},
Run Code Online (Sandbox Code Playgroud)
我不希望要求用户输入所建议的子网列表在这里,因为我假设用户不知道子网是什么.有没有类似于{"Fn :: GetAtt"的函数:["myVpc","SubnetList"]}?
编辑 在jarmod的响应之后,我正在创建子网,vpc和其他所有内容.但仍有一个问题.我可以在创建的VPC中启动EC2,但是实例会被创建,并且在初始化实例时会关闭实例,并且新实例会被启动.这个循环继续,直到我删除cf堆栈.这是我认为问题的起源部分:
"WebServerGroup" : {
"Type" : "AWS::AutoScaling::AutoScalingGroup",
"Properties" : {
"VPCZoneIdentifier" : [{ "Ref" : "InstanceSubnet1" }, { "Ref" : "InstanceSubnet2" }, { "Ref" : "InstanceSubnet3" }, { "Ref" : "InstanceSubnet4" }],
"LaunchConfigurationName" : { "Ref" : "LaunchConfig" },
"MinSize" : "1",
"MaxSize" …Run Code Online (Sandbox Code Playgroud) amazon-ec2 subnet amazon-web-services amazon-elasticache aws-cloudformation
我可以为每个可用区提供 1 个以上的子网来创建 AWS 接口终端节点吗?
当我尝试时,我收到此错误:
Error creating VPC Endpoint: DuplicateSubnetsInSameZone: Found another VPC endpoint subnet in the availability zone of subnet-xxx. VPC endpoint subnets should be in different availability zones supported by the VPC endpoint service.
Run Code Online (Sandbox Code Playgroud)
我的 VPC 设置为每个可用区有多个子网。这是否意味着在没有 VPC 终端节点网络接口的子网中设置的实例将无法访问 AWS 服务?
subnet ×10
amazon-ec2 ×3
ip ×2
nat ×2
amazon-vpc ×1
c# ×1
gateway ×1
ip-address ×1
iptables ×1
ipv6 ×1
java ×1
networking ×1
timeout ×1
vpc ×1